organization

This commit is contained in:
2023-09-13 16:27:46 -05:00
parent 23802f1572
commit dc1c0523d7
36 changed files with 5 additions and 5 deletions
+20
View File
@@ -0,0 +1,20 @@
const { Parser } = require('binary-parser');
module.exports = new Parser()
.uint16le('id')
.uint16le('data_len', {
formatter: (item) => {
const binary = item.toString(2).padStart(16, '0');
return Number.parseInt(binary.substring(1), 2);
},
})
.seek(-2)
.uint16le('has_subchunks', {
formatter: (item) => {
const binary = item.toString(2).padStart(16, '0');
return binary.charAt(0) === '1';
},
})
.buffer('chunk_data', {
length: 'data_len',
});
@@ -0,0 +1,29 @@
const Parser = require('binary-parser').Parser;
module.exports = new Parser()
.uint16le('id')
.uint16le('data_len', {
formatter: (item) => {
const binary = item.toString(2).padStart(16, '0');
return Number.parseInt(binary.substring(1), 2);
},
})
.seek(-2)
.uint16le('has_subchunks', {
formatter: (item) => {
const binary = item.toString(2).padStart(16, '0');
return binary.charAt(0) === '1';
},
})
.choice('data', {
tag: 'id',
choices: {
0x0000: new Parser().floatle('x').floatle('y').floatle('z'),
0x0001: new Parser().floatle('x').floatle('y').floatle('z'),
0x0002: new Parser().floatle('x').floatle('y').floatle('z'),
0x0003: new Parser().floatle('validity'),
0x0004: new Parser().floatle('x').floatle('y').floatle('z'),
0x0005: new Parser().floatle('x').floatle('y').floatle('z'),
0x0006: new Parser().uint64le('tracker_timestamp'),
},
});
@@ -0,0 +1,22 @@
const Parser = require('binary-parser').Parser;
const dataTrackerParser = new Parser()
.uint16le('id')
.uint16le('data_len', {
formatter: (item) => {
const binary = item.toString(2).padStart(16, '0');
return Number.parseInt(binary.substring(1), 2);
},
})
.seek(-2)
.uint16le('has_subchunks', {
formatter: (item) => {
const binary = item.toString(2).padStart(16, '0');
return binary.charAt(0) === '1';
},
})
.buffer('data', {
length: 'data_len',
});
module.exports = new Parser().array('trackers', { type: dataTrackerParser, readUntil: 'eof' });
+7
View File
@@ -0,0 +1,7 @@
const TrackerListChunk = require('./data-tracker-list-chunk');
const TrackerFieldChunk = require('./data-tracker-field-chunk');
module.exports = {
TrackerFieldChunk,
TrackerListChunk,
};
+17
View File
@@ -0,0 +1,17 @@
const Chunk = require('./chunk');
const PacketHeaderChunk = require('./packet-header-chunk');
const Packet = require('./packet');
const Info = require('./info');
const Data = require('./data');
module.exports = {
Chunk,
PacketHeaderChunk,
Packet,
Info: {
...Info,
},
Data: {
...Data,
},
};
+7
View File
@@ -0,0 +1,7 @@
const SystemNameChunk = require('./info-system-name-chunk');
const TrackerListChunk = require('./info-tracker-list-chunk');
module.exports = {
SystemNameChunk,
TrackerListChunk,
};
@@ -0,0 +1,3 @@
const Parser = require('binary-parser').Parser;
module.exports = new Parser().string('system_name', { greedy: true });
@@ -0,0 +1,39 @@
const Parser = require('binary-parser').Parser;
const infoTrackerNameParser = new Parser()
.uint16le('id')
.uint16le('data_len', {
formatter: (item) => {
const binary = item.toString(2).padStart(16, '0');
return Number.parseInt(binary.substring(1), 2);
},
})
.seek(-2)
.uint16le('has_subchunks', {
formatter: (item) => {
const binary = item.toString(2).padStart(16, '0');
return binary.charAt(0) === '1';
},
})
.string('tracker_name', { length: 'data_len' });
const infoTrackerParser = new Parser()
.uint16le('id')
.uint16le('data_len', {
formatter: (item) => {
const binary = item.toString(2).padStart(16, '0');
return Number.parseInt(binary.substring(1), 2);
},
})
.seek(-2)
.uint16le('has_subchunks', {
formatter: (item) => {
const binary = item.toString(2).padStart(16, '0');
return binary.charAt(0) === '1';
},
})
.nest('tracker_name', {
type: infoTrackerNameParser,
});
module.exports = new Parser().array('trackers', { type: infoTrackerParser, readUntil: 'eof' });
+9
View File
@@ -0,0 +1,9 @@
const Parser = require('binary-parser').Parser;
module.exports = new Parser()
.uint64le('packet_timestamp')
.uint8('version_high')
.uint8('version_low')
.uint8('frame_id')
.uint8('frame_packet_count')
.seek(4);
+18
View File
@@ -0,0 +1,18 @@
const Parser = require('binary-parser').Parser;
module.exports = new Parser()
.uint16le('id')
.uint16le('data_len', {
formatter: (item) => {
const binary = item.toString(2).padStart(16, '0');
return Number.parseInt(binary.substring(1), 2);
},
})
.seek(-2)
.uint16le('has_subchunks', {
formatter: (item) => {
const binary = item.toString(2).padStart(16, '0');
return binary.charAt(0) === '1';
},
})
.buffer('chunk_data', { readUntil: 'eof' });