mirror of
https://github.com/jwetzell/psn-js.git
synced 2026-08-19 06:04:11 +00:00
format
This commit is contained in:
+9
-6
@@ -3,14 +3,17 @@ const { Decoder } = require('../dist/cjs');
|
||||
const decoder = new Decoder();
|
||||
|
||||
const infoPacketBuffer = new Uint8Array([
|
||||
0x56, 0x67, 0x34, 0x80, 0x00, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x01,
|
||||
0x01, 0x01, 0x00, 0x0b, 0x00, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x02, 0x00, 0x11,
|
||||
0x80, 0x01, 0x00, 0x0d, 0x80, 0x00, 0x00, 0x09, 0x00, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x31,
|
||||
0x56, 0x67, 0x34, 0x80, 0x00, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x02, 0x03, 0x01, 0x01, 0x01, 0x00, 0x0b, 0x00, 0x53, 0x65,
|
||||
0x72, 0x76, 0x65, 0x72, 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x02, 0x00, 0x11, 0x80,
|
||||
0x01, 0x00, 0x0d, 0x80, 0x00, 0x00, 0x09, 0x00, 0x54, 0x72, 0x61, 0x63, 0x6b,
|
||||
0x65, 0x72, 0x20, 0x31,
|
||||
]);
|
||||
const dataPacketBuffer = new Uint8Array([
|
||||
0x55, 0x67, 0x28, 0x80, 0x00, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x01,
|
||||
0x01, 0x01, 0x00, 0x14, 0x80, 0x01, 0x00, 0x10, 0x80, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00,
|
||||
0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f,
|
||||
0x55, 0x67, 0x28, 0x80, 0x00, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x02, 0x03, 0x01, 0x01, 0x01, 0x00, 0x14, 0x80, 0x01, 0x00,
|
||||
0x10, 0x80, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80,
|
||||
0x3f, 0x00, 0x00, 0x80, 0x3f,
|
||||
]);
|
||||
|
||||
decoder.decode(infoPacketBuffer);
|
||||
|
||||
+4
-4
@@ -16,11 +16,11 @@ const dataPackets = encoder.getDataPackets(timestamp, trackers);
|
||||
const infoPackets = encoder.getInfoPackets(timestamp, trackers);
|
||||
|
||||
dataPackets.forEach((dataPacket) => {
|
||||
console.log('send packet somehow');
|
||||
console.log(dataPacket);
|
||||
console.log('send packet somehow');
|
||||
console.log(dataPacket);
|
||||
});
|
||||
|
||||
infoPackets.forEach((infoPacket) => {
|
||||
console.log('send packet somehow');
|
||||
console.log(infoPacket);
|
||||
console.log('send packet somehow');
|
||||
console.log(infoPacket);
|
||||
});
|
||||
|
||||
+43
-33
@@ -6,51 +6,61 @@ const client = dgram.createSocket('udp4');
|
||||
const decoder = new Decoder();
|
||||
|
||||
client.on('listening', () => {
|
||||
client.addMembership('236.10.10.10');
|
||||
client.addMembership('236.10.10.10');
|
||||
});
|
||||
|
||||
client.on('message', (buffer) => {
|
||||
decoder.decode(buffer);
|
||||
decoder.decode(buffer);
|
||||
});
|
||||
client.bind(56565, '0.0.0.0');
|
||||
|
||||
setInterval(() => {
|
||||
if (decoder.system_name) {
|
||||
console.log(`System Name: ${decoder.system_name}`);
|
||||
}
|
||||
if (Object.keys(decoder.trackers).length > 0) {
|
||||
console.log(`Tracker Count: ${Object.keys(decoder.trackers).length}`);
|
||||
}
|
||||
if (decoder.system_name) {
|
||||
console.log(`System Name: ${decoder.system_name}`);
|
||||
}
|
||||
if (Object.keys(decoder.trackers).length > 0) {
|
||||
console.log(`Tracker Count: ${Object.keys(decoder.trackers).length}`);
|
||||
}
|
||||
|
||||
Object.entries(decoder.trackers).forEach(([trackerId, tracker]) => {
|
||||
const trackerName = decoder.trackers[trackerId]?.name;
|
||||
console.log(`Tracker - id: ${trackerId} | name: ${trackerName || ''}`);
|
||||
if (tracker.pos) {
|
||||
console.log(`\tpos: ${tracker.pos.x}, ${tracker.pos.x}, ${tracker.pos.x}`);
|
||||
}
|
||||
Object.entries(decoder.trackers).forEach(([trackerId, tracker]) => {
|
||||
const trackerName = decoder.trackers[trackerId]?.name;
|
||||
console.log(`Tracker - id: ${trackerId} | name: ${trackerName || ''}`);
|
||||
if (tracker.pos) {
|
||||
console.log(
|
||||
`\tpos: ${tracker.pos.x}, ${tracker.pos.x}, ${tracker.pos.x}`
|
||||
);
|
||||
}
|
||||
|
||||
if (tracker.speed) {
|
||||
console.log(`\tspeed: ${tracker.speed.x}, ${tracker.speed.y}, ${tracker.speed.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.ori) {
|
||||
console.log(
|
||||
`\tori: ${tracker.ori.x}, ${tracker.ori.y}, ${tracker.ori.z}`
|
||||
);
|
||||
}
|
||||
|
||||
if (tracker.status) {
|
||||
console.log(`\tstatus: ${tracker.status.validity}`);
|
||||
}
|
||||
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.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.trgtpos) {
|
||||
console.log(
|
||||
`\ttrgtpos: ${tracker.trgtpos.x}, ${tracker.trgtpos.y}, ${tracker.trgtpos.z}`
|
||||
);
|
||||
}
|
||||
|
||||
if (tracker.timestamp) {
|
||||
console.log(`\ttimestamp: ${tracker.timestamp}`);
|
||||
}
|
||||
});
|
||||
if (tracker.timestamp) {
|
||||
console.log(`\ttimestamp: ${tracker.timestamp}`);
|
||||
}
|
||||
});
|
||||
}, 1000);
|
||||
|
||||
+28
-26
@@ -19,38 +19,40 @@ trackers.push(new Tracker(8, 'Neptune'));
|
||||
trackers.push(new Tracker(9, 'Pluto'));
|
||||
|
||||
const orbits = [1.0, 88.0, 224.7, 365.2, 687, 4332, 10760, 30700, 60200, 90600];
|
||||
const distFromSun = [0, 0.58, 1.08, 1.5, 2.28, 7.78, 14.29, 28.71, 45.04, 59.13];
|
||||
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(() => {
|
||||
orbits.forEach((orbit, index) => {
|
||||
const a = 1.0 / orbits[index];
|
||||
const b = distFromSun[index];
|
||||
const x = timestamp;
|
||||
const cb = Math.cos(a * x) * b;
|
||||
const sb = Math.sin(a * x) * b;
|
||||
orbits.forEach((orbit, index) => {
|
||||
const a = 1.0 / orbits[index];
|
||||
const b = distFromSun[index];
|
||||
const x = timestamp;
|
||||
const cb = Math.cos(a * x) * b;
|
||||
const sb = Math.sin(a * x) * b;
|
||||
|
||||
trackers[index].setPos(sb, 0, cb);
|
||||
trackers[index].setSpeed(a * cb, 0, -a * sb);
|
||||
trackers[index].setOri(0, x / 1000.0, 0);
|
||||
trackers[index].setAccel(-a * a * sb, 0, -a * a * cb);
|
||||
trackers[index].setTrgtPos(3, 14, 16);
|
||||
trackers[index].setStatus(index / 10.0);
|
||||
trackers[index].setTimestamp(timestamp);
|
||||
});
|
||||
trackers[index].setPos(sb, 0, cb);
|
||||
trackers[index].setSpeed(a * cb, 0, -a * sb);
|
||||
trackers[index].setOri(0, x / 1000.0, 0);
|
||||
trackers[index].setAccel(-a * a * sb, 0, -a * a * cb);
|
||||
trackers[index].setTrgtPos(3, 14, 16);
|
||||
trackers[index].setStatus(index / 10.0);
|
||||
trackers[index].setTimestamp(timestamp);
|
||||
});
|
||||
|
||||
console.log(`Sending Data Packets`);
|
||||
const dataPackets = encoder.getDataPackets(timestamp, trackers);
|
||||
dataPackets.forEach((packet) => {
|
||||
client.send(packet, 56565, '236.10.10.10');
|
||||
});
|
||||
timestamp += 1;
|
||||
console.log(`Sending Data Packets`);
|
||||
const dataPackets = encoder.getDataPackets(timestamp, trackers);
|
||||
dataPackets.forEach((packet) => {
|
||||
client.send(packet, 56565, '236.10.10.10');
|
||||
});
|
||||
timestamp += 1;
|
||||
}, 5);
|
||||
|
||||
setInterval(() => {
|
||||
console.log(`Sending Info Packets`);
|
||||
const infoPackets = encoder.getInfoPackets(timestamp, trackers);
|
||||
infoPackets.forEach((packet) => {
|
||||
client.send(packet, 56565, '236.10.10.10');
|
||||
});
|
||||
console.log(`Sending Info Packets`);
|
||||
const infoPackets = encoder.getInfoPackets(timestamp, trackers);
|
||||
infoPackets.forEach((packet) => {
|
||||
client.send(packet, 56565, '236.10.10.10');
|
||||
});
|
||||
}, 500);
|
||||
|
||||
Reference in New Issue
Block a user