add support for decoding join accept data

This commit is contained in:
2024-12-05 23:21:47 -06:00
parent b300978e05
commit e56ecdbc0e
2 changed files with 22 additions and 1 deletions
+9 -1
View File
@@ -72,8 +72,16 @@ export type SDTJoinData = {
adhocExpiry: number;
};
export type SDTJoinAcceptData = {
leaderComponentID: string;
channelNumber: number;
memberID: number;
reliableSequenceNumber: number;
reciprocalChannel: number;
};
export type SessionDataTransportPDU = {
vector: SessionDataTransportVectors;
// TODO(jwetzell): cleanup these types
data: SDTJoinData | Uint8Array;
data: SDTJoinData | SDTJoinAcceptData | Uint8Array;
};
+13
View File
@@ -80,6 +80,19 @@ export function decode(bytes: Uint8Array): SessionDataTransportPDU {
data: joinData,
};
}
case SessionDataTransportVectors.JOIN_ACCEPT: {
const joinData = {
leaderComponentID: toHex(bytes.subarray(dataOffset, dataOffset + 16)),
channelNumber: view.getUint16(dataOffset + 16),
memberID: view.getUint16(dataOffset + 18),
reliableSequenceNumber: view.getUint32(dataOffset + 20),
reciprocalChannel: view.getUint16(dataOffset + 24),
};
return {
vector,
data: joinData,
};
}
default:
console.error(`unhandled SDT vector: ${vector}`);
break;