mirror of
https://github.com/jwetzell/psn-js.git
synced 2026-08-26 09:29:16 +00:00
layout tracker fields differently
This commit is contained in:
+9
-5
@@ -47,11 +47,15 @@ class Decoder {
|
|||||||
if (this.data.trackers[tracker.id] === undefined) {
|
if (this.data.trackers[tracker.id] === undefined) {
|
||||||
this.data.trackers[tracker.id] = {};
|
this.data.trackers[tracker.id] = {};
|
||||||
}
|
}
|
||||||
tracker.fields?.forEach((field) => {
|
this.data.trackers[tracker.id] = {
|
||||||
Object.entries(field).forEach(([key, value]) => {
|
pos: tracker.pos,
|
||||||
this.data.trackers[tracker.id][key] = value;
|
speed: tracker.speed,
|
||||||
});
|
ori: tracker.ori,
|
||||||
});
|
status: tracker.status,
|
||||||
|
accel: tracker.accel,
|
||||||
|
trgtpos: tracker.trgtpos,
|
||||||
|
timestamp: tracker.timestamp,
|
||||||
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -18,12 +18,12 @@ module.exports = new Parser()
|
|||||||
.choice('data', {
|
.choice('data', {
|
||||||
tag: 'id',
|
tag: 'id',
|
||||||
choices: {
|
choices: {
|
||||||
0x0000: new Parser().floatle('pos_x').floatle('pos_y').floatle('pos_z'),
|
0x0000: new Parser().floatle('x').floatle('y').floatle('z'),
|
||||||
0x0001: new Parser().floatle('speed_x').floatle('speed_y').floatle('speed_z'),
|
0x0001: new Parser().floatle('x').floatle('y').floatle('z'),
|
||||||
0x0002: new Parser().floatle('ori_x').floatle('ori_y').floatle('ori_z'),
|
0x0002: new Parser().floatle('x').floatle('y').floatle('z'),
|
||||||
0x0003: new Parser().floatle('validity'),
|
0x0003: new Parser().floatle('validity'),
|
||||||
0x0004: new Parser().floatle('accel_x').floatle('accel_y').floatle('accel_z'),
|
0x0004: new Parser().floatle('x').floatle('y').floatle('z'),
|
||||||
0x0005: new Parser().floatle('trgtpos_x').floatle('trgtpos_y').floatle('trgtpos_z'),
|
0x0005: new Parser().floatle('x').floatle('y').floatle('z'),
|
||||||
0x0006: new Parser().uint64le('tracker_timestamp'),
|
0x0006: new Parser().uint64le('tracker_timestamp'),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -35,9 +35,32 @@ class DataPacket {
|
|||||||
})
|
})
|
||||||
.parse(tracker.data);
|
.parse(tracker.data);
|
||||||
if (fields.fields) {
|
if (fields.fields) {
|
||||||
tracker.fields = [];
|
|
||||||
fields.fields.forEach((field) => {
|
fields.fields.forEach((field) => {
|
||||||
tracker.fields.push(field.data);
|
switch (field.id) {
|
||||||
|
case 0x0000:
|
||||||
|
tracker.pos = field.data;
|
||||||
|
break;
|
||||||
|
case 0x0001:
|
||||||
|
tracker.speed = field.data;
|
||||||
|
break;
|
||||||
|
case 0x0002:
|
||||||
|
tracker.ori = field.data;
|
||||||
|
break;
|
||||||
|
case 0x0003:
|
||||||
|
tracker.status = field.data;
|
||||||
|
break;
|
||||||
|
case 0x0004:
|
||||||
|
tracker.accel = field.data;
|
||||||
|
break;
|
||||||
|
case 0x0005:
|
||||||
|
tracker.trgtpos = field.data;
|
||||||
|
break;
|
||||||
|
case 0x0006:
|
||||||
|
tracker.timestamp = field.data;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user