DTM TRAFFIC, SESSION EVENTS 로그 개선
- Receiver에 expected packet type 필드 제거 - 로그 아래로 쌓기 - Clear 버튼 추가 - Trasmitter 세션에서는 packet report 숨김
This commit is contained in:
@@ -68,19 +68,32 @@ const DTM_SETUP_CONTROL = {
|
||||
5: 'TX/RX select',
|
||||
};
|
||||
|
||||
const DTM_PKT_TYPE = {
|
||||
0: 'PRBS9',
|
||||
1: '11110000',
|
||||
2: '10101010',
|
||||
3: 'constant carrier',
|
||||
};
|
||||
|
||||
const dtmChannelLabel = byte0 => {
|
||||
const channel = byte0 & 0x3f;
|
||||
const mhz = 2402 + 2 * channel;
|
||||
return `ch ${channel} (${mhz} MHz)`;
|
||||
};
|
||||
|
||||
const DTM_PAYLOAD_LABEL = {
|
||||
0: 'PRBS9',
|
||||
1: '11110000',
|
||||
2: '10101010',
|
||||
3: 'Constant carrier',
|
||||
};
|
||||
|
||||
const dtmTransmitterTestNote = (b0, b1) => {
|
||||
const channel = b0 & 0x3f;
|
||||
const mhz = 2402 + 2 * channel;
|
||||
const lengthField = (b1 >> 2) & 0x3f;
|
||||
const pattern = DTM_PAYLOAD_LABEL[b1 & 0x03] ?? `type ${b1 & 0x03}`;
|
||||
return `Transmitter test - transmit on ch ${channel}(${mhz}MHz), len ${lengthField}, ${pattern}`;
|
||||
};
|
||||
|
||||
const dtmPacketReportNote = count => {
|
||||
const noun = count === 1 ? 'packet' : 'packets';
|
||||
return `Receiver report - ${count} ${noun} received on active RX channel (LE DTM event)`;
|
||||
};
|
||||
|
||||
const dtmTxNote = buffer => {
|
||||
const b0 = buffer[0];
|
||||
const b1 = buffer[1];
|
||||
@@ -96,15 +109,11 @@ const dtmTxNote = buffer => {
|
||||
}
|
||||
|
||||
if (cmdType === 1) {
|
||||
const length = (b1 >> 2) & 0x3f;
|
||||
const pkt = DTM_PKT_TYPE[b1 & 0x03] ?? `type ${b1 & 0x03}`;
|
||||
return `Receiver test — listen on ${dtmChannelLabel(b0)}, len ${length}, ${pkt}`;
|
||||
return `Receiver test - listen on ${dtmChannelLabel(b0)}`;
|
||||
}
|
||||
|
||||
if (cmdType === 2) {
|
||||
const length = (b1 >> 2) & 0x3f;
|
||||
const pkt = DTM_PKT_TYPE[b1 & 0x03] ?? `type ${b1 & 0x03}`;
|
||||
return `Transmitter test — transmit on ${dtmChannelLabel(b0)}, len ${length}, ${pkt}`;
|
||||
return dtmTransmitterTestNote(b0, b1);
|
||||
}
|
||||
|
||||
if (cmdType === 3) {
|
||||
@@ -125,11 +134,6 @@ const dtmRxNote = buffer => {
|
||||
const b0 = buffer[0];
|
||||
const b1 = buffer[1];
|
||||
|
||||
const packetCount = parsePacketReportCount(buffer);
|
||||
if (packetCount !== null) {
|
||||
return `Packet report — ${packetCount} packet(s) received on active RX channel (LE DTM event)`;
|
||||
}
|
||||
|
||||
if ((b1 & 0x01) !== 0) {
|
||||
const rawDbm = (b1 & 0xfe) >> 1;
|
||||
const modifier = b0 & 0x01 ? -128 : 0;
|
||||
@@ -198,15 +202,21 @@ class DTMTransport {
|
||||
this.#dataBuffer =
|
||||
this.#dataBuffer.length > 2 ? this.#dataBuffer.subarray(2) : undefined;
|
||||
|
||||
this.#eventEmitter.emit('traffic', {
|
||||
direction: 'rx',
|
||||
data: Array.from(response),
|
||||
note: dtmRxNote(response),
|
||||
});
|
||||
|
||||
const packetCount = parsePacketReportCount(response);
|
||||
if (packetCount !== null) {
|
||||
this.#eventEmitter.emit('packetReport', packetCount);
|
||||
this.#eventEmitter.emit('traffic', {
|
||||
direction: 'rx',
|
||||
data: Array.from(response),
|
||||
note: dtmPacketReportNote(packetCount),
|
||||
kind: 'packetReport',
|
||||
});
|
||||
} else {
|
||||
this.#eventEmitter.emit('traffic', {
|
||||
direction: 'rx',
|
||||
data: Array.from(response),
|
||||
note: dtmRxNote(response),
|
||||
});
|
||||
}
|
||||
|
||||
if (this.#callback) {
|
||||
|
||||
Reference in New Issue
Block a user