diff --git a/examples/psn_client.js b/examples/psn_client.js new file mode 100644 index 0000000..09b118e --- /dev/null +++ b/examples/psn_client.js @@ -0,0 +1,58 @@ +const dgram = require('dgram'); +const { Decoder } = require('..'); + +const client = dgram.createSocket('udp4'); +const decoder = new Decoder(); + +client.on('listening', () => { + client.addMembership('236.10.10.10'); +}); + +client.on('message', (buffer) => { + decoder.decode(buffer); +}); +client.bind(56565, '0.0.0.0'); + +setInterval(() => { + if (decoder.info.system_name) { + console.log(`System Name: ${decoder.info.system_name}`); + } + if (Object.keys(decoder.info.trackers).length > 0) { + console.log(`Tracker Count: ${Object.keys(decoder.info.trackers).length}`); + } + + Object.entries(decoder.data.trackers).forEach(([trackerId, tracker]) => { + console.log( + `Tracker - id: ${trackerId} | name: ${ + decoder.info.trackers[trackerId]?.name ? decoder.info.trackers[trackerId]?.name : '' + }` + ); + if (tracker.pos) { + console.log(`\tpos: ${tracker.pos.x}, ${tracker.pos.y}, ${tracker.pos.z}`); + } + + if (tracker.speed) { + console.log(`\tspeed: ${tracker.speed.x}, ${tracker.speed.y}, ${tracker.speed.z}`); + } + + if (tracker.ori) { + console.log(`\tori: ${tracker.ori.x}, ${tracker.ori.y}, ${tracker.ori.z}`); + } + + if (tracker.status) { + console.log(`\tstatus: ${tracker.status.validity}`); + } + + if (tracker.accel) { + console.log(`\taccel: ${tracker.accel.x}, ${tracker.accel.y}, ${tracker.accel.z}`); + } + + if (tracker.trgtpos) { + console.log(`\ttrgtpos: ${tracker.trgtpos.x}, ${tracker.trgtpos.y}, ${tracker.trgtpos.z}`); + } + + if (tracker.timestamp) { + console.log(`\ttimestamp: ${tracker.timestamp.tracker_timestamp}`); + } + }); +}, 1000); diff --git a/src/examples/psn_server.js b/examples/psn_server.js similarity index 95% rename from src/examples/psn_server.js rename to examples/psn_server.js index f2d09d0..9d72066 100644 --- a/src/examples/psn_server.js +++ b/examples/psn_server.js @@ -1,6 +1,5 @@ const dgram = require('dgram'); -const Encoder = require('../../encoder'); -const Tracker = require('../models/tracker'); +const { Encoder, Tracker } = require('..'); const client = dgram.createSocket('udp4'); const encoder = new Encoder('Test PSN Server', 2, 0); diff --git a/src/examples/psn_client.js b/src/examples/psn_client.js deleted file mode 100644 index a6a41d0..0000000 --- a/src/examples/psn_client.js +++ /dev/null @@ -1,58 +0,0 @@ -const dgram = require('dgram'); -const Decoder = require('../../decoder'); - -const client = dgram.createSocket('udp4'); -const decoder = new Decoder(); - -client.on('listening', () => { - client.addMembership('236.10.10.10'); -}); - -client.on('message', (buffer) => { - decoder.decode(buffer); -}); -client.bind(56565, '0.0.0.0'); - -setInterval(() => { - if (decoder.info.system_name) { - console.log(`System Name: ${decoder.info.system_name}`); - } - if (Object.keys(decoder.info.trackers).length > 0) { - console.log(`Tracker Count: ${Object.keys(decoder.info.trackers).length}`); - } - - Object.entries(decoder.data.trackers).forEach(([trackerId, tracker]) => { - console.log( - `Tracker - id: ${trackerId} | name: ${ - decoder.info.trackers[trackerId]?.name ? decoder.info.trackers[trackerId]?.name : '' - }` - ); - if (tracker.pos_x !== undefined && tracker.pos_y !== undefined && tracker.pos_z !== undefined) { - console.log(`\tpos: ${tracker.pos_x}, ${tracker.pos_y}, ${tracker.pos_z}`); - } - - if (tracker.speed_x !== undefined && tracker.speed_y !== undefined && tracker.speed_z !== undefined) { - console.log(`\tspeed: ${tracker.speed_x}, ${tracker.speed_y}, ${tracker.speed_z}`); - } - - if (tracker.ori_x !== undefined && tracker.ori_y !== undefined && tracker.ori_z !== undefined) { - console.log(`\tori: ${tracker.ori_x}, ${tracker.ori_y}, ${tracker.ori_z}`); - } - - if (tracker.validity !== undefined) { - console.log(`\tstatus: ${tracker.validity}`); - } - - if (tracker.accel_x !== undefined && tracker.accel_y !== undefined && tracker.accel_z !== undefined) { - console.log(`\taccel: ${tracker.accel_x}, ${tracker.accel_y}, ${tracker.accel_z}`); - } - - if (tracker.trgtpos_x !== undefined && tracker.trgtpos_y !== undefined && tracker.trgtpos_z !== undefined) { - console.log(`\ttrgtpos: ${tracker.trgtpos_x}, ${tracker.trgtpos_y}, ${tracker.trgtpos_z}`); - } - - if (tracker.tracker_timestamp !== undefined) { - console.log(`\ttimestamp: ${tracker.tracker_timestamp}`); - } - }); -}, 1000);