diff --git a/package-lock.json b/package-lock.json index c1b8ca3..f0db176 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.2.2", "license": "CC BY-SA 4.0", "dependencies": { - "@jwetzell/posistagenet": "1.1.0", + "@jwetzell/posistagenet": "2.1.1", "atem-connection": "3.5.0", "bonjour": "3.5.0", "electron-updater": "6.6.2", @@ -660,9 +660,10 @@ } }, "node_modules/@jwetzell/posistagenet": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jwetzell/posistagenet/-/posistagenet-1.1.0.tgz", - "integrity": "sha512-Bxg3NG9yeM6qLrIOE90+o3XZpvFW+5lxtHFJGVhvEPcD6T+3eIWKseS53Mrw8kerR/C4p57m+rwe9M1xfYAlEg==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@jwetzell/posistagenet/-/posistagenet-2.1.1.tgz", + "integrity": "sha512-KlRYFGuwiPJf07+Ys5qGxPJjdqMni0xDHfUojGbfCzxQ37OQ4UXKBjjFGhIACMTWuAyMks4lnZOrXeq6Y4HRhg==", + "license": "MIT" }, "node_modules/@malept/cross-spawn-promise": { "version": "2.0.0", @@ -7391,9 +7392,9 @@ } }, "@jwetzell/posistagenet": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jwetzell/posistagenet/-/posistagenet-1.1.0.tgz", - "integrity": "sha512-Bxg3NG9yeM6qLrIOE90+o3XZpvFW+5lxtHFJGVhvEPcD6T+3eIWKseS53Mrw8kerR/C4p57m+rwe9M1xfYAlEg==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@jwetzell/posistagenet/-/posistagenet-2.1.1.tgz", + "integrity": "sha512-KlRYFGuwiPJf07+Ys5qGxPJjdqMni0xDHfUojGbfCzxQ37OQ4UXKBjjFGhIACMTWuAyMks4lnZOrXeq6Y4HRhg==" }, "@malept/cross-spawn-promise": { "version": "2.0.0", diff --git a/package.json b/package.json index 986eb89..76e3a9c 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "prettier": "3.5.3" }, "dependencies": { - "@jwetzell/posistagenet": "1.1.0", + "@jwetzell/posistagenet": "2.1.1", "atem-connection": "3.5.0", "bonjour": "3.5.0", "electron-updater": "6.6.2", diff --git a/plugins/posistagenet/main.js b/plugins/posistagenet/main.js index f6acd2b..4f2a22f 100644 --- a/plugins/posistagenet/main.js +++ b/plugins/posistagenet/main.js @@ -43,15 +43,32 @@ exports.data = function data(_device, buf, info) { device.decoders[info.address].decode(buf); Object.keys(device.decoders).forEach((address) => { + console.log(device.decoders[address].trackers) device.data[address] = { trackers: device.decoders[address].trackers, system_name: device.decoders[address].system_name, - fields: device.decoders[address].getTrackerFields(), + fields: getTrackerFields(device.decoders[address].trackers), }; }); device.draw(); }; +function getTrackerFields(trackers) { + const keys = new Set( + Object.values(trackers) + .map((tracker) => Object.keys(tracker)) + .flat(1) + ); + + // NOTE(jwetzell): remove fields that definitely exist + keys.delete('id'); + keys.delete('has_subchunks'); + keys.delete('data_len'); + keys.delete('chunk_data'); + + return keys; +} + exports.heartbeat = function heartbeat(device) {}; exports.update = function update(_device, doc, updateType, updateData) {}; diff --git a/plugins/posistagenet/template.ejs b/plugins/posistagenet/template.ejs index a3ae454..cda0a2c 100644 --- a/plugins/posistagenet/template.ejs +++ b/plugins/posistagenet/template.ejs @@ -14,7 +14,7 @@ - <% if(instanceData.fields.has('tracker_name')) { %> + <% if(instanceData.fields.has('name')) { %> <% } %> @@ -30,7 +30,7 @@ <% } %> - <% if(instanceData.fields.has('status')) { %> + <% if(instanceData.fields.has('validity')) { %> <% } %> @@ -48,7 +48,7 @@ - <% if(instanceData.fields.has('tracker_name')) { %> + <% if(instanceData.fields.has('name')) { %> <% } %> @@ -70,7 +70,7 @@ <% } %> - <% if(instanceData.fields.has('status')) { %> + <% if(instanceData.fields.has('validity')) { %> <% } %> @@ -96,51 +96,51 @@ - <% if(instanceData.fields.has('tracker_name')) { %> - + <% if(instanceData.fields.has('name')) { %> + <% } %> <% if(instanceData.fields.has('pos')) { %> - - - + + + <% } %> <% if(instanceData.fields.has('speed')) { %> - - - + + + <% } %> <% if(instanceData.fields.has('ori')) { %> - - - + + + <% } %> - <% if(instanceData.fields.has('status')) { %> - + <% if(instanceData.fields.has('validity')) { %> + <% } %> <% if(instanceData.fields.has('accel')) { %> - - - + + + <% } %> <% if(instanceData.fields.has('trgtpos')) { %> - - - + + + <% } %> <% if(instanceData.fields.has('timestamp')) { %> - + <% } %>
ORI
IDNamezvalidity
<%= trackerId %><%= trackerData.tracker_name?.tracker_name%><%= trackerData.name%><%= trackerData.pos?.pos_x?.toFixed(2) %><%= trackerData.pos?.pos_y?.toFixed(2) %><%= trackerData.pos?.pos_z?.toFixed(2) %><%= trackerData.pos?.x?.toFixed(2) %><%= trackerData.pos?.y?.toFixed(2) %><%= trackerData.pos?.z?.toFixed(2) %><%= trackerData.speed?.speed_x?.toFixed(2) %><%= trackerData.speed?.speed_y?.toFixed(2) %><%= trackerData.speed?.speed_z?.toFixed(2) %><%= trackerData.speed?.x?.toFixed(2) %><%= trackerData.speed?.y?.toFixed(2) %><%= trackerData.speed?.z?.toFixed(2) %><%= trackerData.ori?.ori_x?.toFixed(2) %><%= trackerData.ori?.ori_y?.toFixed(2) %><%= trackerData.ori?.ori_z?.toFixed(2) %><%= trackerData.ori?.x?.toFixed(2) %><%= trackerData.ori?.y?.toFixed(2) %><%= trackerData.ori?.z?.toFixed(2) %><%= trackerData.status?.validity?.toFixed(2) %><%= trackerData.validity?.toFixed(2) %><%= trackerData.accel?.accel_x?.toFixed(2) %><%= trackerData.accel?.accel_y?.toFixed(2) %><%= trackerData.accel?.accel_z?.toFixed(2) %><%= trackerData.accel?.x?.toFixed(2) %><%= trackerData.accel?.y?.toFixed(2) %><%= trackerData.accel?.z?.toFixed(2) %><%= trackerData.trgtpos?.trgtpos_x?.toFixed(2) %><%= trackerData.trgtpos?.trgtpos_y?.toFixed(2) %><%= trackerData.trgtpos?.trgtpos_z?.toFixed(2) %><%= trackerData.trgtpos?.x?.toFixed(2) %><%= trackerData.trgtpos?.y?.toFixed(2) %><%= trackerData.trgtpos?.z?.toFixed(2) %><%= trackerData.timestamp?.tracker_timestamp %><%= trackerData.timestamp %>