@willieee802/zigbee-herdsman 0.34.3 → 0.48.1
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 +403 -0
- package/dist/adapter/adapter.d.ts +14 -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 +60 -71
- package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.js +453 -492
- 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 +16 -5
- package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/oneWaitress.js +19 -4
- 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 +17 -22
- 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 +133 -145
- package/dist/adapter/ember/enums.d.ts.map +1 -1
- package/dist/adapter/ember/enums.js +132 -148
- 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 -3
- package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.js +224 -208
- 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 +27 -14
- package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
- package/dist/adapter/ember/uart/ash.js +158 -109
- 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/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 +4 -1
- package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/backup.js +35 -7
- package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +12 -9
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.js +79 -75
- 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 +4 -2
- package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/driver.js +183 -119
- 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 +62 -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.d.ts +1 -1
- package/dist/adapter/ezsp/driver/types/struct.d.ts.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/utils/index.d.ts +2 -1
- package/dist/adapter/ezsp/driver/utils/index.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/utils/index.js +2 -2
- package/dist/adapter/ezsp/driver/utils/index.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/serialPort.d.ts +3 -0
- package/dist/adapter/serialPort.d.ts.map +1 -1
- package/dist/adapter/serialPort.js +16 -23
- package/dist/adapter/serialPort.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 +12 -10
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/zStackAdapter.js +102 -84
- package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
- package/dist/adapter/z-stack/unpi/parser.js +6 -6
- package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
- package/dist/adapter/z-stack/unpi/writer.js +4 -7
- 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.map +1 -1
- package/dist/adapter/z-stack/znp/znp.js +18 -25
- 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 +8 -5
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/controller/controller.js +181 -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 +108 -87
- 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/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/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 +5 -5
- 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 +0 -3
- 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 -5521
- 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,9 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Ezsp = exports.EzspEvents = void 0;
|
|
7
7
|
/* istanbul ignore file */
|
|
8
|
-
const debug_1 = __importDefault(require("debug"));
|
|
9
8
|
const events_1 = __importDefault(require("events"));
|
|
10
|
-
const cluster_1 =
|
|
9
|
+
const cluster_1 = require("../../../zspec/zcl/definition/cluster");
|
|
11
10
|
const math_1 = require("../utils/math");
|
|
12
11
|
const enums_1 = require("../enums");
|
|
13
12
|
const zdo_1 = require("../zdo");
|
|
@@ -17,7 +16,8 @@ const ash_1 = require("../uart/ash");
|
|
|
17
16
|
const buffalo_1 = require("./buffalo");
|
|
18
17
|
const consts_2 = require("../consts");
|
|
19
18
|
const endpoints_1 = require("../adapter/endpoints");
|
|
20
|
-
const
|
|
19
|
+
const logger_1 = require("../../../utils/logger");
|
|
20
|
+
const NS = 'zh:ember:ezsp';
|
|
21
21
|
/** no multi-network atm, so just use const */
|
|
22
22
|
const DEFAULT_NETWORK_INDEX = endpoints_1.FIXED_ENDPOINTS[0].networkIndex;
|
|
23
23
|
/** other values not supported atm */
|
|
@@ -106,13 +106,11 @@ class Ezsp extends events_1.default {
|
|
|
106
106
|
tickHandle;
|
|
107
107
|
constructor(tickInterval, options) {
|
|
108
108
|
super();
|
|
109
|
-
this.tickInterval = tickInterval ||
|
|
109
|
+
this.tickInterval = tickInterval || 5;
|
|
110
110
|
this.frameContents = Buffer.alloc(consts_1.EZSP_MAX_FRAME_LENGTH);
|
|
111
111
|
this.buffalo = new buffalo_1.EzspBuffalo(this.frameContents);
|
|
112
112
|
this.ash = new ash_1.UartAsh(options);
|
|
113
|
-
this.ash.on(ash_1.AshEvents.
|
|
114
|
-
this.ash.on(ash_1.AshEvents.ncpError, this.onAshNCPError.bind(this));
|
|
115
|
-
this.ash.on(ash_1.AshEvents.frame, this.onAshFrame.bind(this));
|
|
113
|
+
this.ash.on(ash_1.AshEvents.FRAME, this.onAshFrame.bind(this));
|
|
116
114
|
}
|
|
117
115
|
/**
|
|
118
116
|
* Returns the number of EZSP responses that have been received by the serial
|
|
@@ -130,7 +128,11 @@ class Ezsp extends events_1.default {
|
|
|
130
128
|
return `[FRAME: ID=${id}:"${enums_2.EzspFrameID[id]}" Seq=${this.frameContents[consts_1.EZSP_SEQUENCE_INDEX]} Len=${this.frameLength}]`;
|
|
131
129
|
}
|
|
132
130
|
initVariables() {
|
|
133
|
-
|
|
131
|
+
if (this.waitingForResponse) {
|
|
132
|
+
clearTimeout(this.responseWaiter.timer);
|
|
133
|
+
}
|
|
134
|
+
clearTimeout(this.tickHandle);
|
|
135
|
+
this.ash.removeAllListeners(ash_1.AshEvents.FATAL_ERROR);
|
|
134
136
|
this.frameContents.fill(0);
|
|
135
137
|
this.frameLength = 0;
|
|
136
138
|
this.buffalo.setPosition(0);
|
|
@@ -144,18 +146,21 @@ class Ezsp extends events_1.default {
|
|
|
144
146
|
this.tickHandle = null;
|
|
145
147
|
}
|
|
146
148
|
async start() {
|
|
147
|
-
|
|
149
|
+
logger_1.logger.info(`======== EZSP starting ========`, NS);
|
|
148
150
|
this.initVariables();
|
|
149
151
|
let status;
|
|
150
152
|
for (let i = 0; i < MAX_INIT_ATTEMPTS; i++) {
|
|
151
153
|
status = await this.ash.resetNcp();
|
|
154
|
+
// fail early if we couldn't even get the port set up
|
|
152
155
|
if (status !== enums_1.EzspStatus.SUCCESS) {
|
|
153
156
|
return status;
|
|
154
157
|
}
|
|
155
158
|
status = await this.ash.start();
|
|
156
159
|
if (status === enums_1.EzspStatus.SUCCESS) {
|
|
157
|
-
|
|
158
|
-
this
|
|
160
|
+
logger_1.logger.info(`======== EZSP started ========`, NS);
|
|
161
|
+
// registered after reset sequence to avoid bubbling up to adapter before this point
|
|
162
|
+
this.ash.on(ash_1.AshEvents.FATAL_ERROR, this.onAshFatalError.bind(this));
|
|
163
|
+
this.tick();
|
|
159
164
|
return status;
|
|
160
165
|
}
|
|
161
166
|
}
|
|
@@ -167,12 +172,8 @@ class Ezsp extends events_1.default {
|
|
|
167
172
|
*/
|
|
168
173
|
async stop() {
|
|
169
174
|
await this.ash.stop();
|
|
170
|
-
if (this.waitingForResponse) {
|
|
171
|
-
clearTimeout(this.responseWaiter.timer);
|
|
172
|
-
}
|
|
173
|
-
clearInterval(this.tickHandle);
|
|
174
175
|
this.initVariables();
|
|
175
|
-
|
|
176
|
+
logger_1.logger.info(`======== EZSP stopped ========`, NS);
|
|
176
177
|
}
|
|
177
178
|
/**
|
|
178
179
|
* Check if connected.
|
|
@@ -183,11 +184,8 @@ class Ezsp extends events_1.default {
|
|
|
183
184
|
checkConnection() {
|
|
184
185
|
return this.ash.connected;
|
|
185
186
|
}
|
|
186
|
-
|
|
187
|
-
this.
|
|
188
|
-
}
|
|
189
|
-
onAshNCPError(status) {
|
|
190
|
-
this.ezspErrorHandler(status);
|
|
187
|
+
onAshFatalError(status) {
|
|
188
|
+
this.emit(EzspEvents.ncpNeedsResetAndInit, status);
|
|
191
189
|
}
|
|
192
190
|
onAshFrame() {
|
|
193
191
|
// let tick handle if not waiting for response (CBs)
|
|
@@ -211,14 +209,13 @@ class Ezsp extends events_1.default {
|
|
|
211
209
|
const lastFrameStr = `Last: ${this.frameToString}.`;
|
|
212
210
|
if (status === enums_1.EzspStatus.ERROR_QUEUE_FULL) {
|
|
213
211
|
this.counterErrQueueFull += 1;
|
|
214
|
-
|
|
212
|
+
logger_1.logger.error(`NCP Queue full (counter: ${this.counterErrQueueFull}). ${lastFrameStr}`, NS);
|
|
215
213
|
}
|
|
216
214
|
else if (status === enums_1.EzspStatus.ERROR_OVERFLOW) {
|
|
217
|
-
|
|
218
|
-
+ lastFrameStr);
|
|
215
|
+
logger_1.logger.error(`The NCP has run out of buffers, causing general malfunction. Remediate network congestion, if present. ${lastFrameStr}`, NS);
|
|
219
216
|
}
|
|
220
217
|
else {
|
|
221
|
-
|
|
218
|
+
logger_1.logger.error(`ERROR Transaction failure; status=${enums_1.EzspStatus[status]}. ${lastFrameStr}`, NS);
|
|
222
219
|
}
|
|
223
220
|
// Do not reset if this is a decryption failure, as we ignored the packet
|
|
224
221
|
// Do not reset for a callback overflow or error queue, as we don't want the device to reboot under stress;
|
|
@@ -230,31 +227,25 @@ class Ezsp extends events_1.default {
|
|
|
230
227
|
this.emit(EzspEvents.ncpNeedsResetAndInit, status);
|
|
231
228
|
}
|
|
232
229
|
}
|
|
233
|
-
registerHandlers() {
|
|
234
|
-
this.tickHandle = setInterval(this.tick.bind(this), this.tickInterval);
|
|
235
|
-
}
|
|
236
230
|
/**
|
|
237
231
|
* The Host application must call this function periodically to allow the EZSP layer to handle asynchronous events.
|
|
238
232
|
*/
|
|
239
233
|
tick() {
|
|
240
|
-
|
|
241
|
-
// don't process any callbacks while expecting a command's response
|
|
242
|
-
return;
|
|
243
|
-
}
|
|
234
|
+
// don't process any callbacks while sending a command and waiting for its response
|
|
244
235
|
// nothing in the rx queue, nothing to receive
|
|
245
|
-
if (this.ash.rxQueue.empty) {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
this.callbackDispatch();
|
|
236
|
+
if (!this.sendingCommand && !this.ash.rxQueue.empty) {
|
|
237
|
+
if (this.responseReceived() === enums_1.EzspStatus.SUCCESS) {
|
|
238
|
+
this.callbackDispatch();
|
|
239
|
+
}
|
|
250
240
|
}
|
|
241
|
+
this.tickHandle = setTimeout(this.tick.bind(this), this.tickInterval);
|
|
251
242
|
}
|
|
252
243
|
nextFrameSequence() {
|
|
253
244
|
return (this.frameSequence = ((++this.frameSequence) & 0xFF));
|
|
254
245
|
}
|
|
255
246
|
startCommand(command) {
|
|
256
247
|
if (this.sendingCommand) {
|
|
257
|
-
|
|
248
|
+
logger_1.logger.error(`[SEND COMMAND] Cannot send second one before processing response from first one.`, NS);
|
|
258
249
|
throw new Error(enums_1.EzspStatus[enums_1.EzspStatus.ERROR_INVALID_CALL]);
|
|
259
250
|
}
|
|
260
251
|
this.sendingCommand = true;
|
|
@@ -298,7 +289,7 @@ class Ezsp extends events_1.default {
|
|
|
298
289
|
*/
|
|
299
290
|
async sendCommand() {
|
|
300
291
|
if (!this.checkConnection()) {
|
|
301
|
-
debug(
|
|
292
|
+
logger_1.logger.debug(`[SEND COMMAND] NOT CONNECTED`, NS);
|
|
302
293
|
return enums_1.EzspStatus.NOT_CONNECTED;
|
|
303
294
|
}
|
|
304
295
|
this.buffalo.setCommandByte(consts_1.EZSP_SEQUENCE_INDEX, this.nextFrameSequence());
|
|
@@ -322,7 +313,7 @@ class Ezsp extends events_1.default {
|
|
|
322
313
|
}
|
|
323
314
|
this.frameLength = length;
|
|
324
315
|
let status;
|
|
325
|
-
debug(`===> ${this.frameToString}
|
|
316
|
+
logger_1.logger.debug(`===> ${this.frameToString}`, NS);
|
|
326
317
|
try {
|
|
327
318
|
status = await (new Promise((resolve, reject) => {
|
|
328
319
|
const sendStatus = (this.ash.send(this.frameLength, this.frameContents));
|
|
@@ -342,11 +333,11 @@ class Ezsp extends events_1.default {
|
|
|
342
333
|
};
|
|
343
334
|
}));
|
|
344
335
|
if (status !== enums_1.EzspStatus.SUCCESS) {
|
|
345
|
-
throw status;
|
|
336
|
+
throw new Error(enums_1.EzspStatus[status]);
|
|
346
337
|
}
|
|
347
338
|
}
|
|
348
339
|
catch (err) {
|
|
349
|
-
debug(`=x=> ${this.frameToString} Error: ${err}
|
|
340
|
+
logger_1.logger.debug(`=x=> ${this.frameToString} Error: ${err}`, NS);
|
|
350
341
|
this.ezspErrorHandler(status);
|
|
351
342
|
}
|
|
352
343
|
this.sendingCommand = false;
|
|
@@ -369,7 +360,7 @@ class Ezsp extends events_1.default {
|
|
|
369
360
|
// While we are waiting for a response to a command, we use the asynch callback flag to ignore asynchronous callbacks.
|
|
370
361
|
// This allows our caller to assume that no callbacks will appear between sending a command and receiving its response.
|
|
371
362
|
if (this.waitingForResponse && (buffer.data[consts_1.EZSP_FRAME_CONTROL_INDEX] & consts_1.EZSP_FRAME_CONTROL_ASYNCH_CB)) {
|
|
372
|
-
debug(`Skipping async callback while waiting for response to command
|
|
363
|
+
logger_1.logger.debug(`Skipping async callback while waiting for response to command.`, NS);
|
|
373
364
|
if (this.ash.rxFree.length === 0) {
|
|
374
365
|
dropBuffer = buffer;
|
|
375
366
|
}
|
|
@@ -379,7 +370,7 @@ class Ezsp extends events_1.default {
|
|
|
379
370
|
this.ash.rxQueue.removeEntry(buffer);
|
|
380
371
|
buffer.data.copy(this.frameContents, 0, 0, buffer.len); // take only what len tells us is actual content
|
|
381
372
|
this.frameLength = buffer.len;
|
|
382
|
-
debug(`<=== ${this.frameToString}
|
|
373
|
+
logger_1.logger.debug(`<=== ${this.frameToString}`, NS);
|
|
383
374
|
this.ash.rxFree.freeBuffer(buffer);
|
|
384
375
|
buffer = null;
|
|
385
376
|
status = enums_1.EzspStatus.SUCCESS;
|
|
@@ -389,7 +380,7 @@ class Ezsp extends events_1.default {
|
|
|
389
380
|
if (dropBuffer != null) {
|
|
390
381
|
this.ash.rxQueue.removeEntry(dropBuffer);
|
|
391
382
|
this.ash.rxFree.freeBuffer(dropBuffer);
|
|
392
|
-
debug(`ERROR Host receive queue full. Dropping received callback: ${dropBuffer.data.toString('hex')}
|
|
383
|
+
logger_1.logger.debug(`ERROR Host receive queue full. Dropping received callback: ${dropBuffer.data.toString('hex')}`, NS);
|
|
393
384
|
this.ezspErrorHandler(enums_1.EzspStatus.ERROR_QUEUE_FULL);
|
|
394
385
|
}
|
|
395
386
|
return status;
|
|
@@ -430,7 +421,7 @@ class Ezsp extends events_1.default {
|
|
|
430
421
|
//this.callbackNetworkIndex = (frameControl & EZSP_FRAME_CONTROL_NETWORK_INDEX_MASK) >> EZSP_FRAME_CONTROL_NETWORK_INDEX_OFFSET;
|
|
431
422
|
}
|
|
432
423
|
if (status !== enums_1.EzspStatus.SUCCESS) {
|
|
433
|
-
debug(`[RESPONSE RECEIVED] ERROR ${enums_1.EzspStatus[status]}
|
|
424
|
+
logger_1.logger.debug(`[RESPONSE RECEIVED] ERROR ${enums_1.EzspStatus[status]}`, NS);
|
|
434
425
|
this.ezspErrorHandler(status);
|
|
435
426
|
}
|
|
436
427
|
this.buffalo.setPosition(parametersIndex);
|
|
@@ -468,7 +459,7 @@ class Ezsp extends events_1.default {
|
|
|
468
459
|
}
|
|
469
460
|
case enums_2.EzspFrameID.CUSTOM_FRAME_HANDLER: {
|
|
470
461
|
const payloadLength = this.buffalo.readUInt8();
|
|
471
|
-
const payload = this.buffalo.readListUInt8(
|
|
462
|
+
const payload = this.buffalo.readListUInt8(payloadLength);
|
|
472
463
|
this.ezspCustomFrameHandler(payloadLength, payload);
|
|
473
464
|
break;
|
|
474
465
|
}
|
|
@@ -479,14 +470,14 @@ class Ezsp extends events_1.default {
|
|
|
479
470
|
}
|
|
480
471
|
case enums_2.EzspFrameID.ENERGY_SCAN_RESULT_HANDLER: {
|
|
481
472
|
const channel = this.buffalo.readUInt8();
|
|
482
|
-
const maxRssiValue = this.buffalo.
|
|
473
|
+
const maxRssiValue = this.buffalo.readInt8();
|
|
483
474
|
this.ezspEnergyScanResultHandler(channel, maxRssiValue);
|
|
484
475
|
break;
|
|
485
476
|
}
|
|
486
477
|
case enums_2.EzspFrameID.NETWORK_FOUND_HANDLER: {
|
|
487
478
|
const networkFound = this.buffalo.readEmberZigbeeNetwork();
|
|
488
479
|
const lastHopLqi = this.buffalo.readUInt8();
|
|
489
|
-
const lastHopRssi = this.buffalo.
|
|
480
|
+
const lastHopRssi = this.buffalo.readInt8();
|
|
490
481
|
this.ezspNetworkFoundHandler(networkFound, lastHopLqi, lastHopRssi);
|
|
491
482
|
break;
|
|
492
483
|
}
|
|
@@ -563,7 +554,7 @@ class Ezsp extends events_1.default {
|
|
|
563
554
|
const type = this.buffalo.readUInt8();
|
|
564
555
|
const apsFrame = this.buffalo.readEmberApsFrame();
|
|
565
556
|
const lastHopLqi = this.buffalo.readUInt8();
|
|
566
|
-
const lastHopRssi = this.buffalo.
|
|
557
|
+
const lastHopRssi = this.buffalo.readInt8();
|
|
567
558
|
const sender = this.buffalo.readUInt16();
|
|
568
559
|
const bindingIndex = this.buffalo.readUInt8();
|
|
569
560
|
const addressIndex = this.buffalo.readUInt8();
|
|
@@ -594,9 +585,9 @@ class Ezsp extends events_1.default {
|
|
|
594
585
|
const source = this.buffalo.readUInt16();
|
|
595
586
|
const sourceEui = this.buffalo.readIeeeAddr();
|
|
596
587
|
const lastHopLqi = this.buffalo.readUInt8();
|
|
597
|
-
const lastHopRssi = this.buffalo.
|
|
588
|
+
const lastHopRssi = this.buffalo.readInt8();
|
|
598
589
|
const relayCount = this.buffalo.readUInt8();
|
|
599
|
-
const relayList = this.buffalo.readListUInt16(
|
|
590
|
+
const relayList = this.buffalo.readListUInt16(relayCount); //this.buffalo.readListUInt8(relayCount * 2);
|
|
600
591
|
this.ezspIncomingRouteRecordHandler(source, sourceEui, lastHopLqi, lastHopRssi, relayCount, relayList);
|
|
601
592
|
break;
|
|
602
593
|
}
|
|
@@ -608,7 +599,7 @@ class Ezsp extends events_1.default {
|
|
|
608
599
|
case enums_2.EzspFrameID.MAC_PASSTHROUGH_MESSAGE_HANDLER: {
|
|
609
600
|
const messageType = this.buffalo.readUInt8();
|
|
610
601
|
const lastHopLqi = this.buffalo.readUInt8();
|
|
611
|
-
const lastHopRssi = this.buffalo.
|
|
602
|
+
const lastHopRssi = this.buffalo.readInt8();
|
|
612
603
|
const messageContents = this.buffalo.readPayload();
|
|
613
604
|
this.ezspMacPassthroughMessageHandler(messageType, lastHopLqi, lastHopRssi, messageContents);
|
|
614
605
|
break;
|
|
@@ -617,7 +608,7 @@ class Ezsp extends events_1.default {
|
|
|
617
608
|
const filterIndexMatch = this.buffalo.readUInt8();
|
|
618
609
|
const legacyPassthroughType = this.buffalo.readUInt8();
|
|
619
610
|
const lastHopLqi = this.buffalo.readUInt8();
|
|
620
|
-
const lastHopRssi = this.buffalo.
|
|
611
|
+
const lastHopRssi = this.buffalo.readInt8();
|
|
621
612
|
const messageContents = this.buffalo.readPayload();
|
|
622
613
|
this.ezspMacFilterMatchMessageHandler(filterIndexMatch, legacyPassthroughType, lastHopLqi, lastHopRssi, messageContents);
|
|
623
614
|
break;
|
|
@@ -686,16 +677,16 @@ class Ezsp extends events_1.default {
|
|
|
686
677
|
}
|
|
687
678
|
case enums_2.EzspFrameID.MFGLIB_RX_HANDLER: {
|
|
688
679
|
const linkQuality = this.buffalo.readUInt8();
|
|
689
|
-
const rssi = this.buffalo.
|
|
680
|
+
const rssi = this.buffalo.readInt8();
|
|
690
681
|
const packetLength = this.buffalo.readUInt8();
|
|
691
|
-
const packetContents = this.buffalo.readListUInt8(
|
|
682
|
+
const packetContents = this.buffalo.readListUInt8(packetLength);
|
|
692
683
|
this.ezspMfglibRxHandler(linkQuality, rssi, packetLength, packetContents);
|
|
693
684
|
break;
|
|
694
685
|
}
|
|
695
686
|
case enums_2.EzspFrameID.INCOMING_BOOTLOAD_MESSAGE_HANDLER: {
|
|
696
687
|
const longId = this.buffalo.readIeeeAddr();
|
|
697
688
|
const lastHopLqi = this.buffalo.readUInt8();
|
|
698
|
-
const lastHopRssi = this.buffalo.
|
|
689
|
+
const lastHopRssi = this.buffalo.readInt8();
|
|
699
690
|
const messageContents = this.buffalo.readPayload();
|
|
700
691
|
this.ezspIncomingBootloadMessageHandler(longId, lastHopLqi, lastHopRssi, messageContents);
|
|
701
692
|
break;
|
|
@@ -711,7 +702,7 @@ class Ezsp extends events_1.default {
|
|
|
711
702
|
const isDeviceInfoNull = this.buffalo.readUInt8() === 1 ? true : false;
|
|
712
703
|
const deviceInfo = this.buffalo.readEmberZllDeviceInfoRecord();
|
|
713
704
|
const lastHopLqi = this.buffalo.readUInt8();
|
|
714
|
-
const lastHopRssi = this.buffalo.
|
|
705
|
+
const lastHopRssi = this.buffalo.readInt8();
|
|
715
706
|
this.ezspZllNetworkFoundHandler(networkInfo, isDeviceInfoNull, deviceInfo, lastHopLqi, lastHopRssi);
|
|
716
707
|
break;
|
|
717
708
|
}
|
|
@@ -723,7 +714,7 @@ class Ezsp extends events_1.default {
|
|
|
723
714
|
case enums_2.EzspFrameID.ZLL_ADDRESS_ASSIGNMENT_HANDLER: {
|
|
724
715
|
const addressInfo = this.buffalo.readEmberZllAddressAssignment();
|
|
725
716
|
const lastHopLqi = this.buffalo.readUInt8();
|
|
726
|
-
const lastHopRssi = this.buffalo.
|
|
717
|
+
const lastHopRssi = this.buffalo.readInt8();
|
|
727
718
|
this.ezspZllAddressAssignmentHandler(addressInfo, lastHopLqi, lastHopRssi);
|
|
728
719
|
break;
|
|
729
720
|
}
|
|
@@ -816,7 +807,7 @@ class Ezsp extends events_1.default {
|
|
|
816
807
|
}
|
|
817
808
|
apsFrame.sequence = apsSequence;
|
|
818
809
|
// NOTE: match `~~~>` from adapter since this is just a wrapper for it
|
|
819
|
-
debug(`~~~> [SENT type=${enums_1.EmberOutgoingMessageType[type]} apsSequence=${apsSequence} messageTag=${messageTag} status=${enums_1.EmberStatus[status]}]
|
|
810
|
+
logger_1.logger.debug(`~~~> [SENT type=${enums_1.EmberOutgoingMessageType[type]} apsSequence=${apsSequence} messageTag=${messageTag} status=${enums_1.EmberStatus[status]}]`, NS);
|
|
820
811
|
return [status, messageTag];
|
|
821
812
|
}
|
|
822
813
|
/**
|
|
@@ -1043,7 +1034,7 @@ class Ezsp extends events_1.default {
|
|
|
1043
1034
|
if (readLength > maxReadLength) {
|
|
1044
1035
|
throw enums_1.EzspStatus.ERROR_INVALID_VALUE;
|
|
1045
1036
|
}
|
|
1046
|
-
const data = this.buffalo.readListUInt8(
|
|
1037
|
+
const data = this.buffalo.readListUInt8(readLength);
|
|
1047
1038
|
return [status, dataType, readLength, data];
|
|
1048
1039
|
}
|
|
1049
1040
|
/**
|
|
@@ -1191,7 +1182,7 @@ class Ezsp extends events_1.default {
|
|
|
1191
1182
|
if (valueLength > maxValueLength) {
|
|
1192
1183
|
throw enums_1.EzspStatus.ERROR_INVALID_VALUE;
|
|
1193
1184
|
}
|
|
1194
|
-
const value = this.buffalo.readListUInt8(
|
|
1185
|
+
const value = this.buffalo.readListUInt8(valueLength);
|
|
1195
1186
|
return [status, valueLength, value];
|
|
1196
1187
|
}
|
|
1197
1188
|
/**
|
|
@@ -1223,7 +1214,7 @@ class Ezsp extends events_1.default {
|
|
|
1223
1214
|
if (valueLength > maxValueLength) {
|
|
1224
1215
|
throw enums_1.EzspStatus.ERROR_INVALID_VALUE;
|
|
1225
1216
|
}
|
|
1226
|
-
const value = this.buffalo.readListUInt8(
|
|
1217
|
+
const value = this.buffalo.readListUInt8(valueLength);
|
|
1227
1218
|
return [status, valueLength, value];
|
|
1228
1219
|
}
|
|
1229
1220
|
/**
|
|
@@ -1318,7 +1309,7 @@ class Ezsp extends events_1.default {
|
|
|
1318
1309
|
* Indicates that there are currently no pending callbacks.
|
|
1319
1310
|
*/
|
|
1320
1311
|
ezspNoCallbacks() {
|
|
1321
|
-
debug(`ezspNoCallbacks(): callback called
|
|
1312
|
+
logger_1.logger.debug(`ezspNoCallbacks(): callback called`, NS);
|
|
1322
1313
|
}
|
|
1323
1314
|
/**
|
|
1324
1315
|
* Sets a token (8 bytes of non-volatile storage) in the Simulated EEPROM of the NCP.
|
|
@@ -1352,7 +1343,7 @@ class Ezsp extends events_1.default {
|
|
|
1352
1343
|
throw new Error(enums_1.EzspStatus[sendStatus]);
|
|
1353
1344
|
}
|
|
1354
1345
|
const status = this.buffalo.readUInt8();
|
|
1355
|
-
const tokenData = this.buffalo.readListUInt8(
|
|
1346
|
+
const tokenData = this.buffalo.readListUInt8(8);
|
|
1356
1347
|
return [status, tokenData];
|
|
1357
1348
|
}
|
|
1358
1349
|
/**
|
|
@@ -1410,7 +1401,7 @@ class Ezsp extends events_1.default {
|
|
|
1410
1401
|
if (tokenDataLength != expectedTokenDataLength) {
|
|
1411
1402
|
throw enums_1.EzspStatus.ERROR_INVALID_VALUE;
|
|
1412
1403
|
}
|
|
1413
|
-
const tokenData = this.buffalo.readListUInt8(
|
|
1404
|
+
const tokenData = this.buffalo.readListUInt8(tokenDataLength);
|
|
1414
1405
|
return [tokenDataLength, tokenData];
|
|
1415
1406
|
}
|
|
1416
1407
|
/**
|
|
@@ -1439,7 +1430,7 @@ class Ezsp extends events_1.default {
|
|
|
1439
1430
|
* @param tokenAddress uint16_t The address of the stack token that has changed.
|
|
1440
1431
|
*/
|
|
1441
1432
|
ezspStackTokenChangedHandler(tokenAddress) {
|
|
1442
|
-
debug(`ezspStackTokenChangedHandler(): callback called with: [tokenAddress=${tokenAddress}]
|
|
1433
|
+
logger_1.logger.debug(`ezspStackTokenChangedHandler(): callback called with: [tokenAddress=${tokenAddress}]`, NS);
|
|
1443
1434
|
}
|
|
1444
1435
|
/**
|
|
1445
1436
|
* Returns a pseudorandom number.
|
|
@@ -1509,7 +1500,7 @@ class Ezsp extends events_1.default {
|
|
|
1509
1500
|
* @param timerId uint8_t Which timer generated the callback (0 or 1).
|
|
1510
1501
|
*/
|
|
1511
1502
|
ezspTimerHandler(timerId) {
|
|
1512
|
-
debug(`ezspTimerHandler(): callback called with: [timerId=${timerId}]
|
|
1503
|
+
logger_1.logger.debug(`ezspTimerHandler(): callback called with: [timerId=${timerId}]`, NS);
|
|
1513
1504
|
}
|
|
1514
1505
|
/**
|
|
1515
1506
|
* Sends a debug message from the Host to the Network Analyzer utility via the NCP.
|
|
@@ -1538,7 +1529,7 @@ class Ezsp extends events_1.default {
|
|
|
1538
1529
|
if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
|
|
1539
1530
|
throw new Error(enums_1.EzspStatus[sendStatus]);
|
|
1540
1531
|
}
|
|
1541
|
-
const values = this.buffalo.readListUInt16(
|
|
1532
|
+
const values = this.buffalo.readListUInt16(enums_1.EmberCounterType.COUNT);
|
|
1542
1533
|
return values;
|
|
1543
1534
|
}
|
|
1544
1535
|
/**
|
|
@@ -1551,7 +1542,7 @@ class Ezsp extends events_1.default {
|
|
|
1551
1542
|
if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
|
|
1552
1543
|
throw new Error(enums_1.EzspStatus[sendStatus]);
|
|
1553
1544
|
}
|
|
1554
|
-
const values = this.buffalo.readListUInt16(
|
|
1545
|
+
const values = this.buffalo.readListUInt16(enums_1.EmberCounterType.COUNT);
|
|
1555
1546
|
return values;
|
|
1556
1547
|
}
|
|
1557
1548
|
/**
|
|
@@ -1560,7 +1551,8 @@ class Ezsp extends events_1.default {
|
|
|
1560
1551
|
* @param type Type of Counter
|
|
1561
1552
|
*/
|
|
1562
1553
|
ezspCounterRolloverHandler(type) {
|
|
1563
|
-
debug(`ezspCounterRolloverHandler(): callback called with: [type=${enums_1.EmberCounterType[type]}]
|
|
1554
|
+
logger_1.logger.debug(`ezspCounterRolloverHandler(): callback called with: [type=${enums_1.EmberCounterType[type]}]`, NS);
|
|
1555
|
+
logger_1.logger.info(`NCP Counter ${enums_1.EmberCounterType[type]} rolled over.`, NS);
|
|
1564
1556
|
}
|
|
1565
1557
|
/**
|
|
1566
1558
|
* Used to test that UART flow control is working correctly.
|
|
@@ -1642,7 +1634,7 @@ class Ezsp extends events_1.default {
|
|
|
1642
1634
|
* @param payload uint8_t * The payload of the custom frame.
|
|
1643
1635
|
*/
|
|
1644
1636
|
ezspCustomFrameHandler(payloadLength, payload) {
|
|
1645
|
-
debug(`ezspCustomFrameHandler(): callback called with: [payloadLength=${payloadLength}], [payload=${payload}]
|
|
1637
|
+
logger_1.logger.debug(`ezspCustomFrameHandler(): callback called with: [payloadLength=${payloadLength}], [payload=${payload}]`, NS);
|
|
1646
1638
|
}
|
|
1647
1639
|
/**
|
|
1648
1640
|
* Returns the EUI64 ID of the local node.
|
|
@@ -1770,7 +1762,7 @@ class Ezsp extends events_1.default {
|
|
|
1770
1762
|
* @param status Stack status
|
|
1771
1763
|
*/
|
|
1772
1764
|
ezspStackStatusHandler(status) {
|
|
1773
|
-
debug(`ezspStackStatusHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]
|
|
1765
|
+
logger_1.logger.debug(`ezspStackStatusHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`, NS);
|
|
1774
1766
|
this.emit(EzspEvents.STACK_STATUS, status);
|
|
1775
1767
|
}
|
|
1776
1768
|
/**
|
|
@@ -1812,8 +1804,8 @@ class Ezsp extends events_1.default {
|
|
|
1812
1804
|
* @param maxRssiValue int8_t The maximum RSSI value found on the channel.
|
|
1813
1805
|
*/
|
|
1814
1806
|
ezspEnergyScanResultHandler(channel, maxRssiValue) {
|
|
1815
|
-
debug(`ezspEnergyScanResultHandler(): callback called with: [channel=${channel}], [maxRssiValue=${maxRssiValue}]
|
|
1816
|
-
|
|
1807
|
+
logger_1.logger.debug(`ezspEnergyScanResultHandler(): callback called with: [channel=${channel}], [maxRssiValue=${maxRssiValue}]`, NS);
|
|
1808
|
+
logger_1.logger.info(`Energy scan for channel ${channel} reports max RSSI value at ${maxRssiValue} dBm.`, NS);
|
|
1817
1809
|
}
|
|
1818
1810
|
/**
|
|
1819
1811
|
* Callback
|
|
@@ -1824,8 +1816,8 @@ class Ezsp extends events_1.default {
|
|
|
1824
1816
|
* @param lastHopRssi int8_t The energy level (in units of dBm) observed during the reception.
|
|
1825
1817
|
*/
|
|
1826
1818
|
ezspNetworkFoundHandler(networkFound, lastHopLqi, lastHopRssi) {
|
|
1827
|
-
debug(`ezspNetworkFoundHandler(): callback called with: [networkFound=${networkFound}], `
|
|
1828
|
-
+ `[lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}]
|
|
1819
|
+
logger_1.logger.debug(`ezspNetworkFoundHandler(): callback called with: [networkFound=${JSON.stringify(networkFound)}], `
|
|
1820
|
+
+ `[lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}]`, NS);
|
|
1829
1821
|
}
|
|
1830
1822
|
/**
|
|
1831
1823
|
* Callback
|
|
@@ -1836,7 +1828,7 @@ class Ezsp extends events_1.default {
|
|
|
1836
1828
|
* error conditions signify a failure to scan on the channel specified.
|
|
1837
1829
|
*/
|
|
1838
1830
|
ezspScanCompleteHandler(channel, status) {
|
|
1839
|
-
debug(`ezspScanCompleteHandler(): callback called with: [channel=${channel}], [status=${enums_1.EmberStatus[status]}]
|
|
1831
|
+
logger_1.logger.debug(`ezspScanCompleteHandler(): callback called with: [channel=${channel}], [status=${enums_1.EmberStatus[status]}]`, NS);
|
|
1840
1832
|
}
|
|
1841
1833
|
/**
|
|
1842
1834
|
* Callback
|
|
@@ -1846,7 +1838,7 @@ class Ezsp extends events_1.default {
|
|
|
1846
1838
|
* @param channel uint8_t The channel that the unused panID was found on.
|
|
1847
1839
|
*/
|
|
1848
1840
|
ezspUnusedPanIdFoundHandler(panId, channel) {
|
|
1849
|
-
debug(`ezspUnusedPanIdFoundHandler(): callback called with: [panId=${panId}], [channel=${channel}]
|
|
1841
|
+
logger_1.logger.debug(`ezspUnusedPanIdFoundHandler(): callback called with: [panId=${panId}], [channel=${channel}]`, NS);
|
|
1850
1842
|
}
|
|
1851
1843
|
/**
|
|
1852
1844
|
* This function starts a series of scans which will return an available panId.
|
|
@@ -1936,7 +1928,7 @@ class Ezsp extends events_1.default {
|
|
|
1936
1928
|
this.startCommand(enums_2.EzspFrameID.JOIN_NETWORK_DIRECTLY);
|
|
1937
1929
|
this.buffalo.writeUInt8(localNodeType);
|
|
1938
1930
|
this.buffalo.writeEmberBeaconData(beacon);
|
|
1939
|
-
this.buffalo.
|
|
1931
|
+
this.buffalo.writeInt8(radioTxPower);
|
|
1940
1932
|
this.buffalo.writeUInt8(clearBeaconsAfterNetworkUp ? 1 : 0);
|
|
1941
1933
|
const sendStatus = await this.sendCommand();
|
|
1942
1934
|
if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
|
|
@@ -2017,8 +2009,8 @@ class Ezsp extends events_1.default {
|
|
|
2017
2009
|
* @param childType The node type of the child.
|
|
2018
2010
|
*/
|
|
2019
2011
|
ezspChildJoinHandler(index, joining, childId, childEui64, childType) {
|
|
2020
|
-
debug(`ezspChildJoinHandler(): callback called with: [index=${index}], [joining=${joining}], `
|
|
2021
|
-
+ `[childId=${childId}], [childEui64=${childEui64}], [childType=${childType}]
|
|
2012
|
+
logger_1.logger.debug(`ezspChildJoinHandler(): callback called with: [index=${index}], [joining=${joining}], `
|
|
2013
|
+
+ `[childId=${childId}], [childEui64=${childEui64}], [childType=${childType}]`, NS);
|
|
2022
2014
|
}
|
|
2023
2015
|
/**
|
|
2024
2016
|
* Sends a ZDO energy scan request. This request may only be sent by the current
|
|
@@ -2343,7 +2335,7 @@ class Ezsp extends events_1.default {
|
|
|
2343
2335
|
*/
|
|
2344
2336
|
async ezspSetRadioPower(power) {
|
|
2345
2337
|
this.startCommand(enums_2.EzspFrameID.SET_RADIO_POWER);
|
|
2346
|
-
this.buffalo.
|
|
2338
|
+
this.buffalo.writeInt8(power);
|
|
2347
2339
|
const sendStatus = await this.sendCommand();
|
|
2348
2340
|
if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
|
|
2349
2341
|
throw new Error(enums_1.EzspStatus[sendStatus]);
|
|
@@ -2463,7 +2455,7 @@ class Ezsp extends events_1.default {
|
|
|
2463
2455
|
this.buffalo.writeUInt8(phyIndex);
|
|
2464
2456
|
this.buffalo.writeUInt8(page);
|
|
2465
2457
|
this.buffalo.writeUInt8(channel);
|
|
2466
|
-
this.buffalo.
|
|
2458
|
+
this.buffalo.writeInt8(power);
|
|
2467
2459
|
this.buffalo.writeUInt8(bitmask);
|
|
2468
2460
|
const sendStatus = await this.sendCommand();
|
|
2469
2461
|
if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
|
|
@@ -2503,7 +2495,7 @@ class Ezsp extends events_1.default {
|
|
|
2503
2495
|
async ezspMultiPhySetRadioPower(phyIndex, power) {
|
|
2504
2496
|
this.startCommand(enums_2.EzspFrameID.MULTI_PHY_SET_RADIO_POWER);
|
|
2505
2497
|
this.buffalo.writeUInt8(phyIndex);
|
|
2506
|
-
this.buffalo.
|
|
2498
|
+
this.buffalo.writeInt8(power);
|
|
2507
2499
|
const sendStatus = await this.sendCommand();
|
|
2508
2500
|
if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
|
|
2509
2501
|
throw new Error(enums_1.EzspStatus[sendStatus]);
|
|
@@ -2619,7 +2611,7 @@ class Ezsp extends events_1.default {
|
|
|
2619
2611
|
throw new Error(enums_1.EzspStatus[sendStatus]);
|
|
2620
2612
|
}
|
|
2621
2613
|
const status = this.buffalo.readUInt8();
|
|
2622
|
-
const arrayOfDeviceDutyCycles = this.buffalo.readListUInt8(
|
|
2614
|
+
const arrayOfDeviceDutyCycles = this.buffalo.readListUInt8(134);
|
|
2623
2615
|
return [status, arrayOfDeviceDutyCycles];
|
|
2624
2616
|
}
|
|
2625
2617
|
/**
|
|
@@ -2633,8 +2625,8 @@ class Ezsp extends events_1.default {
|
|
|
2633
2625
|
* The first entry always be the local stack's nodeId, and thus the total aggregate duty cycle for the device.
|
|
2634
2626
|
*/
|
|
2635
2627
|
ezspDutyCycleHandler(channelPage, channel, state, totalDevices, arrayOfDeviceDutyCycles) {
|
|
2636
|
-
debug(`ezspDutyCycleHandler(): callback called with: [channelPage=${channelPage}], [channel=${channel}], `
|
|
2637
|
-
+ `[state=${state}], [totalDevices=${totalDevices}], [arrayOfDeviceDutyCycles=${arrayOfDeviceDutyCycles}]
|
|
2628
|
+
logger_1.logger.debug(`ezspDutyCycleHandler(): callback called with: [channelPage=${channelPage}], [channel=${channel}], `
|
|
2629
|
+
+ `[state=${state}], [totalDevices=${totalDevices}], [arrayOfDeviceDutyCycles=${arrayOfDeviceDutyCycles}]`, NS);
|
|
2638
2630
|
}
|
|
2639
2631
|
/**
|
|
2640
2632
|
* Returns the first beacon in the cache. Beacons are stored in cache after
|
|
@@ -2845,8 +2837,8 @@ class Ezsp extends events_1.default {
|
|
|
2845
2837
|
* @param policyDecision EMBER_SUCCESS if the binding was added to the table and any other status if not.
|
|
2846
2838
|
*/
|
|
2847
2839
|
ezspRemoteSetBindingHandler(entry, index, policyDecision) {
|
|
2848
|
-
debug(`ezspRemoteSetBindingHandler(): callback called with: [entry=${entry}], [index=${index}], `
|
|
2849
|
-
+ `[policyDecision=${enums_1.EmberStatus[policyDecision]}]
|
|
2840
|
+
logger_1.logger.debug(`ezspRemoteSetBindingHandler(): callback called with: [entry=${entry}], [index=${index}], `
|
|
2841
|
+
+ `[policyDecision=${enums_1.EmberStatus[policyDecision]}]`, NS);
|
|
2850
2842
|
}
|
|
2851
2843
|
/**
|
|
2852
2844
|
* Callback
|
|
@@ -2858,7 +2850,7 @@ class Ezsp extends events_1.default {
|
|
|
2858
2850
|
* @param policyDecision EMBER_SUCCESS if the binding was removed from the table and any other status if not.
|
|
2859
2851
|
*/
|
|
2860
2852
|
ezspRemoteDeleteBindingHandler(index, policyDecision) {
|
|
2861
|
-
debug(`ezspRemoteDeleteBindingHandler(): callback called with: [index=${index}], [policyDecision=${enums_1.EmberStatus[policyDecision]}]
|
|
2853
|
+
logger_1.logger.debug(`ezspRemoteDeleteBindingHandler(): callback called with: [index=${index}], [policyDecision=${enums_1.EmberStatus[policyDecision]}]`, NS);
|
|
2862
2854
|
}
|
|
2863
2855
|
//-----------------------------------------------------------------------------
|
|
2864
2856
|
// Messaging Frames
|
|
@@ -3099,9 +3091,9 @@ class Ezsp extends events_1.default {
|
|
|
3099
3091
|
* for the messageContentsInCallback policy is messageTagAndContentsInCallback.
|
|
3100
3092
|
*/
|
|
3101
3093
|
ezspMessageSentHandler(type, indexOrDestination, apsFrame, messageTag, status, messageContents) {
|
|
3102
|
-
debug(`ezspMessageSentHandler(): callback called with: [type=${enums_1.EmberOutgoingMessageType[type]}], [indexOrDestination=${indexOrDestination}], `
|
|
3094
|
+
logger_1.logger.debug(`ezspMessageSentHandler(): callback called with: [type=${enums_1.EmberOutgoingMessageType[type]}], [indexOrDestination=${indexOrDestination}], `
|
|
3103
3095
|
+ `[apsFrame=${JSON.stringify(apsFrame)}], [messageTag=${messageTag}], [status=${enums_1.EmberStatus[status]}], `
|
|
3104
|
-
+ `[messageContents=${messageContents.toString('hex')}]
|
|
3096
|
+
+ `[messageContents=${messageContents.toString('hex')}]`, NS);
|
|
3105
3097
|
if (status === enums_1.EmberStatus.DELIVERY_FAILED) {
|
|
3106
3098
|
// no ACK was received from the destination
|
|
3107
3099
|
this.emit(EzspEvents.MESSAGE_SENT_DELIVERY_FAILED, type, indexOrDestination, apsFrame, messageTag);
|
|
@@ -3188,7 +3180,7 @@ class Ezsp extends events_1.default {
|
|
|
3188
3180
|
* - EMBER_MAC_NO_ACK_RECEIVED - The poll message was sent but not acknowledged by the parent.
|
|
3189
3181
|
*/
|
|
3190
3182
|
ezspPollCompleteHandler(status) {
|
|
3191
|
-
debug(`ezspPollCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]
|
|
3183
|
+
logger_1.logger.debug(`ezspPollCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`, NS);
|
|
3192
3184
|
}
|
|
3193
3185
|
/**
|
|
3194
3186
|
* Callback
|
|
@@ -3197,7 +3189,7 @@ class Ezsp extends events_1.default {
|
|
|
3197
3189
|
* @param transmitExpected True if transmit is expected, false otherwise.
|
|
3198
3190
|
*/
|
|
3199
3191
|
ezspPollHandler(childId, transmitExpected) {
|
|
3200
|
-
debug(`ezspPollHandler(): callback called with: [childId=${childId}], [transmitExpected=${transmitExpected}]
|
|
3192
|
+
logger_1.logger.debug(`ezspPollHandler(): callback called with: [childId=${childId}], [transmitExpected=${transmitExpected}]`, NS);
|
|
3201
3193
|
}
|
|
3202
3194
|
/**
|
|
3203
3195
|
* Callback
|
|
@@ -3208,7 +3200,7 @@ class Ezsp extends events_1.default {
|
|
|
3208
3200
|
* @param senderEui64 The EUI64 of the sender
|
|
3209
3201
|
*/
|
|
3210
3202
|
ezspIncomingSenderEui64Handler(senderEui64) {
|
|
3211
|
-
debug(`ezspIncomingSenderEui64Handler(): callback called with: [senderEui64=${senderEui64}]
|
|
3203
|
+
logger_1.logger.debug(`ezspIncomingSenderEui64Handler(): callback called with: [senderEui64=${senderEui64}]`, NS);
|
|
3212
3204
|
}
|
|
3213
3205
|
/**
|
|
3214
3206
|
* Callback
|
|
@@ -3225,17 +3217,16 @@ class Ezsp extends events_1.default {
|
|
|
3225
3217
|
* @param messageContents uint8_t * The incoming message.
|
|
3226
3218
|
*/
|
|
3227
3219
|
ezspIncomingMessageHandler(type, apsFrame, lastHopLqi, lastHopRssi, sender, bindingIndex, addressIndex, messageContents) {
|
|
3228
|
-
debug(`ezspIncomingMessageHandler(): callback called with: [type=${enums_1.EmberIncomingMessageType[type]}], [apsFrame=${JSON.stringify(apsFrame)}], `
|
|
3220
|
+
logger_1.logger.debug(`ezspIncomingMessageHandler(): callback called with: [type=${enums_1.EmberIncomingMessageType[type]}], [apsFrame=${JSON.stringify(apsFrame)}], `
|
|
3229
3221
|
+ `[lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}], [sender=${sender}], [bindingIndex=${bindingIndex}], `
|
|
3230
|
-
+ `[addressIndex=${addressIndex}], [messageContents=${messageContents.toString('hex')}]
|
|
3231
|
-
// from protocol\zigbee\app\util\zigbee-framework\zigbee-device-host.h
|
|
3222
|
+
+ `[addressIndex=${addressIndex}], [messageContents=${messageContents.toString('hex')}]`, NS);
|
|
3232
3223
|
if (apsFrame.profileId === zdo_1.ZDO_PROFILE_ID) {
|
|
3233
3224
|
const zdoBuffalo = new buffalo_1.EzspBuffalo(messageContents, zdo_1.ZDO_MESSAGE_OVERHEAD); // set pos to skip `transaction sequence number`
|
|
3234
3225
|
switch (apsFrame.clusterId) {
|
|
3235
3226
|
case zdo_1.IEEE_ADDRESS_RESPONSE: {
|
|
3236
3227
|
const status = zdoBuffalo.readUInt8();
|
|
3237
3228
|
if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
|
|
3238
|
-
debug(`<=== [ZDO IEEE_ADDRESS_RESPONSE status=${status}]
|
|
3229
|
+
logger_1.logger.debug(`<=== [ZDO IEEE_ADDRESS_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3239
3230
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
|
|
3240
3231
|
}
|
|
3241
3232
|
else {
|
|
@@ -3259,11 +3250,11 @@ class Ezsp extends events_1.default {
|
|
|
3259
3250
|
if (zdoBuffalo.isMore()) {
|
|
3260
3251
|
assocDevCount = zdoBuffalo.readUInt8();
|
|
3261
3252
|
startIndex = zdoBuffalo.readUInt8();
|
|
3262
|
-
assocDevList = zdoBuffalo.readListUInt16(
|
|
3253
|
+
assocDevList = zdoBuffalo.readListUInt16(assocDevCount);
|
|
3263
3254
|
}
|
|
3264
|
-
debug(`<=== [ZDO IEEE_ADDRESS_RESPONSE status=${status} eui64=${eui64} nodeId=${nodeId}
|
|
3265
|
-
+ `assocDevList=${assocDevList}]
|
|
3266
|
-
debug(`<=== [ZDO IEEE_ADDRESS_RESPONSE] Support not implemented upstream
|
|
3255
|
+
logger_1.logger.debug(`<=== [ZDO IEEE_ADDRESS_RESPONSE status=${zdo_1.EmberZdoStatus[status]} eui64=${eui64} nodeId=${nodeId} `
|
|
3256
|
+
+ `startIndex=${startIndex} assocDevList=${assocDevList}]`, NS);
|
|
3257
|
+
logger_1.logger.debug(`<=== [ZDO IEEE_ADDRESS_RESPONSE] Support not implemented upstream`, NS);
|
|
3267
3258
|
const payload = { eui64, nodeId, assocDevList };
|
|
3268
3259
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
|
|
3269
3260
|
}
|
|
@@ -3272,7 +3263,7 @@ class Ezsp extends events_1.default {
|
|
|
3272
3263
|
case zdo_1.NETWORK_ADDRESS_RESPONSE: {
|
|
3273
3264
|
const status = zdoBuffalo.readUInt8();
|
|
3274
3265
|
if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
|
|
3275
|
-
debug(`<=== [ZDO NETWORK_ADDRESS_RESPONSE status=${status}]
|
|
3266
|
+
logger_1.logger.debug(`<=== [ZDO NETWORK_ADDRESS_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3276
3267
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
|
|
3277
3268
|
}
|
|
3278
3269
|
else {
|
|
@@ -3296,10 +3287,10 @@ class Ezsp extends events_1.default {
|
|
|
3296
3287
|
if (zdoBuffalo.isMore()) {
|
|
3297
3288
|
assocDevCount = zdoBuffalo.readUInt8();
|
|
3298
3289
|
startIndex = zdoBuffalo.readUInt8();
|
|
3299
|
-
assocDevList = zdoBuffalo.readListUInt16(
|
|
3290
|
+
assocDevList = zdoBuffalo.readListUInt16(assocDevCount);
|
|
3300
3291
|
}
|
|
3301
|
-
debug(`<=== [ZDO NETWORK_ADDRESS_RESPONSE status=${status} eui64=${eui64} nodeId=${nodeId}
|
|
3302
|
-
+ `assocDevList=${assocDevList}]
|
|
3292
|
+
logger_1.logger.debug(`<=== [ZDO NETWORK_ADDRESS_RESPONSE status=${zdo_1.EmberZdoStatus[status]} eui64=${eui64} nodeId=${nodeId} `
|
|
3293
|
+
+ `startIndex=${startIndex} assocDevList=${assocDevList}]`, NS);
|
|
3303
3294
|
const payload = { eui64, nodeId, assocDevList };
|
|
3304
3295
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
|
|
3305
3296
|
}
|
|
@@ -3308,15 +3299,15 @@ class Ezsp extends events_1.default {
|
|
|
3308
3299
|
case zdo_1.MATCH_DESCRIPTORS_RESPONSE: {
|
|
3309
3300
|
const status = zdoBuffalo.readUInt8();
|
|
3310
3301
|
if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
|
|
3311
|
-
debug(`<=== [ZDO MATCH_DESCRIPTORS_RESPONSE status=${status}]
|
|
3302
|
+
logger_1.logger.debug(`<=== [ZDO MATCH_DESCRIPTORS_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3312
3303
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
|
|
3313
3304
|
}
|
|
3314
3305
|
else {
|
|
3315
3306
|
const nodeId = zdoBuffalo.readUInt16();
|
|
3316
3307
|
const endpointCount = zdoBuffalo.readUInt8();
|
|
3317
|
-
const endpointList = zdoBuffalo.readListUInt8(
|
|
3318
|
-
debug(`<=== [ZDO MATCH_DESCRIPTORS_RESPONSE status=${status} nodeId=${nodeId} endpointList=${endpointList}]
|
|
3319
|
-
debug(`<=== [ZDO MATCH_DESCRIPTORS_RESPONSE] Support not implemented upstream
|
|
3308
|
+
const endpointList = zdoBuffalo.readListUInt8(endpointCount);
|
|
3309
|
+
logger_1.logger.debug(`<=== [ZDO MATCH_DESCRIPTORS_RESPONSE status=${zdo_1.EmberZdoStatus[status]} nodeId=${nodeId} endpointList=${endpointList}]`, NS);
|
|
3310
|
+
logger_1.logger.debug(`<=== [ZDO MATCH_DESCRIPTORS_RESPONSE] Support not implemented upstream`, NS);
|
|
3320
3311
|
const payload = { nodeId, endpointList };
|
|
3321
3312
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
|
|
3322
3313
|
}
|
|
@@ -3325,7 +3316,7 @@ class Ezsp extends events_1.default {
|
|
|
3325
3316
|
case zdo_1.SIMPLE_DESCRIPTOR_RESPONSE: {
|
|
3326
3317
|
const status = zdoBuffalo.readUInt8();
|
|
3327
3318
|
if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
|
|
3328
|
-
debug(`<=== [ZDO SIMPLE_DESCRIPTOR_RESPONSE status=${status}]
|
|
3319
|
+
logger_1.logger.debug(`<=== [ZDO SIMPLE_DESCRIPTOR_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3329
3320
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
|
|
3330
3321
|
}
|
|
3331
3322
|
else {
|
|
@@ -3338,11 +3329,12 @@ class Ezsp extends events_1.default {
|
|
|
3338
3329
|
// values 0000-1111, others reserved
|
|
3339
3330
|
const deviceVersion = zdoBuffalo.readUInt8();
|
|
3340
3331
|
const inClusterCount = zdoBuffalo.readUInt8();
|
|
3341
|
-
const inClusterList = zdoBuffalo.readListUInt16(
|
|
3332
|
+
const inClusterList = zdoBuffalo.readListUInt16(inClusterCount);
|
|
3342
3333
|
const outClusterCount = zdoBuffalo.readUInt8();
|
|
3343
|
-
const outClusterList = zdoBuffalo.readListUInt16(
|
|
3344
|
-
debug(`<=== [ZDO SIMPLE_DESCRIPTOR_RESPONSE status=${status} nodeId=${nodeId} endpoint=${endpoint}
|
|
3345
|
-
+ `deviceId=${deviceId} deviceVersion=${deviceVersion} inClusterList=${inClusterList}
|
|
3334
|
+
const outClusterList = zdoBuffalo.readListUInt16(outClusterCount);
|
|
3335
|
+
logger_1.logger.debug(`<=== [ZDO SIMPLE_DESCRIPTOR_RESPONSE status=${zdo_1.EmberZdoStatus[status]} nodeId=${nodeId} endpoint=${endpoint} `
|
|
3336
|
+
+ `profileId=${profileId} deviceId=${deviceId} deviceVersion=${deviceVersion} inClusterList=${inClusterList} `
|
|
3337
|
+
+ `outClusterList=${outClusterList}]`, NS);
|
|
3346
3338
|
const payload = {
|
|
3347
3339
|
nodeId,
|
|
3348
3340
|
endpoint,
|
|
@@ -3358,7 +3350,7 @@ class Ezsp extends events_1.default {
|
|
|
3358
3350
|
case zdo_1.NODE_DESCRIPTOR_RESPONSE: {
|
|
3359
3351
|
const status = zdoBuffalo.readUInt8();
|
|
3360
3352
|
if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
|
|
3361
|
-
debug(`<=== [ZDO NODE_DESCRIPTOR_RESPONSE status=${status}]
|
|
3353
|
+
logger_1.logger.debug(`<=== [ZDO NODE_DESCRIPTOR_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3362
3354
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
|
|
3363
3355
|
}
|
|
3364
3356
|
else {
|
|
@@ -3413,9 +3405,9 @@ class Ezsp extends events_1.default {
|
|
|
3413
3405
|
// in bits: [extended active endpoint list available: 1] [extended simple descriptor list available: 1] [reserved: 6]
|
|
3414
3406
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3415
3407
|
const descCapFlags = zdoBuffalo.readUInt8();
|
|
3416
|
-
debug(`<=== [ZDO NODE_DESCRIPTOR_RESPONSE status=${status} nodeId=${nodeId} logicalType=${logicalType} `
|
|
3408
|
+
logger_1.logger.debug(`<=== [ZDO NODE_DESCRIPTOR_RESPONSE status=${zdo_1.EmberZdoStatus[status]} nodeId=${nodeId} logicalType=${logicalType} `
|
|
3417
3409
|
+ `freqBand=${freqBand} macCapFlags=${(0, math_1.byteToBits)(macCapFlags)} manufacturerCode=${manufacturerCode} maxBufSize=${maxBufSize} `
|
|
3418
|
-
+ `maxIncTxSize=${maxIncTxSize} stackRevision=${stackRevision} maxOutTxSize=${maxOutTxSize}]
|
|
3410
|
+
+ `maxIncTxSize=${maxIncTxSize} stackRevision=${stackRevision} maxOutTxSize=${maxOutTxSize}]`, NS);
|
|
3419
3411
|
const payload = {
|
|
3420
3412
|
nodeId,
|
|
3421
3413
|
logicalType,
|
|
@@ -3430,7 +3422,7 @@ class Ezsp extends events_1.default {
|
|
|
3430
3422
|
case zdo_1.POWER_DESCRIPTOR_RESPONSE: {
|
|
3431
3423
|
const status = zdoBuffalo.readUInt8();
|
|
3432
3424
|
if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
|
|
3433
|
-
debug(`<=== [ZDO POWER_DESCRIPTOR_RESPONSE status=${status}]
|
|
3425
|
+
logger_1.logger.debug(`<=== [ZDO POWER_DESCRIPTOR_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3434
3426
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
|
|
3435
3427
|
}
|
|
3436
3428
|
else {
|
|
@@ -3454,10 +3446,10 @@ class Ezsp extends events_1.default {
|
|
|
3454
3446
|
// 1100 == 100%
|
|
3455
3447
|
// All other values reserved
|
|
3456
3448
|
const [currentPowerSource, currentPowerSourceLevel] = (0, math_1.lowHighBits)(zdoBuffalo.readUInt8());
|
|
3457
|
-
debug(`<=== [ZDO POWER_DESCRIPTOR_RESPONSE status=${status} nodeId=${nodeId}
|
|
3458
|
-
+ `availPowerSources=${availPowerSources} currentPowerSource=${currentPowerSource} `
|
|
3459
|
-
+ `currentPowerSourceLevel=${currentPowerSourceLevel}]
|
|
3460
|
-
debug(`<=== [ZDO POWER_DESCRIPTOR_RESPONSE] Support not implemented upstream
|
|
3449
|
+
logger_1.logger.debug(`<=== [ZDO POWER_DESCRIPTOR_RESPONSE status=${zdo_1.EmberZdoStatus[status]} nodeId=${nodeId} `
|
|
3450
|
+
+ `currentPowerMode=${currentPowerMode} availPowerSources=${availPowerSources} currentPowerSource=${currentPowerSource} `
|
|
3451
|
+
+ `currentPowerSourceLevel=${currentPowerSourceLevel}]`, NS);
|
|
3452
|
+
logger_1.logger.debug(`<=== [ZDO POWER_DESCRIPTOR_RESPONSE] Support not implemented upstream`, NS);
|
|
3461
3453
|
const payload = {
|
|
3462
3454
|
nodeId,
|
|
3463
3455
|
currentPowerMode,
|
|
@@ -3472,14 +3464,14 @@ class Ezsp extends events_1.default {
|
|
|
3472
3464
|
case zdo_1.ACTIVE_ENDPOINTS_RESPONSE: {
|
|
3473
3465
|
const status = zdoBuffalo.readUInt8();
|
|
3474
3466
|
if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
|
|
3475
|
-
debug(`<=== [ZDO ACTIVE_ENDPOINTS_RESPONSE status=${status}]
|
|
3467
|
+
logger_1.logger.debug(`<=== [ZDO ACTIVE_ENDPOINTS_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3476
3468
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
|
|
3477
3469
|
}
|
|
3478
3470
|
else {
|
|
3479
3471
|
const nodeId = zdoBuffalo.readUInt16();
|
|
3480
3472
|
const endpointCount = zdoBuffalo.readUInt8();
|
|
3481
|
-
const endpointList = zdoBuffalo.readListUInt8(
|
|
3482
|
-
debug(`<=== [ZDO ACTIVE_ENDPOINTS_RESPONSE status=${status} nodeId=${nodeId} endpointList=${endpointList}]
|
|
3473
|
+
const endpointList = zdoBuffalo.readListUInt8(endpointCount);
|
|
3474
|
+
logger_1.logger.debug(`<=== [ZDO ACTIVE_ENDPOINTS_RESPONSE status=${zdo_1.EmberZdoStatus[status]} nodeId=${nodeId} endpointList=${endpointList}]`, NS);
|
|
3483
3475
|
const payload = { nodeId, endpointList };
|
|
3484
3476
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
|
|
3485
3477
|
}
|
|
@@ -3488,7 +3480,7 @@ class Ezsp extends events_1.default {
|
|
|
3488
3480
|
case zdo_1.LQI_TABLE_RESPONSE: {
|
|
3489
3481
|
const status = zdoBuffalo.readUInt8();
|
|
3490
3482
|
if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
|
|
3491
|
-
debug(`<=== [ZDO LQI_TABLE_RESPONSE status=${status}]
|
|
3483
|
+
logger_1.logger.debug(`<=== [ZDO LQI_TABLE_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3492
3484
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
|
|
3493
3485
|
}
|
|
3494
3486
|
else {
|
|
@@ -3502,7 +3494,7 @@ class Ezsp extends events_1.default {
|
|
|
3502
3494
|
// of the elements in the remote device's neighbor table, including the device address and assoc. LQI
|
|
3503
3495
|
const entryList = [];
|
|
3504
3496
|
for (let i = 0; i < entryCount; i++) {
|
|
3505
|
-
const extendedPanId = zdoBuffalo.readListUInt8(
|
|
3497
|
+
const extendedPanId = zdoBuffalo.readListUInt8(consts_1.EXTENDED_PAN_ID_SIZE);
|
|
3506
3498
|
const eui64 = zdoBuffalo.readIeeeAddr();
|
|
3507
3499
|
const nodeId = zdoBuffalo.readUInt16();
|
|
3508
3500
|
const deviceTypeByte = zdoBuffalo.readUInt8();
|
|
@@ -3523,8 +3515,8 @@ class Ezsp extends events_1.default {
|
|
|
3523
3515
|
lqi,
|
|
3524
3516
|
});
|
|
3525
3517
|
}
|
|
3526
|
-
debug(`<=== [ZDO LQI_TABLE_RESPONSE status=${status} neighborTableEntries=${neighborTableEntries}
|
|
3527
|
-
+ `entryCount=${entryCount} entryList=${JSON.stringify(entryList)}]
|
|
3518
|
+
logger_1.logger.debug(`<=== [ZDO LQI_TABLE_RESPONSE status=${zdo_1.EmberZdoStatus[status]} neighborTableEntries=${neighborTableEntries} `
|
|
3519
|
+
+ `startIndex=${startIndex} entryCount=${entryCount} entryList=${JSON.stringify(entryList)}]`, NS);
|
|
3528
3520
|
const payload = { neighborTableEntries, entryList };
|
|
3529
3521
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
|
|
3530
3522
|
}
|
|
@@ -3533,7 +3525,7 @@ class Ezsp extends events_1.default {
|
|
|
3533
3525
|
case zdo_1.ROUTING_TABLE_RESPONSE: {
|
|
3534
3526
|
const status = zdoBuffalo.readUInt8();
|
|
3535
3527
|
if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
|
|
3536
|
-
debug(`<=== [ZDO ROUTING_TABLE_RESPONSE status=${status}]
|
|
3528
|
+
logger_1.logger.debug(`<=== [ZDO ROUTING_TABLE_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3537
3529
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
|
|
3538
3530
|
}
|
|
3539
3531
|
else {
|
|
@@ -3560,8 +3552,8 @@ class Ezsp extends events_1.default {
|
|
|
3560
3552
|
nextHopAddress,
|
|
3561
3553
|
});
|
|
3562
3554
|
}
|
|
3563
|
-
debug(`<=== [ZDO ROUTING_TABLE_RESPONSE status=${status} routingTableEntries=${routingTableEntries}
|
|
3564
|
-
+ `entryCount=${entryCount} entryList=${JSON.stringify(entryList)}]
|
|
3555
|
+
logger_1.logger.debug(`<=== [ZDO ROUTING_TABLE_RESPONSE status=${zdo_1.EmberZdoStatus[status]} routingTableEntries=${routingTableEntries} `
|
|
3556
|
+
+ `startIndex=${startIndex} entryCount=${entryCount} entryList=${JSON.stringify(entryList)}]`, NS);
|
|
3565
3557
|
const payload = { routingTableEntries, entryList };
|
|
3566
3558
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
|
|
3567
3559
|
}
|
|
@@ -3570,7 +3562,7 @@ class Ezsp extends events_1.default {
|
|
|
3570
3562
|
case zdo_1.BINDING_TABLE_RESPONSE: {
|
|
3571
3563
|
const status = zdoBuffalo.readUInt8();
|
|
3572
3564
|
if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
|
|
3573
|
-
debug(`<=== [ZDO BINDING_TABLE_RESPONSE status=${status}]
|
|
3565
|
+
logger_1.logger.debug(`<=== [ZDO BINDING_TABLE_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3574
3566
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
|
|
3575
3567
|
}
|
|
3576
3568
|
else {
|
|
@@ -3594,9 +3586,9 @@ class Ezsp extends events_1.default {
|
|
|
3594
3586
|
destEndpoint,
|
|
3595
3587
|
});
|
|
3596
3588
|
}
|
|
3597
|
-
debug(`<=== [ZDO BINDING_TABLE_RESPONSE status=${status} bindingTableEntries=${bindingTableEntries}
|
|
3598
|
-
+ `entryCount=${entryCount} entryList=${JSON.stringify(entryList)}]
|
|
3599
|
-
debug(`<=== [ZDO BINDING_TABLE_RESPONSE] Support not implemented upstream
|
|
3589
|
+
logger_1.logger.debug(`<=== [ZDO BINDING_TABLE_RESPONSE status=${zdo_1.EmberZdoStatus[status]} bindingTableEntries=${bindingTableEntries} `
|
|
3590
|
+
+ `startIndex=${startIndex} entryCount=${entryCount} entryList=${JSON.stringify(entryList)}]`, NS);
|
|
3591
|
+
logger_1.logger.debug(`<=== [ZDO BINDING_TABLE_RESPONSE] Support not implemented upstream`, NS);
|
|
3600
3592
|
const payload = { bindingTableEntries, entryList };
|
|
3601
3593
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
|
|
3602
3594
|
}
|
|
@@ -3604,25 +3596,25 @@ class Ezsp extends events_1.default {
|
|
|
3604
3596
|
}
|
|
3605
3597
|
case zdo_1.BIND_RESPONSE: {
|
|
3606
3598
|
const status = zdoBuffalo.readUInt8();
|
|
3607
|
-
debug(`<=== [ZDO BIND_RESPONSE status=${status}]
|
|
3599
|
+
logger_1.logger.debug(`<=== [ZDO BIND_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3608
3600
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame);
|
|
3609
3601
|
break;
|
|
3610
3602
|
}
|
|
3611
3603
|
case zdo_1.UNBIND_RESPONSE: {
|
|
3612
3604
|
const status = zdoBuffalo.readUInt8();
|
|
3613
|
-
debug(`<=== [ZDO UNBIND_RESPONSE status=${status}]
|
|
3605
|
+
logger_1.logger.debug(`<=== [ZDO UNBIND_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3614
3606
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame);
|
|
3615
3607
|
break;
|
|
3616
3608
|
}
|
|
3617
3609
|
case zdo_1.LEAVE_RESPONSE: {
|
|
3618
3610
|
const status = zdoBuffalo.readUInt8();
|
|
3619
|
-
debug(`<=== [ZDO LEAVE_RESPONSE status=${status}]
|
|
3611
|
+
logger_1.logger.debug(`<=== [ZDO LEAVE_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3620
3612
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame);
|
|
3621
3613
|
break;
|
|
3622
3614
|
}
|
|
3623
3615
|
case zdo_1.PERMIT_JOINING_RESPONSE: {
|
|
3624
3616
|
const status = zdoBuffalo.readUInt8();
|
|
3625
|
-
debug(`<=== [ZDO PERMIT_JOINING_RESPONSE status=${status}]
|
|
3617
|
+
logger_1.logger.debug(`<=== [ZDO PERMIT_JOINING_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3626
3618
|
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame);
|
|
3627
3619
|
break;
|
|
3628
3620
|
}
|
|
@@ -3631,14 +3623,35 @@ class Ezsp extends events_1.default {
|
|
|
3631
3623
|
const eui64 = zdoBuffalo.readIeeeAddr();
|
|
3632
3624
|
/** @see MACCapabilityFlags */
|
|
3633
3625
|
const capabilities = zdoBuffalo.readUInt8();
|
|
3634
|
-
debug(`<=== [ZDO END_DEVICE_ANNOUNCE nodeId=${nodeId} eui64=${eui64} capabilities=${(0, math_1.byteToBits)(capabilities)}]
|
|
3626
|
+
logger_1.logger.debug(`<=== [ZDO END_DEVICE_ANNOUNCE nodeId=${nodeId} eui64=${eui64} capabilities=${(0, math_1.byteToBits)(capabilities)}]`, NS);
|
|
3635
3627
|
const payload = { nodeId, eui64, capabilities: (0, math_1.getMacCapFlags)(capabilities) };
|
|
3636
3628
|
// this one gets its own event since its purpose is to pass an event up to Z2M
|
|
3637
3629
|
this.emit(EzspEvents.END_DEVICE_ANNOUNCE, sender, apsFrame, payload);
|
|
3638
3630
|
break;
|
|
3639
3631
|
}
|
|
3632
|
+
case zdo_1.PARENT_ANNOUNCE_RESPONSE: {
|
|
3633
|
+
const status = zdoBuffalo.readUInt8();
|
|
3634
|
+
if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
|
|
3635
|
+
// status should always be NOT_SUPPORTED here
|
|
3636
|
+
logger_1.logger.debug(`<=== [ZDO PARENT_ANNOUNCE_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
|
|
3637
|
+
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
|
|
3638
|
+
}
|
|
3639
|
+
else {
|
|
3640
|
+
const numberOfChildren = zdoBuffalo.readUInt8();
|
|
3641
|
+
const children = [];
|
|
3642
|
+
for (let i = 0; i < numberOfChildren; i++) {
|
|
3643
|
+
const childEui64 = zdoBuffalo.readIeeeAddr();
|
|
3644
|
+
children.push(childEui64);
|
|
3645
|
+
}
|
|
3646
|
+
logger_1.logger.debug(`<=== [ZDO PARENT_ANNOUNCE_RESPONSE status=${zdo_1.EmberZdoStatus[status]} numberOfChildren=${numberOfChildren} `
|
|
3647
|
+
+ `children=${children}]`, NS);
|
|
3648
|
+
logger_1.logger.debug(`<=== [ZDO PARENT_ANNOUNCE_RESPONSE] Support not implemented upstream`, NS);
|
|
3649
|
+
const payload = { children };
|
|
3650
|
+
this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
|
|
3651
|
+
}
|
|
3652
|
+
}
|
|
3640
3653
|
default: {
|
|
3641
|
-
|
|
3654
|
+
logger_1.logger.info(`<=== [ZDO clusterId=${apsFrame.clusterId} sender=${sender}] Support not implemented upstream.`, NS);
|
|
3642
3655
|
break;
|
|
3643
3656
|
}
|
|
3644
3657
|
}
|
|
@@ -3674,7 +3687,7 @@ class Ezsp extends events_1.default {
|
|
|
3674
3687
|
* for this discovery arrive, but the callback is made only once.
|
|
3675
3688
|
*/
|
|
3676
3689
|
ezspIncomingManyToOneRouteRequestHandler(source, longId, cost) {
|
|
3677
|
-
debug(`ezspIncomingManyToOneRouteRequestHandler(): callback called with: [source=${source}], [longId=${longId}], [cost=${cost}]
|
|
3690
|
+
logger_1.logger.debug(`ezspIncomingManyToOneRouteRequestHandler(): callback called with: [source=${source}], [longId=${longId}], [cost=${cost}]`, NS);
|
|
3678
3691
|
}
|
|
3679
3692
|
/**
|
|
3680
3693
|
* Callback
|
|
@@ -3702,7 +3715,7 @@ class Ezsp extends events_1.default {
|
|
|
3702
3715
|
* @param target The short id of the remote node.
|
|
3703
3716
|
*/
|
|
3704
3717
|
ezspIncomingRouteErrorHandler(status, target) {
|
|
3705
|
-
debug(`ezspIncomingRouteErrorHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [target=${target}]
|
|
3718
|
+
logger_1.logger.debug(`ezspIncomingRouteErrorHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [target=${target}]`, NS);
|
|
3706
3719
|
// NOTE: This can trigger immediately after removal of a device with status MAC_INDIRECT_TIMEOUT
|
|
3707
3720
|
}
|
|
3708
3721
|
/**
|
|
@@ -3719,8 +3732,8 @@ class Ezsp extends events_1.default {
|
|
|
3719
3732
|
* @param target The short ID of the remote node
|
|
3720
3733
|
*/
|
|
3721
3734
|
ezspIncomingNetworkStatusHandler(errorCode, target) {
|
|
3722
|
-
debug(`ezspIncomingNetworkStatusHandler(): callback called with: [errorCode=${enums_1.EmberStackError[errorCode]}], [target=${target}]
|
|
3723
|
-
|
|
3735
|
+
logger_1.logger.debug(`ezspIncomingNetworkStatusHandler(): callback called with: [errorCode=${enums_1.EmberStackError[errorCode]}], [target=${target}]`, NS);
|
|
3736
|
+
logger_1.logger.info(`Received network/route error ${enums_1.EmberStackError[errorCode]} for "${target}".`, NS);
|
|
3724
3737
|
}
|
|
3725
3738
|
/**
|
|
3726
3739
|
* Callback
|
|
@@ -3734,8 +3747,8 @@ class Ezsp extends events_1.default {
|
|
|
3734
3747
|
* The list is passed as uint8_t * to avoid alignment problems.
|
|
3735
3748
|
*/
|
|
3736
3749
|
ezspIncomingRouteRecordHandler(source, sourceEui, lastHopLqi, lastHopRssi, relayCount, relayList) {
|
|
3737
|
-
debug(`ezspIncomingRouteRecordHandler(): callback called with: [source=${source}], [sourceEui=${sourceEui}], `
|
|
3738
|
-
+ `[lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}], [relayCount=${relayCount}], [relayList=${relayList}]
|
|
3750
|
+
logger_1.logger.debug(`ezspIncomingRouteRecordHandler(): callback called with: [source=${source}], [sourceEui=${sourceEui}], `
|
|
3751
|
+
+ `[lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}], [relayCount=${relayCount}], [relayList=${relayList}]`, NS);
|
|
3739
3752
|
// XXX: could at least trigger a `Events.lastSeenChanged` but this is not currently being listened to at the adapter level
|
|
3740
3753
|
}
|
|
3741
3754
|
/**
|
|
@@ -4033,8 +4046,12 @@ class Ezsp extends events_1.default {
|
|
|
4033
4046
|
* @param id The short id for which a conflict was detected
|
|
4034
4047
|
*/
|
|
4035
4048
|
ezspIdConflictHandler(id) {
|
|
4036
|
-
debug(`ezspIdConflictHandler(): callback called with: [id=${id}]
|
|
4037
|
-
|
|
4049
|
+
logger_1.logger.debug(`ezspIdConflictHandler(): callback called with: [id=${id}]`, NS);
|
|
4050
|
+
logger_1.logger.warning(`An ID conflict was detected for network address "${id}". Corresponding devices kicked from the network.`, NS);
|
|
4051
|
+
// XXX: this is currently causing more problems than not doing it, so disabled for now.
|
|
4052
|
+
// devices should rejoin on ID conflict anyway, so the database isn't out of sync for very long.
|
|
4053
|
+
// hijacking the event from `ezspTrustCenterJoinHandler`, and forging a DEVICE_LEFT to avoid another event ending up doing the same logic
|
|
4054
|
+
// this.emit(EzspEvents.TRUST_CENTER_JOIN, id, null, EmberDeviceUpdate.DEVICE_LEFT, EmberJoinDecision.NO_ACTION, NULL_NODE_ID);
|
|
4038
4055
|
}
|
|
4039
4056
|
/**
|
|
4040
4057
|
* Write the current node Id, PAN ID, or Node type to the tokens
|
|
@@ -4098,8 +4115,8 @@ class Ezsp extends events_1.default {
|
|
|
4098
4115
|
* @param messageContents uint8_t * The raw message that was received.
|
|
4099
4116
|
*/
|
|
4100
4117
|
ezspMacPassthroughMessageHandler(messageType, lastHopLqi, lastHopRssi, messageContents) {
|
|
4101
|
-
debug(`ezspMacPassthroughMessageHandler(): callback called with: [messageType=${messageType}], [lastHopLqi=${lastHopLqi}], `
|
|
4102
|
-
+ `[lastHopRssi=${lastHopRssi}], [messageContents=${messageContents.toString('hex')}]
|
|
4118
|
+
logger_1.logger.debug(`ezspMacPassthroughMessageHandler(): callback called with: [messageType=${messageType}], [lastHopLqi=${lastHopLqi}], `
|
|
4119
|
+
+ `[lastHopRssi=${lastHopRssi}], [messageContents=${messageContents.toString('hex')}]`, NS);
|
|
4103
4120
|
}
|
|
4104
4121
|
/**
|
|
4105
4122
|
* Callback
|
|
@@ -4113,9 +4130,9 @@ class Ezsp extends events_1.default {
|
|
|
4113
4130
|
* @param messageContents uint8_t * The raw message that was received.
|
|
4114
4131
|
*/
|
|
4115
4132
|
ezspMacFilterMatchMessageHandler(filterIndexMatch, legacyPassthroughType, lastHopLqi, lastHopRssi, messageContents) {
|
|
4116
|
-
debug(`ezspMacFilterMatchMessageHandler(): callback called with: [filterIndexMatch=${filterIndexMatch}], `
|
|
4133
|
+
logger_1.logger.debug(`ezspMacFilterMatchMessageHandler(): callback called with: [filterIndexMatch=${filterIndexMatch}], `
|
|
4117
4134
|
+ `[legacyPassthroughType=${legacyPassthroughType}], [lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}], `
|
|
4118
|
-
+ `[messageContents=${messageContents.toString('hex')}]
|
|
4135
|
+
+ `[messageContents=${messageContents.toString('hex')}]`, NS);
|
|
4119
4136
|
// TODO: needs triple-checking, this is only valid for InterPAN messages
|
|
4120
4137
|
const msgBuffalo = new buffalo_1.EzspBuffalo(messageContents, 0);
|
|
4121
4138
|
const macFrameControl = msgBuffalo.readUInt16() & ~(consts_2.MAC_ACK_REQUIRED);
|
|
@@ -4132,7 +4149,7 @@ class Ezsp extends events_1.default {
|
|
|
4132
4149
|
destAddress = msgBuffalo.readUInt16();
|
|
4133
4150
|
}
|
|
4134
4151
|
else {
|
|
4135
|
-
debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN macFrameControl "${macFrameControl}"
|
|
4152
|
+
logger_1.logger.debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN macFrameControl "${macFrameControl}".`, NS);
|
|
4136
4153
|
return;
|
|
4137
4154
|
}
|
|
4138
4155
|
const sourcePanId = msgBuffalo.readUInt16();
|
|
@@ -4140,19 +4157,19 @@ class Ezsp extends events_1.default {
|
|
|
4140
4157
|
// Now that we know the correct MAC length, verify the interpan frame is the correct length.
|
|
4141
4158
|
let remainingLength = msgBuffalo.getBufferLength() - msgBuffalo.getPosition();
|
|
4142
4159
|
if (remainingLength < (consts_2.STUB_NWK_SIZE + consts_2.MIN_STUB_APS_SIZE)) {
|
|
4143
|
-
debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN length "${remainingLength}"
|
|
4160
|
+
logger_1.logger.debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN length "${remainingLength}".`, NS);
|
|
4144
4161
|
return;
|
|
4145
4162
|
}
|
|
4146
4163
|
const nwkFrameControl = msgBuffalo.readUInt16();
|
|
4147
4164
|
remainingLength -= 2; // read 2 more bytes before APS stuff
|
|
4148
4165
|
if (nwkFrameControl !== consts_2.STUB_NWK_FRAME_CONTROL) {
|
|
4149
|
-
debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN nwkFrameControl "${nwkFrameControl}"
|
|
4166
|
+
logger_1.logger.debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN nwkFrameControl "${nwkFrameControl}".`, NS);
|
|
4150
4167
|
return;
|
|
4151
4168
|
}
|
|
4152
4169
|
const apsFrameControl = msgBuffalo.readUInt8();
|
|
4153
4170
|
if ((apsFrameControl & ~(consts_2.INTERPAN_APS_FRAME_DELIVERY_MODE_MASK) & ~(consts_2.INTERPAN_APS_FRAME_SECURITY))
|
|
4154
4171
|
!== consts_2.INTERPAN_APS_FRAME_CONTROL_NO_DELIVERY_MODE) {
|
|
4155
|
-
debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN apsFrameControl "${apsFrameControl}"
|
|
4172
|
+
logger_1.logger.debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN apsFrameControl "${apsFrameControl}".`, NS);
|
|
4156
4173
|
return;
|
|
4157
4174
|
}
|
|
4158
4175
|
const messageType = (apsFrameControl & consts_2.INTERPAN_APS_FRAME_DELIVERY_MODE_MASK);
|
|
@@ -4161,28 +4178,28 @@ class Ezsp extends events_1.default {
|
|
|
4161
4178
|
case enums_1.EmberInterpanMessageType.UNICAST:
|
|
4162
4179
|
case enums_1.EmberInterpanMessageType.BROADCAST: {
|
|
4163
4180
|
if (remainingLength < consts_2.INTERPAN_APS_UNICAST_BROADCAST_SIZE) {
|
|
4164
|
-
debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN length "${remainingLength}"
|
|
4181
|
+
logger_1.logger.debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN length "${remainingLength}".`, NS);
|
|
4165
4182
|
return;
|
|
4166
4183
|
}
|
|
4167
4184
|
break;
|
|
4168
4185
|
}
|
|
4169
4186
|
case enums_1.EmberInterpanMessageType.MULTICAST: {
|
|
4170
4187
|
if (remainingLength < consts_2.INTERPAN_APS_MULTICAST_SIZE) {
|
|
4171
|
-
debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN length "${remainingLength}"
|
|
4188
|
+
logger_1.logger.debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN length "${remainingLength}".`, NS);
|
|
4172
4189
|
return;
|
|
4173
4190
|
}
|
|
4174
4191
|
groupId = msgBuffalo.readUInt16();
|
|
4175
4192
|
break;
|
|
4176
4193
|
}
|
|
4177
4194
|
default: {
|
|
4178
|
-
debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN messageType "${messageType}"
|
|
4195
|
+
logger_1.logger.debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN messageType "${messageType}".`, NS);
|
|
4179
4196
|
return;
|
|
4180
4197
|
}
|
|
4181
4198
|
}
|
|
4182
4199
|
const clusterId = msgBuffalo.readUInt16();
|
|
4183
4200
|
const profileId = msgBuffalo.readUInt16();
|
|
4184
4201
|
const payload = msgBuffalo.readRest();
|
|
4185
|
-
if (profileId === consts_2.TOUCHLINK_PROFILE_ID && clusterId === cluster_1.
|
|
4202
|
+
if (profileId === consts_2.TOUCHLINK_PROFILE_ID && clusterId === cluster_1.Clusters.touchlink.ID) {
|
|
4186
4203
|
this.emit(EzspEvents.TOUCHLINK_MESSAGE, sourcePanId, sourceAddress, groupId, lastHopLqi, payload);
|
|
4187
4204
|
}
|
|
4188
4205
|
}
|
|
@@ -4193,7 +4210,7 @@ class Ezsp extends events_1.default {
|
|
|
4193
4210
|
* @param status EMBER_SUCCESS if the transmission was successful, or EMBER_DELIVERY_FAILED if not
|
|
4194
4211
|
*/
|
|
4195
4212
|
ezspRawTransmitCompleteHandler(status) {
|
|
4196
|
-
debug(`ezspRawTransmitCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]
|
|
4213
|
+
logger_1.logger.debug(`ezspRawTransmitCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`, NS);
|
|
4197
4214
|
}
|
|
4198
4215
|
/**
|
|
4199
4216
|
* This function is useful to sleepy end devices. This function will set the
|
|
@@ -4326,7 +4343,7 @@ class Ezsp extends events_1.default {
|
|
|
4326
4343
|
*/
|
|
4327
4344
|
// NOTE: added for good measure
|
|
4328
4345
|
if (context.coreKeyType === enums_1.SecManKeyType.INTERNAL) {
|
|
4329
|
-
|
|
4346
|
+
logger_1.logger.error(`ezspImportKey cannot use INTERNAL key type.`, NS);
|
|
4330
4347
|
return [null, enums_1.SLStatus.INVALID_PARAMETER];
|
|
4331
4348
|
}
|
|
4332
4349
|
this.startCommand(enums_2.EzspFrameID.EXPORT_KEY);
|
|
@@ -4385,7 +4402,7 @@ class Ezsp extends events_1.default {
|
|
|
4385
4402
|
*/
|
|
4386
4403
|
// NOTE: added for good measure
|
|
4387
4404
|
if (context.coreKeyType === enums_1.SecManKeyType.INTERNAL) {
|
|
4388
|
-
|
|
4405
|
+
logger_1.logger.error(`ezspImportKey cannot use INTERNAL key type.`, NS);
|
|
4389
4406
|
return enums_1.SLStatus.INVALID_PARAMETER;
|
|
4390
4407
|
}
|
|
4391
4408
|
this.startCommand(enums_2.EzspFrameID.IMPORT_KEY);
|
|
@@ -4406,7 +4423,7 @@ class Ezsp extends events_1.default {
|
|
|
4406
4423
|
* @param sequenceNumber uint8_t The sequence number of the new network key.
|
|
4407
4424
|
*/
|
|
4408
4425
|
ezspSwitchNetworkKeyHandler(sequenceNumber) {
|
|
4409
|
-
debug(`ezspSwitchNetworkKeyHandler(): callback called with: [sequenceNumber=${sequenceNumber}]
|
|
4426
|
+
logger_1.logger.debug(`ezspSwitchNetworkKeyHandler(): callback called with: [sequenceNumber=${sequenceNumber}]`, NS);
|
|
4410
4427
|
}
|
|
4411
4428
|
/**
|
|
4412
4429
|
* This function searches through the Key Table and tries to find the entry that
|
|
@@ -4537,7 +4554,7 @@ class Ezsp extends events_1.default {
|
|
|
4537
4554
|
* @param status This is the status indicating what was established or why the key establishment failed.
|
|
4538
4555
|
*/
|
|
4539
4556
|
ezspZigbeeKeyEstablishmentHandler(partner, status) {
|
|
4540
|
-
debug(`ezspZigbeeKeyEstablishmentHandler(): callback called with: [partner=${partner}], [status=${enums_1.EmberKeyStatus[status]}]
|
|
4557
|
+
logger_1.logger.debug(`ezspZigbeeKeyEstablishmentHandler(): callback called with: [partner=${partner}], [status=${enums_1.EmberKeyStatus[status]}]`, NS);
|
|
4541
4558
|
// NOTE: For security reasons, any valid `partner` (not wildcard) that return with a status=TC_REQUESTER_VERIFY_KEY_TIMEOUT
|
|
4542
4559
|
// are kicked off the network for posing a risk, unless HA devices allowed (as opposed to Z3)
|
|
4543
4560
|
// and always if status=TC_REQUESTER_VERIFY_KEY_FAILURE
|
|
@@ -4865,9 +4882,9 @@ class Ezsp extends events_1.default {
|
|
|
4865
4882
|
* @param parentOfNewNodeId The parent of the node whose status has changed.
|
|
4866
4883
|
*/
|
|
4867
4884
|
ezspTrustCenterJoinHandler(newNodeId, newNodeEui64, status, policyDecision, parentOfNewNodeId) {
|
|
4868
|
-
debug(`ezspTrustCenterJoinHandler(): callback called with: [newNodeId=${newNodeId}], [newNodeEui64=${newNodeEui64}], `
|
|
4885
|
+
logger_1.logger.debug(`ezspTrustCenterJoinHandler(): callback called with: [newNodeId=${newNodeId}], [newNodeEui64=${newNodeEui64}], `
|
|
4869
4886
|
+ `[status=${enums_1.EmberDeviceUpdate[status]}], [policyDecision=${enums_1.EmberJoinDecision[policyDecision]}], `
|
|
4870
|
-
+ `[parentOfNewNodeId=${parentOfNewNodeId}]
|
|
4887
|
+
+ `[parentOfNewNodeId=${parentOfNewNodeId}]`, NS);
|
|
4871
4888
|
// NOTE: this is mostly just passing stuff up to Z2M, so use only one emit for all, let adapter do the rest, no parsing needed
|
|
4872
4889
|
this.emit(EzspEvents.TRUST_CENTER_JOIN, newNodeId, newNodeEui64, status, policyDecision, parentOfNewNodeId);
|
|
4873
4890
|
}
|
|
@@ -5000,7 +5017,7 @@ class Ezsp extends events_1.default {
|
|
|
5000
5017
|
* @param ephemeralPublicKey EmberPublicKeyData * The generated ephemeral public key.
|
|
5001
5018
|
*/
|
|
5002
5019
|
ezspGenerateCbkeKeysHandler(status, ephemeralPublicKey) {
|
|
5003
|
-
debug(`ezspGenerateCbkeKeysHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [ephemeralPublicKey=${ephemeralPublicKey}]
|
|
5020
|
+
logger_1.logger.debug(`ezspGenerateCbkeKeysHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [ephemeralPublicKey=${ephemeralPublicKey}]`, NS);
|
|
5004
5021
|
}
|
|
5005
5022
|
/**
|
|
5006
5023
|
* Calculates the SMAC verification keys for both the initiator and responder
|
|
@@ -5035,8 +5052,8 @@ class Ezsp extends events_1.default {
|
|
|
5035
5052
|
* @param responderSmac EmberSmacData * The calculated value of the responder's SMAC
|
|
5036
5053
|
*/
|
|
5037
5054
|
ezspCalculateSmacsHandler(status, initiatorSmac, responderSmac) {
|
|
5038
|
-
debug(`ezspCalculateSmacsHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [initiatorSmac=${initiatorSmac}], `
|
|
5039
|
-
+ `[responderSmac=${responderSmac}]
|
|
5055
|
+
logger_1.logger.debug(`ezspCalculateSmacsHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [initiatorSmac=${initiatorSmac}], `
|
|
5056
|
+
+ `[responderSmac=${responderSmac}]`, NS);
|
|
5040
5057
|
}
|
|
5041
5058
|
/**
|
|
5042
5059
|
* This call starts the generation of the ECC 283k1 curve Ephemeral
|
|
@@ -5062,8 +5079,8 @@ class Ezsp extends events_1.default {
|
|
|
5062
5079
|
* @param ephemeralPublicKey EmberPublicKey283k1Data * The generated ephemeral public key.
|
|
5063
5080
|
*/
|
|
5064
5081
|
ezspGenerateCbkeKeysHandler283k1(status, ephemeralPublicKey) {
|
|
5065
|
-
debug(`ezspGenerateCbkeKeysHandler283k1(): callback called with: [status=${enums_1.EmberStatus[status]}], `
|
|
5066
|
-
+ `[ephemeralPublicKey=${ephemeralPublicKey}]
|
|
5082
|
+
logger_1.logger.debug(`ezspGenerateCbkeKeysHandler283k1(): callback called with: [status=${enums_1.EmberStatus[status]}], `
|
|
5083
|
+
+ `[ephemeralPublicKey=${ephemeralPublicKey}]`, NS);
|
|
5067
5084
|
}
|
|
5068
5085
|
/**
|
|
5069
5086
|
* Calculates the SMAC verification keys for both the initiator and responder
|
|
@@ -5099,8 +5116,8 @@ class Ezsp extends events_1.default {
|
|
|
5099
5116
|
* @param responderSmac EmberSmacData * The calculated value of the responder's SMAC
|
|
5100
5117
|
*/
|
|
5101
5118
|
ezspCalculateSmacsHandler283k1(status, initiatorSmac, responderSmac) {
|
|
5102
|
-
debug(`ezspCalculateSmacsHandler283k1(): callback called with: [status=${enums_1.EmberStatus[status]}], [initiatorSmac=${initiatorSmac}], `
|
|
5103
|
-
+ `[responderSmac=${responderSmac}]
|
|
5119
|
+
logger_1.logger.debug(`ezspCalculateSmacsHandler283k1(): callback called with: [status=${enums_1.EmberStatus[status]}], [initiatorSmac=${initiatorSmac}], `
|
|
5120
|
+
+ `[responderSmac=${responderSmac}]`, NS);
|
|
5104
5121
|
}
|
|
5105
5122
|
/**
|
|
5106
5123
|
* Clears the temporary data associated with CBKE and the key establishment,
|
|
@@ -5222,7 +5239,7 @@ class Ezsp extends events_1.default {
|
|
|
5222
5239
|
* @param messageContents uint8_t *The message and attached which includes the original message and the appended signature.
|
|
5223
5240
|
*/
|
|
5224
5241
|
ezspDsaSignHandler(status, messageContents) {
|
|
5225
|
-
debug(`ezspDsaSignHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [messageContents=${messageContents.toString('hex')}]
|
|
5242
|
+
logger_1.logger.debug(`ezspDsaSignHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [messageContents=${messageContents.toString('hex')}]`, NS);
|
|
5226
5243
|
}
|
|
5227
5244
|
/**
|
|
5228
5245
|
* Verify that signature of the associated message digest was signed by the
|
|
@@ -5256,7 +5273,7 @@ class Ezsp extends events_1.default {
|
|
|
5256
5273
|
* @param status The result of the DSA verification operation.
|
|
5257
5274
|
*/
|
|
5258
5275
|
ezspDsaVerifyHandler(status) {
|
|
5259
|
-
debug(`ezspDsaVerifyHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]
|
|
5276
|
+
logger_1.logger.debug(`ezspDsaVerifyHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`, NS);
|
|
5260
5277
|
}
|
|
5261
5278
|
/**
|
|
5262
5279
|
* Verify that signature of the associated message digest was signed by the
|
|
@@ -5468,7 +5485,7 @@ class Ezsp extends events_1.default {
|
|
|
5468
5485
|
async mfglibSetPower(txPowerMode, power) {
|
|
5469
5486
|
this.startCommand(enums_2.EzspFrameID.MFGLIB_SET_POWER);
|
|
5470
5487
|
this.buffalo.writeUInt16(txPowerMode);
|
|
5471
|
-
this.buffalo.
|
|
5488
|
+
this.buffalo.writeInt8(power);
|
|
5472
5489
|
const sendStatus = await this.sendCommand();
|
|
5473
5490
|
if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
|
|
5474
5491
|
throw new Error(enums_1.EzspStatus[sendStatus]);
|
|
@@ -5486,7 +5503,7 @@ class Ezsp extends events_1.default {
|
|
|
5486
5503
|
if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
|
|
5487
5504
|
throw new Error(enums_1.EzspStatus[sendStatus]);
|
|
5488
5505
|
}
|
|
5489
|
-
const power = this.buffalo.
|
|
5506
|
+
const power = this.buffalo.readInt8();
|
|
5490
5507
|
return power;
|
|
5491
5508
|
}
|
|
5492
5509
|
/**
|
|
@@ -5498,9 +5515,8 @@ class Ezsp extends events_1.default {
|
|
|
5498
5515
|
* @param packetContents uint8_t * The received packet (last 2 bytes are not FCS / CRC and may be discarded)
|
|
5499
5516
|
*/
|
|
5500
5517
|
ezspMfglibRxHandler(linkQuality, rssi, packetLength, packetContents) {
|
|
5501
|
-
debug(`ezspMfglibRxHandler(): callback called with: [linkQuality=${linkQuality}], [rssi=${rssi}], `
|
|
5502
|
-
+ `[packetLength=${packetLength}], [packetContents=${packetContents}]
|
|
5503
|
-
// gecko_sdk_4.4.0\protocol\zigbee\app\framework\plugin\manufacturing-library-cli\manufacturing-library-cli-host.c
|
|
5518
|
+
logger_1.logger.debug(`ezspMfglibRxHandler(): callback called with: [linkQuality=${linkQuality}], [rssi=${rssi}], `
|
|
5519
|
+
+ `[packetLength=${packetLength}], [packetContents=${packetContents}]`, NS);
|
|
5504
5520
|
}
|
|
5505
5521
|
//-----------------------------------------------------------------------------
|
|
5506
5522
|
// Bootloader Frames
|
|
@@ -5582,8 +5598,8 @@ class Ezsp extends events_1.default {
|
|
|
5582
5598
|
* @param messageContents uint8_t *The bootload message that was sent.
|
|
5583
5599
|
*/
|
|
5584
5600
|
ezspIncomingBootloadMessageHandler(longId, lastHopLqi, lastHopRssi, messageContents) {
|
|
5585
|
-
debug(`ezspIncomingBootloadMessageHandler(): callback called with: [longId=${longId}], [lastHopLqi=${lastHopLqi}], `
|
|
5586
|
-
+ `[lastHopRssi=${lastHopRssi}], [messageContents=${messageContents.toString('hex')}]
|
|
5601
|
+
logger_1.logger.debug(`ezspIncomingBootloadMessageHandler(): callback called with: [longId=${longId}], [lastHopLqi=${lastHopLqi}], `
|
|
5602
|
+
+ `[lastHopRssi=${lastHopRssi}], [messageContents=${messageContents.toString('hex')}]`, NS);
|
|
5587
5603
|
}
|
|
5588
5604
|
/**
|
|
5589
5605
|
* Callback
|
|
@@ -5595,8 +5611,8 @@ class Ezsp extends events_1.default {
|
|
|
5595
5611
|
* @param messageContents uint8_t * The message that was sent.
|
|
5596
5612
|
*/
|
|
5597
5613
|
ezspBootloadTransmitCompleteHandler(status, messageContents) {
|
|
5598
|
-
debug(`ezspBootloadTransmitCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], `
|
|
5599
|
-
+ `[messageContents=${messageContents.toString('hex')}]
|
|
5614
|
+
logger_1.logger.debug(`ezspBootloadTransmitCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], `
|
|
5615
|
+
+ `[messageContents=${messageContents.toString('hex')}]`, NS);
|
|
5600
5616
|
}
|
|
5601
5617
|
/**
|
|
5602
5618
|
* Perform AES encryption on plaintext using key.
|
|
@@ -5612,7 +5628,7 @@ class Ezsp extends events_1.default {
|
|
|
5612
5628
|
if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
|
|
5613
5629
|
throw new Error(enums_1.EzspStatus[sendStatus]);
|
|
5614
5630
|
}
|
|
5615
|
-
const ciphertext = this.buffalo.readListUInt8(
|
|
5631
|
+
const ciphertext = this.buffalo.readListUInt8(consts_1.EMBER_ENCRYPTION_KEY_SIZE);
|
|
5616
5632
|
return ciphertext;
|
|
5617
5633
|
}
|
|
5618
5634
|
//-----------------------------------------------------------------------------
|
|
@@ -5630,7 +5646,7 @@ class Ezsp extends events_1.default {
|
|
|
5630
5646
|
this.startCommand(enums_2.EzspFrameID.ZLL_NETWORK_OPS);
|
|
5631
5647
|
this.buffalo.writeEmberZllNetwork(networkInfo);
|
|
5632
5648
|
this.buffalo.writeUInt8(op);
|
|
5633
|
-
this.buffalo.
|
|
5649
|
+
this.buffalo.writeInt8(radioTxPower);
|
|
5634
5650
|
const sendStatus = await this.sendCommand();
|
|
5635
5651
|
if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
|
|
5636
5652
|
throw new Error(enums_1.EzspStatus[sendStatus]);
|
|
@@ -5683,7 +5699,7 @@ class Ezsp extends events_1.default {
|
|
|
5683
5699
|
async ezspZllStartScan(channelMask, radioPowerForScan, nodeType) {
|
|
5684
5700
|
this.startCommand(enums_2.EzspFrameID.ZLL_START_SCAN);
|
|
5685
5701
|
this.buffalo.writeUInt32(channelMask);
|
|
5686
|
-
this.buffalo.
|
|
5702
|
+
this.buffalo.writeInt8(radioPowerForScan);
|
|
5687
5703
|
this.buffalo.writeUInt8(nodeType);
|
|
5688
5704
|
const sendStatus = await this.sendCommand();
|
|
5689
5705
|
if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
|
|
@@ -5718,8 +5734,8 @@ class Ezsp extends events_1.default {
|
|
|
5718
5734
|
* @param lastHopRssi int8_t The energy level (in units of dBm) observed during reception.
|
|
5719
5735
|
*/
|
|
5720
5736
|
ezspZllNetworkFoundHandler(networkInfo, isDeviceInfoNull, deviceInfo, lastHopLqi, lastHopRssi) {
|
|
5721
|
-
debug(`ezspZllNetworkFoundHandler(): callback called with: [networkInfo=${networkInfo}], [isDeviceInfoNull=${isDeviceInfoNull}], `
|
|
5722
|
-
+ `[deviceInfo=${deviceInfo}], [lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}]
|
|
5737
|
+
logger_1.logger.debug(`ezspZllNetworkFoundHandler(): callback called with: [networkInfo=${networkInfo}], [isDeviceInfoNull=${isDeviceInfoNull}], `
|
|
5738
|
+
+ `[deviceInfo=${deviceInfo}], [lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}]`, NS);
|
|
5723
5739
|
}
|
|
5724
5740
|
/**
|
|
5725
5741
|
* Callback
|
|
@@ -5727,7 +5743,7 @@ class Ezsp extends events_1.default {
|
|
|
5727
5743
|
* @param status Status of the operation.
|
|
5728
5744
|
*/
|
|
5729
5745
|
ezspZllScanCompleteHandler(status) {
|
|
5730
|
-
debug(`ezspZllScanCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]
|
|
5746
|
+
logger_1.logger.debug(`ezspZllScanCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`, NS);
|
|
5731
5747
|
}
|
|
5732
5748
|
/**
|
|
5733
5749
|
* Callback
|
|
@@ -5738,8 +5754,8 @@ class Ezsp extends events_1.default {
|
|
|
5738
5754
|
* @param lastHopRssi int8_t The energy level (in units of dBm) observed during reception.
|
|
5739
5755
|
*/
|
|
5740
5756
|
ezspZllAddressAssignmentHandler(addressInfo, lastHopLqi, lastHopRssi) {
|
|
5741
|
-
debug(`ezspZllAddressAssignmentHandler(): callback called with: [addressInfo=${addressInfo}], [lastHopLqi=${lastHopLqi}], `
|
|
5742
|
-
+ `[lastHopRssi=${lastHopRssi}]
|
|
5757
|
+
logger_1.logger.debug(`ezspZllAddressAssignmentHandler(): callback called with: [addressInfo=${addressInfo}], [lastHopLqi=${lastHopLqi}], `
|
|
5758
|
+
+ `[lastHopRssi=${lastHopRssi}]`, NS);
|
|
5743
5759
|
}
|
|
5744
5760
|
/**
|
|
5745
5761
|
* Callback
|
|
@@ -5747,7 +5763,7 @@ class Ezsp extends events_1.default {
|
|
|
5747
5763
|
* @param networkInfo EmberZllNetwork * Information about the network.
|
|
5748
5764
|
*/
|
|
5749
5765
|
ezspZllTouchLinkTargetHandler(networkInfo) {
|
|
5750
|
-
debug(`ezspZllTouchLinkTargetHandler(): callback called with: [networkInfo=${networkInfo}]
|
|
5766
|
+
logger_1.logger.debug(`ezspZllTouchLinkTargetHandler(): callback called with: [networkInfo=${networkInfo}]`, NS);
|
|
5751
5767
|
}
|
|
5752
5768
|
/**
|
|
5753
5769
|
* Get the ZLL tokens.
|
|
@@ -6097,7 +6113,7 @@ class Ezsp extends events_1.default {
|
|
|
6097
6113
|
* @param gpepHandle uint8_t The handle of the GPDF.
|
|
6098
6114
|
*/
|
|
6099
6115
|
ezspDGpSentHandler(status, gpepHandle) {
|
|
6100
|
-
debug(`ezspDGpSentHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [gpepHandle=${gpepHandle}]
|
|
6116
|
+
logger_1.logger.debug(`ezspDGpSentHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [gpepHandle=${gpepHandle}]`, NS);
|
|
6101
6117
|
}
|
|
6102
6118
|
/**
|
|
6103
6119
|
* Callback
|
|
@@ -6118,24 +6134,24 @@ class Ezsp extends events_1.default {
|
|
|
6118
6134
|
* @param gpdCommandPayload uint8_t * The GPD command payload.
|
|
6119
6135
|
*/
|
|
6120
6136
|
ezspGpepIncomingMessageHandler(status, gpdLink, sequenceNumber, addr, gpdfSecurityLevel, gpdfSecurityKeyType, autoCommissioning, bidirectionalInfo, gpdSecurityFrameCounter, gpdCommandId, mic, proxyTableIndex, gpdCommandPayload) {
|
|
6121
|
-
debug(`ezspGpepIncomingMessageHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [gpdLink=${gpdLink}], `
|
|
6122
|
-
+ `[sequenceNumber=${sequenceNumber}], [addr=${JSON.stringify(addr)}], [gpdfSecurityLevel=${gpdfSecurityLevel}], `
|
|
6123
|
-
+ `[gpdfSecurityKeyType=${gpdfSecurityKeyType}], [autoCommissioning=${autoCommissioning}],
|
|
6124
|
-
+ `[
|
|
6125
|
-
+ `[proxyTableIndex=${proxyTableIndex}], [gpdCommandPayload=${gpdCommandPayload.toString('hex')}]
|
|
6137
|
+
logger_1.logger.debug(`ezspGpepIncomingMessageHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [gpdLink=${gpdLink}], `
|
|
6138
|
+
+ `[sequenceNumber=${sequenceNumber}], [addr=${JSON.stringify(addr)}], [gpdfSecurityLevel=${enums_1.EmberGpSecurityLevel[gpdfSecurityLevel]}], `
|
|
6139
|
+
+ `[gpdfSecurityKeyType=${enums_1.EmberGpKeyType[gpdfSecurityKeyType]}], [autoCommissioning=${autoCommissioning}], `
|
|
6140
|
+
+ `[bidirectionalInfo=${bidirectionalInfo}], [gpdSecurityFrameCounter=${gpdSecurityFrameCounter}], [gpdCommandId=${gpdCommandId}], `
|
|
6141
|
+
+ `[mic=${mic}], [proxyTableIndex=${proxyTableIndex}], [gpdCommandPayload=${gpdCommandPayload.toString('hex')}]`, NS);
|
|
6126
6142
|
if (addr.applicationId === enums_1.EmberGpApplicationId.IEEE_ADDRESS) {
|
|
6127
6143
|
// XXX: don't bother parsing for upstream for now, since it will be rejected
|
|
6128
|
-
|
|
6144
|
+
logger_1.logger.error(`<=== [GP] Received IEEE address type in message. Support not implemented upstream. Dropping.`, NS);
|
|
6129
6145
|
return;
|
|
6130
6146
|
}
|
|
6131
|
-
let commandIdentifier = cluster_1.
|
|
6147
|
+
let commandIdentifier = cluster_1.Clusters.greenPower.commands.notification.ID;
|
|
6132
6148
|
if (gpdCommandId === 0xE0) {
|
|
6133
6149
|
if (!gpdCommandPayload.length) {
|
|
6134
6150
|
// XXX: seem to be receiving duplicate commissioningNotification from some devices, second one with empty payload?
|
|
6135
6151
|
// this will mess with the process no doubt, so dropping them
|
|
6136
6152
|
return;
|
|
6137
6153
|
}
|
|
6138
|
-
commandIdentifier = cluster_1.
|
|
6154
|
+
commandIdentifier = cluster_1.Clusters.greenPower.commands.commissioningNotification.ID;
|
|
6139
6155
|
}
|
|
6140
6156
|
this.emit(EzspEvents.GREENPOWER_MESSAGE, sequenceNumber, commandIdentifier, addr.sourceId, gpdSecurityFrameCounter, gpdCommandId, gpdCommandPayload, gpdLink);
|
|
6141
6157
|
}
|