1.0.0 • Published 5 years ago
binproto-parser v1.0.0
Binary Protocol Parser
Convert Binary Protocol to JSON format
Qucik Start
// Declare a Array for parsing binary data
const PROTO_MAP = [
{
name: "data",
offset: 0,
len: 1
}
];
// pass a buffer and parse binary data
const parser = require("binproto-parser").default;
const buffer = Buffer.from("0A", "hex");
const obj = parser(buffer, PROTO_MAP); // { data: 10 }
Adavnced
Read data by bits
// Declare a Array for parsing binary data
const PROTO_MAP = [
{
name: "parking_lot",
offset: 0,
len: 1,
bit: [
{
name: "isNear",
offset: 0,
len: 4
},
{
name: "isFree",
offset: 4,
len: 4
}
]
}
];
// pass a buffer and parse binary data
const parser = require("../binproto-parser").default;
const buffer = Buffer.from("11", "hex");
const obj = parser(buffer, PROTO_MAP); // { parking_lot: { isNear: 1, isFree: 1 } }
Render
// Declare a Array for parsing binary data
const PROTO_MAP = [
{
name: "parking_lot",
offset: 0,
len: 1,
bit: [
{
name: "isNear",
offset: 0,
len: 4,
render: val => {
return val === 1;
}
},
{
name: "isFree",
offset: 4,
len: 4,
render: val => {
return val === 1;
}
}
]
},
{
name: "hostel",
offset: 1,
len: 1,
render: val => {
if (val === 0) return "Unknown";
else return `Hostel - ${val}`;
}
}
];
// pass a buffer and parse binary data
const parser = require("../binproto-parser").default;
const buffer = Buffer.from("1101", "hex");
const obj = parser(buffer, PROTO_MAP); // { parking_lot: { isNear: true, isFree: true }, hostel: 'Hostel - 1' }
BigEnd And LittleEnd
// Declare a Array for parsing binary data
const PROTO_MAP = [
{
name: "BE",
offset: 0,
len: 2,
end: "BE"
},
{
name: "LE",
offset: 2,
len: 2,
end: "LE"
},
{
name: "NONE",
offset: 4,
len: 2
}
];
// pass a buffer and parse binary data
const parser = require("../binproto-parser").default;
const buffer = Buffer.from("00010001", "hex");
const obj = parser(buffer, PROTO_MAP); // { BE: 1, LE: 256, NONE: <Buffer 00 01> }
1.0.0
5 years ago