1 line
10 KiB
Plaintext
1 line
10 KiB
Plaintext
{"Id":120,"Name":null,"Description":null,"FirmwareVersion":null,"InProgress":true,"MessageTypes":[{"Id":7591,"Code":"BPRS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"DISABLED<mrq><ref>1234</ref><ver><<version>></ver><sco><<sco>></sco><cha><<cha>></cha><mty>ME</mty><hbo><<hbo>></hbo><cid><<imei>></cid><dty><<dty>></dty><did><<imei>></did><dco><<dco>></dco><dte>PANICBUTTON</dte><crd><<crd>></crd><stc><<stc>></stc><stt><<stt>></stt><pri><<pri>></pri><lco><<lco>></lco><lva><<lva>></lva><lge><geo><<geo>></geo><tim><<tim>></tim><gga><<gga>></gga></lge><lte><<lte>></lte><ico><<ico>></ico><ite><<ite>></ite><ame><<ame>></ame></mrq>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^DISABLED<mrq><ref>1234</ref><ver>[^<]*</ver><sco>[^<<]*</sco><cha>[^<<]*</cha><mty>ME</mty><hbo>[^<<]*</hbo><cid>[^<<]*</cid><dty>[^<<]*</dty><did>[^<<]*</did><dco>[^<<]*</dco><dte>PANICBUTTON</dte><crd>[^<<]*</crd><stc>[^<<]*</stc><stt>[^<<]*</stt><pri>[^<<]*</pri><lco>[^<<]*</lco><lva>[^<<]*</lva><lge><geo>[^<<]*</geo><tim>[^<<]*</tim><gga>[^<<]*</gga></lge><lte>[^<<]*</lte><ico>[^<<]*</ico><ite>[^<<]*</ite><ame>[^<<]*</ame></mrq>","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":8061,"Code":"COMM","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"","HasTemplateGlobal":true,"ResponseTemplate":"<mrs><<imei>></mrs>","TemplateGlobal":"<<data>>","LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"","RegExGlobal":"^[^ ]*","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":8062,"Code":"ALSOS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"SCAIP-ALSOS;<<imei>>;","HasTemplateGlobal":false,"ResponseTemplate":"<<reference>> OK","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^SCAIP-ALSOS;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":2210,"Code":"ALSOS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"DISABLED<mrq><ref><<reference>></ref><ver><<version>></ver><sco><<system-config>></sco><cha><<call-handling>></cha><mty>ME</mty><hbo><<heartbeat-options>></hbo><cid><<cid>></cid><dty><<device-type>></dty><did><<device-id>></did><dco><<device-component>></dco><dte><<device-text>></dte><crd><<caller-id>></crd><stc>0010</stc><stt><<status-text>></stt><pri><<priority>></pri><lco><<location-code>></lco><lva><<location-value>></lva><lge><geo><<wgs-pos>></geo><tim><<time-stamp>></tim><gga><<gga-pos>></gga></lge><lte><<location-text>></lte><ico><<info-code>></ico><ite><<info-text>></ite><ame><<additional-message>></ame></mrq>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^DISABLED<mrq><ref>[^<]*</ref><ver>[^<<]*</ver><sco>[^<<]*</sco><cha>[^<<]*</cha><mty>ME</mty><hbo>[^<<]*</hbo><cid>[^<<]*</cid><dty>[^<<]*</dty><did>[^<<]*</did><dco>[^<<]*</dco><dte>[^<<]*</dte><crd>[^<<]*</crd><stc>0010</stc><stt>[^<<]*</stt><pri>[^<<]*</pri><lco>[^<<]*</lco><lva>[^<<]*</lva><lge><geo>[^<<]*</geo><tim>[^<<]*</tim><gga>[^<<]*</gga></lge><lte>[^<<]*</lte><ico>[^<<]*</ico><ite>[^<<]*</ite><ame>[^<<]*</ame></mrq>","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7586,"Code":"ALSOS","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"DISABLED<mrq><ref><<reference>></ref><mty><<mty>></mty><cha><<channel>></cha><mreq><<mreq>></mreq><cid><<clientID>></cid><dty><<dty>></dty><did><<imei>></did><dte><<dte>></dte><crd><<crd>></crd><stc><<stc>></stc></mrq>","HasTemplateGlobal":false,"ResponseTemplate":"<<reference>> OK","TemplateGlobal":"","LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":"","ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^DISABLED<mrq><ref>[^<]*</ref><mty>[^<<]*</mty><cha>[^<<]*</cha><mreq>[^<<]*</mreq><cid>[^<<]*</cid><dty>[^<<]*</dty><did>[^<<]*</did><dte>[^<<]*</dte><crd>[^<<]*</crd><stc>[^<<]*</stc></mrq>","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]}],"Commands":[],"Operations":[{"Id":90,"Name":"scaip","Operation":"// write your code here..\n// old code\n// var moment = require('moment');\n// // OPERATIONS START\n// var nowTime, event_time, location_time, send_time, location_accuracy, speed, fix_state, zone_id;\n// //Define defaults (in case variables not set) \n// nowTime = event_time = location_time = send_time = moment.utc().unix();\n// //if fix_state doesn't exist, set it to 0\n// msg.push({\n// 'code': 'event_time',\n// 'value': event_time\n// });\nfunction isLocalTesting() {\n return typeof require === \"undefined\";\n}\n\nfunction execute_ops(msg, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\n var net = null;\n var moment = null;\n if (!isLocalTesting()) {\n net = require('net');\n moment = require('moment');\n }\n var codeValues = [];\n var tasks = [];\n var configsToAck = [];\n var configsToUpdate = [];\n var configsToSend = [];\n AddValue(codeValues, \"event_time\", Math.round(Date.now() / 1000));\n if (oystaTemplate == 'True') {}\n if (globalTemplate == \"True\") {\n const xml = raw;\n // AddValue(codeValues, \"reference\", getTagValue(xml, \"ref\"));\n // AddValue(codeValues, \"version\", getTagValue(xml, \"ver\"));\n // AddValue(codeValues, \"system_config\", getTagValue(xml, \"sco\"));\n // AddValue(codeValues, \"call-handling\", getTagValue(xml, \"cha\"));\n // AddValue(codeValues, \"heartbeat-options\", getTagValue(xml, \"hbo\"));\n // AddValue(codeValues, \"cid\", getTagValue(xml, \"cid\"));\n // AddValue(codeValues, \"device-type\", getTagValue(xml, \"dty\"));\n AddValue(codeValues, \"imei\", getTagValue(xml, \"did\"));\n // AddValue(codeValues, \"device-component\", getTagValue(xml, \"dco\"));\n // AddValue(codeValues, \"caller-id\", getTagValue(xml, \"cid\"));\n // AddValue(codeValues, \"status-text\", getTagValue(xml, \"stt\"));\n // AddValue(codeValues, \"priority\", getTagValue(xml, \"pri\"));\n // AddValue(codeValues, \"location-code\", getTagValue(xml, \"lco\"));\n // AddValue(codeValues, \"location-value\", getTagValue(xml, \"lva\"));\n // AddValue(codeValues, \"wgs-pos\", getTagValue(xml, \"geo\"));\n // AddValue(codeValues, \"time-stamp\", getTagValue(xml, \"tim\"));\n // AddValue(codeValues, \"gga-pos\", getTagValue(xml, \"gga\"));\n // AddValue(codeValues, \"location-text\", getTagValue(xml, \"lte\"));\n // AddValue(codeValues, \"info-code\", getTagValue(xml, \"ico\"));\n // AddValue(codeValues, \"info-text\", getTagValue(xml, \"ite\"));\n // AddValue(codeValues, \"additional-message\", getTagValue(xml, \"ame\"));\n // AddValue(codeValues, \"mty\", \"ME\");\n const statusCodeString = getTagValue(xml, \"stc\");\n const statusCode = parseInt(statusCodeString, 10);\n if (statusCode === 10) {\n let imei = getTagValue(xml, \"did\");\n let new_message = \"SCAIP-ALSOS;\" + imei + \";\";\n sendMessageToLocalhost(new_message);\n AddValue(codeValues, \"toSend\", new_message);\n }\n }\n var dataToReceiver = {\n 'values': codeValues\n };\n if (tasks.length > 0) {\n dataToReceiver.tasks = tasks\n };\n // only send data if we have some\n // if (codeValues !== undefined || codeValues.length !== 0) {\n console.log(dataToReceiver);\n // }\n return {\n 'output': dataToReceiver\n }\n}\n\nfunction getTagValue(xml, tagName) {\n const startTag = '<' + tagName + '>';\n const endTag = '</' + tagName + '>';\n let tagValue = '';\n if (xml.includes(startTag)) {\n tagValue = xml.substring(xml.lastIndexOf(startTag) + startTag.length, xml.lastIndexOf(endTag));\n }\n return tagValue;\n}\n\nfunction createConnection(port, server) {\n c = net.createConnection(port, server);\n c.on('error', function(error) {\n c = createConnection(port, server);\n });\n return c;\n}\n\nfunction sendMessageToLocalhost(str) {\n if (isLocalTesting()) {\n console.log(\"Sending message to server: \" + str);\n } else {\n var server = '127.0.0.1';\n // acceptance\n var c = createConnection(5678, server);\n // protocol-dev\n //var c = createConnection(5878, server);\n c.write(`${str}`);\n c.end();\n }\n}\n\nfunction AddValue(msgArray, p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n msgArray.push(cvpair);\n}\nif (!isLocalTesting()) {\n let return_values = execute_ops(msg, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\n // map output to global var\n dataToReceiver = return_values.output;\n}","Type":0,"ProtocolActionObjects":[]}],"Groups":[],"GroupParams":[],"ProtocolChanges":[],"ProtocolActionObjects":[],"Tags":[],"MessageCodes":[]} |