zigbee-herdsman 6.0.1 → 6.0.3

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 (260) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/adapter/ezsp/driver/uart.js +1 -1
  3. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  4. package/dist/adapter/z-stack/adapter/zStackAdapter.js +4 -4
  5. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  6. package/dist/adapter/zigate/adapter/zigateAdapter.js +4 -4
  7. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  8. package/dist/controller/model/device.d.ts.map +1 -1
  9. package/dist/controller/model/device.js +1 -0
  10. package/dist/controller/model/device.js.map +1 -1
  11. package/package.json +14 -6
  12. package/.github/ISSUE_TEMPLATE/config.yml +0 -5
  13. package/.github/dependabot.yml +0 -22
  14. package/.github/workflows/ci.yml +0 -64
  15. package/.github/workflows/release-please.yml +0 -18
  16. package/.github/workflows/stale.yml +0 -20
  17. package/.github/workflows/typedoc.yaml +0 -47
  18. package/.release-please-manifest.json +0 -3
  19. package/.vscode/extensions.json +0 -3
  20. package/.vscode/settings.json +0 -11
  21. package/biome.json +0 -98
  22. package/examples/join-and-log.js +0 -24
  23. package/release-please-config.json +0 -9
  24. package/src/adapter/adapter.ts +0 -189
  25. package/src/adapter/adapterDiscovery.ts +0 -666
  26. package/src/adapter/const.ts +0 -12
  27. package/src/adapter/deconz/adapter/deconzAdapter.ts +0 -877
  28. package/src/adapter/deconz/driver/constants.ts +0 -246
  29. package/src/adapter/deconz/driver/driver.ts +0 -1540
  30. package/src/adapter/deconz/driver/frame.ts +0 -11
  31. package/src/adapter/deconz/driver/frameParser.ts +0 -753
  32. package/src/adapter/deconz/driver/parser.ts +0 -45
  33. package/src/adapter/deconz/driver/writer.ts +0 -22
  34. package/src/adapter/deconz/types.d.ts +0 -13
  35. package/src/adapter/ember/adapter/emberAdapter.ts +0 -2265
  36. package/src/adapter/ember/adapter/endpoints.ts +0 -86
  37. package/src/adapter/ember/adapter/oneWaitress.ts +0 -324
  38. package/src/adapter/ember/adapter/tokensManager.ts +0 -782
  39. package/src/adapter/ember/consts.ts +0 -178
  40. package/src/adapter/ember/enums.ts +0 -1746
  41. package/src/adapter/ember/ezsp/buffalo.ts +0 -1392
  42. package/src/adapter/ember/ezsp/consts.ts +0 -148
  43. package/src/adapter/ember/ezsp/enums.ts +0 -1114
  44. package/src/adapter/ember/ezsp/ezsp.ts +0 -9061
  45. package/src/adapter/ember/ezspError.ts +0 -10
  46. package/src/adapter/ember/types.ts +0 -866
  47. package/src/adapter/ember/uart/ash.ts +0 -1960
  48. package/src/adapter/ember/uart/consts.ts +0 -109
  49. package/src/adapter/ember/uart/enums.ts +0 -192
  50. package/src/adapter/ember/uart/parser.ts +0 -48
  51. package/src/adapter/ember/uart/queues.ts +0 -247
  52. package/src/adapter/ember/uart/writer.ts +0 -53
  53. package/src/adapter/ember/utils/initters.ts +0 -58
  54. package/src/adapter/ember/utils/math.ts +0 -73
  55. package/src/adapter/events.ts +0 -21
  56. package/src/adapter/ezsp/adapter/backup.ts +0 -109
  57. package/src/adapter/ezsp/adapter/ezspAdapter.ts +0 -614
  58. package/src/adapter/ezsp/driver/commands.ts +0 -2497
  59. package/src/adapter/ezsp/driver/consts.ts +0 -11
  60. package/src/adapter/ezsp/driver/driver.ts +0 -1002
  61. package/src/adapter/ezsp/driver/ezsp.ts +0 -802
  62. package/src/adapter/ezsp/driver/frame.ts +0 -101
  63. package/src/adapter/ezsp/driver/index.ts +0 -4
  64. package/src/adapter/ezsp/driver/multicast.ts +0 -78
  65. package/src/adapter/ezsp/driver/parser.ts +0 -81
  66. package/src/adapter/ezsp/driver/types/basic.ts +0 -201
  67. package/src/adapter/ezsp/driver/types/index.ts +0 -239
  68. package/src/adapter/ezsp/driver/types/named.ts +0 -2330
  69. package/src/adapter/ezsp/driver/types/struct.ts +0 -844
  70. package/src/adapter/ezsp/driver/uart.ts +0 -460
  71. package/src/adapter/ezsp/driver/utils/crc16ccitt.ts +0 -44
  72. package/src/adapter/ezsp/driver/utils/index.ts +0 -32
  73. package/src/adapter/ezsp/driver/writer.ts +0 -64
  74. package/src/adapter/index.ts +0 -3
  75. package/src/adapter/serialPort.ts +0 -58
  76. package/src/adapter/socketPortUtils.ts +0 -16
  77. package/src/adapter/tstype.ts +0 -78
  78. package/src/adapter/z-stack/adapter/adapter-backup.ts +0 -519
  79. package/src/adapter/z-stack/adapter/adapter-nv-memory.ts +0 -457
  80. package/src/adapter/z-stack/adapter/endpoints.ts +0 -57
  81. package/src/adapter/z-stack/adapter/manager.ts +0 -543
  82. package/src/adapter/z-stack/adapter/tstype.ts +0 -6
  83. package/src/adapter/z-stack/adapter/zStackAdapter.ts +0 -1190
  84. package/src/adapter/z-stack/constants/af.ts +0 -27
  85. package/src/adapter/z-stack/constants/common.ts +0 -285
  86. package/src/adapter/z-stack/constants/dbg.ts +0 -23
  87. package/src/adapter/z-stack/constants/index.ts +0 -11
  88. package/src/adapter/z-stack/constants/mac.ts +0 -128
  89. package/src/adapter/z-stack/constants/sapi.ts +0 -25
  90. package/src/adapter/z-stack/constants/sys.ts +0 -72
  91. package/src/adapter/z-stack/constants/util.ts +0 -82
  92. package/src/adapter/z-stack/constants/utils.ts +0 -14
  93. package/src/adapter/z-stack/constants/zdo.ts +0 -103
  94. package/src/adapter/z-stack/models/startup-options.ts +0 -13
  95. package/src/adapter/z-stack/structs/entries/address-manager-entry.ts +0 -44
  96. package/src/adapter/z-stack/structs/entries/address-manager-table.ts +0 -19
  97. package/src/adapter/z-stack/structs/entries/aps-link-key-data-entry.ts +0 -12
  98. package/src/adapter/z-stack/structs/entries/aps-link-key-data-table.ts +0 -21
  99. package/src/adapter/z-stack/structs/entries/aps-tc-link-key-entry.ts +0 -19
  100. package/src/adapter/z-stack/structs/entries/aps-tc-link-key-table.ts +0 -21
  101. package/src/adapter/z-stack/structs/entries/channel-list.ts +0 -8
  102. package/src/adapter/z-stack/structs/entries/has-configured.ts +0 -16
  103. package/src/adapter/z-stack/structs/entries/index.ts +0 -16
  104. package/src/adapter/z-stack/structs/entries/nib.ts +0 -66
  105. package/src/adapter/z-stack/structs/entries/nwk-key-descriptor.ts +0 -15
  106. package/src/adapter/z-stack/structs/entries/nwk-key.ts +0 -13
  107. package/src/adapter/z-stack/structs/entries/nwk-pan-id.ts +0 -8
  108. package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.ts +0 -20
  109. package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.ts +0 -19
  110. package/src/adapter/z-stack/structs/entries/security-manager-entry.ts +0 -33
  111. package/src/adapter/z-stack/structs/entries/security-manager-table.ts +0 -22
  112. package/src/adapter/z-stack/structs/index.ts +0 -4
  113. package/src/adapter/z-stack/structs/serializable-memory-object.ts +0 -14
  114. package/src/adapter/z-stack/structs/struct.ts +0 -367
  115. package/src/adapter/z-stack/structs/table.ts +0 -198
  116. package/src/adapter/z-stack/unpi/constants.ts +0 -33
  117. package/src/adapter/z-stack/unpi/frame.ts +0 -62
  118. package/src/adapter/z-stack/unpi/index.ts +0 -4
  119. package/src/adapter/z-stack/unpi/parser.ts +0 -56
  120. package/src/adapter/z-stack/unpi/writer.ts +0 -21
  121. package/src/adapter/z-stack/utils/channel-list.ts +0 -40
  122. package/src/adapter/z-stack/utils/index.ts +0 -2
  123. package/src/adapter/z-stack/utils/network-options.ts +0 -26
  124. package/src/adapter/z-stack/znp/buffaloZnp.ts +0 -175
  125. package/src/adapter/z-stack/znp/definition.ts +0 -2713
  126. package/src/adapter/z-stack/znp/index.ts +0 -2
  127. package/src/adapter/z-stack/znp/parameterType.ts +0 -22
  128. package/src/adapter/z-stack/znp/tstype.ts +0 -44
  129. package/src/adapter/z-stack/znp/utils.ts +0 -10
  130. package/src/adapter/z-stack/znp/znp.ts +0 -342
  131. package/src/adapter/z-stack/znp/zpiObject.ts +0 -148
  132. package/src/adapter/zboss/adapter/zbossAdapter.ts +0 -526
  133. package/src/adapter/zboss/commands.ts +0 -1184
  134. package/src/adapter/zboss/consts.ts +0 -9
  135. package/src/adapter/zboss/driver.ts +0 -422
  136. package/src/adapter/zboss/enums.ts +0 -360
  137. package/src/adapter/zboss/frame.ts +0 -227
  138. package/src/adapter/zboss/reader.ts +0 -65
  139. package/src/adapter/zboss/types.ts +0 -0
  140. package/src/adapter/zboss/uart.ts +0 -428
  141. package/src/adapter/zboss/utils.ts +0 -58
  142. package/src/adapter/zboss/writer.ts +0 -49
  143. package/src/adapter/zigate/adapter/patchZdoBuffaloBE.ts +0 -27
  144. package/src/adapter/zigate/adapter/zigateAdapter.ts +0 -618
  145. package/src/adapter/zigate/driver/LICENSE +0 -17
  146. package/src/adapter/zigate/driver/buffaloZiGate.ts +0 -212
  147. package/src/adapter/zigate/driver/commandType.ts +0 -418
  148. package/src/adapter/zigate/driver/constants.ts +0 -150
  149. package/src/adapter/zigate/driver/frame.ts +0 -197
  150. package/src/adapter/zigate/driver/messageType.ts +0 -287
  151. package/src/adapter/zigate/driver/parameterType.ts +0 -32
  152. package/src/adapter/zigate/driver/ziGateObject.ts +0 -146
  153. package/src/adapter/zigate/driver/zigate.ts +0 -423
  154. package/src/adapter/zoh/adapter/utils.ts +0 -27
  155. package/src/adapter/zoh/adapter/zohAdapter.ts +0 -838
  156. package/src/buffalo/buffalo.ts +0 -342
  157. package/src/buffalo/index.ts +0 -1
  158. package/src/controller/controller.ts +0 -1022
  159. package/src/controller/database.ts +0 -124
  160. package/src/controller/events.ts +0 -52
  161. package/src/controller/greenPower.ts +0 -603
  162. package/src/controller/helpers/index.ts +0 -1
  163. package/src/controller/helpers/installCodes.ts +0 -107
  164. package/src/controller/helpers/request.ts +0 -96
  165. package/src/controller/helpers/requestQueue.ts +0 -125
  166. package/src/controller/helpers/zclFrameConverter.ts +0 -47
  167. package/src/controller/helpers/zclTransactionSequenceNumber.ts +0 -19
  168. package/src/controller/index.ts +0 -6
  169. package/src/controller/model/device.ts +0 -1248
  170. package/src/controller/model/endpoint.ts +0 -1105
  171. package/src/controller/model/entity.ts +0 -23
  172. package/src/controller/model/group.ts +0 -424
  173. package/src/controller/model/index.ts +0 -5
  174. package/src/controller/model/zigbeeEntity.ts +0 -30
  175. package/src/controller/touchlink.ts +0 -189
  176. package/src/controller/tstype.ts +0 -274
  177. package/src/index.ts +0 -12
  178. package/src/models/backup-storage-legacy.ts +0 -48
  179. package/src/models/backup-storage-unified.ts +0 -47
  180. package/src/models/backup.ts +0 -37
  181. package/src/models/index.ts +0 -5
  182. package/src/models/network-options.ts +0 -11
  183. package/src/utils/backup.ts +0 -152
  184. package/src/utils/index.ts +0 -5
  185. package/src/utils/logger.ts +0 -20
  186. package/src/utils/patchBigIntSerialization.ts +0 -8
  187. package/src/utils/queue.ts +0 -76
  188. package/src/utils/types.d.ts +0 -3
  189. package/src/utils/utils.ts +0 -19
  190. package/src/utils/wait.ts +0 -5
  191. package/src/utils/waitress.ts +0 -96
  192. package/src/zspec/consts.ts +0 -84
  193. package/src/zspec/enums.ts +0 -22
  194. package/src/zspec/index.ts +0 -3
  195. package/src/zspec/tstypes.ts +0 -18
  196. package/src/zspec/utils.ts +0 -247
  197. package/src/zspec/zcl/buffaloZcl.ts +0 -1220
  198. package/src/zspec/zcl/definition/cluster.ts +0 -5915
  199. package/src/zspec/zcl/definition/clusters-typegen.ts +0 -588
  200. package/src/zspec/zcl/definition/clusters-types.ts +0 -7331
  201. package/src/zspec/zcl/definition/consts.ts +0 -24
  202. package/src/zspec/zcl/definition/enums.ts +0 -203
  203. package/src/zspec/zcl/definition/foundation.ts +0 -329
  204. package/src/zspec/zcl/definition/manufacturerCode.ts +0 -729
  205. package/src/zspec/zcl/definition/status.ts +0 -69
  206. package/src/zspec/zcl/definition/tstype.ts +0 -377
  207. package/src/zspec/zcl/index.ts +0 -11
  208. package/src/zspec/zcl/utils.ts +0 -321
  209. package/src/zspec/zcl/zclFrame.ts +0 -356
  210. package/src/zspec/zcl/zclHeader.ts +0 -102
  211. package/src/zspec/zcl/zclStatusError.ts +0 -10
  212. package/src/zspec/zdo/buffaloZdo.ts +0 -2336
  213. package/src/zspec/zdo/definition/clusters.ts +0 -722
  214. package/src/zspec/zdo/definition/consts.ts +0 -16
  215. package/src/zspec/zdo/definition/enums.ts +0 -99
  216. package/src/zspec/zdo/definition/status.ts +0 -105
  217. package/src/zspec/zdo/definition/tstypes.ts +0 -1062
  218. package/src/zspec/zdo/index.ts +0 -7
  219. package/src/zspec/zdo/utils.ts +0 -76
  220. package/src/zspec/zdo/zdoStatusError.ts +0 -10
  221. package/test/adapter/adapter.test.ts +0 -1062
  222. package/test/adapter/ember/ash.test.ts +0 -337
  223. package/test/adapter/ember/consts.ts +0 -131
  224. package/test/adapter/ember/emberAdapter.test.ts +0 -3449
  225. package/test/adapter/ember/ezsp.test.ts +0 -385
  226. package/test/adapter/ember/ezspBuffalo.test.ts +0 -93
  227. package/test/adapter/ember/ezspError.test.ts +0 -12
  228. package/test/adapter/ember/math.test.ts +0 -206
  229. package/test/adapter/ezsp/frame.test.ts +0 -30
  230. package/test/adapter/ezsp/uart.test.ts +0 -181
  231. package/test/adapter/z-stack/adapter.test.ts +0 -3984
  232. package/test/adapter/z-stack/constants.test.ts +0 -33
  233. package/test/adapter/z-stack/structs.test.ts +0 -115
  234. package/test/adapter/z-stack/unpi.test.ts +0 -213
  235. package/test/adapter/z-stack/znp.test.ts +0 -1284
  236. package/test/adapter/zboss/fixZdoResponse.test.ts +0 -179
  237. package/test/adapter/zigate/patchZdoBuffaloBE.test.ts +0 -81
  238. package/test/adapter/zigate/zdo.test.ts +0 -187
  239. package/test/adapter/zoh/utils.test.ts +0 -36
  240. package/test/adapter/zoh/zohAdapter.test.ts +0 -1307
  241. package/test/buffalo.test.ts +0 -431
  242. package/test/controller.bench.ts +0 -193
  243. package/test/controller.test.ts +0 -8702
  244. package/test/greenpower.test.ts +0 -1408
  245. package/test/mockAdapters.ts +0 -65
  246. package/test/mockDevices.ts +0 -598
  247. package/test/requests.bench.ts +0 -206
  248. package/test/testUtils.ts +0 -20
  249. package/test/tsconfig.json +0 -9
  250. package/test/utils/math.ts +0 -19
  251. package/test/utils.test.ts +0 -279
  252. package/test/vitest.config.mts +0 -27
  253. package/test/zcl.test.ts +0 -2831
  254. package/test/zspec/utils.test.ts +0 -68
  255. package/test/zspec/zcl/buffalo.test.ts +0 -1374
  256. package/test/zspec/zcl/frame.test.ts +0 -960
  257. package/test/zspec/zcl/utils.test.ts +0 -273
  258. package/test/zspec/zdo/buffalo.test.ts +0 -1850
  259. package/test/zspec/zdo/utils.test.ts +0 -241
  260. package/tsconfig.json +0 -24
