diff --git a/access-ps-app b/access-ps-app index 94b4a59..bea436e 100644 --- a/access-ps-app +++ b/access-ps-app @@ -1 +1 @@ -{"Id":256,"Name":null,"Description":null,"FirmwareVersion":"","InProgress":true,"MessageTypes":[{"Id":7877,"Code":"COMM-SET_SOSNUMBER","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"APS-<>;<>;mid=<>;SET_SOSNUMBER=<>;","HasTemplateGlobal":false,"ResponseTemplate":"ACK-MSG;<>;OK;","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^APS-[^;]*;[^;;]*;mid=[^;;]*;SET_SOSNUMBER=[^;;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":7877,\"Code\":\"COMM-SET_SOSNUMBER\",\"Name\":null,\"MessageCode\":\"COMM\",\"NeedAck\":true,\"IsAck\":false,\"IsFailAck\":false,\"IsAckHexString\":false,\"NoOperation\":false,\"Type\":0,\"Template\":\"APS-<>;<>;<>;mid=<>;SET_SOSNUMBER=<>;\",\"HasTemplateGlobal\":false,\"ResponseTemplate\":\"ACK-MSG;<>;OK;\",\"TemplateGlobal\":null,\"LongConnection\":false,\"HexString\":false,\"AckFirst\":false,\"ScaipH\":false,\"DoNotSendCommands\":false,\"ProtocolsLibraryMethod\":null,\"ProtocolsLibraryMethodArgs\":null,\"Command\":null,\"CacheImei\":false,\"RegEx\":\"^APS-[^;]*;[^;;]*;[^;;]*;mid=[^;;]*;SET_SOSNUMBER=[^;;]*;\",\"RegExGlobal\":\"\",\"IsDeviceUpdate\":false,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1741272718}],"Tags":[]},{"Id":7677,"Code":"COMM-IS_REGISTERED","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"APS-<>;<>;mid=<>;IS_REGISTERED=<>;","HasTemplateGlobal":false,"ResponseTemplate":"ACK-MSG;<>;OK;","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^APS-[^;]*;[^;;]*;mid=[^;;]*;IS_REGISTERED=[^;;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7676,"Code":"COMM-SET_USERID","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"APS-<>;<>;mid=<>;SET_USERID=<>;","HasTemplateGlobal":false,"ResponseTemplate":"ACK-MSG;<>;OK;","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^APS-[^;]*;[^;;]*;mid=[^;;]*;SET_USERID=[^;;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7675,"Code":"COMM-REGISTER","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"APS-<>;<>;mid=<>;REGISTER=<>,<>,<>;","HasTemplateGlobal":false,"ResponseTemplate":"ACK-MSG;<>;OK;","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^APS-[^;]*;[^;;]*;mid=[^;;]*;REGISTER=[^,;]*,[^,,]*,[^;,]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7593,"Code":"ALSOS","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"APS-<>;<>;<>;mid=<>;ALSOS;LOTH=<>,<>,<>,<>,<>;BATP=<>;TIME=<>;","HasTemplateGlobal":false,"ResponseTemplate":"ACK-MSG;<>;OK;","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^APS-[^;]*;[^;;]*;[^;;]*;mid=[^;;]*;ALSOS;LOTH=[^,;]*,[^,,]*,[^,,]*,[^,,]*,[^;,]*;BATP=[^;;]*;TIME=[^;;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7592,"Code":"CYC","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"APS-<>;<>;<>;mid=<>;CYC;LOTH=<>,<>,<>,<>,<>;BATP=<>;TIME=<>;","HasTemplateGlobal":false,"ResponseTemplate":"ACK-MSG;<>;OK;","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^APS-[^;]*;[^;;]*;[^;;]*;mid=[^;;]*;CYC;LOTH=[^,;]*,[^,,]*,[^,,]*,[^,,]*,[^;,]*;BATP=[^;;]*;TIME=[^;;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]}],"Commands":[],"Operations":[{"Id":367,"Name":"apsapp_ops","Operation":"function execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\n // ADD THE OPS CODE HERE\n let tasks = []; // array of tasks to be executed\n var deviceParams = [];\n var configsToUpdate = [];\n AddValue(\"imei\", params.imei);\n // evaluate messageTypLocalCOde \n if (messageTypeLocalCode == \"COMM-REGISTER\") { // Create message\n let userId = params.userId;\n let phoneId = params.phoneId;\n let phoneNumber = params.phonenumber;\n let message = \"APS-001;\" + phoneId + \";mid=\" + params.count_number + \";SET_USERID=\" + userId + \";\";\n // sendMessageToLocalhost(message); \n tasks = [{\n \"name\": \"Create\" + phoneId,\n \"option\": \"sync\",\n \"type\": \"createDevice\",\n \"payload\": JSON.stringify({\n \"name\": \"APS\" + phoneId,\n \"imei\": phoneId,\n \"abortOnError\": false,\n \"init\": true,\n \"phoneNumber\": phoneNumber,\n // \"entity\":\"import_test\",\n }),\n \"order\": 1\n }, {\n \"name\": \"SetUserId\" + userId,\n \"option\": \"async\",\n \"type\": \"sendMessage\",\n \"payload\": JSON.stringify({\n \"message\": message\n }),\n \"order\": 2\n }]\n } else if (messageTypeLocalCode == \"COMM-SET_USERID\") { // Set Device ID message\n let userId = params.userId;\n AddValue(\"userId\", userId);\n AddConfigToUpdate(configIds.Config.UserId, userId);\n } else if (messageTypeLocalCode == \"COMM-IS_REGISTERED\") { // Get Device ID message\n // is the input deviceid the same as the one registered?\n let currentUserId = configs.Config.UserId;\n let newUserId = params.userId;\n AddValue(\"currentUserId\", currentUserId);\n AddValue(\"oldUserId\", configs.Config.UserIdOld);\n if (currentUserId !== newUserId) {\n AddConfigToUpdate(configIds.Config.UserId, newUserId);\n }\n }\n var msg = {\n 'values': deviceParams,\n };\n if (tasks.length > 0) {\n msg.tasks = tasks;\n }\n if (configsToUpdate.length > 0) {\n msg.configsToUpdate = configsToUpdate\n };\n // modify to return the object that contains your data\n console.log(msg);\n return msg;\n\n function AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n deviceParams.push(cvpair);\n }\n\n function AddConfigToUpdate(configName, newvalue) {\n if (newvalue !== undefined) { // don't add if newvalue is undefined\n var cvpair = {\n 'code': configName,\n 'value': newvalue,\n 'forced': true\n };\n configsToUpdate.push(cvpair);\n };\n }\n}\n// params is not defined locally -> export as module\nif (typeof(params) === 'undefined') {\n module.exports = {\n execute_ops\n }\n} else { // on server use local defined vars\n let return_values = execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\n // define global returns\n msg = return_values;\n}","Type":0,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":367,\"Name\":\"apsapp_ops\",\"Operation\":\"function execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\\n // ADD THE OPS CODE HERE\\n let tasks = []; // array of tasks to be executed\\n var deviceParams = [];\\n var configsToUpdate = [];\\n AddValue(\\\"imei\\\", params.imei);\\n // evaluate messageTypLocalCOde \\n if (messageTypeLocalCode == \\\"COMM-REGISTER\\\") { // Create message\\n let userId = params.userId;\\n let phoneId = params.phoneId;\\n let phoneNumber = params.phonenumber;\\n let message = \\\"APS-001;\\\" + phoneId + \\\";mid=\\\" + params.count_number + \\\";SET_USERID=\\\" + userId + \\\";\\\";\\n // sendMessageToLocalhost(message); \\n tasks = [{\\n \\\"name\\\": \\\"Create\\\" + phoneId,\\n \\\"option\\\": \\\"sync\\\",\\n \\\"type\\\": \\\"createDevice\\\",\\n \\\"payload\\\": JSON.stringify({\\n \\\"name\\\": \\\"APS\\\" + phoneId,\\n \\\"imei\\\": phoneId,\\n \\\"abortOnError\\\": false,\\n \\\"init\\\": true,\\n \\\"phoneNumber\\\": phoneNumber,\\n // \\\"entity\\\":\\\"import_test\\\",\\n }),\\n \\\"order\\\": 1\\n }, {\\n \\\"name\\\": \\\"SetUserId\\\" + userId,\\n \\\"option\\\": \\\"async\\\",\\n \\\"type\\\": \\\"sendMessage\\\",\\n \\\"payload\\\": JSON.stringify({\\n \\\"message\\\": message\\n }),\\n \\\"order\\\": 2\\n }]\\n } else if (messageTypeLocalCode == \\\"COMM-SET_USERID\\\") { // Set Device ID message\\n let userId = params.userId;\\n AddValue(\\\"userId\\\", userId);\\n AddConfigToUpdate(configIds.Config.UserId, userId);\\n } else if (messageTypeLocalCode == \\\"COMM-SET_SOSNUMBER\\\") { // Set SOS NUMBER message\\n let sosNumber = params.sosnumber;\\n AddValue(\\\"sosNumber\\\", sosNumber);\\n AddConfigToUpdate(configIds.AlertSettings.SOSNumber, sosNumber);\\n } else if (messageTypeLocalCode == \\\"COMM-IS_REGISTERED\\\") { // Get Device ID message\\n // is the input deviceid the same as the one registered?\\n let currentUserId = configs.Config.UserId;\\n let newUserId = params.userId;\\n AddValue(\\\"currentUserId\\\", currentUserId);\\n AddValue(\\\"oldUserId\\\", configs.Config.UserIdOld);\\n if (currentUserId !== newUserId) {\\n AddConfigToUpdate(configIds.Config.UserId, newUserId);\\n }\\n }\\n var msg = {\\n 'values': deviceParams,\\n };\\n if (tasks.length > 0) {\\n msg.tasks = tasks;\\n }\\n if (configsToUpdate.length > 0) {\\n msg.configsToUpdate = configsToUpdate\\n };\\n // modify to return the object that contains your data\\n console.log(msg);\\n return msg;\\n\\n function AddValue(p1, p2) {\\n var cvpair = {\\n code: p1,\\n value: p2\\n };\\n deviceParams.push(cvpair);\\n }\\n\\n function AddConfigToUpdate(configName, newvalue) {\\n if (newvalue !== undefined) { // don't add if newvalue is undefined\\n var cvpair = {\\n 'code': configName,\\n 'value': newvalue,\\n 'forced': true\\n };\\n configsToUpdate.push(cvpair);\\n };\\n }\\n}\\n// params is not defined locally -> export as module\\nif (typeof(params) === 'undefined') {\\n module.exports = {\\n execute_ops\\n }\\n} else { // on server use local defined vars\\n let return_values = execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\\n // define global returns\\n msg = return_values;\\n}\",\"Type\":0,\"ProtocolActionObjects\":[]}","Timestamp":1741187532}]}],"Groups":[{"Id":7041,"Parent":null,"Name":"Admin","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7043,"Parent":{"Id":7041,"Name":"Admin","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7043,"Name":"Config","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7310,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Config","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7310,"Parent":{"Id":7041,"Name":"Admin","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7043,"Name":"Config","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7310,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Alert Settings","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]}],"GroupParams":[{"Id":11877,"Group":{"Id":7043,"Name":"Config","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7041,"Name":"Admin","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7310,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"UserId","Json":"{\"name\":\"UserId\",\"default\":\"\",\"description\":\"The latest User ID using this device.\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":12270,"Group":{"Id":7310,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7041,"Name":"Admin","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7043,"Name":"Config","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"SOS Number","Json":"{\"name\":\"SOS Number\",\"default\":\"\",\"description\":\"SOS number\",\"type\":\"phone\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"The number called when the Alert button is pushed on the device (typically the ARC)\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":12270,\"Group\":{\"Id\":7310,\"Name\":\"Alert Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"SOS Number\",\"Json\":\"{\\\"name\\\":\\\"SOS Number\\\",\\\"default\\\":\\\"\\\",\\\"description\\\":\\\"SOS number\\\",\\\"type\\\":\\\"text\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":true,\\\"isHidden\\\":false,\\\"minLength\\\":null,\\\"maxLength\\\":null,\\\"helpText\\\":\\\"The number called when the Alert button is pushed on the device (typically the ARC)\\\",\\\"options\\\":[],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\"]}\",\"Default\":\"\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1741189055}],"Tags":[]}],"ProtocolChanges":[{"Version":"0.2","UserName":"IbrahimMeman","Resource":"Operation","Name":"apsapp_ops","Message":"(Update) (apsapp_ops) Added sos number","Timestamp":1741187532},{"Version":"0.2","UserName":"IbrahimMeman","Resource":"GroupParam","Name":"SOS Number","Message":"(Update) (SOS Number) Changed to read only text","Timestamp":1741189055},{"Version":"0.2","UserName":"IbrahimMeman","Resource":"MessageType","Name":"COMM-SET_SOSNUMBER","Message":"(Update) (COMM-SET_SOSNUMBER) updated template\n","Timestamp":1741272718}],"ProtocolActionObjects":[],"Tags":[]} \ No newline at end of file +{"Id":256,"Name":null,"Description":null,"FirmwareVersion":"","InProgress":false,"MessageTypes":[{"Id":7877,"Code":"COMM-SET_SOSNUMBER","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"APS-<>;<>;mid=<>;SET_SOSNUMBER=<>;","HasTemplateGlobal":false,"ResponseTemplate":"ACK-MSG;<>;OK;","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^APS-[^;]*;[^;;]*;mid=[^;;]*;SET_SOSNUMBER=[^;;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":7877,\"Code\":\"COMM-SET_SOSNUMBER\",\"Name\":null,\"MessageCode\":\"COMM\",\"NeedAck\":true,\"IsAck\":false,\"IsFailAck\":false,\"IsAckHexString\":false,\"NoOperation\":false,\"Type\":0,\"Template\":\"APS-<>;<>;<>;mid=<>;SET_SOSNUMBER=<>;\",\"HasTemplateGlobal\":false,\"ResponseTemplate\":\"ACK-MSG;<>;OK;\",\"TemplateGlobal\":null,\"LongConnection\":false,\"HexString\":false,\"AckFirst\":false,\"ScaipH\":false,\"DoNotSendCommands\":false,\"ProtocolsLibraryMethod\":null,\"ProtocolsLibraryMethodArgs\":null,\"Command\":null,\"CacheImei\":false,\"RegEx\":\"^APS-[^;]*;[^;;]*;[^;;]*;mid=[^;;]*;SET_SOSNUMBER=[^;;]*;\",\"RegExGlobal\":\"\",\"IsDeviceUpdate\":false,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1741272718}],"Tags":[]},{"Id":7677,"Code":"COMM-IS_REGISTERED","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"APS-<>;<>;mid=<>;IS_REGISTERED=<>;","HasTemplateGlobal":false,"ResponseTemplate":"ACK-MSG;<>;OK;","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^APS-[^;]*;[^;;]*;mid=[^;;]*;IS_REGISTERED=[^;;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7676,"Code":"COMM-SET_USERID","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"APS-<>;<>;mid=<>;SET_USERID=<>;","HasTemplateGlobal":false,"ResponseTemplate":"ACK-MSG;<>;OK;","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^APS-[^;]*;[^;;]*;mid=[^;;]*;SET_USERID=[^;;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7675,"Code":"COMM-REGISTER","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"APS-<>;<>;mid=<>;REGISTER=<>,<>,<>;","HasTemplateGlobal":false,"ResponseTemplate":"ACK-MSG;<>;OK;","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^APS-[^;]*;[^;;]*;mid=[^;;]*;REGISTER=[^,;]*,[^,,]*,[^;,]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7593,"Code":"ALSOS","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"APS-<>;<>;<>;mid=<>;ALSOS;LOTH=<>,<>,<>,<>,<>;BATP=<>;TIME=<>;","HasTemplateGlobal":false,"ResponseTemplate":"ACK-MSG;<>;OK;","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^APS-[^;]*;[^;;]*;[^;;]*;mid=[^;;]*;ALSOS;LOTH=[^,;]*,[^,,]*,[^,,]*,[^,,]*,[^;,]*;BATP=[^;;]*;TIME=[^;;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7592,"Code":"CYC","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"APS-<>;<>;<>;mid=<>;CYC;LOTH=<>,<>,<>,<>,<>;BATP=<>;TIME=<>;","HasTemplateGlobal":false,"ResponseTemplate":"ACK-MSG;<>;OK;","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^APS-[^;]*;[^;;]*;[^;;]*;mid=[^;;]*;CYC;LOTH=[^,;]*,[^,,]*,[^,,]*,[^,,]*,[^;,]*;BATP=[^;;]*;TIME=[^;;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]}],"Commands":[],"Operations":[{"Id":367,"Name":"apsapp_ops","Operation":"function execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\n // ADD THE OPS CODE HERE\n let tasks = []; // array of tasks to be executed\n var deviceParams = [];\n var configsToUpdate = [];\n AddValue(\"imei\", params.imei);\n // evaluate messageTypLocalCOde \n if (messageTypeLocalCode == \"COMM-REGISTER\") { // Create message\n let userId = params.userId;\n let phoneId = params.phoneId;\n let phoneNumber = params.phonenumber;\n let message = \"APS-001;\" + phoneId + \";mid=\" + params.count_number + \";SET_USERID=\" + userId + \";\";\n // sendMessageToLocalhost(message); \n tasks = [{\n \"name\": \"Create\" + phoneId,\n \"option\": \"sync\",\n \"type\": \"createDevice\",\n \"payload\": JSON.stringify({\n \"name\": \"APS\" + phoneId,\n \"imei\": phoneId,\n \"abortOnError\": false,\n \"init\": true,\n \"phoneNumber\": phoneNumber,\n // \"entity\":\"import_test\",\n }),\n \"order\": 1\n }, {\n \"name\": \"SetUserId\" + userId,\n \"option\": \"async\",\n \"type\": \"sendMessage\",\n \"payload\": JSON.stringify({\n \"message\": message\n }),\n \"order\": 2\n }]\n } else if (messageTypeLocalCode == \"COMM-SET_USERID\") { // Set Device ID message\n let userId = params.userId;\n AddValue(\"userId\", userId);\n AddConfigToUpdate(configIds.Config.UserId, userId);\n } else if (messageTypeLocalCode == \"COMM-IS_REGISTERED\") { // Get Device ID message\n // is the input deviceid the same as the one registered?\n let currentUserId = configs.Config.UserId;\n let newUserId = params.userId;\n AddValue(\"currentUserId\", currentUserId);\n AddValue(\"oldUserId\", configs.Config.UserIdOld);\n if (currentUserId !== newUserId) {\n AddConfigToUpdate(configIds.Config.UserId, newUserId);\n }\n }\n var msg = {\n 'values': deviceParams,\n };\n if (tasks.length > 0) {\n msg.tasks = tasks;\n }\n if (configsToUpdate.length > 0) {\n msg.configsToUpdate = configsToUpdate\n };\n // modify to return the object that contains your data\n console.log(msg);\n return msg;\n\n function AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n deviceParams.push(cvpair);\n }\n\n function AddConfigToUpdate(configName, newvalue) {\n if (newvalue !== undefined) { // don't add if newvalue is undefined\n var cvpair = {\n 'code': configName,\n 'value': newvalue,\n 'forced': true\n };\n configsToUpdate.push(cvpair);\n };\n }\n}\n// params is not defined locally -> export as module\nif (typeof(params) === 'undefined') {\n module.exports = {\n execute_ops\n }\n} else { // on server use local defined vars\n let return_values = execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\n // define global returns\n msg = return_values;\n}","Type":0,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":367,\"Name\":\"apsapp_ops\",\"Operation\":\"function execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\\n // ADD THE OPS CODE HERE\\n let tasks = []; // array of tasks to be executed\\n var deviceParams = [];\\n var configsToUpdate = [];\\n AddValue(\\\"imei\\\", params.imei);\\n // evaluate messageTypLocalCOde \\n if (messageTypeLocalCode == \\\"COMM-REGISTER\\\") { // Create message\\n let userId = params.userId;\\n let phoneId = params.phoneId;\\n let phoneNumber = params.phonenumber;\\n let message = \\\"APS-001;\\\" + phoneId + \\\";mid=\\\" + params.count_number + \\\";SET_USERID=\\\" + userId + \\\";\\\";\\n // sendMessageToLocalhost(message); \\n tasks = [{\\n \\\"name\\\": \\\"Create\\\" + phoneId,\\n \\\"option\\\": \\\"sync\\\",\\n \\\"type\\\": \\\"createDevice\\\",\\n \\\"payload\\\": JSON.stringify({\\n \\\"name\\\": \\\"APS\\\" + phoneId,\\n \\\"imei\\\": phoneId,\\n \\\"abortOnError\\\": false,\\n \\\"init\\\": true,\\n \\\"phoneNumber\\\": phoneNumber,\\n // \\\"entity\\\":\\\"import_test\\\",\\n }),\\n \\\"order\\\": 1\\n }, {\\n \\\"name\\\": \\\"SetUserId\\\" + userId,\\n \\\"option\\\": \\\"async\\\",\\n \\\"type\\\": \\\"sendMessage\\\",\\n \\\"payload\\\": JSON.stringify({\\n \\\"message\\\": message\\n }),\\n \\\"order\\\": 2\\n }]\\n } else if (messageTypeLocalCode == \\\"COMM-SET_USERID\\\") { // Set Device ID message\\n let userId = params.userId;\\n AddValue(\\\"userId\\\", userId);\\n AddConfigToUpdate(configIds.Config.UserId, userId);\\n } else if (messageTypeLocalCode == \\\"COMM-SET_SOSNUMBER\\\") { // Set SOS NUMBER message\\n let sosNumber = params.sosnumber;\\n AddValue(\\\"sosNumber\\\", sosNumber);\\n AddConfigToUpdate(configIds.AlertSettings.SOSNumber, sosNumber);\\n } else if (messageTypeLocalCode == \\\"COMM-IS_REGISTERED\\\") { // Get Device ID message\\n // is the input deviceid the same as the one registered?\\n let currentUserId = configs.Config.UserId;\\n let newUserId = params.userId;\\n AddValue(\\\"currentUserId\\\", currentUserId);\\n AddValue(\\\"oldUserId\\\", configs.Config.UserIdOld);\\n if (currentUserId !== newUserId) {\\n AddConfigToUpdate(configIds.Config.UserId, newUserId);\\n }\\n }\\n var msg = {\\n 'values': deviceParams,\\n };\\n if (tasks.length > 0) {\\n msg.tasks = tasks;\\n }\\n if (configsToUpdate.length > 0) {\\n msg.configsToUpdate = configsToUpdate\\n };\\n // modify to return the object that contains your data\\n console.log(msg);\\n return msg;\\n\\n function AddValue(p1, p2) {\\n var cvpair = {\\n code: p1,\\n value: p2\\n };\\n deviceParams.push(cvpair);\\n }\\n\\n function AddConfigToUpdate(configName, newvalue) {\\n if (newvalue !== undefined) { // don't add if newvalue is undefined\\n var cvpair = {\\n 'code': configName,\\n 'value': newvalue,\\n 'forced': true\\n };\\n configsToUpdate.push(cvpair);\\n };\\n }\\n}\\n// params is not defined locally -> export as module\\nif (typeof(params) === 'undefined') {\\n module.exports = {\\n execute_ops\\n }\\n} else { // on server use local defined vars\\n let return_values = execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\\n // define global returns\\n msg = return_values;\\n}\",\"Type\":0,\"ProtocolActionObjects\":[]}","Timestamp":1741187532}]}],"Groups":[{"Id":7041,"Parent":null,"Name":"Admin","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7043,"Parent":{"Id":7041,"Name":"Admin","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7043,"Name":"Config","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7310,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Config","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7310,"Parent":{"Id":7041,"Name":"Admin","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7043,"Name":"Config","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7310,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Alert Settings","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]}],"GroupParams":[{"Id":11877,"Group":{"Id":7043,"Name":"Config","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7041,"Name":"Admin","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7310,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"UserId","Json":"{\"name\":\"UserId\",\"default\":\"\",\"description\":\"The latest User ID using this device.\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":12270,"Group":{"Id":7310,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7041,"Name":"Admin","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7043,"Name":"Config","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"SOS Number","Json":"{\"name\":\"SOS Number\",\"default\":\"\",\"description\":\"SOS number\",\"type\":\"phone\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"The number called when the Alert button is pushed on the device (typically the ARC)\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":12270,\"Group\":{\"Id\":7310,\"Name\":\"Alert Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"SOS Number\",\"Json\":\"{\\\"name\\\":\\\"SOS Number\\\",\\\"default\\\":\\\"\\\",\\\"description\\\":\\\"SOS number\\\",\\\"type\\\":\\\"text\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":true,\\\"isHidden\\\":false,\\\"minLength\\\":null,\\\"maxLength\\\":null,\\\"helpText\\\":\\\"The number called when the Alert button is pushed on the device (typically the ARC)\\\",\\\"options\\\":[],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\"]}\",\"Default\":\"\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1741189055}],"Tags":[]}],"ProtocolChanges":[{"Version":"0.2","UserName":"IbrahimMeman","Resource":"Operation","Name":"apsapp_ops","Message":"(Update) (apsapp_ops) Added sos number","Timestamp":1741187532},{"Version":"0.2","UserName":"IbrahimMeman","Resource":"GroupParam","Name":"SOS Number","Message":"(Update) (SOS Number) Changed to read only text","Timestamp":1741189055},{"Version":"0.2","UserName":"IbrahimMeman","Resource":"MessageType","Name":"COMM-SET_SOSNUMBER","Message":"(Update) (COMM-SET_SOSNUMBER) updated template\n","Timestamp":1741272718},{"Version":"0.2","UserName":"Shadhees_Thinakaran","Resource":"Protocol","Name":null,"Message":"Set SOS Number added","Timestamp":1741327405}],"ProtocolActionObjects":[],"Tags":[{"Id":2156,"Name":"PermitDuplicates","BackendAction":"PermitReceiverDublicates","Value":"True"},{"Id":2157,"Name":"OneCommandSender","BackendAction":"OneCommandSender","Value":"True"}]} \ No newline at end of file