Skip to content

Commit 229ca94

Browse files
committed
fix: adjust APS constants
1 parent 50226d0 commit 229ca94

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

src/zigbee-stack/aps-handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ export interface APSHandlerCallbacks {
9696
/** apsDuplicateEntryLifetime: Duration while APS duplicate table entries remain valid (milliseconds). Spec default ≈ 8s. */
9797
const CONFIG_APS_DUPLICATE_TIMEOUT_MS = 8000; // TODO: verify
9898
/** apsAckWaitDuration: Default ack wait duration per Zigbee 3.0 spec (milliseconds). */
99-
export const CONFIG_APS_ACK_WAIT_DURATION_MS = 1600 + 200; // some extra for ZoH
99+
export const CONFIG_APS_ACK_WAIT_DURATION_MS = 1600 + 500; // some extra for ZoH
100100
/** apsMaxFrameRetries: Default number of APS retransmissions when ACK is missing. */
101101
export const CONFIG_APS_MAX_FRAME_RETRIES = 3;
102102
/** apsFragmentationTimeout: Timeout for incomplete incoming APS fragment reassembly (milliseconds). */

test/compliance/integration.test.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,12 @@ import {
5555
ZigbeeNWKRouteDiscovery,
5656
ZigbeeNWKStatus,
5757
} from "../../src/zigbee/zigbee-nwk.js";
58-
import { APSHandler, type APSHandlerCallbacks, CONFIG_APS_MAX_FRAME_RETRIES } from "../../src/zigbee-stack/aps-handler.js";
58+
import {
59+
APSHandler,
60+
type APSHandlerCallbacks,
61+
CONFIG_APS_ACK_WAIT_DURATION_MS,
62+
CONFIG_APS_MAX_FRAME_RETRIES,
63+
} from "../../src/zigbee-stack/aps-handler.js";
5964
import { MACHandler, type MACHandlerCallbacks } from "../../src/zigbee-stack/mac-handler.js";
6065
import { NWKGPHandler, type NWKGPHandlerCallbacks } from "../../src/zigbee-stack/nwk-gp-handler.js";
6166
import { NWKHandler, type NWKHandlerCallbacks } from "../../src/zigbee-stack/nwk-handler.js";
@@ -1432,11 +1437,11 @@ describe("Integration and End-to-End Compliance", () => {
14321437
expect(mockMACHandlerCallbacks.onSendFrame).toHaveBeenCalledTimes(1);
14331438

14341439
for (let attempt = 0; attempt < CONFIG_APS_MAX_FRAME_RETRIES; attempt++) {
1435-
await vi.advanceTimersByTimeAsync(1500);
1440+
await vi.advanceTimersByTimeAsync(CONFIG_APS_ACK_WAIT_DURATION_MS - 1);
14361441
await Promise.resolve();
14371442
}
14381443

1439-
await vi.advanceTimersByTimeAsync(1500);
1444+
await vi.advanceTimersByTimeAsync(CONFIG_APS_ACK_WAIT_DURATION_MS - 1);
14401445
await Promise.resolve();
14411446

14421447
expect(mockMACHandlerCallbacks.onSendFrame).toHaveBeenCalledTimes(CONFIG_APS_MAX_FRAME_RETRIES + 1);

test/zigbee-stack/aps-handler.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
type ZigbeeAPSHeader,
1414
} from "../../src/zigbee/zigbee-aps.js";
1515
import { type ZigbeeNWKHeader, ZigbeeNWKRouteDiscovery } from "../../src/zigbee/zigbee-nwk.js";
16-
import { APSHandler, type APSHandlerCallbacks } from "../../src/zigbee-stack/aps-handler.js";
16+
import { APSHandler, type APSHandlerCallbacks, CONFIG_APS_ACK_WAIT_DURATION_MS } from "../../src/zigbee-stack/aps-handler.js";
1717
import { MACHandler, type MACHandlerCallbacks } from "../../src/zigbee-stack/mac-handler.js";
1818
import { NWKHandler, type NWKHandlerCallbacks } from "../../src/zigbee-stack/nwk-handler.js";
1919
import {
@@ -2098,7 +2098,7 @@ describe("APS Handler", () => {
20982098

20992099
await apsHandler.processFrame(Buffer.alloc(0), ackMacHeader, ackNwkHeader, ackHeader, 175);
21002100

2101-
await vi.advanceTimersByTimeAsync(1500);
2101+
await vi.advanceTimersByTimeAsync(CONFIG_APS_ACK_WAIT_DURATION_MS - 1);
21022102
await vi.runOnlyPendingTimersAsync();
21032103

21042104
expect(sendFrameMock).toHaveBeenCalledTimes(1);
@@ -2171,7 +2171,7 @@ describe("APS Handler", () => {
21712171
mockContext.deviceTable.set(dest64, savedEntry);
21722172
mockContext.address16ToAddress64.set(dest16, dest64);
21732173

2174-
await vi.advanceTimersByTimeAsync(1500);
2174+
await vi.advanceTimersByTimeAsync(CONFIG_APS_ACK_WAIT_DURATION_MS - 1);
21752175
await vi.runOnlyPendingTimersAsync();
21762176

21772177
expect(sendFrameMock.mock.calls.length).toBeGreaterThan(1);

0 commit comments

Comments
 (0)