@willieee802/zigbee-herdsman 0.36.0 → 0.48.2

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