add support for decoding join refuse data

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