From cfd8477d1b2cb3e1eb7dc1f084a20e2005634e52 Mon Sep 17 00:00:00 2001 From: kd9lsv Date: Mon, 16 Jan 2023 20:50:36 -0600 Subject: [PATCH] v1.2.18 Fix RadioSport.live controls --- flow.json | 332 +++++++++++++++++++++++++-------------------------- package.json | 2 +- 2 files changed, 161 insertions(+), 173 deletions(-) diff --git a/flow.json b/flow.json index a6ba749..43e6a49 100644 --- a/flow.json +++ b/flow.json @@ -396,9 +396,7 @@ "ab98427.85cd3c" ], "x": 474, - "y": 159, - "w": 272, - "h": 522 + "y": 159 }, { "id": "52886121c9629e0b", @@ -422,9 +420,7 @@ "66a43145427ca537" ], "x": 774, - "y": 159, - "w": 252, - "h": 482 + "y": 159 }, { "id": "bebfe5d7e4f0feb0", @@ -448,9 +444,7 @@ "de48727be275102f" ], "x": 1034, - "y": 159, - "w": 315, - "h": 482 + "y": 159 }, { "id": "c6e09ffb3c5a1ce6", @@ -476,9 +470,7 @@ "e1278f8b2f6fee61" ], "x": 214, - "y": 159, - "w": 242, - "h": 522 + "y": 159 }, { "id": "0e3bf66f6ee6d572", @@ -493,9 +485,7 @@ "654b552f9e64203e" ], "x": 214, - "y": 19, - "w": 252, - "h": 122 + "y": 19 }, { "id": "b90980234a451f8d", @@ -510,9 +500,7 @@ "3047a9ba16e10212" ], "x": 1194, - "y": 39, - "w": 272, - "h": 82 + "y": 39 }, { "id": "23eb39063da69706", @@ -536,9 +524,7 @@ "c2d7711a7d230637" ], "x": 1374, - "y": 159, - "w": 252, - "h": 482 + "y": 159 }, { "id": "022672368830e427", @@ -562,9 +548,7 @@ "c4561e5c31134c5d" ], "x": 1654, - "y": 159, - "w": 252, - "h": 482 + "y": 159 }, { "id": "7a5512b5a3f6e8ba", @@ -601,9 +585,7 @@ "4b7abadd74993948" ], "x": -6, - "y": 679, - "w": 2072, - "h": 302 + "y": 679 }, { "id": "28877ac600fea8b9", @@ -628,9 +610,7 @@ "324101084f63a83e" ], "x": 224, - "y": 1019, - "w": 632, - "h": 262 + "y": 1019 }, { "id": "c6a5789101548ba9", @@ -645,9 +625,7 @@ "4e62658f095c2863" ], "x": 1394, - "y": 1099, - "w": 252, - "h": 122 + "y": 1099 }, { "id": "18a3020b4a12ae60", @@ -671,9 +649,7 @@ "89b2058720d8fb99" ], "x": 1954, - "y": 159, - "w": 282, - "h": 482 + "y": 159 }, { "id": "4f4b9f0c82968b60", @@ -721,9 +697,7 @@ "fa0188b199a945d9" ], "x": 414, - "y": 879, - "w": 1852, - "h": 462 + "y": 879 }, { "id": "81692a3cb68d6cde", @@ -756,9 +730,7 @@ "df61b921bf703bd8" ], "x": 14, - "y": 1485.5, - "w": 2458, - "h": 969 + "y": 1485.5 }, { "id": "d48758cdf0c8991d", @@ -818,9 +790,7 @@ "b5a72874a2f95ce4" ], "x": 274, - "y": 19, - "w": 2232, - "h": 802 + "y": 19 }, { "id": "f830dd821e0240f4", @@ -836,9 +806,7 @@ "925cebb6bacad025" ], "x": 914, - "y": 999, - "w": 632, - "h": 82 + "y": 999 }, { "id": "f01baabf4527b6e5", @@ -885,9 +853,7 @@ "4ba15e040d99ef6b" ], "x": 134, - "y": 39, - "w": 1832, - "h": 442 + "y": 39 }, { "id": "6c1673638929b26d", @@ -926,9 +892,7 @@ "5c60f3c47791458b" ], "x": 94, - "y": 659, - "w": 1792, - "h": 322 + "y": 659 }, { "id": "26cf0678322d1bb6", @@ -990,9 +954,7 @@ "8834c50bc7d9a366" ], "x": 2314, - "y": 819, - "w": 1912, - "h": 622 + "y": 819 }, { "id": "b5a72874a2f95ce4", @@ -1019,9 +981,7 @@ "ae7413cce68dfffa" ], "x": 914, - "y": 79, - "w": 1032, - "h": 162 + "y": 79 }, { "id": "94f44b7ea0e29d1d", @@ -1058,9 +1018,7 @@ "27f4e52f97117294" ], "x": 1074, - "y": 1979, - "w": 1272, - "h": 449.5 + "y": 1979 }, { "id": "a9afc3cb2db49407", @@ -1099,9 +1057,7 @@ "0baeb2e7ae556661" ], "x": 1014, - "y": 1511.5, - "w": 1432, - "h": 449.5 + "y": 1511.5 }, { "id": "b8ba38b3.abfb98", @@ -29138,16 +29094,16 @@ "width": 6, "height": 1, "passthru": false, - "decouple": "false", + "decouple": "true", "topic": "topic", "topicType": "msg", "style": "", - "onvalue": "true", - "onvalueType": "bool", + "onvalue": "open", + "onvalueType": "str", "onicon": "", "oncolor": "", - "offvalue": "false", - "offvalueType": "bool", + "offvalue": "close", + "offvalueType": "str", "officon": "", "offcolor": "", "animate": false, @@ -29166,7 +29122,7 @@ "type": "function", "z": "204548a488401a1b", "name": "Store Live Data", - "func": "livedata = msg.payload;\n\nglobal.set('livedata',livedata);\n\nreturn msg;", + "func": "let livedata = msg.payload;\n\nglobal.set('livedata',livedata);\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", @@ -29176,7 +29132,8 @@ "y": 2880, "wires": [ [ - "dc4625ed1bfbf5df" + "dc4625ed1bfbf5df", + "18094b3bc3019c07" ] ] }, @@ -29303,7 +29260,7 @@ "type": "function", "z": "204548a488401a1b", "name": "Store Power", - "func": "power = msg.payload;\n\nglobal.set('power',power);\n\nreturn msg;", + "func": "let power = msg.payload;\n\nglobal.set('power',power);\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", @@ -29322,7 +29279,7 @@ "type": "function", "z": "204548a488401a1b", "name": "Store Class", - "func": "opclass = msg.payload;\n\nglobal.set('class',opclass);\n\nreturn msg;", + "func": "let opclass = msg.payload;\n\nglobal.set('class',opclass);\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", @@ -29379,7 +29336,7 @@ "type": "function", "z": "204548a488401a1b", "name": "Get Status", - "func": "msg.payload = global.get('livedata')\n\nif (msg.payload == undefined)\n{\n msg.payload = \"true\";\n return msg;\n}\n\nreturn msg;", + "func": "msg.payload = global.get('livedata')\n\nif (msg.payload == undefined)\n{\n msg.payload = \"open\";\n return msg;\n}\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", @@ -30934,6 +30891,19 @@ "wires": [], "l": true }, + { + "id": "18094b3bc3019c07", + "type": "link out", + "z": "204548a488401a1b", + "name": "RadioSport Activity Out", + "mode": "link", + "links": [ + "47299336251602a0" + ], + "x": 815, + "y": 2860, + "wires": [] + }, { "id": "b8502660ecb5eb37", "type": "inject", @@ -35938,7 +35908,9 @@ "x": 1190, "y": 780, "wires": [ - [], + [ + "ec8e410366dee543" + ], [], [ "fc518098dbdbbfed" @@ -36271,9 +36243,7 @@ "type": "link in", "z": "3e52b5d54104d7f0", "name": "Reboot", - "links": [ - "bb45101d24175f1c" - ], + "links": [], "x": 390, "y": 940, "wires": [ @@ -36322,10 +36292,10 @@ "id": "bb45101d24175f1c", "type": "link out", "z": "3e52b5d54104d7f0", - "name": "Reboot Upgrade Out", + "name": "Restart Upgrade Out", "mode": "link", "links": [ - "94c74a1f43913a90" + "25d3766924264ec5" ], "x": 1445, "y": 780, @@ -36393,7 +36363,8 @@ "z": "3e52b5d54104d7f0", "name": "Restart", "links": [ - "35db8dcf682bbab1" + "35db8dcf682bbab1", + "bb45101d24175f1c" ], "x": 370, "y": 1100, @@ -36472,6 +36443,23 @@ ] ] }, + { + "id": "ec8e410366dee543", + "type": "debug", + "z": "3e52b5d54104d7f0", + "name": "debug 7", + "active": true, + "tosidebar": true, + "console": true, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1350, + "y": 720, + "wires": [] + }, { "id": "bb1f3c069392c7e7", "type": "ui_template", @@ -39380,7 +39368,7 @@ "type": "function", "z": "3968f5792af364de", "name": "radiosport.live score data", - "func": "\n// This node receives the score packet from N1MM and then pulls out the following items\n// Total # of QSOs\n// Total # of Mults\n// Total # of Points\n// The function then that data plus other data that is calculated in SQL commands and sends that data out in JSON format.\n\n// Total # of QSOs\nlet arraylength = msg.payload.dynamicresults.breakdown[0].qso.length\ntotalnoqsos = 0;\n\nfor (let i=0; i < msg.payload.dynamicresults.breakdown[0].qso.length; i++)\n{\n \n if (msg.payload.dynamicresults.breakdown[0].qso[i].$.band == \"total\" && msg.payload.dynamicresults.breakdown[0].qso[i].$.mode == \"ALL\")\n {\n totalnoqsos = parseInt(msg.payload.dynamicresults.breakdown[0].qso[i]._);\n flow.set('totalnoqsos',totalnoqsos)\n \n }\n \n}\n\n\n//Total # of Mults\nif (msg.payload.dynamicresults.breakdown[0].mult == undefined)\n{\n flow.set('totalmults',0)\n}\n\narraylength = msg.payload.dynamicresults.breakdown[0].mult.length\nlet totalmults = 0;\n\nfor (let i=0; i < msg.payload.dynamicresults.breakdown[0].mult.length; i++)\n{\n \n if (msg.payload.dynamicresults.breakdown[0].mult[i].$.band == \"total\" && msg.payload.dynamicresults.breakdown[0].mult[i].$.mode == \"ALL\")\n {\n totalmults = parseInt(msg.payload.dynamicresults.breakdown[0].mult[i]._)\n// totalmults = totalmults + total;\n break;\n }\n \n}\nflow.set('totalmults',totalmults);\n\n\n//Total # of Points\nif (msg.payload.dynamicresults.score == \"0\")\n{\n flow.set('totalpoints',0)\n}\n\narraylength = msg.payload.dynamicresults.breakdown[0].point.length\nlet totalpoints = 0;\n\nfor (let i=0; i < msg.payload.dynamicresults.breakdown[0].point.length; i++)\n{\n \n if (msg.payload.dynamicresults.breakdown[0].point[i].$.band == \"total\" && msg.payload.dynamicresults.breakdown[0].point[i].$.mode == \"ALL\")\n {\n totalpoints = parseInt(msg.payload.dynamicresults.breakdown[0].point[i]._);\n flow.set('totalpoints',totalpoints);\n \n }\n \n}\n\n\nlet currentQrate = global.get(\"#currentQrate\");\n\n\n\nmsg.payload = {\n \"type\":\"score\",\n \"contest\":msg.payload.dynamicresults.contest[0],\n \"call\":msg.payload.dynamicresults.call[0],\n \"power\":msg.payload.dynamicresults.class[0].$.power,\n \"assisted\":msg.payload.dynamicresults.class[0].$.assisted,\n \"transmitter\":msg.payload.dynamicresults.class[0].$.transmitter,\n \"ops\":msg.payload.dynamicresults.class[0].$.ops,\n \"bands\":msg.payload.dynamicresults.class[0].$.bands,\n \"mode\":msg.payload.dynamicresults.class[0].$.mode,\n \"totalnoqsos\":totalnoqsos, \n \"totalmults\":totalmults, \n \"totalpoints\":totalpoints,\n \"currentQrate\":currentQrate,\n \"timestamp\":msg.payload.dynamicresults.timestamp[0]\n};\n\n\nreturn msg;", + "func": "\n// This node receives the score packet from N1MM and then pulls out the following items\n// Total # of QSOs\n// Total # of Mults\n// Total # of Points\n// The function then that data plus other data that is calculated in SQL commands and sends that data out in JSON format.\n\n// Total # of QSOs\nlet arraylength = msg.payload.dynamicresults.breakdown[0].qso.length\nlet totalnoqsos = 0;\n\nfor (let i=0; i < msg.payload.dynamicresults.breakdown[0].qso.length; i++)\n{\n \n if (msg.payload.dynamicresults.breakdown[0].qso[i].$.band == \"total\" && msg.payload.dynamicresults.breakdown[0].qso[i].$.mode == \"ALL\")\n {\n totalnoqsos = parseInt(msg.payload.dynamicresults.breakdown[0].qso[i]._);\n flow.set('totalnoqsos',totalnoqsos)\n \n }\n \n}\n\n\n//Total # of Mults\nif (msg.payload.dynamicresults.breakdown[0].mult == undefined)\n{\n flow.set('totalmults',0)\n}\n\narraylength = msg.payload.dynamicresults.breakdown[0].mult.length\nlet totalmults = 0;\n\nfor (let i=0; i < msg.payload.dynamicresults.breakdown[0].mult.length; i++)\n{\n \n if (msg.payload.dynamicresults.breakdown[0].mult[i].$.band == \"total\" && msg.payload.dynamicresults.breakdown[0].mult[i].$.mode == \"ALL\")\n {\n totalmults = parseInt(msg.payload.dynamicresults.breakdown[0].mult[i]._)\n// totalmults = totalmults + total;\n break;\n }\n \n}\nflow.set('totalmults',totalmults);\n\n\n//Total # of Points\nif (msg.payload.dynamicresults.score == \"0\")\n{\n flow.set('totalpoints',0)\n}\n\narraylength = msg.payload.dynamicresults.breakdown[0].point.length\nlet totalpoints = 0;\n\nfor (let i=0; i < msg.payload.dynamicresults.breakdown[0].point.length; i++)\n{\n \n if (msg.payload.dynamicresults.breakdown[0].point[i].$.band == \"total\" && msg.payload.dynamicresults.breakdown[0].point[i].$.mode == \"ALL\")\n {\n totalpoints = parseInt(msg.payload.dynamicresults.breakdown[0].point[i]._);\n flow.set('totalpoints',totalpoints);\n \n }\n \n}\n\n\nlet currentQrate = global.get(\"#currentQrate\");\n\nmsg.payload = {\n \"type\":\"score\",\n \"contest\":msg.payload.dynamicresults.contest[0],\n \"call\":msg.payload.dynamicresults.call[0],\n \"power\":msg.payload.dynamicresults.class[0].$.power,\n \"assisted\":msg.payload.dynamicresults.class[0].$.assisted,\n \"transmitter\":msg.payload.dynamicresults.class[0].$.transmitter,\n \"ops\":msg.payload.dynamicresults.class[0].$.ops,\n \"bands\":msg.payload.dynamicresults.class[0].$.bands,\n \"mode\":msg.payload.dynamicresults.class[0].$.mode,\n \"totalnoqsos\":totalnoqsos, \n \"totalmults\":totalmults, \n \"totalpoints\":totalpoints,\n \"currentQrate\":currentQrate,\n \"timestamp\":msg.payload.dynamicresults.timestamp[0]\n};\n\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", @@ -39390,8 +39378,8 @@ "y": 180, "wires": [ [ - "0cb5764a0d3bb049", - "56bdc7c920799869" + "56bdc7c920799869", + "8fef24f610992b8e" ] ] }, @@ -39403,11 +39391,11 @@ "property": "payload", "action": "", "pretty": false, - "x": 690, + "x": 790, "y": 180, "wires": [ [ - "8fef24f610992b8e" + "3b6d91307549713b" ] ] }, @@ -39506,40 +39494,6 @@ "y": 100, "wires": [] }, - { - "id": "ccf77a386d6afdb1", - "type": "debug", - "z": "3968f5792af364de", - "name": "", - "active": false, - "tosidebar": true, - "console": false, - "tostatus": false, - "complete": "true", - "targetType": "full", - "statusVal": "", - "statusType": "auto", - "x": 1030, - "y": 340, - "wires": [] - }, - { - "id": "bcb48af62a6314d3", - "type": "json", - "z": "3968f5792af364de", - "name": "", - "property": "payload", - "action": "", - "pretty": false, - "x": 850, - "y": 380, - "wires": [ - [ - "ccf77a386d6afdb1", - "7cc70ad33a74db3e" - ] - ] - }, { "id": "54931d388d71eb79", "type": "debug", @@ -39562,7 +39516,7 @@ "type": "function", "z": "3968f5792af364de", "name": "radiosport.live qso data", - "func": "\n\n\nmsg.original.type = \"qso\";\nmsg.original.homelat = [global.get(\"homelat\")];\nmsg.original.homelon = [global.get(\"homelon\")];\nmsg.original.qsolat = [msg.payload.lat];\nmsg.original.qsolon = [msg.payload.lon];\nmsg.original.distance_km = [msg.payload.km];\nmsg.original.distance_miles = [msg.payload.distance_miles];\n\nmsg.payload = msg.original;\n\nreturn msg;", + "func": "msg.original.type = \"qso\";\nmsg.original.homelat = [global.get(\"homelat\")];\nmsg.original.homelon = [global.get(\"homelon\")];\nmsg.original.qsolat = [msg.payload.lat];\nmsg.original.qsolon = [msg.payload.lon];\nmsg.original.distance_km = [msg.payload.km];\nmsg.original.distance_miles = [msg.payload.distance_miles];\n\nmsg.payload = msg.original;\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", @@ -39572,8 +39526,7 @@ "y": 380, "wires": [ [ - "54931d388d71eb79", - "bcb48af62a6314d3" + "54931d388d71eb79" ] ] }, @@ -39589,8 +39542,8 @@ "outport": "", "base64": false, "multicast": "false", - "x": 1240, - "y": 380, + "x": 1180, + "y": 420, "wires": [] }, { @@ -39650,8 +39603,8 @@ "y": 420, "wires": [ [ - "bcb48af62a6314d3", - "2f5cf65419073efa" + "2f5cf65419073efa", + "c737560149170975" ] ] }, @@ -39694,7 +39647,7 @@ "type": "function", "z": "3968f5792af364de", "name": "radiosport.live radio data", - "func": "msg.original = msg.payload;\n\ncontestcallsign = global.get(\"contestcallsign\");\n\nmsg.original.RadioInfo.contestcallsign = [contestcallsign];\nmsg.original.type = \"radio\"\n\nmsg.payload = msg.original;\n\nreturn msg;", + "func": "msg.original = msg.payload;\nlet contestcallsign = global.get(\"contestcallsign\");\nmsg.original.RadioInfo.contestcallsign = [contestcallsign];\nmsg.original.type = \"radio\"\nmsg.payload = msg.original;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", @@ -39730,41 +39683,7 @@ "y": 600, "wires": [ [ - "d3ebf7655158fdc9" - ] - ] - }, - { - "id": "46597bbb893f9a11", - "type": "debug", - "z": "3968f5792af364de", - "name": "", - "active": false, - "tosidebar": true, - "console": false, - "tostatus": false, - "complete": "true", - "targetType": "full", - "statusVal": "", - "statusType": "auto", - "x": 990, - "y": 520, - "wires": [] - }, - { - "id": "d3ebf7655158fdc9", - "type": "json", - "z": "3968f5792af364de", - "name": "", - "property": "payload", - "action": "", - "pretty": false, - "x": 850, - "y": 600, - "wires": [ - [ - "46597bbb893f9a11", - "34159e15a003b83e" + "5aea84fcddc0d0bc" ] ] }, @@ -39845,16 +39764,16 @@ "statusCmd": "status", "persist": true, "storeName": "memory", - "x": 830, + "x": 670, "y": 180, "wires": [ [ - "3b6d91307549713b" + "0cb5764a0d3bb049" ] ] }, { - "id": "7cc70ad33a74db3e", + "id": "c737560149170975", "type": "gate", "z": "3968f5792af364de", "name": "", @@ -39867,8 +39786,24 @@ "statusCmd": "status", "persist": true, "storeName": "memory", - "x": 1010, - "y": 380, + "x": 850, + "y": 420, + "wires": [ + [ + "2ee318b89d848ae7" + ] + ] + }, + { + "id": "2ee318b89d848ae7", + "type": "json", + "z": "3968f5792af364de", + "name": "", + "property": "payload", + "action": "", + "pretty": false, + "x": 970, + "y": 420, "wires": [ [ "508fa6db79205795" @@ -39876,7 +39811,7 @@ ] }, { - "id": "34159e15a003b83e", + "id": "5aea84fcddc0d0bc", "type": "gate", "z": "3968f5792af364de", "name": "", @@ -39889,7 +39824,23 @@ "statusCmd": "status", "persist": true, "storeName": "memory", - "x": 1010, + "x": 850, + "y": 600, + "wires": [ + [ + "29fe646b79271d41" + ] + ] + }, + { + "id": "29fe646b79271d41", + "type": "json", + "z": "3968f5792af364de", + "name": "", + "property": "payload", + "action": "", + "pretty": false, + "x": 970, "y": 600, "wires": [ [ @@ -39897,6 +39848,43 @@ ] ] }, + { + "id": "6aab2106bf8a4a6c", + "type": "function", + "z": "3968f5792af364de", + "name": "Control Flow", + "func": "let livedata = global.get(\"livedata\");\nmsg.payload = livedata;\nmsg.topic=\"control\";\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 470, + "y": 240, + "wires": [ + [ + "8fef24f610992b8e", + "c737560149170975", + "5aea84fcddc0d0bc" + ] + ] + }, + { + "id": "47299336251602a0", + "type": "link in", + "z": "3968f5792af364de", + "name": "RadioSport Activity in", + "links": [ + "18094b3bc3019c07" + ], + "x": 305, + "y": 240, + "wires": [ + [ + "6aab2106bf8a4a6c" + ] + ] + }, { "id": "5e4d47c711482436", "type": "debug", diff --git a/package.json b/package.json index 9d88624..ecce333 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "n1mm_dashboard", "description": "Dashboard for N1MM Contesting", - "version": "1.2.17", + "version": "1.2.18", "dependencies": { "node-red-contrib-hourglass": "1.5.0", "node-red-contrib-msg-speed": "2.1.0",