Current section
Files
Jump to
Current section
Files
lib/generate/inform.ex
defimpl CWMP.Protocol.Generate, for: CWMP.Protocol.Messages.Inform do
import XmlBuilder
use CWMP.Protocol.GenerateHelpers
def generate(req) do
ctime = timeString(req.current_time)
element("cwmp:Inform", [
deviceId(req.device_id),
events(req.events),
element(:MaxEnvelopes, req.max_envelopes),
element(:CurrentTime, ctime),
element(:RetryCount, req.retry_count),
parameters(req.parameters)
])
end
defp deviceId( deviceid ) do
element(:DeviceId,[ element(:Manufacturer, deviceid.manufacturer),
element(:OUI, deviceid.oui),
element(:ProductClass, deviceid.product_class),
element(:SerialNumber, deviceid.serial_number) ])
end
defp events( informevents ) do
eventlist=for e <- informevents, do: element(
:EventStruct, [
element(:EventCode, e.code),
element(:CommandKey, e.command_key) ])
element(:Event, %{"SOAP-ENC:arrayType": "cwmp:EventStruct[#{length(eventlist)}]"}, [eventlist])
end
defp parameters( parameterlist ) do
plist=for p <- parameterlist, do: element(:ParameterValueStruct, [
element(:Name, p.name),
element(:Value, %{"xsi:type": p.type}, p.value) ] )
element(:ParameterList, %{"SOAP-ENC:arrayType": "cwmp:ParameterValueStruct[#{length(plist)}]"}, [plist])
end
end