From 723f33289c54011776b107fc0fa177e390db0f99 Mon Sep 17 00:00:00 2001 From: Adrien van den Bossche <vandenbo@univ-tlse2.fr> Date: Tue, 23 Jun 2020 22:33:46 +0200 Subject: [PATCH] Add type 2 (ocally_referenced) decoder --- .../decode_locally_referenced_packet.html | 26 ++++++++++ .../decode_locally_referenced_packet.js | 52 +++++++++++++++++++ .../decode_universal_gnss_packet.html | 2 +- nodered/package.json | 3 +- 4 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 nodered/decode_locally_referenced_packet/decode_locally_referenced_packet.html create mode 100644 nodered/decode_locally_referenced_packet/decode_locally_referenced_packet.js diff --git a/nodered/decode_locally_referenced_packet/decode_locally_referenced_packet.html b/nodered/decode_locally_referenced_packet/decode_locally_referenced_packet.html new file mode 100644 index 0000000..313c074 --- /dev/null +++ b/nodered/decode_locally_referenced_packet/decode_locally_referenced_packet.html @@ -0,0 +1,26 @@ +<script type="text/javascript"> + RED.nodes.registerType('Decode LocRef',{ + category: 'locapack', + color: '#d06b5f', + defaults: { + name: {value:""} + }, + inputs:1, + outputs:1, + icon: "file.png", + label: function() { + return this.name||"Decode LocRef"; + } + }); +</script> + +<script type="text/html" data-template-name="Decode LocRef"> + <div class="form-row"> + <label for="node-input-name"><i class="icon-tag"></i> Name</label> + <input type="text" id="node-input-name" placeholder="Name"> + </div> +</script> + +<script type="text/html" data-help-name="Decode LocRef"> + <p>A node that decodes Locapack type 2 payloads (Locally Referenced)</p> +</script> diff --git a/nodered/decode_locally_referenced_packet/decode_locally_referenced_packet.js b/nodered/decode_locally_referenced_packet/decode_locally_referenced_packet.js new file mode 100644 index 0000000..15807e6 --- /dev/null +++ b/nodered/decode_locally_referenced_packet/decode_locally_referenced_packet.js @@ -0,0 +1,52 @@ +module.exports = function(RED) { + function DecodeLocallyReferencedPacketNode(config) { + RED.nodes.createNode(this,config); + var node = this; + node.on('input', function(msg) { + + var p = {}; + var buff = msg.payload.LocaPack.payload; + var len = 0; + + // Get Header Field (hdr) + var hdr = {}; + var hdr_raw = parseInt(buff[len]); + hdr.z_presence_flag = (hdr_raw & 0x80) ? true : false; + hdr.dop_presence_flag = (hdr_raw & 0x40) ? true : false; + hdr.frameofref_id_presence_flag = (hdr_raw & 0x20) ? true : false; + p.header = hdr; + len += 1; + + // Latitude + p.x = buff.readFloatLE(len); + len += 4; + + // Longitude + p.y = buff.readFloatLE(len); + len += 4; + + // If the message contains the z field + if (p.header.z_presence_flag ) { + p.z = buff.readFloatLE(len); + len += 4; + } + + // If the message contains the dop field + if (p.header.dop_presence_flag ) { + p.dop = buff.readFloatLE(len); + len += 4; + } + + // If the message contains the frameofref_id field + if (p.header.frameofref_id_presence_flag ) { + p.frameofref_id = 0; //buff.readBigInt64LE(len); + len += 8; + } + + msg.payload.LocaPack["locallyReferencedPacket"] = p; + + node.send(msg); + }); + } + RED.nodes.registerType("Decode LocRef",DecodeLocallyReferencedPacketNode); +} diff --git a/nodered/decode_universal_gnss_packet/decode_universal_gnss_packet.html b/nodered/decode_universal_gnss_packet/decode_universal_gnss_packet.html index 7a89676..df3912c 100644 --- a/nodered/decode_universal_gnss_packet/decode_universal_gnss_packet.html +++ b/nodered/decode_universal_gnss_packet/decode_universal_gnss_packet.html @@ -22,5 +22,5 @@ </script> <script type="text/html" data-help-name="Decode GNSS"> - <p>A simple node that converts the message payloads decode_universal_gnss_packet</p> + <p>A node that decodes Locapack type 1 payloads (Universal GNSS)</p> </script> diff --git a/nodered/package.json b/nodered/package.json index cbc9955..f9551b2 100644 --- a/nodered/package.json +++ b/nodered/package.json @@ -11,7 +11,8 @@ "node-red" : { "nodes": { "DecodeLocapackHeader": "decode_locapack_header/decode_locapack_header.js", - "DecodeUniversalGnssPacket": "decode_universal_gnss_packet/decode_universal_gnss_packet.js" + "DecodeUniversalGnssPacket": "decode_universal_gnss_packet/decode_universal_gnss_packet.js", + "DecodeLocallyReferencedPacket": "decode_locally_referenced_packet/decode_locally_referenced_packet.js" } } } -- GitLab