diff --git a/scaip b/scaip index 7dc2014..6457048 100644 --- a/scaip +++ b/scaip @@ -1 +1 @@ -{"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":"DISABLED1234<><><>ME<><><><><>PANICBUTTON<><><><><><><><><><><><><>","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":"^DISABLED1234[^<]*[^<<]*[^<<]*ME[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*PANICBUTTON[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*","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":"<>","TemplateGlobal":"<>","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;<>;","HasTemplateGlobal":false,"ResponseTemplate":"<> 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<><><><>ME<><><><><><><>0010<><><><><><><><><><><>","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[^<]*[^<<]*[^<<]*[^<<]*ME[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*0010[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*","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<><><><><><><><><><>","HasTemplateGlobal":false,"ResponseTemplate":"<> OK","TemplateGlobal":"","LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":"","ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^DISABLED[^<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*","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 = '';\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":[]} \ No newline at end of file +{"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":"DISABLED1234<><><>ME<><><><><>PANICBUTTON<><><><><><><><><><><><><>","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":"^DISABLED1234[^<]*[^<<]*[^<<]*ME[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*PANICBUTTON[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*","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":"<>","TemplateGlobal":"<>","LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"","RegExGlobal":"^[^ ]*","IsDeviceUpdate":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":8061,\"Code\":\"COMM\",\"Name\":null,\"MessageCode\":\"COMM\",\"NeedAck\":true,\"IsAck\":false,\"IsFailAck\":false,\"IsAckHexString\":false,\"NoOperation\":false,\"Type\":0,\"Template\":\"\",\"HasTemplateGlobal\":true,\"ResponseTemplate\":\"<>\",\"TemplateGlobal\":\"<>\",\"LongConnection\":false,\"HexString\":false,\"AckFirst\":false,\"ScaipH\":false,\"DoNotSendCommands\":false,\"ProtocolsLibraryMethod\":null,\"ProtocolsLibraryMethodArgs\":null,\"Command\":null,\"CacheImei\":false,\"RegEx\":\"\",\"RegExGlobal\":\"^[^<]*\",\"IsDeviceUpdate\":false,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1780931248}],"Tags":[]},{"Id":8062,"Code":"ALSOS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"SCAIP-ALSOS;<>;","HasTemplateGlobal":false,"ResponseTemplate":"<> 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<><><><>ME<><><><><><><>0010<><><><><><><><><><><>","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[^<]*[^<<]*[^<<]*[^<<]*ME[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*0010[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*","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<><><><><><><><><><>","HasTemplateGlobal":false,"ResponseTemplate":"<> OK","TemplateGlobal":"","LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":"","ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^DISABLED[^<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*","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 = '';\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":[{"Version":"0.2","UserName":"Sean-Admin","Resource":"MessageType","Name":"COMM","Message":"(Update) (COMM) limit treaffic to scaip xml","Timestamp":1780931248}],"ProtocolActionObjects":[],"Tags":[],"MessageCodes":[]} \ No newline at end of file