@willieee802/zigbee-herdsman 0.36.0 → 0.48.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/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +317 -0
- package/dist/adapter/adapter.d.ts +15 -13
- package/dist/adapter/adapter.d.ts.map +1 -1
- package/dist/adapter/adapter.js +15 -17
- package/dist/adapter/adapter.js.map +1 -1
- package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +14 -12
- package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
- package/dist/adapter/deconz/adapter/deconzAdapter.js +118 -128
- package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
- package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/driver.js +44 -44
- package/dist/adapter/deconz/driver/driver.js.map +1 -1
- package/dist/adapter/deconz/driver/frameParser.js +43 -43
- package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
- package/dist/adapter/deconz/driver/parser.js +6 -6
- package/dist/adapter/deconz/driver/parser.js.map +1 -1
- package/dist/adapter/deconz/driver/writer.js +3 -3
- package/dist/adapter/deconz/driver/writer.js.map +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.d.ts +32 -36
- package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.js +418 -446
- package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
- package/dist/adapter/ember/adapter/endpoints.d.ts +5 -3
- package/dist/adapter/ember/adapter/endpoints.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/endpoints.js +33 -31
- package/dist/adapter/ember/adapter/endpoints.js.map +1 -1
- package/dist/adapter/ember/adapter/oneWaitress.d.ts +10 -2
- package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/oneWaitress.js +19 -5
- package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -1
- package/dist/adapter/ember/adapter/requestQueue.d.ts +2 -4
- package/dist/adapter/ember/adapter/requestQueue.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/requestQueue.js +16 -21
- package/dist/adapter/ember/adapter/requestQueue.js.map +1 -1
- package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/tokensManager.js +23 -20
- package/dist/adapter/ember/adapter/tokensManager.js.map +1 -1
- package/dist/adapter/ember/consts.d.ts +0 -7
- package/dist/adapter/ember/consts.d.ts.map +1 -1
- package/dist/adapter/ember/consts.js +2 -9
- package/dist/adapter/ember/consts.js.map +1 -1
- package/dist/adapter/ember/enums.d.ts +12 -14
- package/dist/adapter/ember/enums.d.ts.map +1 -1
- package/dist/adapter/ember/enums.js +12 -14
- package/dist/adapter/ember/enums.js.map +1 -1
- package/dist/adapter/ember/ezsp/buffalo.js +4 -4
- package/dist/adapter/ember/ezsp/buffalo.js.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.d.ts +1 -2
- package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.js +218 -199
- package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
- package/dist/adapter/ember/types.d.ts +9 -9
- package/dist/adapter/ember/types.d.ts.map +1 -1
- package/dist/adapter/ember/uart/ash.d.ts +11 -5
- package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
- package/dist/adapter/ember/uart/ash.js +125 -93
- package/dist/adapter/ember/uart/ash.js.map +1 -1
- package/dist/adapter/ember/uart/consts.d.ts +1 -1
- package/dist/adapter/ember/uart/consts.js +1 -1
- package/dist/adapter/ember/uart/parser.d.ts.map +1 -1
- package/dist/adapter/ember/uart/parser.js +5 -9
- package/dist/adapter/ember/uart/parser.js.map +1 -1
- package/dist/adapter/ember/uart/queues.d.ts.map +1 -1
- package/dist/adapter/ember/uart/queues.js +3 -1
- 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 +4 -6
- package/dist/adapter/ember/uart/writer.js.map +1 -1
- package/dist/adapter/ember/utils/math.d.ts.map +1 -1
- package/dist/adapter/ember/zdo.d.ts +6 -2
- package/dist/adapter/ember/zdo.d.ts.map +1 -1
- package/dist/adapter/ember/zdo.js +2 -2
- package/dist/adapter/ember/zdo.js.map +1 -1
- package/dist/adapter/events.d.ts +17 -23
- package/dist/adapter/events.d.ts.map +1 -1
- package/dist/adapter/events.js +1 -2
- package/dist/adapter/events.js.map +1 -1
- package/dist/adapter/ezsp/adapter/backup.d.ts +0 -1
- package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/backup.js +3 -7
- package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +13 -10
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.js +79 -72
- package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
- package/dist/adapter/ezsp/driver/commands.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/commands.js +3 -5
- package/dist/adapter/ezsp/driver/commands.js.map +1 -1
- package/dist/adapter/ezsp/driver/driver.d.ts +1 -4
- package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/driver.js +101 -122
- package/dist/adapter/ezsp/driver/driver.js.map +1 -1
- package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/ezsp.js +61 -50
- package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
- package/dist/adapter/ezsp/driver/multicast.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/multicast.js +8 -12
- package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
- package/dist/adapter/ezsp/driver/parser.js +5 -5
- package/dist/adapter/ezsp/driver/parser.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/basic.js +1 -1
- package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/named.js +2 -2
- package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/struct.js +2 -2
- package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
- package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/uart.js +46 -46
- package/dist/adapter/ezsp/driver/uart.js.map +1 -1
- package/dist/adapter/ezsp/driver/writer.js +3 -6
- package/dist/adapter/ezsp/driver/writer.js.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +0 -1
- package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-backup.js +25 -29
- package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
- package/dist/adapter/z-stack/adapter/endpoints.js +4 -4
- package/dist/adapter/z-stack/adapter/endpoints.js.map +1 -1
- package/dist/adapter/z-stack/adapter/manager.d.ts +1 -4
- package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/manager.js +52 -61
- package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +14 -10
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/zStackAdapter.js +95 -69
- package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
- package/dist/adapter/z-stack/unpi/parser.d.ts +3 -1
- package/dist/adapter/z-stack/unpi/parser.d.ts.map +1 -1
- package/dist/adapter/z-stack/unpi/parser.js +18 -8
- package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
- package/dist/adapter/z-stack/unpi/writer.d.ts +3 -2
- package/dist/adapter/z-stack/unpi/writer.d.ts.map +1 -1
- package/dist/adapter/z-stack/unpi/writer.js +21 -11
- package/dist/adapter/z-stack/unpi/writer.js.map +1 -1
- package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +4 -2
- package/dist/adapter/z-stack/znp/buffaloZnp.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/buffaloZnp.js +154 -25
- package/dist/adapter/z-stack/znp/buffaloZnp.js.map +1 -1
- package/dist/adapter/z-stack/znp/definition.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/definition.js +2 -1
- package/dist/adapter/z-stack/znp/definition.js.map +1 -1
- package/dist/adapter/z-stack/znp/tstype.d.ts +4 -3
- package/dist/adapter/z-stack/znp/tstype.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/znp.d.ts +3 -1
- package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/znp.js +27 -32
- package/dist/adapter/z-stack/znp/znp.js.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/zigateAdapter.d.ts +13 -12
- package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
- package/dist/adapter/zigate/adapter/zigateAdapter.js +81 -90
- package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
- package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +7 -8
- package/dist/adapter/zigate/driver/buffaloZiGate.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/buffaloZiGate.js +150 -100
- package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
- package/dist/adapter/zigate/driver/commandType.d.ts +2 -1
- package/dist/adapter/zigate/driver/commandType.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/commandType.js +56 -52
- package/dist/adapter/zigate/driver/commandType.js.map +1 -1
- package/dist/adapter/zigate/driver/frame.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/frame.js +8 -8
- package/dist/adapter/zigate/driver/frame.js.map +1 -1
- package/dist/adapter/zigate/driver/messageType.d.ts +2 -1
- package/dist/adapter/zigate/driver/messageType.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/messageType.js +113 -108
- package/dist/adapter/zigate/driver/messageType.js.map +1 -1
- package/dist/adapter/zigate/driver/parameterType.d.ts +8 -1
- package/dist/adapter/zigate/driver/parameterType.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/parameterType.js +9 -0
- package/dist/adapter/zigate/driver/parameterType.js.map +1 -1
- package/dist/adapter/zigate/driver/ziGateObject.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/ziGateObject.js +9 -9
- package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
- package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/zigate.js +23 -31
- package/dist/adapter/zigate/driver/zigate.js.map +1 -1
- package/dist/buffalo/buffalo.d.ts +23 -19
- package/dist/buffalo/buffalo.d.ts.map +1 -1
- package/dist/buffalo/buffalo.js +74 -169
- package/dist/buffalo/buffalo.js.map +1 -1
- package/dist/buffalo/index.d.ts +1 -2
- package/dist/buffalo/index.d.ts.map +1 -1
- package/dist/buffalo/index.js +1 -26
- package/dist/buffalo/index.js.map +1 -1
- package/dist/controller/controller.d.ts +10 -5
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/controller/controller.js +184 -126
- package/dist/controller/controller.js.map +1 -1
- package/dist/controller/database.d.ts +1 -0
- package/dist/controller/database.d.ts.map +1 -1
- package/dist/controller/database.js +7 -10
- package/dist/controller/database.js.map +1 -1
- package/dist/controller/events.d.ts +2 -2
- package/dist/controller/events.d.ts.map +1 -1
- package/dist/controller/events.js +4 -0
- package/dist/controller/events.js.map +1 -1
- package/dist/controller/greenPower.d.ts +2 -1
- package/dist/controller/greenPower.d.ts.map +1 -1
- package/dist/controller/greenPower.js +51 -57
- package/dist/controller/greenPower.js.map +1 -1
- package/dist/controller/helpers/request.d.ts +3 -3
- package/dist/controller/helpers/request.d.ts.map +1 -1
- package/dist/controller/helpers/request.js +2 -2
- 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 +26 -36
- package/dist/controller/helpers/requestQueue.js.map +1 -1
- package/dist/controller/helpers/zclFrameConverter.d.ts +4 -3
- package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
- package/dist/controller/helpers/zclFrameConverter.js +33 -14
- package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
- package/dist/controller/model/device.d.ts +12 -5
- package/dist/controller/model/device.d.ts.map +1 -1
- package/dist/controller/model/device.js +105 -86
- package/dist/controller/model/device.js.map +1 -1
- package/dist/controller/model/endpoint.d.ts +22 -17
- package/dist/controller/model/endpoint.d.ts.map +1 -1
- package/dist/controller/model/endpoint.js +139 -228
- package/dist/controller/model/endpoint.js.map +1 -1
- package/dist/controller/model/group.d.ts +1 -1
- package/dist/controller/model/group.d.ts.map +1 -1
- package/dist/controller/model/group.js +18 -18
- package/dist/controller/model/group.js.map +1 -1
- package/dist/controller/model/konnextConfig.d.ts +7 -0
- package/dist/controller/model/konnextConfig.d.ts.map +1 -0
- package/dist/controller/{logger-stub.js → model/konnextConfig.js} +1 -1
- package/dist/controller/model/konnextConfig.js.map +1 -0
- package/dist/controller/touchlink.js +25 -28
- package/dist/controller/touchlink.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/dist/utils/aes.d.ts +40 -0
- package/dist/utils/aes.d.ts.map +1 -0
- package/dist/utils/aes.js +198 -0
- package/dist/utils/aes.js.map +1 -0
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +14 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/zspec/consts.d.ts +60 -0
- package/dist/zspec/consts.d.ts.map +1 -0
- package/dist/zspec/consts.js +64 -0
- package/dist/zspec/consts.js.map +1 -0
- package/dist/zspec/enums.d.ts +19 -0
- package/dist/zspec/enums.d.ts.map +1 -0
- package/dist/zspec/enums.js +28 -0
- package/dist/zspec/enums.js.map +1 -0
- package/dist/zspec/index.d.ts +4 -0
- package/dist/zspec/index.d.ts.map +1 -0
- package/dist/zspec/index.js +43 -0
- package/dist/zspec/index.js.map +1 -0
- package/dist/zspec/tstypes.d.ts +19 -0
- package/dist/zspec/tstypes.d.ts.map +1 -0
- package/dist/{buffalo/tstype.js → zspec/tstypes.js} +1 -1
- package/dist/zspec/tstypes.js.map +1 -0
- package/dist/zspec/utils.d.ts +14 -0
- package/dist/zspec/utils.d.ts.map +1 -0
- package/dist/zspec/utils.js +29 -0
- package/dist/zspec/utils.js.map +1 -0
- package/dist/zspec/zcl/buffaloZcl.d.ts +55 -0
- package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -0
- package/dist/zspec/zcl/buffaloZcl.js +929 -0
- package/dist/zspec/zcl/buffaloZcl.js.map +1 -0
- package/dist/zspec/zcl/definition/cluster.d.ts +3 -0
- package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -0
- package/dist/zspec/zcl/definition/cluster.js +5500 -0
- package/dist/zspec/zcl/definition/cluster.js.map +1 -0
- package/dist/zspec/zcl/definition/consts.d.ts +9 -0
- package/dist/zspec/zcl/definition/consts.d.ts.map +1 -0
- package/dist/zspec/zcl/definition/consts.js +27 -0
- package/dist/zspec/zcl/definition/consts.js.map +1 -0
- package/dist/zspec/zcl/definition/enums.d.ts +177 -0
- package/dist/zspec/zcl/definition/enums.d.ts.map +1 -0
- package/dist/zspec/zcl/definition/enums.js +187 -0
- package/dist/zspec/zcl/definition/enums.js.map +1 -0
- package/dist/zspec/zcl/definition/foundation.d.ts +11 -0
- package/dist/zspec/zcl/definition/foundation.d.ts.map +1 -0
- package/dist/zspec/zcl/definition/foundation.js +241 -0
- package/dist/zspec/zcl/definition/foundation.js.map +1 -0
- package/dist/zspec/zcl/definition/manufacturerCode.d.ts +727 -0
- package/dist/zspec/zcl/definition/manufacturerCode.d.ts.map +1 -0
- package/dist/zspec/zcl/definition/manufacturerCode.js +733 -0
- package/dist/zspec/zcl/definition/manufacturerCode.js.map +1 -0
- package/dist/zspec/zcl/definition/status.d.ts +69 -0
- package/dist/zspec/zcl/definition/status.d.ts.map +1 -0
- package/dist/zspec/zcl/definition/status.js +74 -0
- package/dist/zspec/zcl/definition/status.js.map +1 -0
- package/dist/zspec/zcl/definition/tstype.d.ts +114 -0
- package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -0
- package/dist/{zcl/zclHeader.js → zspec/zcl/definition/tstype.js} +2 -1
- package/dist/zspec/zcl/definition/tstype.js.map +1 -0
- package/dist/zspec/zcl/index.d.ts +11 -0
- package/dist/zspec/zcl/index.d.ts.map +1 -0
- package/dist/zspec/zcl/index.js +47 -0
- package/dist/zspec/zcl/index.js.map +1 -0
- package/dist/zspec/zcl/utils.d.ts +7 -0
- package/dist/zspec/zcl/utils.d.ts.map +1 -0
- package/dist/zspec/zcl/utils.js +234 -0
- package/dist/zspec/zcl/utils.js.map +1 -0
- package/dist/zspec/zcl/zclFrame.d.ts +36 -0
- package/dist/zspec/zcl/zclFrame.d.ts.map +1 -0
- package/dist/zspec/zcl/zclFrame.js +304 -0
- package/dist/zspec/zcl/zclFrame.js.map +1 -0
- package/dist/zspec/zcl/zclHeader.d.ts +17 -0
- package/dist/zspec/zcl/zclHeader.d.ts.map +1 -0
- package/dist/zspec/zcl/zclHeader.js +88 -0
- package/dist/zspec/zcl/zclHeader.js.map +1 -0
- package/dist/zspec/zcl/zclStatusError.d.ts +6 -0
- package/dist/zspec/zcl/zclStatusError.d.ts.map +1 -0
- package/dist/zspec/zcl/zclStatusError.js +13 -0
- package/dist/zspec/zcl/zclStatusError.js.map +1 -0
- package/dist/zspec/zdo/buffaloZdo.d.ts +438 -0
- package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -0
- package/dist/zspec/zdo/buffaloZdo.js +1892 -0
- package/dist/zspec/zdo/buffaloZdo.js.map +1 -0
- package/dist/zspec/zdo/definition/clusters.d.ts +624 -0
- package/dist/zspec/zdo/definition/clusters.d.ts.map +1 -0
- package/dist/zspec/zdo/definition/clusters.js +687 -0
- package/dist/zspec/zdo/definition/clusters.js.map +1 -0
- package/dist/zspec/zdo/definition/consts.d.ts +13 -0
- package/dist/zspec/zdo/definition/consts.d.ts.map +1 -0
- package/dist/zspec/zdo/definition/consts.js +16 -0
- package/dist/zspec/zdo/definition/consts.js.map +1 -0
- package/dist/zspec/zdo/definition/enums.d.ts +75 -0
- package/dist/zspec/zdo/definition/enums.d.ts.map +1 -0
- package/dist/zspec/zdo/definition/enums.js +97 -0
- package/dist/zspec/zdo/definition/enums.js.map +1 -0
- package/dist/zspec/zdo/definition/status.d.ts +99 -0
- package/dist/zspec/zdo/definition/status.d.ts.map +1 -0
- package/dist/zspec/zdo/definition/status.js +109 -0
- package/dist/zspec/zdo/definition/status.js.map +1 -0
- package/dist/zspec/zdo/definition/tstypes.d.ts +787 -0
- package/dist/zspec/zdo/definition/tstypes.d.ts.map +1 -0
- package/dist/{zcl/definition/tstype.js → zspec/zdo/definition/tstypes.js} +1 -1
- package/dist/zspec/zdo/definition/tstypes.js.map +1 -0
- package/dist/zspec/zdo/index.d.ts +7 -0
- package/dist/zspec/zdo/index.d.ts.map +1 -0
- package/dist/zspec/zdo/index.js +39 -0
- package/dist/zspec/zdo/index.js.map +1 -0
- package/dist/zspec/zdo/utils.d.ts +25 -0
- package/dist/zspec/zdo/utils.d.ts.map +1 -0
- package/dist/zspec/zdo/utils.js +75 -0
- package/dist/zspec/zdo/utils.js.map +1 -0
- package/dist/zspec/zdo/zdoStatusError.d.ts +6 -0
- package/dist/zspec/zdo/zdoStatusError.d.ts.map +1 -0
- package/dist/zspec/zdo/zdoStatusError.js +13 -0
- package/dist/zspec/zdo/zdoStatusError.js.map +1 -0
- package/examples/join-and-log.js +7 -12
- package/package.json +6 -6
- package/dist/adapter/zigate/debug.d.ts +0 -8
- package/dist/adapter/zigate/debug.d.ts.map +0 -1
- package/dist/adapter/zigate/debug.js +0 -20
- package/dist/adapter/zigate/debug.js.map +0 -1
- package/dist/buffalo/tstype.d.ts +0 -9
- package/dist/buffalo/tstype.d.ts.map +0 -1
- package/dist/buffalo/tstype.js.map +0 -1
- package/dist/controller/logger-stub.d.ts +0 -7
- package/dist/controller/logger-stub.d.ts.map +0 -1
- package/dist/controller/logger-stub.js.map +0 -1
- package/dist/zcl/buffaloZcl.d.ts +0 -42
- package/dist/zcl/buffaloZcl.d.ts.map +0 -1
- package/dist/zcl/buffaloZcl.js +0 -595
- package/dist/zcl/buffaloZcl.js.map +0 -1
- package/dist/zcl/definition/buffaloZclDataType.d.ts +0 -18
- package/dist/zcl/definition/buffaloZclDataType.d.ts.map +0 -1
- package/dist/zcl/definition/buffaloZclDataType.js +0 -21
- package/dist/zcl/definition/buffaloZclDataType.js.map +0 -1
- package/dist/zcl/definition/cluster.d.ts +0 -30
- package/dist/zcl/definition/cluster.d.ts.map +0 -1
- package/dist/zcl/definition/cluster.js +0 -5531
- package/dist/zcl/definition/cluster.js.map +0 -1
- package/dist/zcl/definition/dataType.d.ts +0 -60
- package/dist/zcl/definition/dataType.d.ts.map +0 -1
- package/dist/zcl/definition/dataType.js +0 -65
- package/dist/zcl/definition/dataType.js.map +0 -1
- package/dist/zcl/definition/direction.d.ts +0 -6
- package/dist/zcl/definition/direction.d.ts.map +0 -1
- package/dist/zcl/definition/direction.js +0 -9
- package/dist/zcl/definition/direction.js.map +0 -1
- package/dist/zcl/definition/endpointDeviceType.d.ts +0 -5
- package/dist/zcl/definition/endpointDeviceType.d.ts.map +0 -1
- package/dist/zcl/definition/endpointDeviceType.js +0 -16
- package/dist/zcl/definition/endpointDeviceType.js.map +0 -1
- package/dist/zcl/definition/foundation.d.ts +0 -12
- package/dist/zcl/definition/foundation.d.ts.map +0 -1
- package/dist/zcl/definition/foundation.js +0 -168
- package/dist/zcl/definition/foundation.js.map +0 -1
- package/dist/zcl/definition/frameControl.d.ts +0 -11
- package/dist/zcl/definition/frameControl.d.ts.map +0 -1
- package/dist/zcl/definition/frameControl.js +0 -3
- package/dist/zcl/definition/frameControl.js.map +0 -1
- package/dist/zcl/definition/frameType.d.ts +0 -6
- package/dist/zcl/definition/frameType.d.ts.map +0 -1
- package/dist/zcl/definition/frameType.js +0 -9
- package/dist/zcl/definition/frameType.js.map +0 -1
- package/dist/zcl/definition/index.d.ts +0 -14
- package/dist/zcl/definition/index.d.ts.map +0 -1
- package/dist/zcl/definition/index.js +0 -52
- package/dist/zcl/definition/index.js.map +0 -1
- package/dist/zcl/definition/manufacturerCode.d.ts +0 -1078
- package/dist/zcl/definition/manufacturerCode.d.ts.map +0 -1
- package/dist/zcl/definition/manufacturerCode.js +0 -1083
- package/dist/zcl/definition/manufacturerCode.js.map +0 -1
- package/dist/zcl/definition/powerSource.d.ts +0 -5
- package/dist/zcl/definition/powerSource.d.ts.map +0 -1
- package/dist/zcl/definition/powerSource.js +0 -13
- package/dist/zcl/definition/powerSource.js.map +0 -1
- package/dist/zcl/definition/status.d.ts +0 -39
- package/dist/zcl/definition/status.d.ts.map +0 -1
- package/dist/zcl/definition/status.js +0 -42
- package/dist/zcl/definition/status.js.map +0 -1
- package/dist/zcl/definition/tstype.d.ts +0 -17
- package/dist/zcl/definition/tstype.d.ts.map +0 -1
- package/dist/zcl/definition/tstype.js.map +0 -1
- package/dist/zcl/index.d.ts +0 -17
- package/dist/zcl/index.d.ts.map +0 -1
- package/dist/zcl/index.js +0 -56
- package/dist/zcl/index.js.map +0 -1
- package/dist/zcl/tstype.d.ts +0 -57
- package/dist/zcl/tstype.d.ts.map +0 -1
- package/dist/zcl/tstype.js +0 -10
- package/dist/zcl/tstype.js.map +0 -1
- package/dist/zcl/utils.d.ts +0 -7
- package/dist/zcl/utils.d.ts.map +0 -1
- package/dist/zcl/utils.js +0 -165
- package/dist/zcl/utils.js.map +0 -1
- package/dist/zcl/zclFrame.d.ts +0 -41
- package/dist/zcl/zclFrame.d.ts.map +0 -1
- package/dist/zcl/zclFrame.js +0 -352
- package/dist/zcl/zclFrame.js.map +0 -1
- package/dist/zcl/zclHeader.d.ts +0 -9
- package/dist/zcl/zclHeader.d.ts.map +0 -1
- package/dist/zcl/zclHeader.js.map +0 -1
- package/dist/zcl/zclStatusError.d.ts +0 -6
- package/dist/zcl/zclStatusError.d.ts.map +0 -1
- package/dist/zcl/zclStatusError.js +0 -15
- package/dist/zcl/zclStatusError.js.map +0 -1
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.UartAsh = exports.AshEvents = void 0;
|
|
7
7
|
/* istanbul ignore file */
|
|
8
|
-
const debug_1 = __importDefault(require("debug"));
|
|
9
8
|
const stream_1 = require("stream");
|
|
10
9
|
const net_1 = require("net");
|
|
11
10
|
const socketPortUtils_1 = __importDefault(require("../../socketPortUtils"));
|
|
@@ -18,7 +17,8 @@ const queues_1 = require("./queues");
|
|
|
18
17
|
const writer_1 = require("./writer");
|
|
19
18
|
const parser_1 = require("./parser");
|
|
20
19
|
const utils_1 = require("../../../utils");
|
|
21
|
-
const
|
|
20
|
+
const logger_1 = require("../../../utils/logger");
|
|
21
|
+
const NS = 'zh:ember:uart:ash';
|
|
22
22
|
/** ASH get rflag in control byte */
|
|
23
23
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
24
24
|
const ashGetRFlag = (ctrl) => ((ctrl & consts_1.ASH_RFLAG_MASK) >> consts_1.ASH_RFLAG_BIT);
|
|
@@ -31,10 +31,10 @@ const ashGetFrmNum = (ctrl) => ((ctrl & consts_1.ASH_FRMNUM_MASK) >> consts_1.AS
|
|
|
31
31
|
const ashGetACKNum = (ctrl) => ((ctrl & consts_1.ASH_ACKNUM_MASK) >> consts_1.ASH_ACKNUM_BIT);
|
|
32
32
|
var AshEvents;
|
|
33
33
|
(function (AshEvents) {
|
|
34
|
-
/** When the ASH protocol detects
|
|
35
|
-
AshEvents["
|
|
34
|
+
/** When the ASH protocol detects a fatal error (bubbles up to restart adapter). */
|
|
35
|
+
AshEvents["FATAL_ERROR"] = "fatalError";
|
|
36
36
|
/** When a frame has been parsed and queued in the rxQueue. */
|
|
37
|
-
AshEvents["
|
|
37
|
+
AshEvents["FRAME"] = "frame";
|
|
38
38
|
})(AshEvents || (exports.AshEvents = AshEvents = {}));
|
|
39
39
|
var SendState;
|
|
40
40
|
(function (SendState) {
|
|
@@ -205,7 +205,12 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
205
205
|
if (this.closing) {
|
|
206
206
|
return false;
|
|
207
207
|
}
|
|
208
|
-
|
|
208
|
+
if (socketPortUtils_1.default.isTcpPath(this.portOptions.path)) {
|
|
209
|
+
return this.socketPort && !this.socketPort.closed;
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
return this.serialPort && this.serialPort.isOpen;
|
|
213
|
+
}
|
|
209
214
|
}
|
|
210
215
|
/**
|
|
211
216
|
* Get max wait time before response is considered timed out.
|
|
@@ -351,7 +356,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
351
356
|
};
|
|
352
357
|
// enable software flow control if RTS/CTS not enabled in config
|
|
353
358
|
if (!serialOpts.rtscts) {
|
|
354
|
-
|
|
359
|
+
logger_1.logger.info(`RTS/CTS config is off, enabling software flow control.`, NS);
|
|
355
360
|
serialOpts.xon = true;
|
|
356
361
|
serialOpts.xoff = true;
|
|
357
362
|
}
|
|
@@ -360,7 +365,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
360
365
|
//@ts-expect-error Jest testing
|
|
361
366
|
serialOpts.binding = this.portOptions.binding;
|
|
362
367
|
}
|
|
363
|
-
debug(`Opening serial port with ${JSON.stringify(serialOpts)}
|
|
368
|
+
logger_1.logger.debug(`Opening serial port with ${JSON.stringify(serialOpts)}`, NS);
|
|
364
369
|
this.serialPort = new serialPort_1.SerialPort(serialOpts);
|
|
365
370
|
this.writer = new writer_1.AshWriter({ highWaterMark: CONFIG_HIGHWATER_MARK });
|
|
366
371
|
this.writer.pipe(this.serialPort);
|
|
@@ -369,7 +374,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
369
374
|
this.parser.on('data', this.onFrame.bind(this));
|
|
370
375
|
try {
|
|
371
376
|
await this.serialPort.asyncOpen();
|
|
372
|
-
|
|
377
|
+
logger_1.logger.info(`Serial port opened`, NS);
|
|
373
378
|
this.serialPort.once('close', this.onPortClose.bind(this));
|
|
374
379
|
this.serialPort.on('error', this.onPortError.bind(this));
|
|
375
380
|
}
|
|
@@ -380,7 +385,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
380
385
|
}
|
|
381
386
|
else {
|
|
382
387
|
const info = socketPortUtils_1.default.parseTcpPath(this.portOptions.path);
|
|
383
|
-
debug(`Opening TCP socket with ${info.host}:${info.port}
|
|
388
|
+
logger_1.logger.debug(`Opening TCP socket with ${info.host}:${info.port}`, NS);
|
|
384
389
|
this.socketPort = new net_1.Socket();
|
|
385
390
|
this.socketPort.setNoDelay(true);
|
|
386
391
|
this.socketPort.setKeepAlive(true, 15000);
|
|
@@ -395,10 +400,10 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
395
400
|
reject(err);
|
|
396
401
|
};
|
|
397
402
|
this.socketPort.on('connect', () => {
|
|
398
|
-
debug(
|
|
403
|
+
logger_1.logger.debug(`Socket connected`, NS);
|
|
399
404
|
});
|
|
400
405
|
this.socketPort.on('ready', async () => {
|
|
401
|
-
|
|
406
|
+
logger_1.logger.info(`Socket ready`, NS);
|
|
402
407
|
this.socketPort.removeListener('error', openError);
|
|
403
408
|
this.socketPort.once('close', this.onPortClose.bind(this));
|
|
404
409
|
this.socketPort.on('error', this.onPortError.bind(this));
|
|
@@ -414,16 +419,15 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
414
419
|
* @param err A boolean for Socket, an Error for serialport
|
|
415
420
|
*/
|
|
416
421
|
async onPortClose(err) {
|
|
417
|
-
|
|
422
|
+
logger_1.logger.info(`Port closed. Error? ${err ?? 'no'}`, NS);
|
|
418
423
|
}
|
|
419
424
|
/**
|
|
420
425
|
* Handle port error
|
|
421
426
|
* @param error
|
|
422
427
|
*/
|
|
423
428
|
async onPortError(error) {
|
|
424
|
-
|
|
425
|
-
this.
|
|
426
|
-
await this.stop();
|
|
429
|
+
logger_1.logger.info(`Port error: ${error}`, NS);
|
|
430
|
+
this.emit(AshEvents.FATAL_ERROR, enums_1.EzspStatus.ERROR_SERIAL_INIT);
|
|
427
431
|
}
|
|
428
432
|
/**
|
|
429
433
|
* Handle received frame from AshParser.
|
|
@@ -435,7 +439,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
435
439
|
// ignore the cancel before RSTACK
|
|
436
440
|
if (this.flags & Flag.CONNECTED) {
|
|
437
441
|
this.counters.rxCancelled += 1;
|
|
438
|
-
|
|
442
|
+
logger_1.logger.warning(`Frame(s) in progress cancelled in [${buffer.toString('hex')}]`, NS);
|
|
439
443
|
}
|
|
440
444
|
// get rid of everything up to the CAN flag and start reading frame from there, no need to loop through bytes in vain
|
|
441
445
|
buffer = buffer.subarray(iCAN + 1);
|
|
@@ -443,20 +447,14 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
443
447
|
if (!buffer.length) {
|
|
444
448
|
// skip any CANCEL that results in empty frame (have yet to see one, but just in case...)
|
|
445
449
|
// shouldn't happen for any other reason, unless receiving bad stuff from port?
|
|
446
|
-
debug(`Received empty frame. Skipping
|
|
450
|
+
logger_1.logger.debug(`Received empty frame. Skipping.`, NS);
|
|
447
451
|
return;
|
|
448
452
|
}
|
|
449
453
|
const status = this.receiveFrame(buffer);
|
|
450
454
|
if ((status !== enums_1.EzspStatus.SUCCESS) && (status !== enums_1.EzspStatus.ASH_IN_PROGRESS) && (status !== enums_1.EzspStatus.NO_RX_DATA)) {
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
this.emit(AshEvents.rxError, enums_1.EzspStatus.HOST_FATAL_ERROR);
|
|
455
|
-
return;
|
|
456
|
-
}
|
|
457
|
-
else {
|
|
458
|
-
debug(`Error while parsing received frame in NOT_CONNECTED state (flags=${this.flags}), status=${enums_1.EzspStatus[status]}.`);
|
|
459
|
-
}
|
|
455
|
+
logger_1.logger.error(`Error while parsing received frame, status=${enums_1.EzspStatus[status]}.`, NS);
|
|
456
|
+
this.emit(AshEvents.FATAL_ERROR, enums_1.EzspStatus.HOST_FATAL_ERROR);
|
|
457
|
+
return;
|
|
460
458
|
}
|
|
461
459
|
}
|
|
462
460
|
/**
|
|
@@ -471,7 +469,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
471
469
|
if (!this.portOpen || (this.flags & Flag.CONNECTED)) {
|
|
472
470
|
return enums_1.EzspStatus.ERROR_INVALID_CALL;
|
|
473
471
|
}
|
|
474
|
-
|
|
472
|
+
logger_1.logger.info(`======== ASH starting ========`, NS);
|
|
475
473
|
try {
|
|
476
474
|
if (this.serialPort != null) {
|
|
477
475
|
await this.serialPort.asyncFlush(); // clear read/write buffers
|
|
@@ -481,21 +479,21 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
481
479
|
}
|
|
482
480
|
}
|
|
483
481
|
catch (err) {
|
|
484
|
-
|
|
482
|
+
logger_1.logger.error(`Error while flushing before start: ${err}`, NS);
|
|
485
483
|
}
|
|
486
|
-
this.sendExec();
|
|
487
484
|
// block til RSTACK, fatal error or timeout
|
|
488
485
|
// NOTE: on average, this seems to take around 1000ms when successful
|
|
489
486
|
for (let i = 0; i < CONFIG_TIME_RST; i += CONFIG_TIME_RST_CHECK) {
|
|
487
|
+
this.sendExec();
|
|
490
488
|
if ((this.flags & Flag.CONNECTED)) {
|
|
491
|
-
|
|
489
|
+
logger_1.logger.info(`======== ASH started ========`, NS);
|
|
492
490
|
return enums_1.EzspStatus.SUCCESS;
|
|
493
491
|
}
|
|
494
492
|
else if ((this.hostError !== enums_1.EzspStatus.NO_ERROR) || (this.ncpError !== enums_1.EzspStatus.NO_ERROR)) {
|
|
495
493
|
// don't wait for inevitable fail, bail early, let retry logic in EZSP layer do its thing
|
|
496
494
|
break;
|
|
497
495
|
}
|
|
498
|
-
debug(`Waiting for RSTACK... ${i}/${CONFIG_TIME_RST}
|
|
496
|
+
logger_1.logger.debug(`Waiting for RSTACK... ${i}/${CONFIG_TIME_RST}`, NS);
|
|
499
497
|
await (0, utils_1.Wait)(CONFIG_TIME_RST_CHECK);
|
|
500
498
|
}
|
|
501
499
|
return enums_1.EzspStatus.HOST_FATAL_ERROR;
|
|
@@ -505,10 +503,10 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
505
503
|
*/
|
|
506
504
|
async stop() {
|
|
507
505
|
this.closing = true;
|
|
508
|
-
this.
|
|
506
|
+
this.logCounters();
|
|
509
507
|
await this.closePort();
|
|
510
508
|
this.initVariables();
|
|
511
|
-
|
|
509
|
+
logger_1.logger.info(`======== ASH stopped ========`, NS);
|
|
512
510
|
}
|
|
513
511
|
/**
|
|
514
512
|
* Close port and remove listeners.
|
|
@@ -518,17 +516,15 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
518
516
|
if (this.serialPort?.isOpen) {
|
|
519
517
|
try {
|
|
520
518
|
await this.serialPort.asyncFlushAndClose();
|
|
521
|
-
debug(`Serial port closed.`);
|
|
522
519
|
}
|
|
523
520
|
catch (err) {
|
|
524
|
-
|
|
521
|
+
logger_1.logger.error(`Failed to close serial port ${err}.`, NS);
|
|
525
522
|
}
|
|
526
523
|
this.serialPort.removeAllListeners();
|
|
527
524
|
}
|
|
528
525
|
else if (this.socketPort != null && !this.socketPort.closed) {
|
|
529
526
|
this.socketPort.destroy();
|
|
530
527
|
this.socketPort.removeAllListeners();
|
|
531
|
-
debug(`Socket port closed.`);
|
|
532
528
|
}
|
|
533
529
|
}
|
|
534
530
|
/**
|
|
@@ -545,7 +541,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
545
541
|
if (this.closing) {
|
|
546
542
|
return enums_1.EzspStatus.ERROR_INVALID_CALL;
|
|
547
543
|
}
|
|
548
|
-
|
|
544
|
+
logger_1.logger.info(`======== ASH NCP reset ========`, NS);
|
|
549
545
|
this.initVariables();
|
|
550
546
|
let status;
|
|
551
547
|
// ask ncp to reset itself using RST frame
|
|
@@ -557,7 +553,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
557
553
|
return enums_1.EzspStatus.SUCCESS;
|
|
558
554
|
}
|
|
559
555
|
catch (err) {
|
|
560
|
-
|
|
556
|
+
logger_1.logger.error(`Failed to init port with error ${err}`, NS);
|
|
561
557
|
this.hostError = status;
|
|
562
558
|
return enums_1.EzspStatus.HOST_FATAL_ERROR;
|
|
563
559
|
}
|
|
@@ -624,7 +620,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
624
620
|
if (this.ackRx !== expectedFrm) {
|
|
625
621
|
this.counters.rxAckTimeouts += 1;
|
|
626
622
|
this.adjustAckPeriod(true);
|
|
627
|
-
debug(`Timer expired waiting for ACK for ${expectedFrm}, current=${this.ackRx}
|
|
623
|
+
logger_1.logger.debug(`Timer expired waiting for ACK for ${expectedFrm}, current=${this.ackRx}`, NS);
|
|
628
624
|
if (++this.timeouts >= consts_1.ASH_MAX_TIMEOUTS) {
|
|
629
625
|
this.hostDisconnect(enums_1.EzspStatus.ASH_ERROR_TIMEOUTS);
|
|
630
626
|
return;
|
|
@@ -681,18 +677,18 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
681
677
|
len = 1;
|
|
682
678
|
this.flags &= ~(Flag.RST | Flag.NAK | Flag.ACK);
|
|
683
679
|
this.sendState = SendState.SHFRAME;
|
|
684
|
-
debug(`---> [FRAME type=RST]
|
|
680
|
+
logger_1.logger.debug(`---> [FRAME type=RST]`, NS);
|
|
685
681
|
}
|
|
686
682
|
else if (this.flags & (Flag.NAK | Flag.ACK)) {
|
|
687
683
|
if (this.flags & Flag.NAK) {
|
|
688
684
|
this.txSHBuffer[0] = enums_2.AshFrameType.NAK + (this.frmRx << consts_1.ASH_ACKNUM_BIT);
|
|
689
685
|
this.flags &= ~(Flag.NRTX | Flag.NAK | Flag.ACK);
|
|
690
|
-
debug(`---> [FRAME type=NAK frmRx=${this.frmRx}]
|
|
686
|
+
logger_1.logger.debug(`---> [FRAME type=NAK frmRx=${this.frmRx}]`, NS);
|
|
691
687
|
}
|
|
692
688
|
else {
|
|
693
689
|
this.txSHBuffer[0] = enums_2.AshFrameType.ACK + (this.frmRx << consts_1.ASH_ACKNUM_BIT);
|
|
694
690
|
this.flags &= ~(Flag.NRTX | Flag.ACK);
|
|
695
|
-
debug(`---> [FRAME type=ACK frmRx=${this.frmRx}]
|
|
691
|
+
logger_1.logger.debug(`---> [FRAME type=ACK frmRx=${this.frmRx}]`, NS);
|
|
696
692
|
}
|
|
697
693
|
if (this.flags & Flag.NR) {
|
|
698
694
|
this.txSHBuffer[0] |= consts_1.ASH_NFLAG_MASK;
|
|
@@ -709,7 +705,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
709
705
|
len = buffer.len + 1;
|
|
710
706
|
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;
|
|
711
707
|
this.sendState = SendState.RETX_DATA;
|
|
712
|
-
debug(`---> [FRAME type=DATA_RETX frmReTx=${this.frmReTx} frmRx=${this.frmRx}]
|
|
708
|
+
logger_1.logger.debug(`---> [FRAME type=DATA_RETX frmReTx=${this.frmReTx} frmRx=${this.frmRx}]`, NS);
|
|
713
709
|
}
|
|
714
710
|
else if (this.ackTx != this.frmRx) {
|
|
715
711
|
// An ACK should be generated
|
|
@@ -723,7 +719,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
723
719
|
this.counters.txData += (len - 1);
|
|
724
720
|
this.txSHBuffer[0] = enums_2.AshFrameType.DATA | (this.frmTx << consts_1.ASH_FRMNUM_BIT) | (this.frmRx << consts_1.ASH_ACKNUM_BIT);
|
|
725
721
|
this.sendState = SendState.TX_DATA;
|
|
726
|
-
debug(`---> [FRAME type=DATA frmTx=${this.frmTx} frmRx=${this.frmRx}]
|
|
722
|
+
logger_1.logger.debug(`---> [FRAME type=DATA frmTx=${this.frmTx} frmRx=${this.frmRx}]`, NS);
|
|
727
723
|
}
|
|
728
724
|
else {
|
|
729
725
|
// Otherwise there's nothing to send
|
|
@@ -810,27 +806,27 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
810
806
|
case enums_1.EzspStatus.ASH_BAD_CRC:
|
|
811
807
|
this.counters.rxCrcErrors += 1;
|
|
812
808
|
this.rejectFrame();
|
|
813
|
-
|
|
809
|
+
logger_1.logger.error(`Received frame with CRC error`, NS);
|
|
814
810
|
return enums_1.EzspStatus.NO_RX_DATA;
|
|
815
811
|
case enums_1.EzspStatus.ASH_COMM_ERROR:
|
|
816
812
|
this.counters.rxCommErrors += 1;
|
|
817
813
|
this.rejectFrame();
|
|
818
|
-
|
|
814
|
+
logger_1.logger.error(`Received frame with comm error`, NS);
|
|
819
815
|
return enums_1.EzspStatus.NO_RX_DATA;
|
|
820
816
|
case enums_1.EzspStatus.ASH_TOO_SHORT:
|
|
821
817
|
this.counters.rxTooShort += 1;
|
|
822
818
|
this.rejectFrame();
|
|
823
|
-
|
|
819
|
+
logger_1.logger.error(`Received frame shorter than minimum`, NS);
|
|
824
820
|
return enums_1.EzspStatus.NO_RX_DATA;
|
|
825
821
|
case enums_1.EzspStatus.ASH_TOO_LONG:
|
|
826
822
|
this.counters.rxTooLong += 1;
|
|
827
823
|
this.rejectFrame();
|
|
828
|
-
|
|
824
|
+
logger_1.logger.error(`Received frame longer than maximum`, NS);
|
|
829
825
|
return enums_1.EzspStatus.NO_RX_DATA;
|
|
830
826
|
case enums_1.EzspStatus.ASH_ERROR_XON_XOFF:
|
|
831
827
|
return this.hostDisconnect(status);
|
|
832
828
|
default:
|
|
833
|
-
|
|
829
|
+
logger_1.logger.error(`Unhandled error while receiving frame, status=${enums_1.EzspStatus[status]}.`, NS);
|
|
834
830
|
return this.hostDisconnect(enums_1.EzspStatus.HOST_FATAL_ERROR);
|
|
835
831
|
}
|
|
836
832
|
// Got a complete frame - validate its control and length.
|
|
@@ -849,7 +845,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
849
845
|
this.freeNonNullRxBuffer();
|
|
850
846
|
}
|
|
851
847
|
const frameTypeStr = enums_2.AshFrameType[frameType];
|
|
852
|
-
debug(`<--- [FRAME type=${frameTypeStr}]
|
|
848
|
+
logger_1.logger.debug(`<--- [FRAME type=${frameTypeStr}]`, NS);
|
|
853
849
|
this.countFrame(false);
|
|
854
850
|
// Process frames received while not in the connected state -
|
|
855
851
|
// ignore everything except RSTACK and ERROR frames
|
|
@@ -869,11 +865,11 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
869
865
|
this.timeouts = 0;
|
|
870
866
|
this.setAckPeriod(CONFIG_ACK_TIME_INIT);
|
|
871
867
|
this.flags = Flag.CONNECTED | Flag.ACK;
|
|
872
|
-
|
|
868
|
+
logger_1.logger.info(`======== ASH connected ========`, NS);
|
|
873
869
|
return enums_1.EzspStatus.SUCCESS;
|
|
874
870
|
}
|
|
875
871
|
else if (frameType === enums_2.AshFrameType.ERROR) {
|
|
876
|
-
|
|
872
|
+
logger_1.logger.error(`Received ERROR from NCP while connecting, with code=${enums_2.NcpFailedCode[this.rxSHBuffer[2]]}.`, NS);
|
|
877
873
|
return this.ncpDisconnect(enums_1.EzspStatus.ASH_NCP_FATAL_ERROR);
|
|
878
874
|
}
|
|
879
875
|
return enums_1.EzspStatus.ASH_IN_PROGRESS;
|
|
@@ -881,10 +877,10 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
881
877
|
// Connected - process the ackNum in ACK, NAK and DATA frames
|
|
882
878
|
if ((frameType === enums_2.AshFrameType.DATA) || (frameType === enums_2.AshFrameType.ACK) || (frameType === enums_2.AshFrameType.NAK)) {
|
|
883
879
|
ackNum = ashGetACKNum(this.rxSHBuffer[0]);
|
|
884
|
-
debug(`<--- [FRAME type=${frameTypeStr} ackNum=${ackNum}]
|
|
880
|
+
logger_1.logger.debug(`<--- [FRAME type=${frameTypeStr} ackNum=${ackNum}]`, NS);
|
|
885
881
|
if (!(0, math_1.withinRange)(this.ackRx, ackNum, this.frmTx)) {
|
|
886
882
|
this.counters.rxBadAckNumber += 1;
|
|
887
|
-
debug(`<-x- [FRAME type=${frameTypeStr} ackNum=${ackNum}] Invalid ACK num; not within <${this.ackRx}-${this.frmTx}
|
|
883
|
+
logger_1.logger.debug(`<-x- [FRAME type=${frameTypeStr} ackNum=${ackNum}] Invalid ACK num; not within <${this.ackRx}-${this.frmTx}>`, NS);
|
|
888
884
|
frameType = enums_2.AshFrameType.INVALID;
|
|
889
885
|
}
|
|
890
886
|
else if (ackNum !== this.ackRx) {
|
|
@@ -918,7 +914,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
918
914
|
if (this.rxDataBuffer == null) {
|
|
919
915
|
// valid frame but no memory?
|
|
920
916
|
this.counters.rxNoBuffer += 1;
|
|
921
|
-
debug(`<-x- ${frameStr} No buffer available
|
|
917
|
+
logger_1.logger.debug(`<-x- ${frameStr} No buffer available`, NS);
|
|
922
918
|
this.rejectFrame();
|
|
923
919
|
return enums_1.EzspStatus.NO_RX_SPACE;
|
|
924
920
|
}
|
|
@@ -930,10 +926,10 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
930
926
|
this.frmRx = (0, math_1.inc8)(this.frmRx);
|
|
931
927
|
this.randomizeBuffer(this.rxDataBuffer.data, this.rxDataBuffer.len); // IN/OUT data
|
|
932
928
|
this.rxQueue.addTail(this.rxDataBuffer); // add frame to receive queue
|
|
933
|
-
debug(`<--- ${frameStr} Added to rxQueue
|
|
929
|
+
logger_1.logger.debug(`<--- ${frameStr} Added to rxQueue`, NS);
|
|
934
930
|
this.counters.rxData += this.rxDataBuffer.len;
|
|
935
931
|
setImmediate(() => {
|
|
936
|
-
this.emit(AshEvents.
|
|
932
|
+
this.emit(AshEvents.FRAME);
|
|
937
933
|
});
|
|
938
934
|
return enums_1.EzspStatus.SUCCESS;
|
|
939
935
|
}
|
|
@@ -948,7 +944,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
948
944
|
// 1st OOS? then set REJ, send NAK
|
|
949
945
|
if ((this.flags & Flag.REJ) === 0) {
|
|
950
946
|
this.counters.rxOutOfSequence += 1;
|
|
951
|
-
debug(`<-x- ${frameStr} Out of sequence: expected ${this.frmRx}; got ${frmNum}
|
|
947
|
+
logger_1.logger.debug(`<-x- ${frameStr} Out of sequence: expected ${this.frmRx}; got ${frmNum}.`, NS);
|
|
952
948
|
}
|
|
953
949
|
this.rejectFrame();
|
|
954
950
|
}
|
|
@@ -963,16 +959,16 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
963
959
|
break;
|
|
964
960
|
case enums_2.AshFrameType.RSTACK:
|
|
965
961
|
// unexpected ncp reset
|
|
966
|
-
|
|
962
|
+
logger_1.logger.error(`Received unexpected reset from NCP, with reason=${enums_2.NcpFailedCode[this.rxSHBuffer[2]]}.`, NS);
|
|
967
963
|
this.ncpError = enums_1.EzspStatus.ASH_NCP_FATAL_ERROR;
|
|
968
964
|
return this.hostDisconnect(enums_1.EzspStatus.ASH_ERROR_NCP_RESET);
|
|
969
965
|
case enums_2.AshFrameType.ERROR:
|
|
970
966
|
// ncp error
|
|
971
|
-
|
|
967
|
+
logger_1.logger.error(`Received ERROR from NCP, with code=${enums_2.NcpFailedCode[this.rxSHBuffer[2]]}.`, NS);
|
|
972
968
|
return this.ncpDisconnect(enums_1.EzspStatus.ASH_NCP_FATAL_ERROR);
|
|
973
969
|
case enums_2.AshFrameType.INVALID:
|
|
974
970
|
// reject invalid frames
|
|
975
|
-
debug(`<-x- [FRAME type=${frameTypeStr}] Rejecting. ${this.rxSHBuffer.toString('hex')}
|
|
971
|
+
logger_1.logger.debug(`<-x- [FRAME type=${frameTypeStr}] Rejecting. ${this.rxSHBuffer.toString('hex')}`, NS);
|
|
976
972
|
this.rejectFrame();
|
|
977
973
|
break;
|
|
978
974
|
}
|
|
@@ -1092,12 +1088,11 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
1092
1088
|
// Set/clear NR flag based on the number of buffers free
|
|
1093
1089
|
if (this.rxFree.length < CONFIG_NR_LOW_LIMIT) {
|
|
1094
1090
|
this.flags |= Flag.NR;
|
|
1095
|
-
|
|
1091
|
+
logger_1.logger.warning(`NOT READY - Signaling NCP`, NS);
|
|
1096
1092
|
}
|
|
1097
1093
|
else if (this.rxFree.length > CONFIG_NR_HIGH_LIMIT) {
|
|
1098
1094
|
this.flags &= ~Flag.NR;
|
|
1099
1095
|
this.stopNrTimer(); // needed??
|
|
1100
|
-
// debug(`READY - Signaling NCP`);// spams-a-lot
|
|
1101
1096
|
}
|
|
1102
1097
|
// Force an ACK (or possibly NAK) if we need to send an updated nFlag
|
|
1103
1098
|
// due to either a changed NR status or to refresh a set nFlag
|
|
@@ -1128,7 +1123,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
1128
1123
|
hostDisconnect(error) {
|
|
1129
1124
|
this.flags = 0;
|
|
1130
1125
|
this.hostError = error;
|
|
1131
|
-
|
|
1126
|
+
logger_1.logger.error(`ASH disconnected: ${enums_1.EzspStatus[error]} | NCP status: ${enums_1.EzspStatus[this.ncpError]}`, NS);
|
|
1132
1127
|
return enums_1.EzspStatus.HOST_FATAL_ERROR;
|
|
1133
1128
|
}
|
|
1134
1129
|
/**
|
|
@@ -1139,7 +1134,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
1139
1134
|
ncpDisconnect(error) {
|
|
1140
1135
|
this.flags = 0;
|
|
1141
1136
|
this.ncpError = error;
|
|
1142
|
-
|
|
1137
|
+
logger_1.logger.error(`ASH disconnected | NCP status: ${enums_1.EzspStatus[this.ncpError]}`, NS);
|
|
1143
1138
|
return enums_1.EzspStatus.ASH_NCP_FATAL_ERROR;
|
|
1144
1139
|
}
|
|
1145
1140
|
/**
|
|
@@ -1212,11 +1207,11 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
1212
1207
|
}
|
|
1213
1208
|
else {
|
|
1214
1209
|
this.counters.rxBadControl += 1;
|
|
1215
|
-
debug(`Frame illegal control ${control}
|
|
1210
|
+
logger_1.logger.debug(`Frame illegal control ${control}.`, NS); // EzspStatus.ASH_BAD_CONTROL
|
|
1216
1211
|
return enums_2.AshFrameType.INVALID;
|
|
1217
1212
|
}
|
|
1218
1213
|
this.counters.rxBadLength += 1;
|
|
1219
|
-
debug(`Frame illegal length ${len} for control ${control}
|
|
1214
|
+
logger_1.logger.debug(`Frame illegal length ${len} for control ${control}.`, NS); // EzspStatus.ASH_BAD_LENGTH
|
|
1220
1215
|
return enums_2.AshFrameType.INVALID;
|
|
1221
1216
|
}
|
|
1222
1217
|
/**
|
|
@@ -1569,32 +1564,69 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
1569
1564
|
}
|
|
1570
1565
|
}
|
|
1571
1566
|
/**
|
|
1572
|
-
*
|
|
1567
|
+
* Read and clear ASH layer counters in the same manner as the NCP ones.
|
|
1568
|
+
* @returns
|
|
1569
|
+
*/
|
|
1570
|
+
readAndClearCounters() {
|
|
1571
|
+
const counters = [
|
|
1572
|
+
this.counters.txData,
|
|
1573
|
+
this.counters.txAllFrames,
|
|
1574
|
+
this.counters.txDataFrames,
|
|
1575
|
+
this.counters.txAckFrames,
|
|
1576
|
+
this.counters.txNakFrames,
|
|
1577
|
+
this.counters.txReDataFrames,
|
|
1578
|
+
this.counters.txN1Frames,
|
|
1579
|
+
this.counters.txCancelled,
|
|
1580
|
+
this.counters.rxData,
|
|
1581
|
+
this.counters.rxAllFrames,
|
|
1582
|
+
this.counters.rxDataFrames,
|
|
1583
|
+
this.counters.rxAckFrames,
|
|
1584
|
+
this.counters.rxNakFrames,
|
|
1585
|
+
this.counters.rxReDataFrames,
|
|
1586
|
+
this.counters.rxN1Frames,
|
|
1587
|
+
this.counters.rxCancelled,
|
|
1588
|
+
this.counters.rxCrcErrors,
|
|
1589
|
+
this.counters.rxCommErrors,
|
|
1590
|
+
this.counters.rxTooShort,
|
|
1591
|
+
this.counters.rxTooLong,
|
|
1592
|
+
this.counters.rxBadControl,
|
|
1593
|
+
this.counters.rxBadLength,
|
|
1594
|
+
this.counters.rxBadAckNumber,
|
|
1595
|
+
this.counters.rxNoBuffer,
|
|
1596
|
+
this.counters.rxDuplicates,
|
|
1597
|
+
this.counters.rxOutOfSequence,
|
|
1598
|
+
this.counters.rxAckTimeouts,
|
|
1599
|
+
];
|
|
1600
|
+
for (const c in this.counters) {
|
|
1601
|
+
this.counters[c] = 0;
|
|
1602
|
+
}
|
|
1603
|
+
return counters;
|
|
1604
|
+
}
|
|
1605
|
+
/**
|
|
1606
|
+
* Log counters (pretty-formatted) as they are since last time they were cleared.
|
|
1607
|
+
* Used on ASH layer stop to get 'pre-stop state'.
|
|
1573
1608
|
*/
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
});
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
"Out of sequence": { "Received": this.counters.rxOutOfSequence },
|
|
1596
|
-
"ACK timeouts": { "Received": this.counters.rxAckTimeouts },
|
|
1597
|
-
});
|
|
1609
|
+
logCounters() {
|
|
1610
|
+
logger_1.logger.info(`ASH COUNTERS since last clear:`, NS);
|
|
1611
|
+
logger_1.logger.info(` Total frames: RX=${this.counters.rxAllFrames}, TX=${this.counters.txAllFrames}`, NS);
|
|
1612
|
+
logger_1.logger.info(` Cancelled : RX=${this.counters.rxCancelled}, TX=${this.counters.txCancelled}`, NS);
|
|
1613
|
+
logger_1.logger.info(` DATA frames : RX=${this.counters.rxDataFrames}, TX=${this.counters.txDataFrames}`, NS);
|
|
1614
|
+
logger_1.logger.info(` DATA bytes : RX=${this.counters.rxData}, TX=${this.counters.txData}`, NS);
|
|
1615
|
+
logger_1.logger.info(` Retry frames: RX=${this.counters.rxReDataFrames}, TX=${this.counters.txReDataFrames}`, NS);
|
|
1616
|
+
logger_1.logger.info(` ACK frames : RX=${this.counters.rxAckFrames}, TX=${this.counters.txAckFrames}`, NS);
|
|
1617
|
+
logger_1.logger.info(` NAK frames : RX=${this.counters.rxNakFrames}, TX=${this.counters.txNakFrames}`, NS);
|
|
1618
|
+
logger_1.logger.info(` nRdy frames : RX=${this.counters.rxN1Frames}, TX=${this.counters.txN1Frames}`, NS);
|
|
1619
|
+
logger_1.logger.info(` CRC errors : RX=${this.counters.rxCrcErrors}`, NS);
|
|
1620
|
+
logger_1.logger.info(` Comm errors : RX=${this.counters.rxCommErrors}`, NS);
|
|
1621
|
+
logger_1.logger.info(` Length < minimum: RX=${this.counters.rxTooShort}`, NS);
|
|
1622
|
+
logger_1.logger.info(` Length > maximum: RX=${this.counters.rxTooLong}`, NS);
|
|
1623
|
+
logger_1.logger.info(` Bad controls : RX=${this.counters.rxBadControl}`, NS);
|
|
1624
|
+
logger_1.logger.info(` Bad lengths : RX=${this.counters.rxBadLength}`, NS);
|
|
1625
|
+
logger_1.logger.info(` Bad ACK numbers : RX=${this.counters.rxBadAckNumber}`, NS);
|
|
1626
|
+
logger_1.logger.info(` Out of buffers : RX=${this.counters.rxNoBuffer}`, NS);
|
|
1627
|
+
logger_1.logger.info(` Retry dupes : RX=${this.counters.rxDuplicates}`, NS);
|
|
1628
|
+
logger_1.logger.info(` Out of sequence : RX=${this.counters.rxOutOfSequence}`, NS);
|
|
1629
|
+
logger_1.logger.info(` ACK timeouts : RX=${this.counters.rxAckTimeouts}`, NS);
|
|
1598
1630
|
}
|
|
1599
1631
|
}
|
|
1600
1632
|
exports.UartAsh = UartAsh;
|