mirror of
https://github.com/meshcore-dev/meshcore.js.git
synced 2026-04-20 22:13:49 +00:00
parse packet types
This commit is contained in:
parent
bc11e6a7fe
commit
5d94ba88ee
3 changed files with 104 additions and 11 deletions
|
|
@ -1,4 +1,5 @@
|
|||
import BufferReader from "./buffer_reader.js";
|
||||
import Advert from "./advert.js";
|
||||
|
||||
class Packet {
|
||||
|
||||
|
|
@ -103,6 +104,48 @@ class Packet {
|
|||
return this.header === 0xFF;
|
||||
}
|
||||
|
||||
parsePayload() {
|
||||
switch(this.getPayloadType()){
|
||||
case Packet.PAYLOAD_TYPE_REQ: return this.parsePayloadTypeReq();
|
||||
case Packet.PAYLOAD_TYPE_ACK: return this.parsePayloadTypeAck();
|
||||
case Packet.PAYLOAD_TYPE_ADVERT: return this.parsePayloadTypeAdvert();
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
||||
parsePayloadTypeReq() {
|
||||
|
||||
// parse bytes
|
||||
const bufferReader = new BufferReader(this.payload);
|
||||
const dest = bufferReader.readByte();
|
||||
const src = bufferReader.readByte();
|
||||
const encrypted = bufferReader.readRemainingBytes();
|
||||
|
||||
// convert to hex
|
||||
const destHex = dest.toString(16);
|
||||
const srcHex = src.toString(16);
|
||||
const encryptedHex = Buffer.from(encrypted).toString("hex");
|
||||
|
||||
return {
|
||||
src: srcHex,
|
||||
dest: destHex,
|
||||
encrypted: encryptedHex,
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
parsePayloadTypeAck() {
|
||||
return {
|
||||
ack_code: Buffer.from(this.payload).toString("hex"),
|
||||
};
|
||||
}
|
||||
|
||||
parsePayloadTypeAdvert() {
|
||||
return {
|
||||
advert: Advert.fromBytes(this.payload),
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default Packet;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue