zigbee-herdsman 0.55.5 → 0.56.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/workflows/typedoc.yaml +38 -0
- package/.github/workflows/update_deps.yml +1 -1
- package/.prettierrc +18 -1
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +31 -0
- package/README.md +1 -1
- package/dist/adapter/adapter.d.ts +16 -8
- package/dist/adapter/adapter.d.ts.map +1 -1
- package/dist/adapter/adapter.js +5 -3
- package/dist/adapter/adapter.js.map +1 -1
- package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +11 -11
- package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
- package/dist/adapter/deconz/adapter/deconzAdapter.js +103 -106
- package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
- package/dist/adapter/deconz/adapter/index.d.ts.map +1 -1
- package/dist/adapter/deconz/adapter/index.js +0 -2
- package/dist/adapter/deconz/adapter/index.js.map +1 -1
- package/dist/adapter/deconz/driver/driver.d.ts +13 -13
- package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/driver.js +126 -128
- package/dist/adapter/deconz/driver/driver.js.map +1 -1
- package/dist/adapter/deconz/driver/frame.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/frame.js +1 -1
- package/dist/adapter/deconz/driver/frame.js.map +1 -1
- package/dist/adapter/deconz/driver/frameParser.d.ts +3 -1
- package/dist/adapter/deconz/driver/frameParser.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/frameParser.js +52 -40
- package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
- package/dist/adapter/deconz/driver/parser.d.ts +3 -4
- package/dist/adapter/deconz/driver/parser.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/parser.js +4 -29
- package/dist/adapter/deconz/driver/parser.js.map +1 -1
- package/dist/adapter/deconz/driver/writer.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/writer.js +2 -2
- package/dist/adapter/deconz/driver/writer.js.map +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.d.ts +11 -21
- package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.js +77 -123
- package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
- package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/oneWaitress.js +6 -3
- package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -1
- package/dist/adapter/ember/adapter/tokensManager.d.ts +1 -1
- package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/tokensManager.js +3 -3
- package/dist/adapter/ember/adapter/tokensManager.js.map +1 -1
- package/dist/adapter/ember/enums.d.ts +22 -0
- package/dist/adapter/ember/enums.d.ts.map +1 -1
- package/dist/adapter/ember/enums.js +24 -1
- package/dist/adapter/ember/enums.js.map +1 -1
- package/dist/adapter/ember/ezsp/buffalo.d.ts +1 -3
- package/dist/adapter/ember/ezsp/buffalo.d.ts.map +1 -1
- package/dist/adapter/ember/ezsp/buffalo.js +16 -37
- package/dist/adapter/ember/ezsp/buffalo.js.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.d.ts +25 -41
- package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.js +67 -72
- package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
- package/dist/adapter/ember/types.d.ts +16 -23
- package/dist/adapter/ember/types.d.ts.map +1 -1
- package/dist/adapter/ember/uart/ash.d.ts +6 -22
- package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
- package/dist/adapter/ember/uart/ash.js +100 -117
- package/dist/adapter/ember/uart/ash.js.map +1 -1
- package/dist/adapter/ember/uart/parser.d.ts.map +1 -1
- package/dist/adapter/ember/uart/parser.js +1 -1
- package/dist/adapter/ember/uart/parser.js.map +1 -1
- package/dist/adapter/ember/uart/queues.d.ts +9 -9
- package/dist/adapter/ember/uart/queues.d.ts.map +1 -1
- package/dist/adapter/ember/uart/queues.js +27 -26
- package/dist/adapter/ember/uart/queues.js.map +1 -1
- package/dist/adapter/ember/uart/writer.d.ts.map +1 -1
- package/dist/adapter/ember/uart/writer.js +1 -1
- package/dist/adapter/ember/uart/writer.js.map +1 -1
- 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/initters.js.map +1 -1
- package/dist/adapter/events.d.ts +1 -9
- package/dist/adapter/events.d.ts.map +1 -1
- package/dist/adapter/events.js +0 -10
- package/dist/adapter/events.js.map +1 -1
- package/dist/adapter/ezsp/adapter/backup.d.ts +1 -1
- package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/backup.js +33 -10
- package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +7 -7
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.js +35 -45
- package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
- package/dist/adapter/ezsp/adapter/index.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/index.js +0 -2
- package/dist/adapter/ezsp/adapter/index.js.map +1 -1
- package/dist/adapter/ezsp/driver/commands.d.ts +2 -2
- package/dist/adapter/ezsp/driver/commands.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/commands.js +112 -112
- package/dist/adapter/ezsp/driver/commands.js.map +1 -1
- package/dist/adapter/ezsp/driver/driver.d.ts +2 -3
- package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/driver.js +21 -13
- package/dist/adapter/ezsp/driver/driver.js.map +1 -1
- package/dist/adapter/ezsp/driver/ezsp.d.ts +3 -3
- package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/ezsp.js +8 -10
- package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
- package/dist/adapter/ezsp/driver/frame.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/frame.js +1 -1
- package/dist/adapter/ezsp/driver/frame.js.map +1 -1
- package/dist/adapter/ezsp/driver/index.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/index.js +0 -1
- package/dist/adapter/ezsp/driver/index.js.map +1 -1
- package/dist/adapter/ezsp/driver/multicast.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/multicast.js +3 -3
- package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
- package/dist/adapter/ezsp/driver/parser.d.ts +1 -2
- package/dist/adapter/ezsp/driver/parser.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/parser.js +3 -9
- package/dist/adapter/ezsp/driver/parser.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/basic.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/types/basic.js +0 -1
- package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/index.d.ts +4 -4
- package/dist/adapter/ezsp/driver/types/index.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/types/index.js +85 -86
- package/dist/adapter/ezsp/driver/types/index.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/named.js +1 -3
- package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/struct.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/types/struct.js +63 -3
- package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
- package/dist/adapter/ezsp/driver/uart.d.ts +2 -3
- package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/uart.js +9 -13
- package/dist/adapter/ezsp/driver/uart.js.map +1 -1
- package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +3 -1
- package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +1 -2
- package/dist/adapter/ezsp/driver/utils/crc16ccitt.js.map +1 -1
- package/dist/adapter/ezsp/driver/utils/index.d.ts +1 -15
- package/dist/adapter/ezsp/driver/utils/index.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/utils/index.js +2 -41
- package/dist/adapter/ezsp/driver/utils/index.js.map +1 -1
- package/dist/adapter/ezsp/driver/writer.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/writer.js +1 -1
- package/dist/adapter/ezsp/driver/writer.js.map +1 -1
- package/dist/adapter/serialPort.d.ts +7 -2
- package/dist/adapter/serialPort.d.ts.map +1 -1
- package/dist/adapter/serialPort.js +6 -2
- package/dist/adapter/serialPort.js.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +1 -1
- package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-backup.js +28 -21
- package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +1 -1
- package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +27 -14
- package/dist/adapter/z-stack/adapter/adapter-nv-memory.js.map +1 -1
- package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/manager.js +10 -10
- package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +7 -7
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/zStackAdapter.js +40 -31
- package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +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 +1 -3
- 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.map +1 -1
- package/dist/adapter/z-stack/structs/entries/address-manager-table.js +5 -0
- 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.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.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +5 -0
- 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.js +1 -2
- 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.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +5 -0
- 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.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 +12 -6
- package/dist/adapter/z-stack/structs/entries/has-configured.js.map +1 -1
- 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 +6 -2
- 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 +9 -3
- 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 +9 -3
- package/dist/adapter/z-stack/structs/entries/nwk-key.js.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.js +1 -2
- 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.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +5 -0
- 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.js +1 -2
- 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.map +1 -1
- package/dist/adapter/z-stack/structs/entries/security-manager-table.js +5 -0
- package/dist/adapter/z-stack/structs/entries/security-manager-table.js.map +1 -1
- package/dist/adapter/z-stack/structs/struct.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/struct.js +16 -4
- package/dist/adapter/z-stack/structs/struct.js.map +1 -1
- package/dist/adapter/z-stack/structs/table.d.ts +1 -1
- package/dist/adapter/z-stack/structs/table.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/table.js +17 -13
- package/dist/adapter/z-stack/structs/table.js.map +1 -1
- package/dist/adapter/z-stack/unpi/frame.d.ts +3 -3
- package/dist/adapter/z-stack/unpi/frame.d.ts.map +1 -1
- package/dist/adapter/z-stack/unpi/frame.js +1 -1
- package/dist/adapter/z-stack/unpi/frame.js.map +1 -1
- package/dist/adapter/z-stack/unpi/parser.js +1 -1
- package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
- package/dist/adapter/z-stack/utils/network-options.d.ts.map +1 -1
- package/dist/adapter/z-stack/utils/network-options.js +1 -2
- package/dist/adapter/z-stack/utils/network-options.js.map +1 -1
- package/dist/adapter/z-stack/znp/znp.d.ts +5 -6
- package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/znp.js +21 -28
- package/dist/adapter/z-stack/znp/znp.js.map +1 -1
- package/dist/adapter/z-stack/znp/zpiObject.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/zpiObject.js +2 -2
- package/dist/adapter/z-stack/znp/zpiObject.js.map +1 -1
- package/dist/adapter/zigate/adapter/index.js +1 -2
- package/dist/adapter/zigate/adapter/index.js.map +1 -1
- package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +9 -9
- package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
- package/dist/adapter/zigate/adapter/zigateAdapter.js +92 -118
- package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
- package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +1 -1
- package/dist/adapter/zigate/driver/buffaloZiGate.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/buffaloZiGate.js +4 -4
- package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
- package/dist/adapter/zigate/driver/commandType.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/commandType.js +3 -2
- package/dist/adapter/zigate/driver/commandType.js.map +1 -1
- package/dist/adapter/zigate/driver/constants.d.ts +7 -1
- package/dist/adapter/zigate/driver/constants.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/constants.js +1 -2
- 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 +2 -3
- package/dist/adapter/zigate/driver/frame.js.map +1 -1
- package/dist/adapter/zigate/driver/messageType.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/messageType.js +1 -2
- package/dist/adapter/zigate/driver/messageType.js.map +1 -1
- package/dist/adapter/zigate/driver/ziGateObject.d.ts +5 -5
- package/dist/adapter/zigate/driver/ziGateObject.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/ziGateObject.js +9 -10
- package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
- package/dist/adapter/zigate/driver/zigate.d.ts +7 -10
- package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/zigate.js +35 -40
- package/dist/adapter/zigate/driver/zigate.js.map +1 -1
- package/dist/controller/controller.d.ts +18 -6
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/controller/controller.js +95 -103
- package/dist/controller/controller.js.map +1 -1
- package/dist/controller/events.d.ts +2 -13
- package/dist/controller/events.d.ts.map +1 -1
- package/dist/controller/events.js +0 -13
- package/dist/controller/events.js.map +1 -1
- package/dist/controller/greenPower.d.ts +6 -2
- package/dist/controller/greenPower.d.ts.map +1 -1
- package/dist/controller/greenPower.js +26 -16
- package/dist/controller/greenPower.js.map +1 -1
- package/dist/controller/helpers/request.d.ts +1 -1
- package/dist/controller/helpers/request.d.ts.map +1 -1
- package/dist/controller/helpers/request.js.map +1 -1
- package/dist/controller/helpers/requestQueue.d.ts.map +1 -1
- package/dist/controller/helpers/requestQueue.js +1 -1
- 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.map +1 -1
- package/dist/controller/index.d.ts.map +1 -1
- package/dist/controller/index.js.map +1 -1
- package/dist/controller/model/device.d.ts +31 -29
- package/dist/controller/model/device.d.ts.map +1 -1
- package/dist/controller/model/device.js +42 -30
- package/dist/controller/model/device.js.map +1 -1
- package/dist/controller/model/endpoint.d.ts +5 -2
- package/dist/controller/model/endpoint.d.ts.map +1 -1
- package/dist/controller/model/endpoint.js +96 -97
- package/dist/controller/model/endpoint.js.map +1 -1
- package/dist/controller/model/entity.d.ts +5 -3
- package/dist/controller/model/entity.d.ts.map +1 -1
- package/dist/controller/model/entity.js +2 -2
- package/dist/controller/model/entity.js.map +1 -1
- package/dist/controller/model/group.d.ts +1 -0
- package/dist/controller/model/group.d.ts.map +1 -1
- package/dist/controller/model/group.js +36 -28
- package/dist/controller/model/group.js.map +1 -1
- package/dist/controller/touchlink.d.ts.map +1 -1
- package/dist/controller/touchlink.js +6 -5
- package/dist/controller/touchlink.js.map +1 -1
- package/dist/controller/tstype.d.ts +1 -4
- package/dist/controller/tstype.d.ts.map +1 -1
- package/dist/controller/tstype.js +0 -5
- package/dist/controller/tstype.js.map +1 -1
- package/dist/models/backup-storage-unified.d.ts +2 -2
- package/dist/models/backup-storage-unified.d.ts.map +1 -1
- package/dist/models/backup.d.ts +1 -1
- package/dist/models/backup.d.ts.map +1 -1
- package/dist/utils/backup.d.ts.map +1 -1
- package/dist/utils/backup.js +22 -55
- package/dist/utils/backup.js.map +1 -1
- package/dist/utils/index.d.ts +2 -3
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -5
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/queue.d.ts.map +1 -1
- package/dist/utils/queue.js +8 -8
- package/dist/utils/queue.js.map +1 -1
- package/dist/utils/realpathSync.d.ts.map +1 -1
- package/dist/utils/realpathSync.js +1 -1
- package/dist/utils/realpathSync.js.map +1 -1
- package/dist/utils/utils.d.ts +5 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +24 -0
- package/dist/utils/utils.js.map +1 -0
- package/dist/zspec/consts.d.ts +1 -0
- package/dist/zspec/consts.d.ts.map +1 -1
- package/dist/zspec/consts.js +2 -1
- package/dist/zspec/consts.js.map +1 -1
- package/dist/zspec/index.js +0 -10
- package/dist/zspec/index.js.map +1 -1
- package/dist/zspec/utils.d.ts.map +1 -1
- package/dist/zspec/utils.js +7 -1
- package/dist/zspec/utils.js.map +1 -1
- package/dist/zspec/zcl/buffaloZcl.js +13 -13
- package/dist/zspec/zcl/buffaloZcl.js.map +1 -1
- package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/cluster.js +1 -1
- package/dist/zspec/zcl/definition/cluster.js.map +1 -1
- package/dist/zspec/zcl/definition/foundation.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/foundation.js +1 -1
- package/dist/zspec/zcl/definition/foundation.js.map +1 -1
- package/dist/zspec/zcl/definition/tstype.d.ts +1 -1
- package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
- package/dist/zspec/zcl/utils.d.ts +1 -1
- package/dist/zspec/zcl/utils.d.ts.map +1 -1
- package/dist/zspec/zcl/utils.js +21 -20
- package/dist/zspec/zcl/utils.js.map +1 -1
- package/dist/zspec/zcl/zclFrame.d.ts +4 -4
- package/dist/zspec/zcl/zclFrame.d.ts.map +1 -1
- package/dist/zspec/zcl/zclFrame.js +10 -17
- 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/zclHeader.js.map +1 -1
- package/dist/zspec/zdo/buffaloZdo.d.ts +2 -2
- package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -1
- package/dist/zspec/zdo/buffaloZdo.js +12 -8
- package/dist/zspec/zdo/buffaloZdo.js.map +1 -1
- package/dist/zspec/zdo/definition/tstypes.d.ts +1 -1
- package/dist/zspec/zdo/definition/tstypes.d.ts.map +1 -1
- package/eslint.config.mjs +32 -0
- package/package.json +12 -10
- package/tsconfig.json +1 -0
- package/.eslintignore +0 -3
- package/dist/utils/assertString.d.ts +0 -3
- package/dist/utils/assertString.d.ts.map +0 -1
- package/dist/utils/assertString.js +0 -9
- package/dist/utils/assertString.js.map +0 -1
- package/dist/utils/isNumberArray.d.ts +0 -3
- package/dist/utils/isNumberArray.d.ts.map +0 -1
- package/dist/utils/isNumberArray.js +0 -7
- package/dist/utils/isNumberArray.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/* istanbul ignore file */
|
|
2
3
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
5
|
};
|
|
5
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.UartAsh = exports.
|
|
7
|
-
/* istanbul ignore file */
|
|
7
|
+
exports.UartAsh = exports.CONFIG_TX_K = void 0;
|
|
8
8
|
const net_1 = require("net");
|
|
9
9
|
const stream_1 = require("stream");
|
|
10
10
|
const utils_1 = require("../../../utils");
|
|
@@ -78,13 +78,6 @@ const CONFIG_NR_HIGH_LIMIT = 12; // RX_FREE_HW
|
|
|
78
78
|
const CONFIG_NR_TIME = 480;
|
|
79
79
|
/** Read/write max bytes count at stream level */
|
|
80
80
|
const CONFIG_HIGHWATER_MARK = 256;
|
|
81
|
-
var AshEvents;
|
|
82
|
-
(function (AshEvents) {
|
|
83
|
-
/** When the ASH protocol detects a fatal error (bubbles up to restart adapter). */
|
|
84
|
-
AshEvents["FATAL_ERROR"] = "fatalError";
|
|
85
|
-
/** When a frame has been parsed and queued in the rxQueue. */
|
|
86
|
-
AshEvents["FRAME"] = "frame";
|
|
87
|
-
})(AshEvents || (exports.AshEvents = AshEvents = {}));
|
|
88
81
|
/**
|
|
89
82
|
* ASH Protocol handler.
|
|
90
83
|
*/
|
|
@@ -184,10 +177,10 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
184
177
|
constructor(options) {
|
|
185
178
|
super();
|
|
186
179
|
this.portOptions = options;
|
|
187
|
-
this.serialPort =
|
|
188
|
-
this.socketPort =
|
|
189
|
-
this.writer =
|
|
190
|
-
this.parser =
|
|
180
|
+
this.serialPort = undefined;
|
|
181
|
+
this.socketPort = undefined;
|
|
182
|
+
this.writer = new writer_1.AshWriter({ highWaterMark: CONFIG_HIGHWATER_MARK });
|
|
183
|
+
this.parser = new parser_1.AshParser({ readableHighWaterMark: CONFIG_HIGHWATER_MARK });
|
|
191
184
|
this.txPool = new Array(consts_1.TX_POOL_BUFFERS);
|
|
192
185
|
this.txQueue = new queues_1.EzspQueue();
|
|
193
186
|
this.reTxQueue = new queues_1.EzspQueue();
|
|
@@ -195,59 +188,6 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
195
188
|
this.rxPool = new Array(consts_1.EZSP_HOST_RX_POOL_SIZE);
|
|
196
189
|
this.rxQueue = new queues_1.EzspQueue();
|
|
197
190
|
this.rxFree = new queues_1.EzspFreeList();
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Check if port is valid, open, and not closing.
|
|
201
|
-
*/
|
|
202
|
-
get portOpen() {
|
|
203
|
-
if (this.closing) {
|
|
204
|
-
return false;
|
|
205
|
-
}
|
|
206
|
-
if (socketPortUtils_1.default.isTcpPath(this.portOptions.path)) {
|
|
207
|
-
return this.socketPort && !this.socketPort.closed;
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
return this.serialPort && this.serialPort.isOpen;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Get max wait time before response is considered timed out.
|
|
215
|
-
*/
|
|
216
|
-
get responseTimeout() {
|
|
217
|
-
return consts_1.ASH_MAX_TIMEOUTS * CONFIG_ACK_TIME_MAX;
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Indicates if the host is in the Connected state.
|
|
221
|
-
* If not, the host and NCP cannot exchange DATA frames.
|
|
222
|
-
* Note that this function does not actively confirm that communication with NCP is healthy, but simply returns its last known status.
|
|
223
|
-
*
|
|
224
|
-
* @returns
|
|
225
|
-
* - true - host and NCP can exchange DATA frames
|
|
226
|
-
* - false - host and NCP cannot now exchange DATA frames
|
|
227
|
-
*/
|
|
228
|
-
get connected() {
|
|
229
|
-
return (this.flags & Flag.CONNECTED) !== 0;
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Has nothing to do...
|
|
233
|
-
*/
|
|
234
|
-
get idle() {
|
|
235
|
-
return (!this.decodeInProgress && // don't have a partial frame
|
|
236
|
-
// && (this.serial.readAvailable() === EzspStatus.NO_RX_DATA) // no rx data
|
|
237
|
-
this.rxQueue.empty && // no rx frames to process
|
|
238
|
-
!this.ncpHasCallbacks && // no pending callbacks
|
|
239
|
-
this.flags === Flag.CONNECTED && // no pending ACKs, NAKs, etc.
|
|
240
|
-
this.ackTx === this.frmRx && // do not need to send an ACK
|
|
241
|
-
this.ackRx === this.frmTx && // not waiting to receive an ACK
|
|
242
|
-
this.sendState === SendState.IDLE && // nothing being transmitted now
|
|
243
|
-
this.txQueue.empty // nothing waiting to transmit
|
|
244
|
-
// && this.serial.outputIsIdle() // nothing in OS buffers or UART FIFO
|
|
245
|
-
);
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* Initialize ASH variables, timers and queues, but not the serial port
|
|
249
|
-
*/
|
|
250
|
-
initVariables() {
|
|
251
191
|
this.closing = false;
|
|
252
192
|
this.txSHBuffer = Buffer.alloc(consts_1.SH_TX_BUFFER_LEN);
|
|
253
193
|
this.rxSHBuffer = Buffer.alloc(consts_1.SH_RX_BUFFER_LEN);
|
|
@@ -263,12 +203,13 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
263
203
|
this.frmRx = 0;
|
|
264
204
|
this.frmReTxHead = 0;
|
|
265
205
|
this.timeouts = 0;
|
|
266
|
-
this.rxDataBuffer =
|
|
206
|
+
this.rxDataBuffer = undefined;
|
|
267
207
|
this.rxLen = 0;
|
|
268
208
|
// init to "start of frame" default
|
|
269
209
|
this.encodeCount = 0;
|
|
270
210
|
this.encodeState = 0;
|
|
271
211
|
this.encodeEscFlag = false;
|
|
212
|
+
this.encodeFlip = 0;
|
|
272
213
|
this.encodeCrc = 0xffff;
|
|
273
214
|
this.txOffset = 0;
|
|
274
215
|
// init to "start of frame" default
|
|
@@ -284,7 +225,6 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
284
225
|
this.ncpHasCallbacks = false;
|
|
285
226
|
this.stopAckTimer();
|
|
286
227
|
this.stopNrTimer();
|
|
287
|
-
this.initQueues();
|
|
288
228
|
this.counters = {
|
|
289
229
|
txData: 0,
|
|
290
230
|
txAllFrames: 0,
|
|
@@ -316,25 +256,68 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
316
256
|
rxOutOfSequence: 0,
|
|
317
257
|
rxAckTimeouts: 0,
|
|
318
258
|
};
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
* All transmit buffers are put into txFree, and txQueue and reTxQueue are empty.
|
|
324
|
-
*/
|
|
325
|
-
initQueues() {
|
|
326
|
-
this.txQueue.tail = null;
|
|
327
|
-
this.reTxQueue.tail = null;
|
|
328
|
-
this.txFree.link = null;
|
|
259
|
+
// All transmit buffers are put into txFree, and txQueue and reTxQueue are empty.
|
|
260
|
+
this.txQueue.tail = undefined;
|
|
261
|
+
this.reTxQueue.tail = undefined;
|
|
262
|
+
this.txFree.link = undefined;
|
|
329
263
|
for (let i = 0; i < consts_1.TX_POOL_BUFFERS; i++) {
|
|
330
264
|
this.txFree.freeBuffer((this.txPool[i] = new queues_1.EzspBuffer()));
|
|
331
265
|
}
|
|
332
|
-
|
|
333
|
-
this.
|
|
266
|
+
// All receive buffers are put into rxFree, and rxQueue is empty.
|
|
267
|
+
this.rxQueue.tail = undefined;
|
|
268
|
+
this.rxFree.link = undefined;
|
|
334
269
|
for (let i = 0; i < consts_1.EZSP_HOST_RX_POOL_SIZE; i++) {
|
|
335
270
|
this.rxFree.freeBuffer((this.rxPool[i] = new queues_1.EzspBuffer()));
|
|
336
271
|
}
|
|
337
272
|
}
|
|
273
|
+
/**
|
|
274
|
+
* Check if port is valid, open, and not closing.
|
|
275
|
+
*/
|
|
276
|
+
get portOpen() {
|
|
277
|
+
if (this.closing) {
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
if (socketPortUtils_1.default.isTcpPath(this.portOptions.path)) {
|
|
281
|
+
return this.socketPort ? !this.socketPort.closed : false;
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
return this.serialPort ? this.serialPort.isOpen : false;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Get max wait time before response is considered timed out.
|
|
289
|
+
*/
|
|
290
|
+
get responseTimeout() {
|
|
291
|
+
return consts_1.ASH_MAX_TIMEOUTS * CONFIG_ACK_TIME_MAX;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Indicates if the host is in the Connected state.
|
|
295
|
+
* If not, the host and NCP cannot exchange DATA frames.
|
|
296
|
+
* Note that this function does not actively confirm that communication with NCP is healthy, but simply returns its last known status.
|
|
297
|
+
*
|
|
298
|
+
* @returns
|
|
299
|
+
* - true - host and NCP can exchange DATA frames
|
|
300
|
+
* - false - host and NCP cannot now exchange DATA frames
|
|
301
|
+
*/
|
|
302
|
+
get connected() {
|
|
303
|
+
return (this.flags & Flag.CONNECTED) !== 0;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Has nothing to do...
|
|
307
|
+
*/
|
|
308
|
+
get idle() {
|
|
309
|
+
return (!this.decodeInProgress && // don't have a partial frame
|
|
310
|
+
// && (this.serial.readAvailable() === EzspStatus.NO_RX_DATA) // no rx data
|
|
311
|
+
this.rxQueue.empty && // no rx frames to process
|
|
312
|
+
!this.ncpHasCallbacks && // no pending callbacks
|
|
313
|
+
this.flags === Flag.CONNECTED && // no pending ACKs, NAKs, etc.
|
|
314
|
+
this.ackTx === this.frmRx && // do not need to send an ACK
|
|
315
|
+
this.ackRx === this.frmTx && // not waiting to receive an ACK
|
|
316
|
+
this.sendState === SendState.IDLE && // nothing being transmitted now
|
|
317
|
+
this.txQueue.empty // nothing waiting to transmit
|
|
318
|
+
// && this.serial.outputIsIdle() // nothing in OS buffers or UART FIFO
|
|
319
|
+
);
|
|
320
|
+
}
|
|
338
321
|
/**
|
|
339
322
|
* Init the serial or socket port and hook parser/writer.
|
|
340
323
|
* NOTE: This is the only function that throws/rejects in the ASH layer (caught by resetNcp and turned into an EzspStatus).
|
|
@@ -358,16 +341,14 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
358
341
|
serialOpts.xon = true;
|
|
359
342
|
serialOpts.xoff = true;
|
|
360
343
|
}
|
|
361
|
-
|
|
362
|
-
if (this.portOptions.binding !=
|
|
363
|
-
|
|
344
|
+
// @ts-expect-error Jest testing
|
|
345
|
+
if (this.portOptions.binding != undefined) {
|
|
346
|
+
// @ts-expect-error Jest testing
|
|
364
347
|
serialOpts.binding = this.portOptions.binding;
|
|
365
348
|
}
|
|
366
349
|
logger_1.logger.debug(`Opening serial port with ${JSON.stringify(serialOpts)}`, NS);
|
|
367
350
|
this.serialPort = new serialPort_1.SerialPort(serialOpts);
|
|
368
|
-
this.writer = new writer_1.AshWriter({ highWaterMark: CONFIG_HIGHWATER_MARK });
|
|
369
351
|
this.writer.pipe(this.serialPort);
|
|
370
|
-
this.parser = new parser_1.AshParser({ readableHighWaterMark: CONFIG_HIGHWATER_MARK });
|
|
371
352
|
this.serialPort.pipe(this.parser);
|
|
372
353
|
this.parser.on('data', this.onFrame.bind(this));
|
|
373
354
|
try {
|
|
@@ -387,9 +368,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
387
368
|
this.socketPort = new net_1.Socket();
|
|
388
369
|
this.socketPort.setNoDelay(true);
|
|
389
370
|
this.socketPort.setKeepAlive(true, 15000);
|
|
390
|
-
this.writer = new writer_1.AshWriter({ highWaterMark: CONFIG_HIGHWATER_MARK });
|
|
391
371
|
this.writer.pipe(this.socketPort);
|
|
392
|
-
this.parser = new parser_1.AshParser({ readableHighWaterMark: CONFIG_HIGHWATER_MARK });
|
|
393
372
|
this.socketPort.pipe(this.parser);
|
|
394
373
|
this.parser.on('data', this.onFrame.bind(this));
|
|
395
374
|
return new Promise((resolve, reject) => {
|
|
@@ -421,7 +400,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
421
400
|
if (error && this.flags !== 0) {
|
|
422
401
|
logger_1.logger.info(`Port close ${error}`, NS);
|
|
423
402
|
this.flags = 0;
|
|
424
|
-
this.emit(
|
|
403
|
+
this.emit('fatalError', enums_1.EzspStatus.ERROR_SERIAL_INIT);
|
|
425
404
|
}
|
|
426
405
|
}
|
|
427
406
|
/**
|
|
@@ -431,7 +410,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
431
410
|
async onPortError(error) {
|
|
432
411
|
logger_1.logger.info(`Port ${error}`, NS);
|
|
433
412
|
this.flags = 0;
|
|
434
|
-
this.emit(
|
|
413
|
+
this.emit('fatalError', enums_1.EzspStatus.ERROR_SERIAL_INIT);
|
|
435
414
|
}
|
|
436
415
|
/**
|
|
437
416
|
* Handle received frame from AshParser.
|
|
@@ -458,7 +437,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
458
437
|
setImmediate(this.sendExec.bind(this)); // always trigger to cover all cases (also triggered in Ezsp layer when a DATA frame is emitted)
|
|
459
438
|
if (status !== enums_1.EzspStatus.SUCCESS && status !== enums_1.EzspStatus.ASH_IN_PROGRESS && status !== enums_1.EzspStatus.NO_RX_DATA) {
|
|
460
439
|
logger_1.logger.error(`Error while parsing received frame, status=${enums_1.EzspStatus[status]}.`, NS);
|
|
461
|
-
this.emit(
|
|
440
|
+
this.emit('fatalError', enums_1.EzspStatus.HOST_FATAL_ERROR);
|
|
462
441
|
return;
|
|
463
442
|
}
|
|
464
443
|
}
|
|
@@ -476,7 +455,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
476
455
|
}
|
|
477
456
|
logger_1.logger.info(`======== ASH starting ========`, NS);
|
|
478
457
|
try {
|
|
479
|
-
if (this.serialPort
|
|
458
|
+
if (this.serialPort) {
|
|
480
459
|
await this.serialPort.asyncFlush(); // clear read/write buffers
|
|
481
460
|
}
|
|
482
461
|
else {
|
|
@@ -510,7 +489,6 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
510
489
|
this.closing = true;
|
|
511
490
|
this.logCounters();
|
|
512
491
|
await this.closePort();
|
|
513
|
-
this.initVariables();
|
|
514
492
|
logger_1.logger.info(`======== ASH stopped ========`, NS);
|
|
515
493
|
}
|
|
516
494
|
/**
|
|
@@ -547,8 +525,6 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
547
525
|
return enums_1.EzspStatus.ERROR_INVALID_CALL;
|
|
548
526
|
}
|
|
549
527
|
logger_1.logger.info(`======== ASH Adapter reset ========`, NS);
|
|
550
|
-
this.initVariables();
|
|
551
|
-
let status;
|
|
552
528
|
// ask ncp to reset itself using RST frame
|
|
553
529
|
try {
|
|
554
530
|
if (!this.portOpen) {
|
|
@@ -559,8 +535,8 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
559
535
|
}
|
|
560
536
|
catch (err) {
|
|
561
537
|
logger_1.logger.error(`Failed to init port with error ${err}`, NS);
|
|
562
|
-
this.hostError =
|
|
563
|
-
return
|
|
538
|
+
this.hostError = enums_1.EzspStatus.HOST_FATAL_ERROR;
|
|
539
|
+
return this.hostError;
|
|
564
540
|
}
|
|
565
541
|
}
|
|
566
542
|
/**
|
|
@@ -599,7 +575,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
599
575
|
return enums_1.EzspStatus.NOT_CONNECTED;
|
|
600
576
|
}
|
|
601
577
|
const buffer = this.txFree.allocBuffer();
|
|
602
|
-
if (buffer
|
|
578
|
+
if (buffer === undefined) {
|
|
603
579
|
return enums_1.EzspStatus.NO_TX_SPACE;
|
|
604
580
|
}
|
|
605
581
|
inBuf.copy(buffer.data, 0, 0, len);
|
|
@@ -617,7 +593,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
617
593
|
let outByte = 0x00;
|
|
618
594
|
let inByte = 0x00;
|
|
619
595
|
let len = 0;
|
|
620
|
-
let buffer
|
|
596
|
+
let buffer;
|
|
621
597
|
// Check for received acknowledgement timer expiry
|
|
622
598
|
if (this.ackTimerHasExpired()) {
|
|
623
599
|
if (this.flags & Flag.CONNECTED) {
|
|
@@ -636,10 +612,10 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
636
612
|
else {
|
|
637
613
|
this.stopAckTimer();
|
|
638
614
|
}
|
|
639
|
-
}
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
615
|
+
} /* else {
|
|
616
|
+
this.hostDisconnect(EzspStatus.ASH_ERROR_RESET_FAIL);
|
|
617
|
+
}*/
|
|
618
|
+
// let Ezsp layer retry logic handle timeout
|
|
643
619
|
}
|
|
644
620
|
while (this.writer.writeAvailable()) {
|
|
645
621
|
// Send ASH_CAN character immediately, ahead of any other transmit data
|
|
@@ -659,7 +635,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
659
635
|
continue;
|
|
660
636
|
}
|
|
661
637
|
switch (this.sendState) {
|
|
662
|
-
case SendState.IDLE:
|
|
638
|
+
case SendState.IDLE: {
|
|
663
639
|
// In between frames - do some housekeeping and decide what to send next
|
|
664
640
|
// If retransmitting, set the next frame to send to the last ackNum
|
|
665
641
|
// received, then check to see if retransmission is now complete.
|
|
@@ -707,6 +683,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
707
683
|
}
|
|
708
684
|
else if (this.flags & Flag.RETX) {
|
|
709
685
|
// Retransmitting DATA frames for error recovery
|
|
686
|
+
// buffer assumed valid from loop logic
|
|
710
687
|
buffer = this.reTxQueue.getNthEntry((0, math_1.mod8)(this.frmTx - this.frmReTx));
|
|
711
688
|
len = buffer.len + 1;
|
|
712
689
|
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;
|
|
@@ -737,7 +714,8 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
737
714
|
outByte = this.encodeByte(len, this.txSHBuffer[0]);
|
|
738
715
|
this.writer.writeByte(outByte);
|
|
739
716
|
break;
|
|
740
|
-
|
|
717
|
+
}
|
|
718
|
+
case SendState.SHFRAME: {
|
|
741
719
|
// sending short frame
|
|
742
720
|
if (this.txOffset !== 0xff) {
|
|
743
721
|
inByte = this.txSHBuffer[this.txOffset];
|
|
@@ -748,10 +726,12 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
748
726
|
this.sendState = SendState.IDLE;
|
|
749
727
|
}
|
|
750
728
|
break;
|
|
729
|
+
}
|
|
751
730
|
case SendState.TX_DATA:
|
|
752
|
-
case SendState.RETX_DATA:
|
|
731
|
+
case SendState.RETX_DATA: {
|
|
753
732
|
// sending OR resending data frame
|
|
754
733
|
if (this.txOffset !== 0xff) {
|
|
734
|
+
// buffer assumed valid from loop logic
|
|
755
735
|
inByte = this.txOffset ? buffer.data[this.txOffset - 1] : this.txSHBuffer[0];
|
|
756
736
|
outByte = this.encodeByte(0, inByte);
|
|
757
737
|
this.writer.writeByte(outByte);
|
|
@@ -772,6 +752,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
772
752
|
this.sendState = SendState.IDLE;
|
|
773
753
|
}
|
|
774
754
|
break;
|
|
755
|
+
}
|
|
775
756
|
}
|
|
776
757
|
}
|
|
777
758
|
this.writer.writeFlush();
|
|
@@ -844,11 +825,11 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
844
825
|
// not a DATA frame
|
|
845
826
|
if (frameType === enums_2.AshFrameType.DATA) {
|
|
846
827
|
if (!(this.flags & Flag.CONNECTED) || ashGetFrmNum(this.rxSHBuffer[0]) !== this.frmRx) {
|
|
847
|
-
this.
|
|
828
|
+
this.freeAllocatedRxBuffer();
|
|
848
829
|
}
|
|
849
830
|
}
|
|
850
831
|
else {
|
|
851
|
-
this.
|
|
832
|
+
this.freeAllocatedRxBuffer();
|
|
852
833
|
}
|
|
853
834
|
const frameTypeStr = enums_2.AshFrameType[frameType];
|
|
854
835
|
logger_1.logger.debug(`<--- [FRAME type=${frameTypeStr}]`, NS);
|
|
@@ -876,7 +857,8 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
876
857
|
}
|
|
877
858
|
else if (frameType === enums_2.AshFrameType.ERROR) {
|
|
878
859
|
logger_1.logger.error(`Received ERROR from adapter while connecting, with code=${enums_2.NcpFailedCode[this.rxSHBuffer[2]]}.`, NS);
|
|
879
|
-
|
|
860
|
+
// let Ezsp retry logic handle error
|
|
861
|
+
// return this.ncpDisconnect(EzspStatus.ASH_NCP_FATAL_ERROR);
|
|
880
862
|
}
|
|
881
863
|
return enums_1.EzspStatus.ASH_IN_PROGRESS;
|
|
882
864
|
}
|
|
@@ -912,7 +894,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
912
894
|
}
|
|
913
895
|
// Process frames received while connected
|
|
914
896
|
switch (frameType) {
|
|
915
|
-
case enums_2.AshFrameType.DATA:
|
|
897
|
+
case enums_2.AshFrameType.DATA: {
|
|
916
898
|
frmNum = ashGetFrmNum(this.rxSHBuffer[0]);
|
|
917
899
|
const frameStr = `[FRAME type=${frameTypeStr} ackNum=${ackNum} frmNum=${frmNum}](frmRx=${this.frmRx})`;
|
|
918
900
|
if (frmNum === this.frmRx) {
|
|
@@ -934,7 +916,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
934
916
|
this.rxQueue.addTail(this.rxDataBuffer); // add frame to receive queue
|
|
935
917
|
logger_1.logger.debug(`<--- ${frameStr} Added to rxQueue`, NS);
|
|
936
918
|
this.counters.rxData += this.rxDataBuffer.len;
|
|
937
|
-
setImmediate(() => this.emit(
|
|
919
|
+
setImmediate(() => this.emit('frame'));
|
|
938
920
|
return enums_1.EzspStatus.SUCCESS;
|
|
939
921
|
}
|
|
940
922
|
else {
|
|
@@ -954,6 +936,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
954
936
|
}
|
|
955
937
|
}
|
|
956
938
|
break;
|
|
939
|
+
}
|
|
957
940
|
case enums_2.AshFrameType.ACK:
|
|
958
941
|
// already fully processed
|
|
959
942
|
break;
|
|
@@ -998,7 +981,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
998
981
|
let outByte = 0x00;
|
|
999
982
|
if (!this.decodeInProgress) {
|
|
1000
983
|
this.rxLen = 0;
|
|
1001
|
-
this.rxDataBuffer =
|
|
984
|
+
this.rxDataBuffer = undefined;
|
|
1002
985
|
}
|
|
1003
986
|
for (const inByte of buffer) {
|
|
1004
987
|
// 0xFF byte signals a callback is pending when between frames in synchronous (polled) callback mode.
|
|
@@ -1015,7 +998,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
1015
998
|
[status, outByte, this.rxLen] = this.decodeByte(inByte, outByte, this.rxLen);
|
|
1016
999
|
// discard an invalid frame
|
|
1017
1000
|
if (status !== enums_1.EzspStatus.ASH_IN_PROGRESS && status !== enums_1.EzspStatus.SUCCESS) {
|
|
1018
|
-
this.
|
|
1001
|
+
this.freeAllocatedRxBuffer();
|
|
1019
1002
|
break;
|
|
1020
1003
|
}
|
|
1021
1004
|
// if input byte produced an output byte
|
|
@@ -1031,14 +1014,14 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
1031
1014
|
if (this.rxLen === consts_1.SH_RX_BUFFER_LEN + 1) {
|
|
1032
1015
|
// alloc buffer, copy prior data
|
|
1033
1016
|
this.rxDataBuffer = this.rxFree.allocBuffer();
|
|
1034
|
-
if (this.rxDataBuffer !==
|
|
1017
|
+
if (this.rxDataBuffer !== undefined) {
|
|
1035
1018
|
// const len = SH_RX_BUFFER_LEN - 1;
|
|
1036
1019
|
// (void) memcpy(this.rxDataBuffer.data, this.shRxBuffer + 1, SH_RX_BUFFER_LEN - 1);
|
|
1037
1020
|
this.rxSHBuffer.copy(this.rxDataBuffer.data, 0, 1, consts_1.SH_RX_BUFFER_LEN);
|
|
1038
1021
|
this.rxDataBuffer.len = consts_1.SH_RX_BUFFER_LEN - 1;
|
|
1039
1022
|
}
|
|
1040
1023
|
}
|
|
1041
|
-
if (this.rxDataBuffer !==
|
|
1024
|
+
if (this.rxDataBuffer !== undefined) {
|
|
1042
1025
|
// copy next byte to buffer
|
|
1043
1026
|
this.rxDataBuffer.data[index - 1] = outByte; // -1 since control is omitted
|
|
1044
1027
|
this.rxDataBuffer.len = index;
|
|
@@ -1054,10 +1037,10 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
1054
1037
|
/**
|
|
1055
1038
|
*
|
|
1056
1039
|
*/
|
|
1057
|
-
|
|
1058
|
-
if (this.rxDataBuffer !==
|
|
1040
|
+
freeAllocatedRxBuffer() {
|
|
1041
|
+
if (this.rxDataBuffer !== undefined) {
|
|
1059
1042
|
this.rxFree.freeBuffer(this.rxDataBuffer);
|
|
1060
|
-
this.rxDataBuffer =
|
|
1043
|
+
this.rxDataBuffer = undefined;
|
|
1061
1044
|
}
|
|
1062
1045
|
}
|
|
1063
1046
|
/**
|