@@ -1,206 +0,0 @@
1
- import {describe, expect, it} from "vitest";
2
- import * as m from "../../../src/adapter/ember/utils/math";
3
-
4
- const ASH_CRC_INIT = 0xffff;
5
- const B32 = 0xbeefface;
6
-
7
- describe("Ember Math utils", () => {
8
- it("mod8", () => {
9
- let t = m.mod8(0x00);
10
- expect(t).toStrictEqual(0);
11
- t = m.mod8(0x03);
12
- expect(t).toStrictEqual(3);
13
- t = m.mod8(0x07);
14
- expect(t).toStrictEqual(7);
15
- t = m.mod8(0x08);
16
- expect(t).toStrictEqual(0);
17
- t = m.mod8(0x10);
18
- expect(t).toStrictEqual(0);
19
- t = m.mod8(0xfe);
20
- expect(t).toStrictEqual(6);
21
- t = m.mod8(0xff);
22
- expect(t).toStrictEqual(7);
23
- });
24
- it("inc8", () => {
25
- let t = m.inc8(0x00);
26
- expect(t).toStrictEqual(1);
27
- t = m.inc8(0x03);
28
- expect(t).toStrictEqual(4);
29
- t = m.inc8(0x07);
30
- expect(t).toStrictEqual(0);
31
- t = m.inc8(0x08);
32
- expect(t).toStrictEqual(1);
33
- t = m.inc8(0x10);
34
- expect(t).toStrictEqual(1);
35
- t = m.inc8(0xfe);
36
- expect(t).toStrictEqual(7);
37
- t = m.inc8(0xff);
38
- expect(t).toStrictEqual(0);
39
- });
40
- it("withinRange", () => {
41
- let t = m.withinRange(0x00, 0x04, 0x07);
42
- expect(t).toStrictEqual(true);
43
- t = m.withinRange(0x00, 0x04, 0x08);
44
- expect(t).toStrictEqual(false);
45
- t = m.withinRange(0xaa, 0xac, 0xfe);
46
- expect(t).toStrictEqual(true);
47
- t = m.withinRange(0x00, 0x04, 0xf8);
48
- expect(t).toStrictEqual(false);
49
- });
50
- it("halCommonCrc16", () => {
51
- let t = m.halCommonCrc16(0x00, ASH_CRC_INIT);
52
- expect(t).toStrictEqual(57840);
53
- t = m.halCommonCrc16(0x03, t);
54
- expect(t).toStrictEqual(11628);
55
- t = m.halCommonCrc16(0xfe, t);
56
- expect(t).toStrictEqual(38686);
57
- t = m.halCommonCrc16(0xa5, t);
58
- expect(t).toStrictEqual(2065);
59
- });
60
- it("lowBits", () => {
61
- let t = m.lowBits(10);
62
- expect(t).toStrictEqual(10);
63
- t = m.lowBits(100);
64
- expect(t).toStrictEqual(4);
65
- });
66
- it("highBits", () => {
67
- let t = m.highBits(10);
68
- expect(t).toStrictEqual(0);
69
- t = m.highBits(100);
70
- expect(t).toStrictEqual(6);
71
- });
72
- it("lowByte", () => {
73
- let t = m.lowByte(10);
74
- expect(t).toStrictEqual(10);
75
- t = m.lowByte(100);
76
- expect(t).toStrictEqual(100);
77
- t = m.lowByte(1000);
78
- expect(t).toStrictEqual(232);
79
- t = m.lowByte(255);
80
- expect(t).toStrictEqual(255);
81
- t = m.lowByte(1024);
82
- expect(t).toStrictEqual(0);
83
- t = m.lowByte(B32);
84
- expect(t).toStrictEqual(206);
85
- });
86
- it("highByte", () => {
87
- let t = m.highByte(10);
88
- expect(t).toStrictEqual(0);
89
- t = m.highByte(100);
90
- expect(t).toStrictEqual(0);
91
- t = m.highByte(1000);
92
- expect(t).toStrictEqual(3);
93
- t = m.highByte(255);
94
- expect(t).toStrictEqual(0);
95
- t = m.highByte(1024);
96
- expect(t).toStrictEqual(4);
97
- t = m.highByte(B32);
98
- expect(t).toStrictEqual(250);
99
- });
100
- it("highLowToInt", () => {
101
- let t = m.highLowToInt(254, 10);
102
- expect(t).toStrictEqual(65034);
103
- t = m.highLowToInt(10, 100);
104
- expect(t).toStrictEqual(2660);
105
- t = m.highLowToInt(1000, 2000);
106
- expect(t).toStrictEqual(256208);
107
- t = m.highLowToInt(355, 255);
108
- expect(t).toStrictEqual(91135);
109
- t = m.highLowToInt(123, 1024);
110
- expect(t).toStrictEqual(31488);
111
- t = m.highLowToInt(1, B32);
112
- expect(t).toStrictEqual(462);
113
- t = m.highLowToInt(B32, 1);
114
- expect(t).toStrictEqual(16436737);
115
- });
116
- it("bit", () => {
117
- let t = m.bit(11);
118
- expect(t).toStrictEqual(2048);
119
- t = m.bit(15);
120
- expect(t).toStrictEqual(32768);
121
- t = m.bit(26);
122
- expect(t).toStrictEqual(67108864);
123
- t = m.bit(11) | m.bit(15) | m.bit(20) | m.bit(25);
124
- expect(t).toStrictEqual(34637824);
125
- t =
126
- m.bit(12) |
127
- m.bit(13) |
128
- m.bit(14) |
129
- m.bit(16) |
130
- m.bit(17) |
131
- m.bit(18) |
132
- m.bit(19) |
133
- m.bit(21) |
134
- m.bit(22) |
135
- m.bit(23) |
136
- m.bit(24) |
137
- m.bit(26);
138
- expect(t).toStrictEqual(99577856);
139
- t = 53 & m.bit(0);
140
- expect(t).toStrictEqual(1);
141
- t = 53 & m.bit(3);
142
- expect(t).toStrictEqual(0);
143
- t = 53 | m.bit(0);
144
- expect(t).toStrictEqual(53);
145
- t = 53 | m.bit(3);
146
- expect(t).toStrictEqual(61);
147
- });
148
- it("bit32", () => {
149
- let t = m.bit32(11);
150
- expect(t).toStrictEqual(2048);
151
- t = m.bit32(15);
152
- expect(t).toStrictEqual(32768);
153
- t = m.bit32(26);
154
- expect(t).toStrictEqual(67108864);
155
- t = m.bit32(11) | m.bit32(15) | m.bit32(20) | m.bit32(25);
156
- expect(t).toStrictEqual(34637824);
157
- t =
158
- m.bit32(12) |
159
- m.bit32(13) |
160
- m.bit32(14) |
161
- m.bit32(16) |
162
- m.bit32(17) |
163
- m.bit32(18) |
164
- m.bit32(19) |
165
- m.bit32(21) |
166
- m.bit32(22) |
167
- m.bit32(23) |
168
- m.bit32(24) |
169
- m.bit32(26);
170
- expect(t).toStrictEqual(99577856);
171
- t = B32 & m.bit32(0);
172
- expect(t).toStrictEqual(0);
173
- t = B32 & m.bit32(3);
174
- expect(t).toStrictEqual(8);
175
- t = B32 | m.bit32(0);
176
- expect(t).toStrictEqual(-1091568945);
177
- t = B32 | m.bit32(3);
178
- expect(t).toStrictEqual(-1091568946);
179
- });
180
- it("lowHighBytes", () => {
181
- let [l, h] = m.lowHighBytes(1024);
182
- expect(l).toStrictEqual(0);
183
- expect(h).toStrictEqual(4);
184
- expect(l).toStrictEqual(m.lowByte(1024));
185
- expect(h).toStrictEqual(m.highByte(1024));
186
- [l, h] = m.lowHighBytes(255);
187
- expect(l).toStrictEqual(255);
188
- expect(h).toStrictEqual(0);
189
- });
190
- it("lowHighBits", () => {
191
- let [l, h] = m.lowHighBits(10);
192
- expect(l).toStrictEqual(10);
193
- expect(h).toStrictEqual(0);
194
- expect(l).toStrictEqual(m.lowBits(10));
195
- expect(h).toStrictEqual(m.highBits(0));
196
- [l, h] = m.lowHighBits(100);
197
- expect(l).toStrictEqual(4);
198
- expect(h).toStrictEqual(6);
199
- });
200
- it("byteToBits", () => {
201
- let t = m.byteToBits(2);
202
- expect(t).toStrictEqual("00000010");
203
- t = m.byteToBits(4);
204
- expect(t).toStrictEqual("00000100");
205
- });
206
- });
@@ -1,30 +0,0 @@
1
- import {describe, expect, it} from "vitest";
2
- import {EZSPFrameData} from "../../../src/adapter/ezsp/driver/ezsp";
3
-
4
- describe("FRAME Parsing", () => {
5
- it("changeSourceRouteHandler", () => {
6
- const frm = EZSPFrameData.createFrame(8, 0x00c4, false, Buffer.from("05e399a000", "hex"));
7
- expect(frm._cls_).toBe("changeSourceRouteHandler");
8
- expect(frm._id_).toBe(0x00c4);
9
- expect(frm.newChildId).toBe(0xe305);
10
- expect(frm.newParentId).toBe(0xa099);
11
- });
12
- it("changeSourceRouteHandler", () => {
13
- const frm = EZSPFrameData.createFrame(9, 0x00c4, false, Buffer.from("05e399a000", "hex"));
14
- expect(frm._cls_).toBe("incomingNetworkStatusHandler");
15
- expect(frm._id_).toBe(0x00c4);
16
- expect(frm.errorCode).toBe(0x05);
17
- expect(frm.target).toBe(0x99e3);
18
- });
19
- it("incomingNetworkStatusHandler", () => {
20
- const frm = EZSPFrameData.createFrame(9, 0x00c4, false, Buffer.from("0b044e", "hex"));
21
- expect(frm._cls_).toBe("incomingNetworkStatusHandler");
22
- expect(frm._id_).toBe(0x00c4);
23
- expect(frm.errorCode).toBe(0x0b);
24
- expect(frm.target).toBe(0x4e04);
25
- });
26
- it("incomingNetworkStatusHandler", () => {
27
- const frm = EZSPFrameData.createFrame(8, 0x00c4, false, Buffer.from("0b044e", "hex"));
28
- expect(frm).toBe(undefined);
29
- });
30
- });
@@ -1,181 +0,0 @@
1
- import {afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi} from "vitest";
2
- import {FrameType} from "../../../src/adapter/ezsp/driver/frame";
3
- import {Parser} from "../../../src/adapter/ezsp/driver/parser";
4
- import {SerialDriver} from "../../../src/adapter/ezsp/driver/uart";
5
- import {Writer} from "../../../src/adapter/ezsp/driver/writer";
6
- import {SerialPort} from "../../../src/adapter/serialPort";
7
-
8
- const mockSerialPortClose = vi.fn().mockImplementation((cb) => (cb ? cb() : null));
9
- const mockSerialPortFlush = vi.fn().mockImplementation((cb) => cb());
10
- const mockSerialPortAsyncFlushAndClose = vi.fn();
11
- const mockSerialPortPipe = vi.fn();
12
- const mockSerialPortOpen = vi.fn().mockImplementation((cb) => cb());
13
- const mockSerialPortAsyncOpen = vi.fn();
14
- const mockSerialPortConstructor = vi.fn();
15
- const mockSerialPortOnce = vi.fn();
16
- const mockSerialPortSet = vi.fn().mockImplementation((_opts, cb) => cb());
17
- const mockSerialPortWrite = vi.fn((_buffer, cb) => (cb ? cb() : null));
18
- const mockSerialPortIsOpen = false;
19
-
20
- vi.mock("../../../src/adapter/serialPort", () => ({
21
- SerialPort: vi.fn(() => ({
22
- close: mockSerialPortClose,
23
- constructor: mockSerialPortConstructor,
24
- emit: () => {},
25
- on: () => {},
26
- once: mockSerialPortOnce,
27
- open: mockSerialPortOpen,
28
- pipe: mockSerialPortPipe,
29
- set: mockSerialPortSet,
30
- write: mockSerialPortWrite,
31
- flush: mockSerialPortFlush,
32
- isOpen: mockSerialPortIsOpen,
33
- asyncOpen: mockSerialPortAsyncOpen,
34
- asyncFlushAndClose: mockSerialPortAsyncFlushAndClose,
35
- })),
36
- }));
37
-
38
- vi.mock("../../../src/utils/wait", () => ({
39
- wait: vi.fn(() => {
40
- return new Promise<void>((resolve) => resolve());
41
- }),
42
- }));
43
-
44
- let writeBufferSpy;
45
-
46
- const mocks = [
47
- mockSerialPortClose,
48
- mockSerialPortPipe,
49
- mockSerialPortConstructor,
50
- mockSerialPortOpen,
51
- mockSerialPortOnce,
52
- mockSerialPortWrite,
53
- SerialPort,
54
- mockSerialPortAsyncFlushAndClose,
55
- mockSerialPortAsyncOpen,
56
- ];
57
-
58
- describe("UART", () => {
59
- let serialDriver;
60
- beforeAll(() => {
61
- vi.useFakeTimers();
62
- });
63
-
64
- afterAll(() => {
65
- vi.useRealTimers();
66
- vi.restoreAllMocks();
67
- });
68
-
69
- beforeEach(() => {
70
- for (const mock of mocks) {
71
- // @ts-ignore
72
- mock.mockClear();
73
- }
74
-
75
- // @ts-ignore; make sure we always get a new instance
76
- serialDriver = new SerialDriver();
77
- writeBufferSpy = vi.spyOn(Writer.prototype, "writeBuffer").mockImplementation((buffer) => {
78
- if (buffer[0] === 0x1a) {
79
- serialDriver.waitress.resolve({sequence: -1});
80
- }
81
- });
82
- vi.spyOn(Writer.prototype, "pipe").mockImplementation(vi.fn());
83
- });
84
-
85
- afterEach(() => {
86
- writeBufferSpy.mockRestore();
87
- });
88
-
89
- it("Connect", async () => {
90
- await serialDriver.connect({path: "/dev/ttyACM0"});
91
-
92
- expect(SerialPort).toHaveBeenCalledTimes(1);
93
- expect(SerialPort).toHaveBeenCalledWith({
94
- path: "/dev/ttyACM0",
95
- baudRate: 115200,
96
- rtscts: false,
97
- autoOpen: false,
98
- parity: "none",
99
- stopBits: 1,
100
- xon: true,
101
- xoff: true,
102
- });
103
-
104
- expect(mockSerialPortPipe).toHaveBeenCalledTimes(1);
105
- expect(mockSerialPortAsyncOpen).toHaveBeenCalledTimes(1);
106
- expect(mockSerialPortOnce).toHaveBeenCalledTimes(1);
107
- expect(writeBufferSpy).toHaveBeenCalledTimes(1);
108
- });
109
-
110
- it("Send data", async () => {
111
- await serialDriver.connect("/dev/ttyACM0", {});
112
- // send 8 frames
113
- serialDriver.sendDATA(Buffer.from([1, 2, 3]));
114
- serialDriver.sendDATA(Buffer.from([1, 2, 3]));
115
- serialDriver.sendDATA(Buffer.from([1, 2, 3]));
116
- serialDriver.sendDATA(Buffer.from([1, 2, 3]));
117
- serialDriver.sendDATA(Buffer.from([1, 2, 3]));
118
- serialDriver.sendDATA(Buffer.from([1, 2, 3]));
119
- serialDriver.sendDATA(Buffer.from([1, 2, 3]));
120
- serialDriver.sendDATA(Buffer.from([1, 2, 3]));
121
- expect(writeBufferSpy).toHaveBeenCalledTimes(2);
122
- // send another 2 frame - not counted, until resolve 8 promices
123
- serialDriver.sendDATA(Buffer.from([1, 2, 3]));
124
- serialDriver.sendDATA(Buffer.from([1, 2, 3]));
125
- expect(writeBufferSpy).toHaveBeenCalledTimes(2);
126
- });
127
-
128
- it("Receive data", () => {
129
- const parsed = [];
130
- const parser = new Parser();
131
- parser.on("parsed", (result) => parsed.push(result));
132
- // send 4 frames
133
- const buffer0 = Buffer.from([0xc1, 0x02, 0x0b, 0x0a, 0x52, 0x7e]);
134
- const buffer1 = Buffer.from([
135
- 0x22, 0x5b, 0xb1, 0xa9, 0x0d, 0x2a, 0xc1, 0xd8, 0x19, 0x53, 0x4a, 0x14, 0xaa, 0xe9, 0x87, 0x49, 0xfc, 0xfa, 0x26, 0x7d, 0x5e, 0xc5, 0xaa,
136
- 0xc8, 0x7e,
137
- ]);
138
- const buffer2 = Buffer.from([
139
- 0x32, 0x5b, 0xb1, 0xa9, 0x7d, 0x31, 0x2a, 0x15, 0xb6, 0x58, 0x8d, 0x4a, 0x06, 0xab, 0x55, 0x93, 0x49, 0x9c, 0x45, 0x7b, 0x7d, 0x38, 0x39,
140
- 0xa4, 0x98, 0x74, 0xf1, 0xd7, 0x26, 0x88, 0xfc, 0x6b, 0x2f, 0xf6, 0xe9, 0xc5, 0xde, 0x6b, 0x8f, 0xfb, 0xd8, 0xf9, 0x7e,
141
- ]);
142
- const buffer3 = Buffer.from([0xa2, 0x74, 0x58, 0x7e]);
143
- parser._transform(buffer0, "", () => {});
144
- parser._transform(buffer1, "", () => {});
145
- parser._transform(buffer2, "", () => {});
146
- parser._transform(buffer3, "", () => {});
147
- expect(parsed.length).toBe(4);
148
- expect(parsed[0].type).toBe(FrameType.RSTACK);
149
- expect(parsed[1].type).toBe(FrameType.DATA);
150
- expect(parsed[2].type).toBe(FrameType.DATA);
151
- expect(parsed[3].type).toBe(FrameType.NAK);
152
- });
153
-
154
- it("Message in two chunks", () => {
155
- const parsed = [];
156
- const parser = new Parser();
157
- parser.on("parsed", (result) => parsed.push(result));
158
- const buffer1 = Buffer.from([0x22, 0x5b, 0xb1, 0xa9, 0x0d, 0x2a, 0xc1, 0xd8, 0x19, 0x53, 0x4a, 0x14]);
159
- parser._transform(buffer1, "", () => {});
160
- expect(parsed.length).toBe(0);
161
- const buffer2 = Buffer.from([0xaa, 0xe9, 0x87, 0x49, 0xfc, 0xfa, 0x26, 0x7d, 0x5e, 0xc5, 0xaa, 0xc8, 0x7e]);
162
- parser._transform(buffer2, "", () => {});
163
- expect(parsed.length).toBe(1);
164
- expect(parsed[0].type).toBe(FrameType.DATA);
165
- });
166
-
167
- it("Two messages in one chunk", () => {
168
- const parsed = [];
169
- const parser = new Parser();
170
- parser.on("parsed", (result) => parsed.push(result));
171
- const buffer1 = Buffer.from([
172
- 0x22, 0x5b, 0xb1, 0xa9, 0x0d, 0x2a, 0xc1, 0xd8, 0x19, 0x53, 0x4a, 0x14, 0xaa, 0xe9, 0x87, 0x49, 0xfc, 0xfa, 0x26, 0x7d, 0x5e, 0xc5, 0xaa,
173
- 0xc8, 0x7e, 0x32, 0x5b, 0xb1, 0xa9, 0x7d, 0x31, 0x2a, 0x15, 0xb6, 0x58, 0x8d, 0x4a, 0x06, 0xab, 0x55, 0x93, 0x49, 0x9c, 0x45, 0x7b, 0x7d,
174
- 0x38, 0x39, 0xa4, 0x98, 0x74, 0xf1, 0xd7, 0x26, 0x88, 0xfc, 0x6b, 0x2f, 0xf6, 0xe9, 0xc5, 0xde, 0x6b, 0x8f, 0xfb, 0xd8, 0xf9, 0x7e,
175
- ]);
176
- parser._transform(buffer1, "", () => {});
177
- expect(parsed.length).toBe(2);
178
- expect(parsed[0].type).toBe(FrameType.DATA);
179
- expect(parsed[1].type).toBe(FrameType.DATA);
180
- });
181
- });