remove binary-parsser lib dependency

This commit is contained in:
2023-09-14 19:47:16 -05:00
parent d443b313cf
commit 016239b3ad
32 changed files with 373 additions and 455 deletions
+14 -11
View File
@@ -1,3 +1,4 @@
// recreation of psn_client.cpp example from https://github.com/vyv/psn-cpp
const dgram = require('dgram');
const { Decoder } = require('..');
@@ -14,29 +15,29 @@ client.on('message', (buffer) => {
client.bind(56565, '0.0.0.0');
setInterval(() => {
if (decoder.info.system_name) {
console.log(`System Name: ${decoder.info.system_name}`);
if (decoder.system_name) {
console.log(`System Name: ${decoder.system_name}`);
}
if (Object.keys(decoder.info.trackers).length > 0) {
console.log(`Tracker Count: ${Object.keys(decoder.info.trackers).length}`);
if (Object.keys(decoder.trackers).length > 0) {
console.log(`Tracker Count: ${Object.keys(decoder.trackers).length}`);
}
Object.entries(decoder.data.trackers).forEach(([trackerId, tracker]) => {
Object.entries(decoder.trackers).forEach(([trackerId, tracker]) => {
console.log(
`Tracker - id: ${trackerId} | name: ${
decoder.info.trackers[trackerId]?.name ? decoder.info.trackers[trackerId]?.name : ''
decoder.trackers[trackerId]?.tracker_name ? decoder.trackers[trackerId]?.tracker_name : ''
}`
);
if (tracker.pos) {
console.log(`\tpos: ${tracker.pos.x}, ${tracker.pos.y}, ${tracker.pos.z}`);
console.log(`\tpos: ${tracker.pos.pos_x}, ${tracker.pos.pos_y}, ${tracker.pos.pos_z}`);
}
if (tracker.speed) {
console.log(`\tspeed: ${tracker.speed.x}, ${tracker.speed.y}, ${tracker.speed.z}`);
console.log(`\tspeed: ${tracker.speed.speed_x}, ${tracker.speed.speed_y}, ${tracker.speed.speed_z}`);
}
if (tracker.ori) {
console.log(`\tori: ${tracker.ori.x}, ${tracker.ori.y}, ${tracker.ori.z}`);
console.log(`\tori: ${tracker.ori.ori_x}, ${tracker.ori.ori_y}, ${tracker.ori.ori_z}`);
}
if (tracker.status) {
@@ -44,11 +45,13 @@ setInterval(() => {
}
if (tracker.accel) {
console.log(`\taccel: ${tracker.accel.x}, ${tracker.accel.y}, ${tracker.accel.z}`);
console.log(`\taccel: ${tracker.accel.accel_x}, ${tracker.accel.accel_y}, ${tracker.accel.accel_z}`);
}
if (tracker.trgtpos) {
console.log(`\ttrgtpos: ${tracker.trgtpos.x}, ${tracker.trgtpos.y}, ${tracker.trgtpos.z}`);
console.log(
`\ttrgtpos: ${tracker.trgtpos.trgtpos_x}, ${tracker.trgtpos.trgtpos_y}, ${tracker.trgtpos.trgtpos_z}`
);
}
if (tracker.timestamp) {
+18 -8
View File
@@ -1,8 +1,10 @@
// recreation of psn_server.cpp example from https://github.com/vyv/psn-cpp
const dgram = require('dgram');
const { Encoder, Tracker } = require('..');
const { Encoder, Tracker, Decoder } = require('..');
const client = dgram.createSocket('udp4');
const encoder = new Encoder('Test PSN Server', 2, 0);
const decoder = new Decoder();
const trackers = [];
@@ -22,7 +24,7 @@ const distFromSun = [0, 0.58, 1.08, 1.5, 2.28, 7.78, 14.29, 28.71, 45.04, 59.13]
let timestamp = 0;
setInterval(() => {
for (let index = 0; index < trackers.length; index += 1) {
orbits.forEach((orbit, index) => {
const a = 1.0 / orbits[index];
const b = distFromSun[index];
const x = timestamp;
@@ -36,19 +38,27 @@ setInterval(() => {
trackers[index].setTrgtPos(3, 14, 16);
trackers[index].setStatus(index / 10.0);
trackers[index].setTimestamp(timestamp);
}
});
const dataPackets = encoder.getDataPackets(timestamp, trackers);
dataPackets.forEach((packet) => {
dataPackets.forEach((packet, index) => {
const decodedPacket = decoder.decode(packet);
console.log(
`Sending PSN_DATA_PACKET : Frame Id = ${decodedPacket.packet_header.frame_id} , Packet Count = ${index + 1}`
);
client.send(packet, 56565, '236.10.10.10');
});
timestamp += 1;
}, 20);
}, 5);
setInterval(() => {
const infoPackets = encoder.getInfoPackets(timestamp, trackers);
infoPackets.forEach((packet) => {
infoPackets.forEach((packet, index) => {
const decodedPacket = decoder.decode(packet);
console.log(
`Sending PSN_INFO_PACKET : Frame Id = ${decodedPacket.packet_header.frame_id} , Packet Count = ${index + 1}`
);
client.send(packet, 56565, '236.10.10.10');
});
}, 1000);
}, 500);