zigbee-herdsman 3.5.2 → 4.0.2
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/.github/dependabot.yml +4 -0
- package/.github/workflows/ci.yml +3 -5
- package/.github/workflows/stale.yml +1 -1
- package/.github/workflows/typedoc.yaml +1 -1
- package/.release-please-manifest.json +1 -1
- package/.vscode/extensions.json +3 -0
- package/.vscode/settings.json +11 -0
- package/CHANGELOG.md +32 -0
- package/biome.json +89 -0
- package/dist/adapter/adapter.d.ts +11 -11
- package/dist/adapter/adapter.d.ts.map +1 -1
- package/dist/adapter/adapter.js +14 -14
- package/dist/adapter/adapterDiscovery.d.ts +6 -6
- package/dist/adapter/adapterDiscovery.d.ts.map +1 -1
- package/dist/adapter/adapterDiscovery.js +139 -141
- package/dist/adapter/adapterDiscovery.js.map +1 -1
- package/dist/adapter/const.d.ts +1 -1
- package/dist/adapter/const.js +2 -2
- package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +16 -16
- package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
- package/dist/adapter/deconz/adapter/deconzAdapter.js +95 -100
- package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
- package/dist/adapter/deconz/driver/constants.d.ts +5 -5
- package/dist/adapter/deconz/driver/constants.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/driver.d.ts +9 -9
- package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/driver.js +112 -106
- package/dist/adapter/deconz/driver/driver.js.map +1 -1
- package/dist/adapter/deconz/driver/frame.d.ts +1 -1
- package/dist/adapter/deconz/driver/frame.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/frame.js +1 -2
- package/dist/adapter/deconz/driver/frame.js.map +1 -1
- package/dist/adapter/deconz/driver/frameParser.d.ts +1 -1
- package/dist/adapter/deconz/driver/frameParser.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/frameParser.js +66 -70
- package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
- package/dist/adapter/deconz/driver/parser.d.ts +1 -1
- package/dist/adapter/deconz/driver/parser.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/parser.js +2 -2
- package/dist/adapter/deconz/driver/parser.js.map +1 -1
- package/dist/adapter/deconz/driver/writer.d.ts +2 -2
- package/dist/adapter/deconz/driver/writer.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/writer.js +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.d.ts +19 -19
- package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.js +117 -97
- package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
- package/dist/adapter/ember/adapter/endpoints.d.ts +1 -1
- package/dist/adapter/ember/adapter/endpoints.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/oneWaitress.d.ts +5 -5
- package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/oneWaitress.js +2 -2
- package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -1
- package/dist/adapter/ember/adapter/tokensManager.d.ts +3 -3
- package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/tokensManager.js +20 -23
- package/dist/adapter/ember/adapter/tokensManager.js.map +1 -1
- package/dist/adapter/ember/enums.d.ts +4 -4
- package/dist/adapter/ember/enums.d.ts.map +1 -1
- package/dist/adapter/ember/enums.js +4 -6
- package/dist/adapter/ember/enums.js.map +1 -1
- package/dist/adapter/ember/ezsp/buffalo.d.ts +4 -4
- package/dist/adapter/ember/ezsp/buffalo.d.ts.map +1 -1
- package/dist/adapter/ember/ezsp/buffalo.js +30 -32
- package/dist/adapter/ember/ezsp/buffalo.js.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.d.ts +46 -46
- package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.js +85 -111
- package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
- package/dist/adapter/ember/ezspError.d.ts +1 -1
- package/dist/adapter/ember/types.d.ts +14 -14
- package/dist/adapter/ember/types.d.ts.map +1 -1
- package/dist/adapter/ember/uart/ash.d.ts +5 -5
- package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
- package/dist/adapter/ember/uart/ash.js +80 -71
- package/dist/adapter/ember/uart/ash.js.map +1 -1
- package/dist/adapter/ember/uart/parser.d.ts +2 -2
- package/dist/adapter/ember/uart/parser.d.ts.map +1 -1
- package/dist/adapter/ember/uart/parser.js +2 -1
- package/dist/adapter/ember/uart/parser.js.map +1 -1
- package/dist/adapter/ember/uart/queues.js +27 -29
- package/dist/adapter/ember/uart/queues.js.map +1 -1
- package/dist/adapter/ember/uart/writer.d.ts +1 -1
- package/dist/adapter/ember/uart/writer.d.ts.map +1 -1
- package/dist/adapter/ember/uart/writer.js +3 -5
- package/dist/adapter/ember/uart/writer.js.map +1 -1
- package/dist/adapter/ember/utils/initters.d.ts +2 -2
- package/dist/adapter/ember/utils/initters.d.ts.map +1 -1
- package/dist/adapter/ember/utils/initters.js +1 -1
- package/dist/adapter/ember/utils/math.js +1 -1
- package/dist/adapter/events.d.ts +1 -1
- package/dist/adapter/events.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/backup.d.ts +3 -3
- package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/backup.js +8 -10
- package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +12 -12
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.js +45 -44
- package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
- package/dist/adapter/ezsp/driver/driver.d.ts +12 -12
- package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/driver.js +148 -141
- package/dist/adapter/ezsp/driver/driver.js.map +1 -1
- package/dist/adapter/ezsp/driver/ezsp.d.ts +7 -7
- package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/ezsp.js +61 -59
- package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
- package/dist/adapter/ezsp/driver/frame.js +2 -2
- package/dist/adapter/ezsp/driver/index.d.ts +2 -2
- package/dist/adapter/ezsp/driver/multicast.d.ts +8 -5
- package/dist/adapter/ezsp/driver/multicast.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/multicast.js +9 -9
- package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
- package/dist/adapter/ezsp/driver/parser.d.ts +1 -1
- package/dist/adapter/ezsp/driver/parser.js +3 -3
- package/dist/adapter/ezsp/driver/types/basic.d.ts +5 -5
- package/dist/adapter/ezsp/driver/types/basic.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/types/basic.js +12 -33
- package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/index.d.ts +3 -3
- package/dist/adapter/ezsp/driver/types/index.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/types/index.js +8 -9
- package/dist/adapter/ezsp/driver/types/index.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/named.d.ts +2 -2
- package/dist/adapter/ezsp/driver/types/named.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/types/named.js +8 -11
- package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/struct.d.ts +2 -2
- package/dist/adapter/ezsp/driver/types/struct.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/types/struct.js +207 -214
- package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
- package/dist/adapter/ezsp/driver/uart.d.ts +2 -2
- package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/uart.js +48 -37
- package/dist/adapter/ezsp/driver/uart.js.map +1 -1
- package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +3 -3
- package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +16 -34
- package/dist/adapter/ezsp/driver/utils/crc16ccitt.js.map +1 -1
- package/dist/adapter/ezsp/driver/utils/index.d.ts +4 -4
- package/dist/adapter/ezsp/driver/utils/index.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/utils/index.js +4 -4
- package/dist/adapter/ezsp/driver/utils/index.js.map +1 -1
- package/dist/adapter/ezsp/driver/writer.d.ts +1 -1
- package/dist/adapter/ezsp/driver/writer.js +2 -2
- package/dist/adapter/index.d.ts +3 -3
- package/dist/adapter/serialPort.d.ts +3 -3
- package/dist/adapter/serialPort.d.ts.map +1 -1
- package/dist/adapter/serialPort.js +1 -0
- package/dist/adapter/serialPort.js.map +1 -1
- package/dist/adapter/socketPortUtils.js +3 -3
- package/dist/adapter/tstype.d.ts +6 -6
- package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +4 -4
- package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-backup.js +106 -119
- package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +10 -10
- package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +23 -24
- package/dist/adapter/z-stack/adapter/adapter-nv-memory.js.map +1 -1
- package/dist/adapter/z-stack/adapter/manager.d.ts +6 -6
- package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/manager.js +116 -127
- package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
- package/dist/adapter/z-stack/adapter/tstype.d.ts +3 -3
- package/dist/adapter/z-stack/adapter/tstype.js +3 -3
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +10 -10
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/zStackAdapter.js +125 -137
- package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
- package/dist/adapter/z-stack/constants/common.d.ts.map +1 -1
- package/dist/adapter/z-stack/constants/common.js +0 -3
- package/dist/adapter/z-stack/constants/common.js.map +1 -1
- package/dist/adapter/z-stack/constants/index.d.ts +10 -10
- package/dist/adapter/z-stack/constants/index.d.ts.map +1 -1
- package/dist/adapter/z-stack/constants/index.js +2 -2
- package/dist/adapter/z-stack/constants/index.js.map +1 -1
- package/dist/adapter/z-stack/constants/utils.d.ts +1 -1
- package/dist/adapter/z-stack/constants/utils.js +2 -2
- package/dist/adapter/z-stack/constants/utils.js.map +1 -1
- package/dist/adapter/z-stack/models/startup-options.d.ts +2 -2
- package/dist/adapter/z-stack/models/startup-options.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +4 -5
- package/dist/adapter/z-stack/structs/entries/address-manager-entry.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts +2 -2
- package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/address-manager-table.js +3 -4
- package/dist/adapter/z-stack/structs/entries/address-manager-table.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +1 -2
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts +2 -2
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +3 -4
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +6 -7
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts +2 -2
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +3 -4
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/channel-list.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/channel-list.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/channel-list.js +1 -2
- package/dist/adapter/z-stack/structs/entries/channel-list.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/has-configured.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/has-configured.js +2 -3
- package/dist/adapter/z-stack/structs/entries/has-configured.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/index.d.ts +16 -16
- package/dist/adapter/z-stack/structs/entries/nib.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/nib.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nib.js +49 -50
- package/dist/adapter/z-stack/structs/entries/nib.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +1 -2
- package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-key.js +1 -2
- package/dist/adapter/z-stack/structs/entries/nwk-key.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +1 -2
- package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +3 -4
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts +2 -2
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +3 -4
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +4 -5
- package/dist/adapter/z-stack/structs/entries/security-manager-entry.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts +2 -2
- package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/security-manager-table.js +3 -4
- package/dist/adapter/z-stack/structs/entries/security-manager-table.js.map +1 -1
- package/dist/adapter/z-stack/structs/index.d.ts +4 -4
- package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts +2 -2
- package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/struct.d.ts +8 -8
- package/dist/adapter/z-stack/structs/struct.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/struct.js +42 -43
- package/dist/adapter/z-stack/structs/struct.js.map +1 -1
- package/dist/adapter/z-stack/structs/table.d.ts +3 -3
- package/dist/adapter/z-stack/structs/table.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/table.js +10 -10
- package/dist/adapter/z-stack/structs/table.js.map +1 -1
- package/dist/adapter/z-stack/unpi/frame.d.ts +1 -1
- package/dist/adapter/z-stack/unpi/frame.d.ts.map +1 -1
- package/dist/adapter/z-stack/unpi/frame.js +2 -4
- package/dist/adapter/z-stack/unpi/frame.js.map +1 -1
- package/dist/adapter/z-stack/unpi/index.d.ts +4 -4
- package/dist/adapter/z-stack/unpi/parser.d.ts +1 -1
- package/dist/adapter/z-stack/unpi/parser.js +3 -3
- package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
- package/dist/adapter/z-stack/unpi/writer.d.ts +2 -2
- package/dist/adapter/z-stack/unpi/writer.d.ts.map +1 -1
- package/dist/adapter/z-stack/unpi/writer.js +1 -1
- package/dist/adapter/z-stack/utils/index.d.ts +2 -2
- package/dist/adapter/z-stack/utils/network-options.d.ts +1 -1
- package/dist/adapter/z-stack/utils/network-options.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +3 -3
- package/dist/adapter/z-stack/znp/buffaloZnp.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/buffaloZnp.js +34 -20
- package/dist/adapter/z-stack/znp/buffaloZnp.js.map +1 -1
- package/dist/adapter/z-stack/znp/definition.d.ts +2 -2
- package/dist/adapter/z-stack/znp/definition.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/definition.js +1111 -1111
- package/dist/adapter/z-stack/znp/index.d.ts +2 -2
- package/dist/adapter/z-stack/znp/tstype.d.ts +7 -7
- package/dist/adapter/z-stack/znp/tstype.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/utils.d.ts +1 -1
- package/dist/adapter/z-stack/znp/utils.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/utils.js +2 -2
- package/dist/adapter/z-stack/znp/znp.d.ts +7 -7
- package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/znp.js +46 -45
- package/dist/adapter/z-stack/znp/znp.js.map +1 -1
- package/dist/adapter/z-stack/znp/zpiObject.d.ts +8 -8
- package/dist/adapter/z-stack/znp/zpiObject.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/zpiObject.js +6 -6
- package/dist/adapter/z-stack/znp/zpiObject.js.map +1 -1
- package/dist/adapter/zboss/adapter/zbossAdapter.d.ts +11 -11
- package/dist/adapter/zboss/adapter/zbossAdapter.d.ts.map +1 -1
- package/dist/adapter/zboss/adapter/zbossAdapter.js +37 -36
- package/dist/adapter/zboss/adapter/zbossAdapter.js.map +1 -1
- package/dist/adapter/zboss/commands.d.ts +4 -6
- package/dist/adapter/zboss/commands.d.ts.map +1 -1
- package/dist/adapter/zboss/commands.js +321 -287
- package/dist/adapter/zboss/commands.js.map +1 -1
- package/dist/adapter/zboss/driver.d.ts +9 -9
- package/dist/adapter/zboss/driver.d.ts.map +1 -1
- package/dist/adapter/zboss/driver.js +25 -25
- package/dist/adapter/zboss/driver.js.map +1 -1
- package/dist/adapter/zboss/frame.d.ts +9 -9
- package/dist/adapter/zboss/frame.d.ts.map +1 -1
- package/dist/adapter/zboss/frame.js +15 -15
- package/dist/adapter/zboss/frame.js.map +1 -1
- package/dist/adapter/zboss/reader.d.ts +2 -2
- package/dist/adapter/zboss/reader.d.ts.map +1 -1
- package/dist/adapter/zboss/reader.js +6 -5
- package/dist/adapter/zboss/reader.js.map +1 -1
- package/dist/adapter/zboss/uart.d.ts +3 -3
- package/dist/adapter/zboss/uart.d.ts.map +1 -1
- package/dist/adapter/zboss/uart.js +36 -36
- package/dist/adapter/zboss/uart.js.map +1 -1
- package/dist/adapter/zboss/writer.d.ts +1 -1
- package/dist/adapter/zboss/writer.d.ts.map +1 -1
- package/dist/adapter/zboss/writer.js +3 -5
- package/dist/adapter/zboss/writer.js.map +1 -1
- package/dist/adapter/zigate/adapter/patchZdoBuffaloBE.js +2 -2
- package/dist/adapter/zigate/adapter/patchZdoBuffaloBE.js.map +1 -1
- package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +14 -14
- package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
- package/dist/adapter/zigate/adapter/zigateAdapter.js +52 -53
- package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
- package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +6 -6
- package/dist/adapter/zigate/driver/buffaloZiGate.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/buffaloZiGate.js +41 -23
- package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
- package/dist/adapter/zigate/driver/commandType.d.ts +2 -2
- package/dist/adapter/zigate/driver/commandType.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/commandType.js +37 -37
- package/dist/adapter/zigate/driver/commandType.js.map +1 -1
- package/dist/adapter/zigate/driver/constants.d.ts +27 -200
- package/dist/adapter/zigate/driver/constants.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/constants.js +40 -236
- package/dist/adapter/zigate/driver/constants.js.map +1 -1
- package/dist/adapter/zigate/driver/frame.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/frame.js +4 -3
- package/dist/adapter/zigate/driver/frame.js.map +1 -1
- package/dist/adapter/zigate/driver/messageType.d.ts +1 -1
- package/dist/adapter/zigate/driver/messageType.js +76 -76
- package/dist/adapter/zigate/driver/ziGateObject.d.ts +3 -3
- package/dist/adapter/zigate/driver/ziGateObject.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/ziGateObject.js +7 -6
- package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
- package/dist/adapter/zigate/driver/zigate.d.ts +8 -8
- package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/zigate.js +59 -54
- package/dist/adapter/zigate/driver/zigate.js.map +1 -1
- package/dist/adapter/zoh/adapter/utils.js +1 -1
- package/dist/adapter/zoh/adapter/zohAdapter.d.ts +13 -13
- package/dist/adapter/zoh/adapter/zohAdapter.d.ts.map +1 -1
- package/dist/adapter/zoh/adapter/zohAdapter.js +101 -67
- package/dist/adapter/zoh/adapter/zohAdapter.js.map +1 -1
- package/dist/buffalo/buffalo.d.ts +2 -2
- package/dist/buffalo/buffalo.js +4 -4
- package/dist/buffalo/buffalo.js.map +1 -1
- package/dist/buffalo/index.d.ts +1 -1
- package/dist/controller/controller.d.ts +7 -7
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/controller/controller.js +94 -98
- package/dist/controller/controller.js.map +1 -1
- package/dist/controller/database.d.ts +1 -1
- package/dist/controller/database.d.ts.map +1 -1
- package/dist/controller/database.js +9 -9
- package/dist/controller/database.js.map +1 -1
- package/dist/controller/events.d.ts +6 -6
- package/dist/controller/events.d.ts.map +1 -1
- package/dist/controller/greenPower.d.ts +21 -21
- package/dist/controller/greenPower.d.ts.map +1 -1
- package/dist/controller/greenPower.js +41 -41
- package/dist/controller/greenPower.js.map +1 -1
- package/dist/controller/helpers/index.d.ts +1 -1
- package/dist/controller/helpers/request.d.ts +2 -2
- package/dist/controller/helpers/request.d.ts.map +1 -1
- package/dist/controller/helpers/request.js +31 -27
- package/dist/controller/helpers/request.js.map +1 -1
- package/dist/controller/helpers/requestQueue.d.ts +3 -3
- package/dist/controller/helpers/requestQueue.d.ts.map +1 -1
- package/dist/controller/helpers/requestQueue.js +20 -20
- package/dist/controller/helpers/requestQueue.js.map +1 -1
- package/dist/controller/helpers/zclFrameConverter.d.ts +2 -2
- package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
- package/dist/controller/helpers/zclFrameConverter.js +1 -1
- package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
- package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts +6 -4
- package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts.map +1 -1
- package/dist/controller/helpers/zclTransactionSequenceNumber.js +6 -5
- package/dist/controller/helpers/zclTransactionSequenceNumber.js.map +1 -1
- package/dist/controller/index.d.ts +1 -1
- package/dist/controller/model/device.d.ts +23 -19
- package/dist/controller/model/device.d.ts.map +1 -1
- package/dist/controller/model/device.js +153 -128
- package/dist/controller/model/device.js.map +1 -1
- package/dist/controller/model/endpoint.d.ts +11 -11
- package/dist/controller/model/endpoint.d.ts.map +1 -1
- package/dist/controller/model/endpoint.js +84 -67
- package/dist/controller/model/endpoint.js.map +1 -1
- package/dist/controller/model/entity.d.ts +3 -3
- package/dist/controller/model/entity.d.ts.map +1 -1
- package/dist/controller/model/group.d.ts +4 -4
- package/dist/controller/model/group.d.ts.map +1 -1
- package/dist/controller/model/group.js +21 -9
- package/dist/controller/model/group.js.map +1 -1
- package/dist/controller/model/index.d.ts +4 -4
- package/dist/controller/touchlink.d.ts +1 -1
- package/dist/controller/touchlink.d.ts.map +1 -1
- package/dist/controller/touchlink.js +11 -11
- package/dist/controller/tstype.d.ts +3 -3
- package/dist/index.d.ts +10 -10
- package/dist/models/backup-storage-legacy.d.ts +14 -16
- package/dist/models/backup-storage-legacy.d.ts.map +1 -1
- package/dist/models/backup-storage-unified.d.ts +1 -1
- package/dist/models/backup.d.ts +2 -2
- package/dist/models/backup.d.ts.map +1 -1
- package/dist/models/index.d.ts +4 -4
- package/dist/utils/backup.d.ts +1 -1
- package/dist/utils/backup.d.ts.map +1 -1
- package/dist/utils/backup.js +26 -26
- package/dist/utils/backup.js.map +1 -1
- package/dist/utils/index.d.ts +5 -5
- package/dist/utils/logger.js +3 -3
- package/dist/utils/patchBigIntSerialization.js +1 -1
- package/dist/utils/patchBigIntSerialization.js.map +1 -1
- package/dist/utils/queue.d.ts.map +1 -1
- package/dist/utils/queue.js +1 -0
- package/dist/utils/queue.js.map +1 -1
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +5 -4
- package/dist/utils/utils.js.map +1 -1
- package/dist/utils/waitress.d.ts +1 -1
- package/dist/utils/waitress.js +3 -3
- package/dist/zspec/consts.d.ts +1 -1
- package/dist/zspec/consts.d.ts.map +1 -1
- package/dist/zspec/consts.js +1 -1
- package/dist/zspec/index.d.ts +3 -3
- package/dist/zspec/tstypes.d.ts +1 -1
- package/dist/zspec/utils.d.ts +4 -4
- package/dist/zspec/utils.d.ts.map +1 -1
- package/dist/zspec/utils.js +9 -13
- package/dist/zspec/utils.js.map +1 -1
- package/dist/zspec/zcl/buffaloZcl.d.ts +3 -3
- package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -1
- package/dist/zspec/zcl/buffaloZcl.js +127 -84
- package/dist/zspec/zcl/buffaloZcl.js.map +1 -1
- package/dist/zspec/zcl/definition/cluster.d.ts +1 -1
- package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/cluster.js +1280 -911
- package/dist/zspec/zcl/definition/cluster.js.map +1 -1
- package/dist/zspec/zcl/definition/consts.js +7 -7
- package/dist/zspec/zcl/definition/foundation.d.ts +3 -3
- package/dist/zspec/zcl/definition/foundation.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/foundation.js +88 -89
- package/dist/zspec/zcl/definition/foundation.js.map +1 -1
- package/dist/zspec/zcl/definition/manufacturerCode.d.ts +1 -1
- package/dist/zspec/zcl/definition/manufacturerCode.js +1 -1
- package/dist/zspec/zcl/definition/manufacturerCode.js.map +1 -1
- package/dist/zspec/zcl/definition/status.d.ts +3 -3
- package/dist/zspec/zcl/definition/status.js +3 -3
- package/dist/zspec/zcl/definition/tstype.d.ts +3 -3
- package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
- package/dist/zspec/zcl/index.d.ts +10 -10
- package/dist/zspec/zcl/utils.d.ts +3 -3
- package/dist/zspec/zcl/utils.d.ts.map +1 -1
- package/dist/zspec/zcl/utils.js +18 -21
- package/dist/zspec/zcl/utils.js.map +1 -1
- package/dist/zspec/zcl/zclFrame.d.ts +7 -7
- package/dist/zspec/zcl/zclFrame.d.ts.map +1 -1
- package/dist/zspec/zcl/zclFrame.js +38 -41
- package/dist/zspec/zcl/zclFrame.js.map +1 -1
- package/dist/zspec/zcl/zclHeader.d.ts +2 -2
- package/dist/zspec/zcl/zclHeader.d.ts.map +1 -1
- package/dist/zspec/zcl/zclHeader.js +3 -3
- package/dist/zspec/zcl/zclStatusError.d.ts +1 -1
- package/dist/zspec/zdo/buffaloZdo.d.ts +7 -7
- package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -1
- package/dist/zspec/zdo/buffaloZdo.js +4 -4
- package/dist/zspec/zdo/buffaloZdo.js.map +1 -1
- package/dist/zspec/zdo/definition/status.d.ts +1 -1
- package/dist/zspec/zdo/definition/status.js +1 -1
- package/dist/zspec/zdo/definition/tstypes.d.ts +48 -48
- package/dist/zspec/zdo/definition/tstypes.d.ts.map +1 -1
- package/dist/zspec/zdo/index.d.ts +7 -7
- package/dist/zspec/zdo/utils.d.ts +2 -2
- package/dist/zspec/zdo/utils.d.ts.map +1 -1
- package/dist/zspec/zdo/utils.js +1 -1
- package/dist/zspec/zdo/utils.js.map +1 -1
- package/dist/zspec/zdo/zdoStatusError.d.ts +1 -1
- package/examples/join-and-log.js +5 -5
- package/package.json +4 -11
- package/src/adapter/adapter.ts +189 -0
- package/src/adapter/adapterDiscovery.ts +653 -0
- package/src/adapter/const.ts +12 -0
- package/src/adapter/deconz/adapter/deconzAdapter.ts +768 -0
- package/src/adapter/deconz/driver/constants.ts +180 -0
- package/src/adapter/deconz/driver/driver.ts +900 -0
- package/src/adapter/deconz/driver/frame.ts +11 -0
- package/src/adapter/deconz/driver/frameParser.ts +557 -0
- package/src/adapter/deconz/driver/parser.ts +45 -0
- package/src/adapter/deconz/driver/writer.ts +22 -0
- package/src/adapter/deconz/types.d.ts +13 -0
- package/src/adapter/ember/adapter/emberAdapter.ts +2266 -0
- package/src/adapter/ember/adapter/endpoints.ts +86 -0
- package/src/adapter/ember/adapter/oneWaitress.ts +322 -0
- package/src/adapter/ember/adapter/tokensManager.ts +782 -0
- package/src/adapter/ember/consts.ts +178 -0
- package/src/adapter/ember/enums.ts +2123 -0
- package/src/adapter/ember/ezsp/buffalo.ts +1397 -0
- package/src/adapter/ember/ezsp/consts.ts +148 -0
- package/src/adapter/ember/ezsp/enums.ts +1087 -0
- package/src/adapter/ember/ezsp/ezsp.ts +8985 -0
- package/src/adapter/ember/ezspError.ts +10 -0
- package/src/adapter/ember/types.ts +866 -0
- package/src/adapter/ember/uart/ash.ts +1969 -0
- package/src/adapter/ember/uart/consts.ts +109 -0
- package/src/adapter/ember/uart/enums.ts +192 -0
- package/src/adapter/ember/uart/parser.ts +48 -0
- package/src/adapter/ember/uart/queues.ts +247 -0
- package/src/adapter/ember/uart/writer.ts +53 -0
- package/src/adapter/ember/utils/initters.ts +58 -0
- package/src/adapter/ember/utils/math.ts +73 -0
- package/src/adapter/events.ts +21 -0
- package/src/adapter/ezsp/adapter/backup.ts +109 -0
- package/src/adapter/ezsp/adapter/ezspAdapter.ts +614 -0
- package/src/adapter/ezsp/driver/commands.ts +2497 -0
- package/src/adapter/ezsp/driver/consts.ts +11 -0
- package/src/adapter/ezsp/driver/driver.ts +1002 -0
- package/src/adapter/ezsp/driver/ezsp.ts +802 -0
- package/src/adapter/ezsp/driver/frame.ts +101 -0
- package/src/adapter/ezsp/driver/index.ts +4 -0
- package/src/adapter/ezsp/driver/multicast.ts +78 -0
- package/src/adapter/ezsp/driver/parser.ts +81 -0
- package/src/adapter/ezsp/driver/types/basic.ts +201 -0
- package/src/adapter/ezsp/driver/types/index.ts +239 -0
- package/src/adapter/ezsp/driver/types/named.ts +2330 -0
- package/src/adapter/ezsp/driver/types/struct.ts +844 -0
- package/src/adapter/ezsp/driver/uart.ts +460 -0
- package/src/adapter/ezsp/driver/utils/crc16ccitt.ts +44 -0
- package/src/adapter/ezsp/driver/utils/index.ts +32 -0
- package/src/adapter/ezsp/driver/writer.ts +64 -0
- package/src/adapter/index.ts +3 -0
- package/src/adapter/serialPort.ts +58 -0
- package/src/adapter/socketPortUtils.ts +16 -0
- package/src/adapter/tstype.ts +78 -0
- package/src/adapter/z-stack/adapter/adapter-backup.ts +519 -0
- package/src/adapter/z-stack/adapter/adapter-nv-memory.ts +457 -0
- package/src/adapter/z-stack/adapter/endpoints.ts +57 -0
- package/src/adapter/z-stack/adapter/manager.ts +544 -0
- package/src/adapter/z-stack/adapter/tstype.ts +6 -0
- package/src/adapter/z-stack/adapter/zStackAdapter.ts +1190 -0
- package/src/adapter/z-stack/constants/af.ts +27 -0
- package/src/adapter/z-stack/constants/common.ts +285 -0
- package/src/adapter/z-stack/constants/dbg.ts +23 -0
- package/src/adapter/z-stack/constants/index.ts +11 -0
- package/src/adapter/z-stack/constants/mac.ts +128 -0
- package/src/adapter/z-stack/constants/sapi.ts +25 -0
- package/src/adapter/z-stack/constants/sys.ts +72 -0
- package/src/adapter/z-stack/constants/util.ts +82 -0
- package/src/adapter/z-stack/constants/utils.ts +14 -0
- package/src/adapter/z-stack/constants/zdo.ts +103 -0
- package/src/adapter/z-stack/models/startup-options.ts +13 -0
- package/src/adapter/z-stack/structs/entries/address-manager-entry.ts +44 -0
- package/src/adapter/z-stack/structs/entries/address-manager-table.ts +19 -0
- package/src/adapter/z-stack/structs/entries/aps-link-key-data-entry.ts +12 -0
- package/src/adapter/z-stack/structs/entries/aps-link-key-data-table.ts +21 -0
- package/src/adapter/z-stack/structs/entries/aps-tc-link-key-entry.ts +19 -0
- package/src/adapter/z-stack/structs/entries/aps-tc-link-key-table.ts +21 -0
- package/src/adapter/z-stack/structs/entries/channel-list.ts +8 -0
- package/src/adapter/z-stack/structs/entries/has-configured.ts +16 -0
- package/src/adapter/z-stack/structs/entries/index.ts +16 -0
- package/src/adapter/z-stack/structs/entries/nib.ts +66 -0
- package/src/adapter/z-stack/structs/entries/nwk-key-descriptor.ts +15 -0
- package/src/adapter/z-stack/structs/entries/nwk-key.ts +13 -0
- package/src/adapter/z-stack/structs/entries/nwk-pan-id.ts +8 -0
- package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.ts +20 -0
- package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.ts +19 -0
- package/src/adapter/z-stack/structs/entries/security-manager-entry.ts +33 -0
- package/src/adapter/z-stack/structs/entries/security-manager-table.ts +22 -0
- package/src/adapter/z-stack/structs/index.ts +4 -0
- package/src/adapter/z-stack/structs/serializable-memory-object.ts +14 -0
- package/src/adapter/z-stack/structs/struct.ts +367 -0
- package/src/adapter/z-stack/structs/table.ts +198 -0
- package/src/adapter/z-stack/unpi/constants.ts +33 -0
- package/src/adapter/z-stack/unpi/frame.ts +62 -0
- package/src/adapter/z-stack/unpi/index.ts +4 -0
- package/src/adapter/z-stack/unpi/parser.ts +56 -0
- package/src/adapter/z-stack/unpi/writer.ts +21 -0
- package/src/adapter/z-stack/utils/channel-list.ts +40 -0
- package/src/adapter/z-stack/utils/index.ts +2 -0
- package/src/adapter/z-stack/utils/network-options.ts +26 -0
- package/src/adapter/z-stack/znp/buffaloZnp.ts +175 -0
- package/src/adapter/z-stack/znp/definition.ts +2713 -0
- package/src/adapter/z-stack/znp/index.ts +2 -0
- package/src/adapter/z-stack/znp/parameterType.ts +22 -0
- package/src/adapter/z-stack/znp/tstype.ts +44 -0
- package/src/adapter/z-stack/znp/utils.ts +10 -0
- package/src/adapter/z-stack/znp/znp.ts +342 -0
- package/src/adapter/z-stack/znp/zpiObject.ts +148 -0
- package/src/adapter/zboss/adapter/zbossAdapter.ts +527 -0
- package/src/adapter/zboss/commands.ts +1184 -0
- package/src/adapter/zboss/consts.ts +9 -0
- package/src/adapter/zboss/driver.ts +423 -0
- package/src/adapter/zboss/enums.ts +360 -0
- package/src/adapter/zboss/frame.ts +227 -0
- package/src/adapter/zboss/reader.ts +65 -0
- package/src/adapter/zboss/types.ts +0 -0
- package/src/adapter/zboss/uart.ts +428 -0
- package/src/adapter/zboss/utils.ts +58 -0
- package/src/adapter/zboss/writer.ts +49 -0
- package/src/adapter/zigate/adapter/patchZdoBuffaloBE.ts +27 -0
- package/src/adapter/zigate/adapter/zigateAdapter.ts +618 -0
- package/src/adapter/zigate/driver/LICENSE +17 -0
- package/src/adapter/zigate/driver/buffaloZiGate.ts +212 -0
- package/src/adapter/zigate/driver/commandType.ts +418 -0
- package/src/adapter/zigate/driver/constants.ts +150 -0
- package/src/adapter/zigate/driver/frame.ts +197 -0
- package/src/adapter/zigate/driver/messageType.ts +287 -0
- package/src/adapter/zigate/driver/parameterType.ts +32 -0
- package/src/adapter/zigate/driver/ziGateObject.ts +146 -0
- package/src/adapter/zigate/driver/zigate.ts +426 -0
- package/src/adapter/zoh/adapter/utils.ts +27 -0
- package/src/adapter/zoh/adapter/zohAdapter.ts +837 -0
- package/src/buffalo/buffalo.ts +335 -0
- package/src/buffalo/index.ts +1 -0
- package/src/controller/controller.ts +1048 -0
- package/src/controller/database.ts +124 -0
- package/src/controller/events.ts +51 -0
- package/src/controller/greenPower.ts +603 -0
- package/src/controller/helpers/index.ts +1 -0
- package/src/controller/helpers/request.ts +94 -0
- package/src/controller/helpers/requestQueue.ts +125 -0
- package/src/controller/helpers/zclFrameConverter.ts +51 -0
- package/src/controller/helpers/zclTransactionSequenceNumber.ts +19 -0
- package/src/controller/index.ts +6 -0
- package/src/controller/model/device.ts +1320 -0
- package/src/controller/model/endpoint.ts +1040 -0
- package/src/controller/model/entity.ts +23 -0
- package/src/controller/model/group.ts +333 -0
- package/src/controller/model/index.ts +4 -0
- package/src/controller/touchlink.ts +189 -0
- package/src/controller/tstype.ts +39 -0
- package/src/index.ts +12 -0
- package/src/models/backup-storage-legacy.ts +48 -0
- package/src/models/backup-storage-unified.ts +47 -0
- package/src/models/backup.ts +37 -0
- package/src/models/index.ts +5 -0
- package/src/models/network-options.ts +11 -0
- package/src/utils/backup.ts +152 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/logger.ts +20 -0
- package/src/utils/patchBigIntSerialization.ts +8 -0
- package/src/utils/queue.ts +76 -0
- package/src/utils/types.d.ts +3 -0
- package/src/utils/utils.ts +20 -0
- package/src/utils/wait.ts +5 -0
- package/src/utils/waitress.ts +95 -0
- package/src/zspec/consts.ts +84 -0
- package/src/zspec/enums.ts +22 -0
- package/src/zspec/index.ts +3 -0
- package/src/zspec/tstypes.ts +18 -0
- package/src/zspec/utils.ts +308 -0
- package/src/zspec/zcl/buffaloZcl.ts +1133 -0
- package/src/zspec/zcl/definition/cluster.ts +5766 -0
- package/src/zspec/zcl/definition/consts.ts +24 -0
- package/src/zspec/zcl/definition/enums.ts +194 -0
- package/src/zspec/zcl/definition/foundation.ts +301 -0
- package/src/zspec/zcl/definition/manufacturerCode.ts +729 -0
- package/src/zspec/zcl/definition/status.ts +69 -0
- package/src/zspec/zcl/definition/tstype.ts +268 -0
- package/src/zspec/zcl/index.ts +10 -0
- package/src/zspec/zcl/utils.ts +342 -0
- package/src/zspec/zcl/zclFrame.ts +336 -0
- package/src/zspec/zcl/zclHeader.ts +102 -0
- package/src/zspec/zcl/zclStatusError.ts +10 -0
- package/src/zspec/zdo/buffaloZdo.ts +2345 -0
- package/src/zspec/zdo/definition/clusters.ts +722 -0
- package/src/zspec/zdo/definition/consts.ts +16 -0
- package/src/zspec/zdo/definition/enums.ts +99 -0
- package/src/zspec/zdo/definition/status.ts +105 -0
- package/src/zspec/zdo/definition/tstypes.ts +1062 -0
- package/src/zspec/zdo/index.ts +7 -0
- package/src/zspec/zdo/utils.ts +76 -0
- package/src/zspec/zdo/zdoStatusError.ts +10 -0
- package/test/adapter/adapter.test.ts +1062 -0
- package/test/adapter/ember/ash.test.ts +337 -0
- package/test/adapter/ember/consts.ts +131 -0
- package/test/adapter/ember/emberAdapter.test.ts +3449 -0
- package/test/adapter/ember/ezsp.test.ts +386 -0
- package/test/adapter/ember/ezspBuffalo.test.ts +92 -0
- package/test/adapter/ember/ezspError.test.ts +11 -0
- package/test/adapter/ember/math.test.ts +205 -0
- package/test/adapter/ezsp/frame.test.ts +29 -0
- package/test/adapter/ezsp/uart.test.ts +180 -0
- package/test/adapter/z-stack/adapter.test.ts +3985 -0
- package/test/adapter/z-stack/constants.test.ts +32 -0
- package/test/adapter/z-stack/structs.test.ts +114 -0
- package/test/adapter/z-stack/unpi.test.ts +212 -0
- package/test/adapter/z-stack/znp.test.ts +1284 -0
- package/test/adapter/zboss/fixZdoResponse.test.ts +178 -0
- package/test/adapter/zigate/patchZdoBuffaloBE.test.ts +80 -0
- package/test/adapter/zigate/zdo.test.ts +187 -0
- package/test/adapter/zoh/utils.test.ts +35 -0
- package/test/adapter/zoh/zohAdapter.test.ts +1306 -0
- package/test/buffalo.test.ts +430 -0
- package/test/controller.test.ts +10005 -0
- package/test/greenpower.test.ts +1421 -0
- package/test/mockAdapters.ts +65 -0
- package/test/mockDevices.ts +472 -0
- package/test/testUtils.ts +20 -0
- package/test/tsconfig.json +10 -0
- package/test/utils/math.ts +19 -0
- package/test/utils.test.ts +227 -0
- package/test/vitest.config.mts +25 -0
- package/test/zcl.test.ts +2832 -0
- package/test/zspec/utils.test.ts +131 -0
- package/test/zspec/zcl/buffalo.test.ts +1231 -0
- package/test/zspec/zcl/frame.test.ts +925 -0
- package/test/zspec/zcl/utils.test.ts +280 -0
- package/test/zspec/zdo/buffalo.test.ts +1849 -0
- package/test/zspec/zdo/utils.test.ts +240 -0
- package/.github/workflows/update-dependencies.yml +0 -39
- package/.prettierignore +0 -2
- package/.prettierrc +0 -26
- package/eslint.config.mjs +0 -32
|
@@ -18,7 +18,7 @@ const enums_2 = require("./enums");
|
|
|
18
18
|
const parser_1 = require("./parser");
|
|
19
19
|
const queues_1 = require("./queues");
|
|
20
20
|
const writer_1 = require("./writer");
|
|
21
|
-
const NS =
|
|
21
|
+
const NS = "zh:ember:uart:ash";
|
|
22
22
|
/** ASH get rflag in control byte */
|
|
23
23
|
// const ashGetRFlag = (ctrl: number): number => (ctrl & ASH_RFLAG_MASK) >> ASH_RFLAG_BIT;
|
|
24
24
|
/** ASH get nflag in control byte */
|
|
@@ -261,13 +261,15 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
261
261
|
this.reTxQueue.tail = undefined;
|
|
262
262
|
this.txFree.link = undefined;
|
|
263
263
|
for (let i = 0; i < consts_1.TX_POOL_BUFFERS; i++) {
|
|
264
|
-
this.
|
|
264
|
+
this.txPool[i] = new queues_1.EzspBuffer();
|
|
265
|
+
this.txFree.freeBuffer(this.txPool[i]);
|
|
265
266
|
}
|
|
266
267
|
// All receive buffers are put into rxFree, and rxQueue is empty.
|
|
267
268
|
this.rxQueue.tail = undefined;
|
|
268
269
|
this.rxFree.link = undefined;
|
|
269
270
|
for (let i = 0; i < consts_1.EZSP_HOST_RX_POOL_SIZE; i++) {
|
|
270
|
-
this.
|
|
271
|
+
this.rxPool[i] = new queues_1.EzspBuffer();
|
|
272
|
+
this.rxFree.freeBuffer(this.rxPool[i]);
|
|
271
273
|
}
|
|
272
274
|
}
|
|
273
275
|
/**
|
|
@@ -277,12 +279,11 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
277
279
|
if (this.closing) {
|
|
278
280
|
return false;
|
|
279
281
|
}
|
|
282
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
280
283
|
if (socketPortUtils_1.default.isTcpPath(this.portOptions.path)) {
|
|
281
284
|
return this.socketPort ? !this.socketPort.closed : false;
|
|
282
285
|
}
|
|
283
|
-
|
|
284
|
-
return this.serialPort ? this.serialPort.isOpen : false;
|
|
285
|
-
}
|
|
286
|
+
return this.serialPort ? this.serialPort.isOpen : false;
|
|
286
287
|
}
|
|
287
288
|
/**
|
|
288
289
|
* Get max wait time before response is considered timed out.
|
|
@@ -324,25 +325,27 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
324
325
|
*/
|
|
325
326
|
async initPort() {
|
|
326
327
|
await this.closePort(); // will do nothing if nothing's open
|
|
328
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
327
329
|
if (!socketPortUtils_1.default.isTcpPath(this.portOptions.path)) {
|
|
328
330
|
const serialOpts = {
|
|
331
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
329
332
|
path: this.portOptions.path,
|
|
330
|
-
baudRate: typeof this.portOptions.baudRate ===
|
|
331
|
-
rtscts: typeof this.portOptions.rtscts ===
|
|
333
|
+
baudRate: typeof this.portOptions.baudRate === "number" ? this.portOptions.baudRate : 115200,
|
|
334
|
+
rtscts: typeof this.portOptions.rtscts === "boolean" ? this.portOptions.rtscts : false,
|
|
332
335
|
autoOpen: false,
|
|
333
|
-
parity:
|
|
336
|
+
parity: "none",
|
|
334
337
|
stopBits: 1,
|
|
335
338
|
xon: false,
|
|
336
339
|
xoff: false,
|
|
337
340
|
};
|
|
338
341
|
// enable software flow control if RTS/CTS not enabled in config
|
|
339
342
|
if (!serialOpts.rtscts) {
|
|
340
|
-
logger_1.logger.info(
|
|
343
|
+
logger_1.logger.info("RTS/CTS config is off, enabling software flow control.", NS);
|
|
341
344
|
serialOpts.xon = true;
|
|
342
345
|
serialOpts.xoff = true;
|
|
343
346
|
}
|
|
344
347
|
// @ts-expect-error Jest testing
|
|
345
|
-
if (this.portOptions.binding
|
|
348
|
+
if (this.portOptions.binding !== undefined) {
|
|
346
349
|
// @ts-expect-error Jest testing
|
|
347
350
|
serialOpts.binding = this.portOptions.binding;
|
|
348
351
|
}
|
|
@@ -350,12 +353,12 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
350
353
|
this.serialPort = new serialPort_1.SerialPort(serialOpts);
|
|
351
354
|
this.writer.pipe(this.serialPort);
|
|
352
355
|
this.serialPort.pipe(this.parser);
|
|
353
|
-
this.parser.on(
|
|
356
|
+
this.parser.on("data", this.onFrame.bind(this));
|
|
354
357
|
try {
|
|
355
358
|
await this.serialPort.asyncOpen();
|
|
356
|
-
logger_1.logger.info(
|
|
357
|
-
this.serialPort.once(
|
|
358
|
-
this.serialPort.on(
|
|
359
|
+
logger_1.logger.info("Serial port opened", NS);
|
|
360
|
+
this.serialPort.once("close", this.onPortClose.bind(this));
|
|
361
|
+
this.serialPort.on("error", this.onPortError.bind(this));
|
|
359
362
|
}
|
|
360
363
|
catch (error) {
|
|
361
364
|
await this.stop();
|
|
@@ -363,6 +366,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
363
366
|
}
|
|
364
367
|
}
|
|
365
368
|
else {
|
|
369
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
366
370
|
const info = socketPortUtils_1.default.parseTcpPath(this.portOptions.path);
|
|
367
371
|
logger_1.logger.debug(`Opening TCP socket with ${info.host}:${info.port}`, NS);
|
|
368
372
|
this.socketPort = new node_net_1.Socket();
|
|
@@ -370,23 +374,30 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
370
374
|
this.socketPort.setKeepAlive(true, 15000);
|
|
371
375
|
this.writer.pipe(this.socketPort);
|
|
372
376
|
this.socketPort.pipe(this.parser);
|
|
373
|
-
this.parser.on(
|
|
377
|
+
this.parser.on("data", this.onFrame.bind(this));
|
|
374
378
|
return await new Promise((resolve, reject) => {
|
|
375
379
|
const openError = async (err) => {
|
|
376
380
|
await this.stop();
|
|
377
381
|
reject(err);
|
|
378
382
|
};
|
|
379
|
-
|
|
380
|
-
|
|
383
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
384
|
+
this.socketPort.on("connect", () => {
|
|
385
|
+
logger_1.logger.debug("Socket connected", NS);
|
|
381
386
|
});
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
this.socketPort.
|
|
387
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
388
|
+
this.socketPort.on("ready", () => {
|
|
389
|
+
logger_1.logger.info("Socket ready", NS);
|
|
390
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
391
|
+
this.socketPort.removeListener("error", openError);
|
|
392
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
393
|
+
this.socketPort.once("close", this.onPortClose.bind(this));
|
|
394
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
395
|
+
this.socketPort.on("error", this.onPortError.bind(this));
|
|
387
396
|
resolve();
|
|
388
397
|
});
|
|
389
|
-
|
|
398
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
399
|
+
this.socketPort.once("error", openError);
|
|
400
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
390
401
|
this.socketPort.connect(info.port, info.host);
|
|
391
402
|
});
|
|
392
403
|
}
|
|
@@ -395,22 +406,22 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
395
406
|
* Handle port closing
|
|
396
407
|
* @param err A boolean for Socket, an Error for serialport
|
|
397
408
|
*/
|
|
398
|
-
|
|
399
|
-
logger_1.logger.info(
|
|
409
|
+
onPortClose(error) {
|
|
410
|
+
logger_1.logger.info("Port closed.", NS);
|
|
400
411
|
if (error && this.flags !== 0) {
|
|
401
412
|
logger_1.logger.info(`Port close ${error}`, NS);
|
|
402
413
|
this.flags = 0;
|
|
403
|
-
this.emit(
|
|
414
|
+
this.emit("fatalError", enums_1.EzspStatus.ERROR_SERIAL_INIT);
|
|
404
415
|
}
|
|
405
416
|
}
|
|
406
417
|
/**
|
|
407
418
|
* Handle port error
|
|
408
419
|
* @param error
|
|
409
420
|
*/
|
|
410
|
-
|
|
421
|
+
onPortError(error) {
|
|
411
422
|
logger_1.logger.error(`Port ${error}`, NS);
|
|
412
423
|
this.flags = 0;
|
|
413
|
-
this.emit(
|
|
424
|
+
this.emit("fatalError", enums_1.EzspStatus.ERROR_SERIAL_INIT);
|
|
414
425
|
}
|
|
415
426
|
/**
|
|
416
427
|
* Handle received frame from AshParser.
|
|
@@ -422,7 +433,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
422
433
|
// ignore the cancel before RSTACK
|
|
423
434
|
if (this.flags & Flag.CONNECTED) {
|
|
424
435
|
this.counters.rxCancelled += 1;
|
|
425
|
-
logger_1.logger.warning(`Frame(s) in progress cancelled in [${buffer.toString(
|
|
436
|
+
logger_1.logger.warning(`Frame(s) in progress cancelled in [${buffer.toString("hex")}]`, NS);
|
|
426
437
|
}
|
|
427
438
|
// get rid of everything up to the CAN flag and start reading frame from there, no need to loop through bytes in vain
|
|
428
439
|
buffer = buffer.subarray(iCAN + 1);
|
|
@@ -430,14 +441,14 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
430
441
|
if (!buffer.length) {
|
|
431
442
|
// skip any CANCEL that results in empty frame (have yet to see one, but just in case...)
|
|
432
443
|
// shouldn't happen for any other reason, unless receiving bad stuff from port?
|
|
433
|
-
logger_1.logger.debug(
|
|
444
|
+
logger_1.logger.debug("Received empty frame. Skipping.", NS);
|
|
434
445
|
return;
|
|
435
446
|
}
|
|
436
447
|
const status = this.receiveFrame(buffer);
|
|
437
448
|
this.sendExec(); // always trigger to cover all cases
|
|
438
449
|
if (status !== enums_1.EzspStatus.SUCCESS && status !== enums_1.EzspStatus.ASH_IN_PROGRESS && status !== enums_1.EzspStatus.NO_RX_DATA) {
|
|
439
450
|
logger_1.logger.error(`Error while parsing received frame, status=${enums_1.EzspStatus[status]}.`, NS);
|
|
440
|
-
this.emit(
|
|
451
|
+
this.emit("fatalError", enums_1.EzspStatus.HOST_FATAL_ERROR);
|
|
441
452
|
return;
|
|
442
453
|
}
|
|
443
454
|
}
|
|
@@ -453,7 +464,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
453
464
|
if (!this.portOpen || this.flags & Flag.CONNECTED) {
|
|
454
465
|
return enums_1.EzspStatus.ERROR_INVALID_CALL;
|
|
455
466
|
}
|
|
456
|
-
logger_1.logger.info(
|
|
467
|
+
logger_1.logger.info("======== ASH starting ========", NS);
|
|
457
468
|
try {
|
|
458
469
|
if (this.serialPort) {
|
|
459
470
|
await this.serialPort.asyncFlush(); // clear read/write buffers
|
|
@@ -470,10 +481,10 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
470
481
|
for (let i = 0; i < CONFIG_TIME_RST; i += CONFIG_TIME_RST_CHECK) {
|
|
471
482
|
this.sendExec();
|
|
472
483
|
if (this.flags & Flag.CONNECTED) {
|
|
473
|
-
logger_1.logger.info(
|
|
484
|
+
logger_1.logger.info("======== ASH started ========", NS);
|
|
474
485
|
return enums_1.EzspStatus.SUCCESS;
|
|
475
486
|
}
|
|
476
|
-
|
|
487
|
+
if (this.hostError !== enums_1.EzspStatus.NO_ERROR || this.ncpError !== enums_1.EzspStatus.NO_ERROR) {
|
|
477
488
|
// don't wait for inevitable fail, bail early, let retry logic in EZSP layer do its thing
|
|
478
489
|
break;
|
|
479
490
|
}
|
|
@@ -489,7 +500,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
489
500
|
this.closing = true;
|
|
490
501
|
this.logCounters();
|
|
491
502
|
await this.closePort();
|
|
492
|
-
logger_1.logger.info(
|
|
503
|
+
logger_1.logger.info("======== ASH stopped ========", NS);
|
|
493
504
|
}
|
|
494
505
|
/**
|
|
495
506
|
* Close port and remove listeners.
|
|
@@ -525,7 +536,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
525
536
|
if (this.closing) {
|
|
526
537
|
return enums_1.EzspStatus.ERROR_INVALID_CALL;
|
|
527
538
|
}
|
|
528
|
-
logger_1.logger.info(
|
|
539
|
+
logger_1.logger.info("======== ASH Adapter reset ========", NS);
|
|
529
540
|
// ask ncp to reset itself using RST frame
|
|
530
541
|
try {
|
|
531
542
|
if (!this.portOpen) {
|
|
@@ -569,7 +580,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
569
580
|
if (len < consts_1.ASH_MIN_DATA_FIELD_LEN) {
|
|
570
581
|
return enums_1.EzspStatus.DATA_FRAME_TOO_SHORT;
|
|
571
582
|
}
|
|
572
|
-
|
|
583
|
+
if (len > consts_1.ASH_MAX_DATA_FIELD_LEN) {
|
|
573
584
|
return enums_1.EzspStatus.DATA_FRAME_TOO_LONG;
|
|
574
585
|
}
|
|
575
586
|
if (!(this.flags & Flag.CONNECTED)) {
|
|
@@ -603,7 +614,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
603
614
|
if (this.ackRx !== expectedFrm) {
|
|
604
615
|
this.counters.rxAckTimeouts += 1;
|
|
605
616
|
this.adjustAckPeriod(true);
|
|
606
|
-
logger_1.logger.debug(`Timer expired waiting for ACK for ${reTx ?
|
|
617
|
+
logger_1.logger.debug(`Timer expired waiting for ACK for ${reTx ? "frmReTx" : "frmTx"}=${expectedFrm}, ackRx=${this.ackRx}`, NS);
|
|
607
618
|
if (++this.timeouts >= consts_1.ASH_MAX_TIMEOUTS) {
|
|
608
619
|
this.hostDisconnect(enums_1.EzspStatus.ASH_ERROR_TIMEOUTS);
|
|
609
620
|
return;
|
|
@@ -660,7 +671,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
660
671
|
len = 1;
|
|
661
672
|
this.flags &= ~(Flag.RST | Flag.NAK | Flag.ACK);
|
|
662
673
|
this.sendState = SendState.SHFRAME;
|
|
663
|
-
logger_1.logger.debug(
|
|
674
|
+
logger_1.logger.debug("---> [FRAME type=RST]", NS);
|
|
664
675
|
}
|
|
665
676
|
else if (this.flags & (Flag.NAK | Flag.ACK)) {
|
|
666
677
|
if (this.flags & Flag.NAK) {
|
|
@@ -685,13 +696,14 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
685
696
|
else if (this.flags & Flag.RETX) {
|
|
686
697
|
// Retransmitting DATA frames for error recovery
|
|
687
698
|
// buffer assumed valid from loop logic
|
|
699
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
688
700
|
buffer = this.reTxQueue.getNthEntry((0, math_1.mod8)(this.frmTx - this.frmReTx));
|
|
689
701
|
len = buffer.len + 1;
|
|
690
702
|
this.txSHBuffer[0] = enums_2.AshFrameType.DATA | (this.frmReTx << consts_1.ASH_FRMNUM_BIT) | (this.frmRx << consts_1.ASH_ACKNUM_BIT) | consts_1.ASH_RFLAG_MASK;
|
|
691
703
|
this.sendState = SendState.RETX_DATA;
|
|
692
704
|
logger_1.logger.debug(`---> [FRAME type=DATA_RETX frmReTx=${this.frmReTx} frmRx=${this.frmRx}](ackRx=${this.ackRx} frmTx=${this.frmTx})`, NS);
|
|
693
705
|
}
|
|
694
|
-
else if (this.ackTx
|
|
706
|
+
else if (this.ackTx !== this.frmRx) {
|
|
695
707
|
// An ACK should be generated
|
|
696
708
|
this.flags |= Flag.ACK;
|
|
697
709
|
break;
|
|
@@ -733,6 +745,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
733
745
|
// sending OR resending data frame
|
|
734
746
|
if (this.txOffset !== 0xff) {
|
|
735
747
|
// buffer assumed valid from loop logic
|
|
748
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
736
749
|
inByte = this.txOffset ? buffer.data[this.txOffset - 1] : this.txSHBuffer[0];
|
|
737
750
|
outByte = this.encodeByte(0, inByte);
|
|
738
751
|
this.writer.writeByte(outByte);
|
|
@@ -794,22 +807,22 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
794
807
|
case enums_1.EzspStatus.ASH_BAD_CRC:
|
|
795
808
|
this.counters.rxCrcErrors += 1;
|
|
796
809
|
this.rejectFrame();
|
|
797
|
-
logger_1.logger.error(
|
|
810
|
+
logger_1.logger.error("Received frame with CRC error", NS);
|
|
798
811
|
return enums_1.EzspStatus.NO_RX_DATA;
|
|
799
812
|
case enums_1.EzspStatus.ASH_COMM_ERROR:
|
|
800
813
|
this.counters.rxCommErrors += 1;
|
|
801
814
|
this.rejectFrame();
|
|
802
|
-
logger_1.logger.error(
|
|
815
|
+
logger_1.logger.error("Received frame with comm error", NS);
|
|
803
816
|
return enums_1.EzspStatus.NO_RX_DATA;
|
|
804
817
|
case enums_1.EzspStatus.ASH_TOO_SHORT:
|
|
805
818
|
this.counters.rxTooShort += 1;
|
|
806
819
|
this.rejectFrame();
|
|
807
|
-
logger_1.logger.error(
|
|
820
|
+
logger_1.logger.error("Received frame shorter than minimum", NS);
|
|
808
821
|
return enums_1.EzspStatus.NO_RX_DATA;
|
|
809
822
|
case enums_1.EzspStatus.ASH_TOO_LONG:
|
|
810
823
|
this.counters.rxTooLong += 1;
|
|
811
824
|
this.rejectFrame();
|
|
812
|
-
logger_1.logger.error(
|
|
825
|
+
logger_1.logger.error("Received frame longer than maximum", NS);
|
|
813
826
|
return enums_1.EzspStatus.NO_RX_DATA;
|
|
814
827
|
case enums_1.EzspStatus.ASH_ERROR_XON_XOFF:
|
|
815
828
|
return this.hostDisconnect(status);
|
|
@@ -853,10 +866,10 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
853
866
|
this.timeouts = 0;
|
|
854
867
|
this.setAckPeriod(CONFIG_ACK_TIME_INIT);
|
|
855
868
|
this.flags = Flag.CONNECTED | Flag.ACK;
|
|
856
|
-
logger_1.logger.info(
|
|
869
|
+
logger_1.logger.info("======== ASH connected ========", NS);
|
|
857
870
|
return enums_1.EzspStatus.SUCCESS;
|
|
858
871
|
}
|
|
859
|
-
|
|
872
|
+
if (frameType === enums_2.AshFrameType.ERROR) {
|
|
860
873
|
logger_1.logger.error(`Received ERROR from adapter while connecting, with code=${enums_2.NcpFailedCode[this.rxSHBuffer[2]]}.`, NS);
|
|
861
874
|
// let Ezsp retry logic handle error
|
|
862
875
|
// return this.ncpDisconnect(EzspStatus.ASH_NCP_FATAL_ERROR);
|
|
@@ -917,24 +930,22 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
917
930
|
this.rxQueue.addTail(this.rxDataBuffer); // add frame to receive queue
|
|
918
931
|
logger_1.logger.debug(`<--- ${frameStr} Added to rxQueue`, NS);
|
|
919
932
|
this.counters.rxData += this.rxDataBuffer.len;
|
|
920
|
-
setImmediate(() => this.emit(
|
|
933
|
+
setImmediate(() => this.emit("frame"));
|
|
921
934
|
return enums_1.EzspStatus.SUCCESS;
|
|
922
935
|
}
|
|
936
|
+
// frame is out of sequence
|
|
937
|
+
if (this.rxSHBuffer[0] & consts_1.ASH_RFLAG_MASK) {
|
|
938
|
+
// if retransmitted, force ACK
|
|
939
|
+
this.counters.rxDuplicates += 1;
|
|
940
|
+
this.flags |= Flag.ACK;
|
|
941
|
+
}
|
|
923
942
|
else {
|
|
924
|
-
//
|
|
925
|
-
if (this.
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
this.flags |= Flag.ACK;
|
|
929
|
-
}
|
|
930
|
-
else {
|
|
931
|
-
// 1st OOS? then set REJ, send NAK
|
|
932
|
-
if ((this.flags & Flag.REJ) === 0) {
|
|
933
|
-
this.counters.rxOutOfSequence += 1;
|
|
934
|
-
logger_1.logger.debug(`<-x- ${frameStr} Out of sequence: expected ${this.frmRx}; got ${frmNum}.`, NS);
|
|
935
|
-
}
|
|
936
|
-
this.rejectFrame();
|
|
943
|
+
// 1st OOS? then set REJ, send NAK
|
|
944
|
+
if ((this.flags & Flag.REJ) === 0) {
|
|
945
|
+
this.counters.rxOutOfSequence += 1;
|
|
946
|
+
logger_1.logger.debug(`<-x- ${frameStr} Out of sequence: expected ${this.frmRx}; got ${frmNum}.`, NS);
|
|
937
947
|
}
|
|
948
|
+
this.rejectFrame();
|
|
938
949
|
}
|
|
939
950
|
break;
|
|
940
951
|
}
|
|
@@ -956,7 +967,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
956
967
|
return this.ncpDisconnect(enums_1.EzspStatus.ASH_NCP_FATAL_ERROR);
|
|
957
968
|
case enums_2.AshFrameType.INVALID:
|
|
958
969
|
// reject invalid frames
|
|
959
|
-
logger_1.logger.debug(`<-x- [FRAME type=${frameTypeStr}] Rejecting. ${this.rxSHBuffer.toString(
|
|
970
|
+
logger_1.logger.debug(`<-x- [FRAME type=${frameTypeStr}] Rejecting. ${this.rxSHBuffer.toString("hex")}`, NS);
|
|
960
971
|
this.rejectFrame();
|
|
961
972
|
break;
|
|
962
973
|
}
|
|
@@ -1059,7 +1070,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
1059
1070
|
* If not already retransmitting, and there are unacked frames, start retransmitting after the last frame that was acked.
|
|
1060
1071
|
*/
|
|
1061
1072
|
startRetransmission() {
|
|
1062
|
-
if (!(this.flags & Flag.RETX) && this.ackRx
|
|
1073
|
+
if (!(this.flags & Flag.RETX) && this.ackRx !== this.frmTx) {
|
|
1063
1074
|
this.stopAckTimer();
|
|
1064
1075
|
this.frmReTx = this.ackRx;
|
|
1065
1076
|
this.flags |= Flag.RETX | Flag.CAN;
|
|
@@ -1075,7 +1086,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
1075
1086
|
// Set/clear NR flag based on the number of buffers free
|
|
1076
1087
|
if (this.rxFree.length < CONFIG_NR_LOW_LIMIT) {
|
|
1077
1088
|
this.flags |= Flag.NR;
|
|
1078
|
-
logger_1.logger.warning(
|
|
1089
|
+
logger_1.logger.warning("NOT READY - Signaling adapter", NS);
|
|
1079
1090
|
}
|
|
1080
1091
|
else if (this.rxFree.length > CONFIG_NR_HIGH_LIMIT) {
|
|
1081
1092
|
this.flags &= ~Flag.NR;
|
|
@@ -1233,12 +1244,12 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
1233
1244
|
}
|
|
1234
1245
|
return this.encodeStuffByte(byte);
|
|
1235
1246
|
}
|
|
1236
|
-
|
|
1247
|
+
if (this.encodeState === 1) {
|
|
1237
1248
|
// CRC high byte
|
|
1238
1249
|
this.encodeState = 2;
|
|
1239
1250
|
return this.encodeStuffByte(this.encodeCrc >> 8);
|
|
1240
1251
|
}
|
|
1241
|
-
|
|
1252
|
+
if (this.encodeState === 2) {
|
|
1242
1253
|
// CRC low byte
|
|
1243
1254
|
this.encodeState = 3;
|
|
1244
1255
|
return this.encodeStuffByte(this.encodeCrc & 0xff);
|
|
@@ -1258,9 +1269,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
1258
1269
|
this.encodeFlip = byte ^ consts_1.ASH_FLIP;
|
|
1259
1270
|
return enums_2.AshReservedByte.ESCAPE;
|
|
1260
1271
|
}
|
|
1261
|
-
|
|
1262
|
-
return byte;
|
|
1263
|
-
}
|
|
1272
|
+
return byte;
|
|
1264
1273
|
}
|
|
1265
1274
|
/**
|
|
1266
1275
|
* Decode received byte.
|
|
@@ -1294,7 +1303,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
1294
1303
|
this.decodeFlip = 0; // ignore isolated data escape between flags
|
|
1295
1304
|
break;
|
|
1296
1305
|
}
|
|
1297
|
-
|
|
1306
|
+
if (this.decodeLen === 0xff) {
|
|
1298
1307
|
status = enums_1.EzspStatus.ASH_COMM_ERROR;
|
|
1299
1308
|
}
|
|
1300
1309
|
else if (this.decodeCrc !== (this.decodeByte2 << 8) + this.decodeByte1) {
|
|
@@ -1594,7 +1603,7 @@ class UartAsh extends node_events_1.EventEmitter {
|
|
|
1594
1603
|
* Used on ASH layer stop to get 'pre-stop state'.
|
|
1595
1604
|
*/
|
|
1596
1605
|
logCounters() {
|
|
1597
|
-
logger_1.logger.info(
|
|
1606
|
+
logger_1.logger.info("ASH COUNTERS since last clear:", NS);
|
|
1598
1607
|
logger_1.logger.info(` Total frames: RX=${this.counters.rxAllFrames}, TX=${this.counters.txAllFrames}`, NS);
|
|
1599
1608
|
logger_1.logger.info(` Cancelled : RX=${this.counters.rxCancelled}, TX=${this.counters.txCancelled}`, NS);
|
|
1600
1609
|
logger_1.logger.info(` DATA frames : RX=${this.counters.rxDataFrames}, TX=${this.counters.txDataFrames}`, NS);
|