zigbee-herdsman 6.0.2 → 6.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/package.json +12 -3
- package/.github/ISSUE_TEMPLATE/config.yml +0 -5
- package/.github/dependabot.yml +0 -22
- package/.github/workflows/ci.yml +0 -69
- package/.github/workflows/release-please.yml +0 -18
- package/.github/workflows/stale.yml +0 -20
- package/.github/workflows/typedoc.yaml +0 -47
- package/.release-please-manifest.json +0 -3
- package/.vscode/extensions.json +0 -3
- package/.vscode/settings.json +0 -11
- package/biome.json +0 -98
- package/examples/join-and-log.js +0 -24
- package/release-please-config.json +0 -9
- package/src/adapter/adapter.ts +0 -189
- package/src/adapter/adapterDiscovery.ts +0 -666
- package/src/adapter/const.ts +0 -12
- package/src/adapter/deconz/adapter/deconzAdapter.ts +0 -877
- package/src/adapter/deconz/driver/constants.ts +0 -246
- package/src/adapter/deconz/driver/driver.ts +0 -1540
- package/src/adapter/deconz/driver/frame.ts +0 -11
- package/src/adapter/deconz/driver/frameParser.ts +0 -753
- package/src/adapter/deconz/driver/parser.ts +0 -45
- package/src/adapter/deconz/driver/writer.ts +0 -22
- package/src/adapter/deconz/types.d.ts +0 -13
- package/src/adapter/ember/adapter/emberAdapter.ts +0 -2265
- package/src/adapter/ember/adapter/endpoints.ts +0 -86
- package/src/adapter/ember/adapter/oneWaitress.ts +0 -324
- package/src/adapter/ember/adapter/tokensManager.ts +0 -782
- package/src/adapter/ember/consts.ts +0 -178
- package/src/adapter/ember/enums.ts +0 -1746
- package/src/adapter/ember/ezsp/buffalo.ts +0 -1392
- package/src/adapter/ember/ezsp/consts.ts +0 -148
- package/src/adapter/ember/ezsp/enums.ts +0 -1114
- package/src/adapter/ember/ezsp/ezsp.ts +0 -9061
- package/src/adapter/ember/ezspError.ts +0 -10
- package/src/adapter/ember/types.ts +0 -866
- package/src/adapter/ember/uart/ash.ts +0 -1960
- package/src/adapter/ember/uart/consts.ts +0 -109
- package/src/adapter/ember/uart/enums.ts +0 -192
- package/src/adapter/ember/uart/parser.ts +0 -48
- package/src/adapter/ember/uart/queues.ts +0 -247
- package/src/adapter/ember/uart/writer.ts +0 -53
- package/src/adapter/ember/utils/initters.ts +0 -58
- package/src/adapter/ember/utils/math.ts +0 -73
- package/src/adapter/events.ts +0 -21
- package/src/adapter/ezsp/adapter/backup.ts +0 -109
- package/src/adapter/ezsp/adapter/ezspAdapter.ts +0 -614
- package/src/adapter/ezsp/driver/commands.ts +0 -2497
- package/src/adapter/ezsp/driver/consts.ts +0 -11
- package/src/adapter/ezsp/driver/driver.ts +0 -1002
- package/src/adapter/ezsp/driver/ezsp.ts +0 -802
- package/src/adapter/ezsp/driver/frame.ts +0 -101
- package/src/adapter/ezsp/driver/index.ts +0 -4
- package/src/adapter/ezsp/driver/multicast.ts +0 -78
- package/src/adapter/ezsp/driver/parser.ts +0 -81
- package/src/adapter/ezsp/driver/types/basic.ts +0 -201
- package/src/adapter/ezsp/driver/types/index.ts +0 -239
- package/src/adapter/ezsp/driver/types/named.ts +0 -2330
- package/src/adapter/ezsp/driver/types/struct.ts +0 -844
- package/src/adapter/ezsp/driver/uart.ts +0 -460
- package/src/adapter/ezsp/driver/utils/crc16ccitt.ts +0 -44
- package/src/adapter/ezsp/driver/utils/index.ts +0 -32
- package/src/adapter/ezsp/driver/writer.ts +0 -64
- package/src/adapter/index.ts +0 -3
- package/src/adapter/serialPort.ts +0 -58
- package/src/adapter/socketPortUtils.ts +0 -16
- package/src/adapter/tstype.ts +0 -78
- package/src/adapter/z-stack/adapter/adapter-backup.ts +0 -519
- package/src/adapter/z-stack/adapter/adapter-nv-memory.ts +0 -457
- package/src/adapter/z-stack/adapter/endpoints.ts +0 -57
- package/src/adapter/z-stack/adapter/manager.ts +0 -543
- package/src/adapter/z-stack/adapter/tstype.ts +0 -6
- package/src/adapter/z-stack/adapter/zStackAdapter.ts +0 -1190
- package/src/adapter/z-stack/constants/af.ts +0 -27
- package/src/adapter/z-stack/constants/common.ts +0 -285
- package/src/adapter/z-stack/constants/dbg.ts +0 -23
- package/src/adapter/z-stack/constants/index.ts +0 -11
- package/src/adapter/z-stack/constants/mac.ts +0 -128
- package/src/adapter/z-stack/constants/sapi.ts +0 -25
- package/src/adapter/z-stack/constants/sys.ts +0 -72
- package/src/adapter/z-stack/constants/util.ts +0 -82
- package/src/adapter/z-stack/constants/utils.ts +0 -14
- package/src/adapter/z-stack/constants/zdo.ts +0 -103
- package/src/adapter/z-stack/models/startup-options.ts +0 -13
- package/src/adapter/z-stack/structs/entries/address-manager-entry.ts +0 -44
- package/src/adapter/z-stack/structs/entries/address-manager-table.ts +0 -19
- package/src/adapter/z-stack/structs/entries/aps-link-key-data-entry.ts +0 -12
- package/src/adapter/z-stack/structs/entries/aps-link-key-data-table.ts +0 -21
- package/src/adapter/z-stack/structs/entries/aps-tc-link-key-entry.ts +0 -19
- package/src/adapter/z-stack/structs/entries/aps-tc-link-key-table.ts +0 -21
- package/src/adapter/z-stack/structs/entries/channel-list.ts +0 -8
- package/src/adapter/z-stack/structs/entries/has-configured.ts +0 -16
- package/src/adapter/z-stack/structs/entries/index.ts +0 -16
- package/src/adapter/z-stack/structs/entries/nib.ts +0 -66
- package/src/adapter/z-stack/structs/entries/nwk-key-descriptor.ts +0 -15
- package/src/adapter/z-stack/structs/entries/nwk-key.ts +0 -13
- package/src/adapter/z-stack/structs/entries/nwk-pan-id.ts +0 -8
- package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.ts +0 -20
- package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.ts +0 -19
- package/src/adapter/z-stack/structs/entries/security-manager-entry.ts +0 -33
- package/src/adapter/z-stack/structs/entries/security-manager-table.ts +0 -22
- package/src/adapter/z-stack/structs/index.ts +0 -4
- package/src/adapter/z-stack/structs/serializable-memory-object.ts +0 -14
- package/src/adapter/z-stack/structs/struct.ts +0 -367
- package/src/adapter/z-stack/structs/table.ts +0 -198
- package/src/adapter/z-stack/unpi/constants.ts +0 -33
- package/src/adapter/z-stack/unpi/frame.ts +0 -62
- package/src/adapter/z-stack/unpi/index.ts +0 -4
- package/src/adapter/z-stack/unpi/parser.ts +0 -56
- package/src/adapter/z-stack/unpi/writer.ts +0 -21
- package/src/adapter/z-stack/utils/channel-list.ts +0 -40
- package/src/adapter/z-stack/utils/index.ts +0 -2
- package/src/adapter/z-stack/utils/network-options.ts +0 -26
- package/src/adapter/z-stack/znp/buffaloZnp.ts +0 -175
- package/src/adapter/z-stack/znp/definition.ts +0 -2713
- package/src/adapter/z-stack/znp/index.ts +0 -2
- package/src/adapter/z-stack/znp/parameterType.ts +0 -22
- package/src/adapter/z-stack/znp/tstype.ts +0 -44
- package/src/adapter/z-stack/znp/utils.ts +0 -10
- package/src/adapter/z-stack/znp/znp.ts +0 -342
- package/src/adapter/z-stack/znp/zpiObject.ts +0 -148
- package/src/adapter/zboss/adapter/zbossAdapter.ts +0 -526
- package/src/adapter/zboss/commands.ts +0 -1184
- package/src/adapter/zboss/consts.ts +0 -9
- package/src/adapter/zboss/driver.ts +0 -422
- package/src/adapter/zboss/enums.ts +0 -360
- package/src/adapter/zboss/frame.ts +0 -227
- package/src/adapter/zboss/reader.ts +0 -65
- package/src/adapter/zboss/types.ts +0 -0
- package/src/adapter/zboss/uart.ts +0 -428
- package/src/adapter/zboss/utils.ts +0 -58
- package/src/adapter/zboss/writer.ts +0 -49
- package/src/adapter/zigate/adapter/patchZdoBuffaloBE.ts +0 -27
- package/src/adapter/zigate/adapter/zigateAdapter.ts +0 -618
- package/src/adapter/zigate/driver/LICENSE +0 -17
- package/src/adapter/zigate/driver/buffaloZiGate.ts +0 -212
- package/src/adapter/zigate/driver/commandType.ts +0 -418
- package/src/adapter/zigate/driver/constants.ts +0 -150
- package/src/adapter/zigate/driver/frame.ts +0 -197
- package/src/adapter/zigate/driver/messageType.ts +0 -287
- package/src/adapter/zigate/driver/parameterType.ts +0 -32
- package/src/adapter/zigate/driver/ziGateObject.ts +0 -146
- package/src/adapter/zigate/driver/zigate.ts +0 -423
- package/src/adapter/zoh/adapter/utils.ts +0 -27
- package/src/adapter/zoh/adapter/zohAdapter.ts +0 -838
- package/src/buffalo/buffalo.ts +0 -342
- package/src/buffalo/index.ts +0 -1
- package/src/controller/controller.ts +0 -1022
- package/src/controller/database.ts +0 -124
- package/src/controller/events.ts +0 -52
- package/src/controller/greenPower.ts +0 -603
- package/src/controller/helpers/index.ts +0 -1
- package/src/controller/helpers/installCodes.ts +0 -107
- package/src/controller/helpers/request.ts +0 -96
- package/src/controller/helpers/requestQueue.ts +0 -125
- package/src/controller/helpers/zclFrameConverter.ts +0 -47
- package/src/controller/helpers/zclTransactionSequenceNumber.ts +0 -19
- package/src/controller/index.ts +0 -6
- package/src/controller/model/device.ts +0 -1249
- package/src/controller/model/endpoint.ts +0 -1105
- package/src/controller/model/entity.ts +0 -23
- package/src/controller/model/group.ts +0 -424
- package/src/controller/model/index.ts +0 -5
- package/src/controller/model/zigbeeEntity.ts +0 -30
- package/src/controller/touchlink.ts +0 -189
- package/src/controller/tstype.ts +0 -274
- package/src/index.ts +0 -12
- package/src/models/backup-storage-legacy.ts +0 -48
- package/src/models/backup-storage-unified.ts +0 -47
- package/src/models/backup.ts +0 -37
- package/src/models/index.ts +0 -5
- package/src/models/network-options.ts +0 -11
- package/src/utils/backup.ts +0 -152
- package/src/utils/index.ts +0 -5
- package/src/utils/logger.ts +0 -20
- package/src/utils/patchBigIntSerialization.ts +0 -8
- package/src/utils/queue.ts +0 -76
- package/src/utils/types.d.ts +0 -3
- package/src/utils/utils.ts +0 -19
- package/src/utils/wait.ts +0 -5
- package/src/utils/waitress.ts +0 -96
- package/src/zspec/consts.ts +0 -84
- package/src/zspec/enums.ts +0 -22
- package/src/zspec/index.ts +0 -3
- package/src/zspec/tstypes.ts +0 -18
- package/src/zspec/utils.ts +0 -247
- package/src/zspec/zcl/buffaloZcl.ts +0 -1220
- package/src/zspec/zcl/definition/cluster.ts +0 -5915
- package/src/zspec/zcl/definition/clusters-typegen.ts +0 -588
- package/src/zspec/zcl/definition/clusters-types.ts +0 -7331
- package/src/zspec/zcl/definition/consts.ts +0 -24
- package/src/zspec/zcl/definition/enums.ts +0 -203
- package/src/zspec/zcl/definition/foundation.ts +0 -329
- package/src/zspec/zcl/definition/manufacturerCode.ts +0 -729
- package/src/zspec/zcl/definition/status.ts +0 -69
- package/src/zspec/zcl/definition/tstype.ts +0 -377
- package/src/zspec/zcl/index.ts +0 -11
- package/src/zspec/zcl/utils.ts +0 -321
- package/src/zspec/zcl/zclFrame.ts +0 -356
- package/src/zspec/zcl/zclHeader.ts +0 -102
- package/src/zspec/zcl/zclStatusError.ts +0 -10
- package/src/zspec/zdo/buffaloZdo.ts +0 -2336
- package/src/zspec/zdo/definition/clusters.ts +0 -722
- package/src/zspec/zdo/definition/consts.ts +0 -16
- package/src/zspec/zdo/definition/enums.ts +0 -99
- package/src/zspec/zdo/definition/status.ts +0 -105
- package/src/zspec/zdo/definition/tstypes.ts +0 -1062
- package/src/zspec/zdo/index.ts +0 -7
- package/src/zspec/zdo/utils.ts +0 -76
- package/src/zspec/zdo/zdoStatusError.ts +0 -10
- package/test/adapter/adapter.test.ts +0 -1062
- package/test/adapter/ember/ash.test.ts +0 -337
- package/test/adapter/ember/consts.ts +0 -131
- package/test/adapter/ember/emberAdapter.test.ts +0 -3449
- package/test/adapter/ember/ezsp.test.ts +0 -385
- package/test/adapter/ember/ezspBuffalo.test.ts +0 -93
- package/test/adapter/ember/ezspError.test.ts +0 -12
- package/test/adapter/ember/math.test.ts +0 -206
- package/test/adapter/ezsp/frame.test.ts +0 -30
- package/test/adapter/ezsp/uart.test.ts +0 -181
- package/test/adapter/z-stack/adapter.test.ts +0 -3984
- package/test/adapter/z-stack/constants.test.ts +0 -33
- package/test/adapter/z-stack/structs.test.ts +0 -115
- package/test/adapter/z-stack/unpi.test.ts +0 -213
- package/test/adapter/z-stack/znp.test.ts +0 -1284
- package/test/adapter/zboss/fixZdoResponse.test.ts +0 -179
- package/test/adapter/zigate/patchZdoBuffaloBE.test.ts +0 -81
- package/test/adapter/zigate/zdo.test.ts +0 -187
- package/test/adapter/zoh/utils.test.ts +0 -36
- package/test/adapter/zoh/zohAdapter.test.ts +0 -1307
- package/test/benchOptions.ts +0 -14
- package/test/buffalo.test.ts +0 -431
- package/test/controller.bench.ts +0 -214
- package/test/controller.test.ts +0 -8702
- package/test/greenpower.test.ts +0 -1408
- package/test/mockAdapters.ts +0 -65
- package/test/mockDevices.ts +0 -598
- package/test/requests.bench.ts +0 -229
- package/test/testUtils.ts +0 -20
- package/test/tsconfig.json +0 -9
- package/test/utils/math.ts +0 -19
- package/test/utils.test.ts +0 -279
- package/test/vitest.config.mts +0 -26
- package/test/zcl.test.ts +0 -2831
- package/test/zspec/utils.test.ts +0 -68
- package/test/zspec/zcl/buffalo.test.ts +0 -1374
- package/test/zspec/zcl/frame.test.ts +0 -960
- package/test/zspec/zcl/utils.test.ts +0 -273
- package/test/zspec/zdo/buffalo.test.ts +0 -1850
- package/test/zspec/zdo/utils.test.ts +0 -241
- package/tsconfig.json +0 -24
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import * as stream from "node:stream";
|
|
2
|
-
|
|
3
|
-
import {logger} from "../../../utils/logger";
|
|
4
|
-
import {DataStart, MinMessageLength, PositionDataLength, SOF} from "./constants";
|
|
5
|
-
import {Frame} from "./frame";
|
|
6
|
-
|
|
7
|
-
const NS = "zh:zstack:unpi:parser";
|
|
8
|
-
|
|
9
|
-
export class Parser extends stream.Transform {
|
|
10
|
-
private buffer: Buffer;
|
|
11
|
-
|
|
12
|
-
public constructor() {
|
|
13
|
-
super();
|
|
14
|
-
this.buffer = Buffer.from([]);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
public override _transform(chunk: Buffer, _: string, cb: () => void): void {
|
|
18
|
-
logger.debug(`<-- [${[...chunk]}]`, NS);
|
|
19
|
-
this.buffer = Buffer.concat([this.buffer, chunk]);
|
|
20
|
-
this.parseNext();
|
|
21
|
-
cb();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
private parseNext(): void {
|
|
25
|
-
logger.debug(`--- parseNext [${[...this.buffer]}]`, NS);
|
|
26
|
-
|
|
27
|
-
if (this.buffer.length !== 0 && this.buffer.readUInt8(0) !== SOF) {
|
|
28
|
-
// Buffer doesn't start with SOF, skip till SOF.
|
|
29
|
-
const index = this.buffer.indexOf(SOF);
|
|
30
|
-
if (index !== -1) {
|
|
31
|
-
this.buffer = this.buffer.slice(index, this.buffer.length);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (this.buffer.length >= MinMessageLength && this.buffer.readUInt8(0) === SOF) {
|
|
36
|
-
const dataLength = this.buffer[PositionDataLength];
|
|
37
|
-
const fcsPosition = DataStart + dataLength;
|
|
38
|
-
const frameLength = fcsPosition + 1;
|
|
39
|
-
|
|
40
|
-
if (this.buffer.length >= frameLength) {
|
|
41
|
-
const frameBuffer = this.buffer.slice(0, frameLength);
|
|
42
|
-
|
|
43
|
-
try {
|
|
44
|
-
const frame = Frame.fromBuffer(dataLength, fcsPosition, frameBuffer);
|
|
45
|
-
logger.debug(`--> parsed ${frame}`, NS);
|
|
46
|
-
this.emit("parsed", frame);
|
|
47
|
-
} catch (error) {
|
|
48
|
-
logger.debug(`--> error ${error}`, NS);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
this.buffer = this.buffer.slice(frameLength, this.buffer.length);
|
|
52
|
-
this.parseNext();
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import * as stream from "node:stream";
|
|
2
|
-
|
|
3
|
-
import {logger} from "../../../utils/logger";
|
|
4
|
-
import type {Frame} from "./frame";
|
|
5
|
-
|
|
6
|
-
const NS = "zh:zstack:unpi:writer";
|
|
7
|
-
|
|
8
|
-
export class Writer extends stream.Readable {
|
|
9
|
-
public writeFrame(frame: Frame): void {
|
|
10
|
-
const buffer = frame.toBuffer();
|
|
11
|
-
logger.debug(`--> frame [${[...buffer]}]`, NS);
|
|
12
|
-
this.push(buffer);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
public writeBuffer(buffer: Buffer): void {
|
|
16
|
-
logger.debug(`--> buffer [${[...buffer]}]`, NS);
|
|
17
|
-
this.push(buffer);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
public override _read(): void {}
|
|
21
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts packed `uint32` channel list to array of channel numbers.
|
|
3
|
-
*
|
|
4
|
-
* @param packedList Packed channel list value.
|
|
5
|
-
*/
|
|
6
|
-
export const unpackChannelList = (packedList: number): number[] => {
|
|
7
|
-
return Array(26 - 11 + 1)
|
|
8
|
-
.fill(0)
|
|
9
|
-
.map((_, i) => 11 + i)
|
|
10
|
-
.filter((c) => ((1 << c) & packedList) > 0);
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Converts array of channel numbers to packed `uint32` structure represented as number.
|
|
15
|
-
* Supported channel range is 11 - 29.
|
|
16
|
-
*
|
|
17
|
-
* @param channelList List of channels to be packed.
|
|
18
|
-
*/
|
|
19
|
-
export const packChannelList = (channelList: number[]): number => {
|
|
20
|
-
const invalidChannel = channelList.find((c) => c < 11 || c > 26);
|
|
21
|
-
/* v8 ignore start */
|
|
22
|
-
if (invalidChannel !== undefined) {
|
|
23
|
-
throw new Error(`Cannot pack channel list - unsupported channel ${invalidChannel}`);
|
|
24
|
-
}
|
|
25
|
-
/* v8 ignore stop */
|
|
26
|
-
return channelList.reduce((a, c) => a + (1 << c), 0);
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Compares two channel lists. Either number arrays or packed `uint32` numbers may be provided.
|
|
31
|
-
*
|
|
32
|
-
* @param list1 First list to compare.
|
|
33
|
-
* @param list2 Second list to compare.
|
|
34
|
-
*/
|
|
35
|
-
export const compareChannelLists = (list1: number | number[], list2: number | number[]): boolean => {
|
|
36
|
-
/* v8 ignore next */
|
|
37
|
-
list1 = Array.isArray(list1) ? packChannelList(list1) : list1;
|
|
38
|
-
list2 = Array.isArray(list2) ? packChannelList(list2) : list2;
|
|
39
|
-
return list1 === list2;
|
|
40
|
-
};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/* v8 ignore start */
|
|
2
|
-
|
|
3
|
-
import type * as Models from "../../../models";
|
|
4
|
-
import {compareChannelLists} from "./channel-list";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Checks if two network options models match.
|
|
8
|
-
*
|
|
9
|
-
* @param opts1 First network options struct to check.
|
|
10
|
-
* @param opts2 Second network options struct to check.
|
|
11
|
-
*/
|
|
12
|
-
export const compareNetworkOptions = (
|
|
13
|
-
opts1: Models.NetworkOptions,
|
|
14
|
-
opts2: Models.NetworkOptions,
|
|
15
|
-
lenientExtendedPanIdMatching?: boolean,
|
|
16
|
-
): boolean => {
|
|
17
|
-
return Boolean(
|
|
18
|
-
opts1.panId === opts2.panId &&
|
|
19
|
-
(opts1.extendedPanId.equals(opts2.extendedPanId) ||
|
|
20
|
-
(lenientExtendedPanIdMatching && (opts1.hasDefaultExtendedPanId || opts2.hasDefaultExtendedPanId)) ||
|
|
21
|
-
(lenientExtendedPanIdMatching && opts1.extendedPanId.equals(Buffer.from(opts2.extendedPanId).reverse()))) &&
|
|
22
|
-
opts1.networkKey.equals(opts2.networkKey) &&
|
|
23
|
-
compareChannelLists(opts1.channelList, opts2.channelList) &&
|
|
24
|
-
opts1.networkKeyDistribute === opts2.networkKeyDistribute,
|
|
25
|
-
);
|
|
26
|
-
};
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import {Buffalo} from "../../../buffalo";
|
|
2
|
-
import ParameterType from "./parameterType";
|
|
3
|
-
import type {BuffaloZnpOptions} from "./tstype";
|
|
4
|
-
|
|
5
|
-
interface Network {
|
|
6
|
-
neightborPanId: number;
|
|
7
|
-
logicalChannel: number;
|
|
8
|
-
stackProfile: number;
|
|
9
|
-
zigbeeVersion: number;
|
|
10
|
-
beaconOrder: number;
|
|
11
|
-
superFrameOrder: number;
|
|
12
|
-
permitJoin: number;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
class BuffaloZnp extends Buffalo {
|
|
16
|
-
private readListNetwork(length: number): Network[] {
|
|
17
|
-
const value: Network[] = [];
|
|
18
|
-
for (let i = 0; i < length; i++) {
|
|
19
|
-
const neightborPanId = this.readUInt16();
|
|
20
|
-
const logicalChannel = this.readUInt8();
|
|
21
|
-
const value1 = this.readUInt8();
|
|
22
|
-
const value2 = this.readUInt8();
|
|
23
|
-
const permitJoin = this.readUInt8();
|
|
24
|
-
|
|
25
|
-
value.push({
|
|
26
|
-
neightborPanId,
|
|
27
|
-
logicalChannel,
|
|
28
|
-
stackProfile: value1 & 0x0f,
|
|
29
|
-
zigbeeVersion: (value1 & 0xf0) >> 4,
|
|
30
|
-
beaconOrder: value2 & 0x0f,
|
|
31
|
-
superFrameOrder: (value2 & 0xf0) >> 4,
|
|
32
|
-
permitJoin,
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return value;
|
|
37
|
-
}
|
|
38
|
-
// biome-ignore lint/suspicious/noExplicitAny: API
|
|
39
|
-
public write(type: ParameterType, value: any, options: BuffaloZnpOptions): void {
|
|
40
|
-
switch (type) {
|
|
41
|
-
case ParameterType.UINT8: {
|
|
42
|
-
this.writeUInt8(value);
|
|
43
|
-
break;
|
|
44
|
-
}
|
|
45
|
-
case ParameterType.UINT16: {
|
|
46
|
-
this.writeUInt16(value);
|
|
47
|
-
break;
|
|
48
|
-
}
|
|
49
|
-
case ParameterType.UINT32: {
|
|
50
|
-
this.writeUInt32(value);
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
case ParameterType.IEEEADDR: {
|
|
54
|
-
this.writeIeeeAddr(value);
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
case ParameterType.BUFFER: {
|
|
58
|
-
this.writeBuffer(value, options.length ?? value.length);
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
case ParameterType.BUFFER8: {
|
|
62
|
-
this.writeBuffer(value, 8);
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
65
|
-
case ParameterType.BUFFER16: {
|
|
66
|
-
this.writeBuffer(value, 16);
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
case ParameterType.BUFFER18: {
|
|
70
|
-
this.writeBuffer(value, 18);
|
|
71
|
-
break;
|
|
72
|
-
}
|
|
73
|
-
case ParameterType.BUFFER32: {
|
|
74
|
-
this.writeBuffer(value, 32);
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
case ParameterType.BUFFER42: {
|
|
78
|
-
this.writeBuffer(value, 42);
|
|
79
|
-
break;
|
|
80
|
-
}
|
|
81
|
-
case ParameterType.BUFFER100: {
|
|
82
|
-
this.writeBuffer(value, 100);
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
case ParameterType.LIST_UINT8: {
|
|
86
|
-
this.writeListUInt8(value);
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
case ParameterType.LIST_UINT16: {
|
|
90
|
-
this.writeListUInt16(value);
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
// NOTE: not writable
|
|
94
|
-
// case ParameterType.LIST_NETWORK:
|
|
95
|
-
case ParameterType.INT8: {
|
|
96
|
-
this.writeInt8(value);
|
|
97
|
-
break;
|
|
98
|
-
}
|
|
99
|
-
default: {
|
|
100
|
-
throw new Error(`Write for '${type}' not available`);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
// biome-ignore lint/suspicious/noExplicitAny: API
|
|
105
|
-
public read(type: ParameterType, options: BuffaloZnpOptions): any {
|
|
106
|
-
switch (type) {
|
|
107
|
-
case ParameterType.UINT8: {
|
|
108
|
-
return this.readUInt8();
|
|
109
|
-
}
|
|
110
|
-
case ParameterType.UINT16: {
|
|
111
|
-
return this.readUInt16();
|
|
112
|
-
}
|
|
113
|
-
case ParameterType.UINT32: {
|
|
114
|
-
return this.readUInt32();
|
|
115
|
-
}
|
|
116
|
-
case ParameterType.IEEEADDR: {
|
|
117
|
-
return this.readIeeeAddr();
|
|
118
|
-
}
|
|
119
|
-
case ParameterType.BUFFER: {
|
|
120
|
-
if (options.length == null) {
|
|
121
|
-
throw new Error("Cannot read BUFFER without length option specified");
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
return this.readBuffer(options.length);
|
|
125
|
-
}
|
|
126
|
-
case ParameterType.BUFFER8: {
|
|
127
|
-
return this.readBuffer(8);
|
|
128
|
-
}
|
|
129
|
-
case ParameterType.BUFFER16: {
|
|
130
|
-
return this.readBuffer(16);
|
|
131
|
-
}
|
|
132
|
-
case ParameterType.BUFFER18: {
|
|
133
|
-
return this.readBuffer(18);
|
|
134
|
-
}
|
|
135
|
-
case ParameterType.BUFFER32: {
|
|
136
|
-
return this.readBuffer(32);
|
|
137
|
-
}
|
|
138
|
-
case ParameterType.BUFFER42: {
|
|
139
|
-
return this.readBuffer(42);
|
|
140
|
-
}
|
|
141
|
-
case ParameterType.BUFFER100: {
|
|
142
|
-
return this.readBuffer(100);
|
|
143
|
-
}
|
|
144
|
-
case ParameterType.LIST_UINT8: {
|
|
145
|
-
if (options.length == null) {
|
|
146
|
-
throw new Error("Cannot read LIST_UINT8 without length option specified");
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
return this.readListUInt8(options.length);
|
|
150
|
-
}
|
|
151
|
-
case ParameterType.LIST_UINT16: {
|
|
152
|
-
if (options.length == null) {
|
|
153
|
-
throw new Error("Cannot read LIST_UINT16 without length option specified");
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
return this.readListUInt16(options.length);
|
|
157
|
-
}
|
|
158
|
-
case ParameterType.LIST_NETWORK: {
|
|
159
|
-
if (options.length == null) {
|
|
160
|
-
throw new Error("Cannot read LIST_NETWORK without length option specified");
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
return this.readListNetwork(options.length);
|
|
164
|
-
}
|
|
165
|
-
case ParameterType.INT8: {
|
|
166
|
-
return this.readInt8();
|
|
167
|
-
}
|
|
168
|
-
default: {
|
|
169
|
-
throw new Error(`Read for '${type}' not available`);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
export default BuffaloZnp;
|