zigbee-herdsman 1.0.1 → 2.0.0

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 (140) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +23 -0
  3. package/dist/adapter/adapter.d.ts +8 -12
  4. package/dist/adapter/adapter.d.ts.map +1 -1
  5. package/dist/adapter/adapter.js +3 -0
  6. package/dist/adapter/adapter.js.map +1 -1
  7. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +7 -15
  8. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
  9. package/dist/adapter/deconz/adapter/deconzAdapter.js +154 -693
  10. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  11. package/dist/adapter/deconz/driver/constants.d.ts +102 -56
  12. package/dist/adapter/deconz/driver/constants.d.ts.map +1 -1
  13. package/dist/adapter/deconz/driver/constants.js +1 -2
  14. package/dist/adapter/deconz/driver/constants.js.map +1 -1
  15. package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
  16. package/dist/adapter/deconz/driver/driver.js +46 -41
  17. package/dist/adapter/deconz/driver/driver.js.map +1 -1
  18. package/dist/adapter/deconz/driver/frameParser.d.ts.map +1 -1
  19. package/dist/adapter/deconz/driver/frameParser.js +174 -107
  20. package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
  21. package/dist/adapter/ember/adapter/emberAdapter.d.ts +5 -22
  22. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
  23. package/dist/adapter/ember/adapter/emberAdapter.js +92 -325
  24. package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
  25. package/dist/adapter/ember/adapter/oneWaitress.d.ts +17 -14
  26. package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
  27. package/dist/adapter/ember/adapter/oneWaitress.js +16 -42
  28. package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -1
  29. package/dist/adapter/events.d.ts +1 -9
  30. package/dist/adapter/events.d.ts.map +1 -1
  31. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +12 -19
  32. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  33. package/dist/adapter/ezsp/adapter/ezspAdapter.js +90 -272
  34. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  35. package/dist/adapter/ezsp/driver/driver.d.ts +6 -14
  36. package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
  37. package/dist/adapter/ezsp/driver/driver.js +56 -37
  38. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  39. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
  40. package/dist/adapter/ezsp/driver/ezsp.js +3 -0
  41. package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
  42. package/dist/adapter/tstype.d.ts +1 -27
  43. package/dist/adapter/tstype.d.ts.map +1 -1
  44. package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
  45. package/dist/adapter/z-stack/adapter/manager.js +20 -10
  46. package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
  47. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +7 -15
  48. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
  49. package/dist/adapter/z-stack/adapter/zStackAdapter.js +128 -253
  50. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  51. package/dist/adapter/z-stack/znp/definition.d.ts.map +1 -1
  52. package/dist/adapter/z-stack/znp/definition.js +256 -302
  53. package/dist/adapter/z-stack/znp/definition.js.map +1 -1
  54. package/dist/adapter/z-stack/znp/tstype.d.ts +8 -8
  55. package/dist/adapter/z-stack/znp/tstype.d.ts.map +1 -1
  56. package/dist/adapter/z-stack/znp/utils.d.ts +3 -2
  57. package/dist/adapter/z-stack/znp/utils.d.ts.map +1 -1
  58. package/dist/adapter/z-stack/znp/utils.js +8 -7
  59. package/dist/adapter/z-stack/znp/utils.js.map +1 -1
  60. package/dist/adapter/z-stack/znp/znp.d.ts +3 -1
  61. package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
  62. package/dist/adapter/z-stack/znp/znp.js +31 -14
  63. package/dist/adapter/z-stack/znp/znp.js.map +1 -1
  64. package/dist/adapter/z-stack/znp/zpiObject.d.ts +5 -6
  65. package/dist/adapter/z-stack/znp/zpiObject.d.ts.map +1 -1
  66. package/dist/adapter/z-stack/znp/zpiObject.js +28 -11
  67. package/dist/adapter/z-stack/znp/zpiObject.js.map +1 -1
  68. package/dist/adapter/zboss/adapter/zbossAdapter.d.ts +8 -16
  69. package/dist/adapter/zboss/adapter/zbossAdapter.d.ts.map +1 -1
  70. package/dist/adapter/zboss/adapter/zbossAdapter.js +124 -162
  71. package/dist/adapter/zboss/adapter/zbossAdapter.js.map +1 -1
  72. package/dist/adapter/zboss/commands.d.ts +3 -0
  73. package/dist/adapter/zboss/commands.d.ts.map +1 -1
  74. package/dist/adapter/zboss/commands.js +248 -205
  75. package/dist/adapter/zboss/commands.js.map +1 -1
  76. package/dist/adapter/zboss/driver.d.ts +4 -14
  77. package/dist/adapter/zboss/driver.d.ts.map +1 -1
  78. package/dist/adapter/zboss/driver.js +63 -89
  79. package/dist/adapter/zboss/driver.js.map +1 -1
  80. package/dist/adapter/zboss/enums.d.ts +24 -2
  81. package/dist/adapter/zboss/enums.d.ts.map +1 -1
  82. package/dist/adapter/zboss/enums.js +35 -3
  83. package/dist/adapter/zboss/enums.js.map +1 -1
  84. package/dist/adapter/zboss/frame.d.ts +6 -1
  85. package/dist/adapter/zboss/frame.d.ts.map +1 -1
  86. package/dist/adapter/zboss/frame.js +56 -11
  87. package/dist/adapter/zboss/frame.js.map +1 -1
  88. package/dist/adapter/zboss/uart.d.ts +1 -0
  89. package/dist/adapter/zboss/uart.d.ts.map +1 -1
  90. package/dist/adapter/zboss/uart.js +4 -2
  91. package/dist/adapter/zboss/uart.js.map +1 -1
  92. package/dist/adapter/zigate/adapter/patchZdoBuffaloBE.d.ts +5 -0
  93. package/dist/adapter/zigate/adapter/patchZdoBuffaloBE.d.ts.map +1 -0
  94. package/dist/adapter/zigate/adapter/patchZdoBuffaloBE.js +44 -0
  95. package/dist/adapter/zigate/adapter/patchZdoBuffaloBE.js.map +1 -0
  96. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +6 -10
  97. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
  98. package/dist/adapter/zigate/adapter/zigateAdapter.js +99 -289
  99. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  100. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts.map +1 -1
  101. package/dist/adapter/zigate/driver/buffaloZiGate.js +2 -18
  102. package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
  103. package/dist/adapter/zigate/driver/commandType.js +218 -218
  104. package/dist/adapter/zigate/driver/commandType.js.map +1 -1
  105. package/dist/adapter/zigate/driver/constants.d.ts +14 -8
  106. package/dist/adapter/zigate/driver/constants.d.ts.map +1 -1
  107. package/dist/adapter/zigate/driver/constants.js +36 -9
  108. package/dist/adapter/zigate/driver/constants.js.map +1 -1
  109. package/dist/adapter/zigate/driver/messageType.js +42 -42
  110. package/dist/adapter/zigate/driver/messageType.js.map +1 -1
  111. package/dist/adapter/zigate/driver/zigate.d.ts +17 -13
  112. package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
  113. package/dist/adapter/zigate/driver/zigate.js +83 -18
  114. package/dist/adapter/zigate/driver/zigate.js.map +1 -1
  115. package/dist/controller/controller.d.ts +5 -0
  116. package/dist/controller/controller.d.ts.map +1 -1
  117. package/dist/controller/controller.js +143 -37
  118. package/dist/controller/controller.js.map +1 -1
  119. package/dist/controller/greenPower.js +3 -3
  120. package/dist/controller/greenPower.js.map +1 -1
  121. package/dist/controller/model/device.d.ts +8 -7
  122. package/dist/controller/model/device.d.ts.map +1 -1
  123. package/dist/controller/model/device.js +176 -72
  124. package/dist/controller/model/device.js.map +1 -1
  125. package/dist/controller/model/endpoint.d.ts +1 -0
  126. package/dist/controller/model/endpoint.d.ts.map +1 -1
  127. package/dist/controller/model/endpoint.js +27 -4
  128. package/dist/controller/model/endpoint.js.map +1 -1
  129. package/dist/zspec/zdo/buffaloZdo.d.ts +1 -139
  130. package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -1
  131. package/dist/zspec/zdo/buffaloZdo.js.map +1 -1
  132. package/dist/zspec/zdo/definition/tstypes.d.ts +168 -1
  133. package/dist/zspec/zdo/definition/tstypes.d.ts.map +1 -1
  134. package/dist/zspec/zdo/definition/tstypes.js +1 -0
  135. package/dist/zspec/zdo/definition/tstypes.js.map +1 -1
  136. package/dist/zspec/zdo/utils.d.ts +2 -3
  137. package/dist/zspec/zdo/utils.d.ts.map +1 -1
  138. package/dist/zspec/zdo/utils.js +3 -4
  139. package/dist/zspec/zdo/utils.js.map +1 -1
  140. package/package.json +5 -4
@@ -27,16 +27,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  return (mod && mod.__esModule) ? mod : { "default": mod };
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- const buffalo_1 = require("../../../buffalo");
31
30
  const utils_1 = require("../../../utils");
32
31
  const logger_1 = require("../../../utils/logger");
32
+ const ZSpec = __importStar(require("../../../zspec"));
33
33
  const Zcl = __importStar(require("../../../zspec/zcl"));
34
+ const Zdo = __importStar(require("../../../zspec/zdo"));
34
35
  const adapter_1 = __importDefault(require("../../adapter"));
35
36
  const constants_1 = require("../driver/constants");
36
37
  const zigate_1 = __importDefault(require("../driver/zigate"));
38
+ const patchZdoBuffaloBE_1 = require("./patchZdoBuffaloBE");
37
39
  const NS = 'zh:zigate';
38
40
  const default_bind_group = 901; // https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/lib/constants.js#L3
39
- const channelsToMask = (channels) => channels.map((x) => 2 ** x).reduce((acc, x) => acc + x, 0);
40
41
  class ZiGateAdapter extends adapter_1.default {
41
42
  driver;
42
43
  joinPermitted;
@@ -44,8 +45,10 @@ class ZiGateAdapter extends adapter_1.default {
44
45
  closing;
45
46
  queue;
46
47
  constructor(networkOptions, serialPortOptions, backupPath, adapterOptions) {
48
+ (0, patchZdoBuffaloBE_1.patchZdoBuffaloBE)();
47
49
  super(networkOptions, serialPortOptions, backupPath, adapterOptions);
48
- this.hasZdoMessageOverhead = false;
50
+ this.hasZdoMessageOverhead = false; // false for requests, true for responses
51
+ this.manufacturerID = Zcl.ManufacturerCode.RESERVED_10;
49
52
  this.joinPermitted = false;
50
53
  this.closing = false;
51
54
  const concurrent = this.adapterOptions && this.adapterOptions.concurrent ? this.adapterOptions.concurrent : 2;
@@ -57,6 +60,7 @@ class ZiGateAdapter extends adapter_1.default {
57
60
  this.driver.on('LeaveIndication', this.leaveIndicationListener.bind(this));
58
61
  this.driver.on('DeviceAnnounce', this.deviceAnnounceListener.bind(this));
59
62
  this.driver.on('close', this.onZiGateClose.bind(this));
63
+ this.driver.on('zdoResponse', this.onZdoResponse.bind(this));
60
64
  }
61
65
  /**
62
66
  * Adapter methods
@@ -81,9 +85,9 @@ class ZiGateAdapter extends adapter_1.default {
81
85
  await this.initNetwork();
82
86
  await this.driver.sendCommand(constants_1.ZiGateCommandCode.AddGroup, {
83
87
  addressMode: constants_1.ADDRESS_MODE.short,
84
- shortAddress: 0x0000,
85
- sourceEndpoint: 0x01,
86
- destinationEndpoint: 0x01,
88
+ shortAddress: ZSpec.COORDINATOR_ADDRESS,
89
+ sourceEndpoint: ZSpec.HA_ENDPOINT,
90
+ destinationEndpoint: ZSpec.HA_ENDPOINT,
87
91
  groupAddress: default_bind_group,
88
92
  });
89
93
  }
@@ -96,18 +100,9 @@ class ZiGateAdapter extends adapter_1.default {
96
100
  this.closing = true;
97
101
  await this.driver.close();
98
102
  }
99
- async getCoordinator() {
103
+ async getCoordinatorIEEE() {
100
104
  const networkResponse = await this.driver.sendCommand(constants_1.ZiGateCommandCode.GetNetworkState);
101
- // @TODO deal hardcoded endpoints, made by analogy with deconz
102
- // polling the coordinator on some firmware went into a memory leak, so we don't ask this info
103
- const response = {
104
- networkAddress: 0,
105
- manufacturerID: 0,
106
- ieeeAddr: networkResponse.payload.extendedAddress,
107
- endpoints: constants_1.coordinatorEndpoints.slice(), // copy
108
- };
109
- logger_1.logger.debug(() => `getCoordinator ${JSON.stringify(response)}`, NS);
110
- return response;
105
+ return networkResponse.payload.extendedAddress;
111
106
  }
112
107
  async getCoordinatorVersion() {
113
108
  const result = await this.driver.sendCommand(constants_1.ZiGateCommandCode.GetVersion, {});
@@ -125,14 +120,25 @@ class ZiGateAdapter extends adapter_1.default {
125
120
  };
126
121
  }
127
122
  async permitJoin(seconds, networkAddress) {
128
- const result = await this.driver.sendCommand(constants_1.ZiGateCommandCode.PermitJoin, {
129
- targetShortAddress: networkAddress || 0xfffc,
130
- interval: seconds,
131
- TCsignificance: 0,
132
- });
133
- // const result = await this.driver.sendCommand(ZiGateCommandCode.PermitJoinStatus, {});
134
- // Suitable only for the coordinator, not the entire network or point-to-point for routers
135
- this.joinPermitted = result.payload.status === 0;
123
+ const clusterId = Zdo.ClusterId.PERMIT_JOINING_REQUEST;
124
+ if (networkAddress !== undefined) {
125
+ // specific device that is not `Coordinator`
126
+ // `authentication`: TC significance always 1 (zb specs)
127
+ const zdoPayload = Zdo.Buffalo.buildRequest(this.hasZdoMessageOverhead, clusterId, seconds, 1, []);
128
+ const result = await this.sendZdo(ZSpec.BLANK_EUI64, networkAddress, clusterId, zdoPayload, false);
129
+ /* istanbul ignore next */
130
+ if (!Zdo.Buffalo.checkStatus(result)) {
131
+ // TODO: will disappear once moved upstream
132
+ throw new Zdo.StatusError(result[0]);
133
+ }
134
+ }
135
+ else {
136
+ // broadcast permit joining ZDO
137
+ // `authentication`: TC significance always 1 (zb specs)
138
+ const zdoPayload = Zdo.Buffalo.buildRequest(this.hasZdoMessageOverhead, clusterId, seconds, 1, []);
139
+ await this.sendZdo(ZSpec.BLANK_EUI64, ZSpec.BroadcastAddress.DEFAULT, clusterId, zdoPayload, true);
140
+ }
141
+ this.joinPermitted = seconds !== 0;
136
142
  }
137
143
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
138
144
  async addInstallCode(ieeeAddress, key) {
@@ -169,10 +175,6 @@ class ZiGateAdapter extends adapter_1.default {
169
175
  async backup() {
170
176
  throw new Error('This adapter does not support backup');
171
177
  }
172
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
173
- async changeChannel(newChannel) {
174
- throw new Error(`Channel change is not supported for 'zigate'`);
175
- }
176
178
  async setTransmitPower(value) {
177
179
  try {
178
180
  await this.driver.sendCommand(constants_1.ZiGateCommandCode.SetTXpower, { value: value });
@@ -181,251 +183,54 @@ class ZiGateAdapter extends adapter_1.default {
181
183
  throw new Error(`Set transmitpower failed ${error}`);
182
184
  }
183
185
  }
184
- async lqi(networkAddress) {
186
+ async sendZdo(ieeeAddress, networkAddress, clusterId, payload, disableResponse) {
185
187
  return await this.queue.execute(async () => {
186
- const neighbors = [];
187
- const add = (list) => {
188
- for (const entry of list) {
189
- const relationByte = entry.readUInt8(18);
190
- const extAddr = entry.subarray(8, 16);
191
- neighbors.push({
192
- linkquality: entry.readUInt8(21),
193
- networkAddress: entry.readUInt16LE(16),
194
- ieeeAddr: new buffalo_1.Buffalo(extAddr).readIeeeAddr(),
195
- relationship: (relationByte >> 1) & ((1 << 3) - 1),
196
- depth: entry.readUInt8(20),
197
- });
198
- }
199
- };
200
- const request = async (startIndex) => {
201
- try {
202
- const resultPayload = await this.driver.sendCommand(constants_1.ZiGateCommandCode.ManagementLQI, {
203
- targetAddress: networkAddress,
204
- startIndex: startIndex,
205
- });
206
- const data = resultPayload.payload.payload;
207
- if (data[1] !== 0) {
208
- // status
209
- throw new Error(`LQI for '${networkAddress}' failed`);
210
- }
211
- const tableList = [];
212
- const response = {
213
- status: data[1],
214
- tableEntrys: data[2],
215
- startIndex: data[3],
216
- tableListCount: data[4],
217
- tableList: tableList,
218
- };
219
- let tableEntry = [];
220
- let counter = 0;
221
- for (let i = 5; i < response.tableListCount * 22 + 5; i++) {
222
- // one tableentry = 22 bytes
223
- tableEntry.push(data[i]);
224
- counter++;
225
- if (counter === 22) {
226
- response.tableList.push(Buffer.from(tableEntry));
227
- tableEntry = [];
228
- counter = 0;
229
- }
230
- }
231
- logger_1.logger.debug('LQI RESPONSE - addr: ' +
232
- networkAddress.toString(16) +
233
- ' status: ' +
234
- response.status +
235
- ' read ' +
236
- (response.tableListCount + response.startIndex) +
237
- '/' +
238
- response.tableEntrys +
239
- ' entrys', NS);
240
- return response;
188
+ // stack-specific requirements
189
+ // https://zigate.fr/documentation/commandes-zigate/
190
+ switch (clusterId) {
191
+ case Zdo.ClusterId.LEAVE_REQUEST: {
192
+ const prefixedPayload = Buffer.alloc(payload.length + 3); // extra zero for `removeChildren`
193
+ prefixedPayload.writeUInt16BE(networkAddress, 0);
194
+ prefixedPayload.set(payload, 2);
195
+ payload = prefixedPayload;
196
+ break;
241
197
  }
242
- catch (error) {
243
- const msg = 'LQI REQUEST FAILED - addr: 0x' + networkAddress.toString(16) + ' ' + error;
244
- logger_1.logger.error(msg, NS);
245
- throw new Error(msg);
246
- }
247
- };
248
- let response = await request(0);
249
- add(response.tableList);
250
- let nextStartIndex = response.tableListCount;
251
- while (neighbors.length < response.tableEntrys) {
252
- response = await request(nextStartIndex);
253
- add(response.tableList);
254
- nextStartIndex += response.tableListCount;
255
- }
256
- return { neighbors };
257
- }, networkAddress);
258
- }
259
- // @TODO
260
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
261
- routingTable(networkAddress) {
262
- return Promise.resolve({ table: [] });
263
- }
264
- async nodeDescriptor(networkAddress) {
265
- return await this.queue.execute(async () => {
266
- try {
267
- const nodeDescriptorResponse = await this.driver.sendCommand(constants_1.ZiGateCommandCode.NodeDescriptor, {
268
- targetShortAddress: networkAddress,
269
- });
270
- const data = nodeDescriptorResponse.payload.payload;
271
- const buf = data;
272
- const logicaltype = data[4] & 7;
273
- let type = 'Unknown';
274
- switch (logicaltype) {
275
- case 1:
276
- type = 'Router';
277
- break;
278
- case 2:
279
- type = 'EndDevice';
280
- break;
281
- case 0:
282
- type = 'Coordinator';
283
- break;
198
+ case Zdo.ClusterId.BIND_REQUEST:
199
+ case Zdo.ClusterId.UNBIND_REQUEST: {
200
+ // extra zeroes for endpoint XXX: not needed?
201
+ const zeroes = 15 - payload.length;
202
+ const prefixedPayload = Buffer.alloc(payload.length + zeroes);
203
+ prefixedPayload.set(payload, 0);
204
+ payload = prefixedPayload;
205
+ break;
284
206
  }
285
- const manufacturer = buf.readUInt16LE(7);
286
- logger_1.logger.debug('RECEIVING NODE_DESCRIPTOR - addr: 0x' +
287
- networkAddress.toString(16) +
288
- ' type: ' +
289
- type +
290
- ' manufacturer: 0x' +
291
- manufacturer.toString(16), NS);
292
- return { manufacturerCode: manufacturer, type };
293
- }
294
- catch (error) {
295
- const msg = 'RECEIVING NODE_DESCRIPTOR FAILED - addr: 0x' + networkAddress.toString(16) + ' ' + error;
296
- logger_1.logger.error(msg, NS);
297
- throw new Error(msg);
298
- }
299
- }, networkAddress);
300
- }
301
- async activeEndpoints(networkAddress) {
302
- return await this.queue.execute(async () => {
303
- const payload = {
304
- targetShortAddress: networkAddress,
305
- };
306
- try {
307
- const result = await this.driver.sendCommand(constants_1.ZiGateCommandCode.ActiveEndpoint, payload);
308
- const buf = Buffer.from(result.payload.payload);
309
- const epCount = buf.readUInt8(4);
310
- const epList = [];
311
- for (let i = 5; i < epCount + 5; i++) {
312
- epList.push(buf.readUInt8(i));
207
+ case Zdo.ClusterId.PERMIT_JOINING_REQUEST:
208
+ case Zdo.ClusterId.SYSTEM_SERVER_DISCOVERY_REQUEST:
209
+ case Zdo.ClusterId.LQI_TABLE_REQUEST:
210
+ case Zdo.ClusterId.ROUTING_TABLE_REQUEST:
211
+ case Zdo.ClusterId.BINDING_TABLE_REQUEST:
212
+ case Zdo.ClusterId.NWK_UPDATE_REQUEST: {
213
+ const prefixedPayload = Buffer.alloc(payload.length + 2);
214
+ prefixedPayload.writeUInt16BE(networkAddress, 0);
215
+ prefixedPayload.set(payload, 2);
216
+ payload = prefixedPayload;
217
+ break;
313
218
  }
314
- const payloadAE = {
315
- endpoints: epList,
316
- };
317
- logger_1.logger.debug(() => `ActiveEndpoints response: ${JSON.stringify(payloadAE)}`, NS);
318
- return payloadAE;
319
- }
320
- catch (error) {
321
- logger_1.logger.error(`RECEIVING ActiveEndpoints FAILED, ${error}`, NS);
322
- throw new Error('RECEIVING ActiveEndpoints FAILED ' + error);
323
219
  }
324
- }, networkAddress);
325
- }
326
- async simpleDescriptor(networkAddress, endpointID) {
327
- return await this.queue.execute(async () => {
328
- try {
329
- const payload = {
330
- targetShortAddress: networkAddress,
331
- endpoint: endpointID,
332
- };
333
- const result = await this.driver.sendCommand(constants_1.ZiGateCommandCode.SimpleDescriptor, payload);
334
- const buf = result.payload.payload;
335
- if (buf.length > 11) {
336
- const inCount = buf.readUInt8(11);
337
- const inClusters = [];
338
- let cIndex = 12;
339
- for (let i = 0; i < inCount; i++) {
340
- inClusters[i] = buf.readUInt16LE(cIndex);
341
- cIndex += 2;
342
- }
343
- const outCount = buf.readUInt8(12 + inCount * 2);
344
- const outClusters = [];
345
- cIndex = 13 + inCount * 2;
346
- for (let l = 0; l < outCount; l++) {
347
- outClusters[l] = buf.readUInt16LE(cIndex);
348
- cIndex += 2;
349
- }
350
- const resultPayload = {
351
- profileID: buf.readUInt16LE(6),
352
- endpointID: buf.readUInt8(5),
353
- deviceID: buf.readUInt16LE(8),
354
- inputClusters: inClusters,
355
- outputClusters: outClusters,
356
- };
357
- return resultPayload;
220
+ let waiter;
221
+ if (!disableResponse) {
222
+ const responseClusterId = Zdo.Utils.getResponseClusterId(clusterId);
223
+ if (responseClusterId) {
224
+ waiter = this.driver.zdoWaitFor({
225
+ clusterId: responseClusterId,
226
+ target: responseClusterId === Zdo.ClusterId.NETWORK_ADDRESS_RESPONSE ? ieeeAddress : networkAddress,
227
+ });
358
228
  }
359
- throw new Error(`Invalid buffer length ${buf.length}.`);
360
229
  }
361
- catch (error) {
362
- const msg = 'RECEIVING SIMPLE_DESCRIPTOR FAILED - addr: 0x' + networkAddress.toString(16) + ' EP:' + endpointID + ' ' + error;
363
- logger_1.logger.error(msg, NS);
364
- throw new Error(msg);
365
- }
366
- }, networkAddress);
367
- }
368
- async bind(destinationNetworkAddress, sourceIeeeAddress, sourceEndpoint, clusterID, destinationAddressOrGroup, type, destinationEndpoint) {
369
- return await this.queue.execute(async () => {
370
- const payload = {
371
- targetExtendedAddress: sourceIeeeAddress,
372
- targetEndpoint: sourceEndpoint,
373
- clusterID: clusterID,
374
- destinationAddressMode: type === 'group' ? constants_1.ADDRESS_MODE.group : constants_1.ADDRESS_MODE.ieee,
375
- destinationAddress: destinationAddressOrGroup,
376
- };
377
- if (destinationEndpoint != undefined) {
378
- payload.destinationEndpoint = destinationEndpoint;
379
- }
380
- const result = await this.driver.sendCommand(constants_1.ZiGateCommandCode.Bind, payload, undefined, { destinationNetworkAddress });
381
- const data = result.payload.payload;
382
- if (data[1] === 0) {
383
- logger_1.logger.debug(`Bind ${sourceIeeeAddress} success`, NS);
384
- }
385
- else {
386
- const msg = `Bind ${sourceIeeeAddress} failed`;
387
- logger_1.logger.error(msg, NS);
388
- throw new Error(msg);
389
- }
390
- }, destinationNetworkAddress);
391
- }
392
- async unbind(destinationNetworkAddress, sourceIeeeAddress, sourceEndpoint, clusterID, destinationAddressOrGroup, type, destinationEndpoint) {
393
- return await this.queue.execute(async () => {
394
- const payload = {
395
- targetExtendedAddress: sourceIeeeAddress,
396
- targetEndpoint: sourceEndpoint,
397
- clusterID: clusterID,
398
- destinationAddressMode: type === 'group' ? constants_1.ADDRESS_MODE.group : constants_1.ADDRESS_MODE.ieee,
399
- destinationAddress: destinationAddressOrGroup,
400
- };
401
- if (destinationEndpoint != undefined) {
402
- payload.destinationEndpoint = destinationEndpoint;
403
- }
404
- const result = await this.driver.sendCommand(constants_1.ZiGateCommandCode.UnBind, payload, undefined, { destinationNetworkAddress });
405
- const data = result.payload.payload;
406
- if (data[1] === 0) {
407
- logger_1.logger.debug(`Unbind ${sourceIeeeAddress} success`, NS);
408
- }
409
- else {
410
- const msg = `Unbind ${sourceIeeeAddress} failed`;
411
- logger_1.logger.error(msg, NS);
412
- throw new Error(msg);
413
- }
414
- }, destinationNetworkAddress);
415
- }
416
- async removeDevice(networkAddress, ieeeAddr) {
417
- return await this.queue.execute(async () => {
418
- const payload = {
419
- shortAddress: networkAddress,
420
- extendedAddress: ieeeAddr,
421
- rejoin: 0,
422
- removeChildren: 0,
423
- };
424
- try {
425
- await this.driver.sendCommand(constants_1.ZiGateCommandCode.ManagementLeaveRequest, payload);
426
- }
427
- catch (error) {
428
- new Error(`ManagementLeaveRequest failed ${error}`);
230
+ await this.driver.requestZdo(clusterId, payload);
231
+ if (waiter) {
232
+ const result = await waiter.start().promise;
233
+ return result.zdo;
429
234
  }
430
235
  }, networkAddress);
431
236
  }
@@ -442,9 +247,9 @@ class ZiGateAdapter extends adapter_1.default {
442
247
  const payload = {
443
248
  addressMode: constants_1.ADDRESS_MODE.short, //nwk
444
249
  targetShortAddress: networkAddress,
445
- sourceEndpoint: sourceEndpoint || 0x01,
250
+ sourceEndpoint: sourceEndpoint || ZSpec.HA_ENDPOINT,
446
251
  destinationEndpoint: endpoint,
447
- profileID: 0x0104,
252
+ profileID: ZSpec.HA_PROFILE_ID,
448
253
  clusterID: zclFrame.cluster.ID,
449
254
  securityMode: 0x02,
450
255
  radius: 30,
@@ -497,7 +302,7 @@ class ZiGateAdapter extends adapter_1.default {
497
302
  targetShortAddress: destination,
498
303
  sourceEndpoint: sourceEndpoint,
499
304
  destinationEndpoint: endpoint,
500
- profileID: /*sourceEndpoint === 242 ? 0xa1e0 :*/ 0x0104,
305
+ profileID: /*sourceEndpoint === ZSpec.GP_ENDPOINT ? ZSpec.GP_PROFILE_ID :*/ ZSpec.HA_PROFILE_ID,
501
306
  clusterID: zclFrame.cluster.ID,
502
307
  securityMode: 0x02,
503
308
  radius: 30,
@@ -515,9 +320,9 @@ class ZiGateAdapter extends adapter_1.default {
515
320
  const payload = {
516
321
  addressMode: constants_1.ADDRESS_MODE.group, //nwk
517
322
  targetShortAddress: groupID,
518
- sourceEndpoint: sourceEndpoint || 0x01,
323
+ sourceEndpoint: sourceEndpoint || ZSpec.HA_ENDPOINT,
519
324
  destinationEndpoint: 0xff,
520
- profileID: 0x0104,
325
+ profileID: ZSpec.HA_PROFILE_ID,
521
326
  clusterID: zclFrame.cluster.ID,
522
327
  securityMode: 0x02,
523
328
  radius: 30,
@@ -533,7 +338,9 @@ class ZiGateAdapter extends adapter_1.default {
533
338
  */
534
339
  async initNetwork() {
535
340
  logger_1.logger.debug(`Set channel mask ${this.networkOptions.channelList} key`, NS);
536
- await this.driver.sendCommand(constants_1.ZiGateCommandCode.SetChannelMask, { channelMask: channelsToMask(this.networkOptions.channelList) });
341
+ await this.driver.sendCommand(constants_1.ZiGateCommandCode.SetChannelMask, {
342
+ channelMask: ZSpec.Utils.channelsToUInt32Mask(this.networkOptions.channelList),
343
+ });
537
344
  logger_1.logger.debug(`Set security key`, NS);
538
345
  await this.driver.sendCommand(constants_1.ZiGateCommandCode.SetSecurityStateKey, {
539
346
  keyType: this.networkOptions.networkKeyDistribute
@@ -591,36 +398,39 @@ class ZiGateAdapter extends adapter_1.default {
591
398
  restoreChannelInterPAN() {
592
399
  throw new Error('Not supported');
593
400
  }
594
- deviceAnnounceListener(networkAddress, ieeeAddr) {
401
+ deviceAnnounceListener(response) {
595
402
  // @todo debounce
596
- const payload = { networkAddress, ieeeAddr };
597
403
  if (this.joinPermitted === true) {
598
- this.emit('deviceJoined', payload);
404
+ this.emit('deviceJoined', { networkAddress: response.nwkAddress, ieeeAddr: response.eui64 });
599
405
  }
600
406
  else {
601
- this.emit('deviceAnnounce', payload);
407
+ // convert to `zdoResponse` to avoid needing extra event upstream
408
+ this.emit('zdoResponse', Zdo.ClusterId.END_DEVICE_ANNOUNCE, [Zdo.Status.SUCCESS, response]);
602
409
  }
603
410
  }
604
- dataListener(data) {
411
+ onZdoResponse(clusterId, response) {
412
+ this.emit('zdoResponse', clusterId, response);
413
+ }
414
+ dataListener(ziGateObject) {
605
415
  const payload = {
606
- address: data.ziGateObject.payload.sourceAddress,
607
- clusterID: data.ziGateObject.payload.clusterID,
608
- data: data.ziGateObject.payload.payload,
609
- header: Zcl.Header.fromBuffer(data.ziGateObject.payload.payload),
610
- endpoint: data.ziGateObject.payload.sourceEndpoint,
611
- linkquality: data.ziGateObject.frame.readRSSI(), // read: frame valid
416
+ address: ziGateObject.payload.sourceAddress,
417
+ clusterID: ziGateObject.payload.clusterID,
418
+ data: ziGateObject.payload.payload,
419
+ header: Zcl.Header.fromBuffer(ziGateObject.payload.payload),
420
+ endpoint: ziGateObject.payload.sourceEndpoint,
421
+ linkquality: ziGateObject.frame.readRSSI(), // read: frame valid
612
422
  groupID: 0, // @todo
613
423
  wasBroadcast: false, // TODO
614
- destinationEndpoint: data.ziGateObject.payload.destinationEndpoint,
424
+ destinationEndpoint: ziGateObject.payload.destinationEndpoint,
615
425
  };
616
426
  this.waitress.resolve(payload);
617
427
  this.emit('zclPayload', payload);
618
428
  }
619
- leaveIndicationListener(data) {
620
- logger_1.logger.debug(() => `LeaveIndication ${JSON.stringify(data)}`, NS);
429
+ leaveIndicationListener(ziGateObject) {
430
+ logger_1.logger.debug(() => `LeaveIndication ${JSON.stringify(ziGateObject)}`, NS);
621
431
  const payload = {
622
- networkAddress: data.ziGateObject.payload.extendedAddress,
623
- ieeeAddr: data.ziGateObject.payload.extendedAddress,
432
+ networkAddress: ziGateObject.payload.extendedAddress,
433
+ ieeeAddr: ziGateObject.payload.extendedAddress,
624
434
  };
625
435
  this.emit('deviceLeave', payload);
626
436
  }
@@ -1 +1 @@
1
- {"version":3,"file":"zigateAdapter.js","sourceRoot":"","sources":["../../../../src/adapter/zigate/adapter/zigateAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zigateAdapter.js","sourceRoot":"","sources":["../../../../src/adapter/zigate/adapter/zigateAdapter.ts"],"names":[],"mappings":";AAAA,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAG1B,0CAAqD;AACrD,kDAA6C;AAC7C,sDAAwC;AAExC,wDAA0C;AAC1C,wDAA0C;AAE1C,4DAAoC;AAIpC,mDAAoH;AACpH,8DAAsC;AAEtC,2DAAsD;AAEtD,MAAM,EAAE,GAAG,WAAW,CAAC;AACvB,MAAM,kBAAkB,GAAG,GAAG,CAAC,CAAC,uFAAuF;AAWvH,MAAM,aAAc,SAAQ,iBAAO;IACvB,MAAM,CAAS;IACf,aAAa,CAAU;IACvB,QAAQ,CAA+C;IACvD,OAAO,CAAU;IACjB,KAAK,CAAQ;IAErB,YACI,cAAqC,EACrC,iBAA2C,EAC3C,UAAkB,EAClB,cAAqC;QAErC,IAAA,qCAAiB,GAAE,CAAC;QACpB,KAAK,CAAC,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QACrE,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,CAAC,yCAAyC;QAC7E,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC;QAEvD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9G,eAAM,CAAC,KAAK,CAAC,uBAAuB,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC,iBAAiB,CAAC,IAAK,EAAE,iBAAiB,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAQ,CAAqC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAExH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK;QACd,IAAI,WAAW,GAAuB,SAAS,CAAC;QAChD,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACzB,eAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAC;YAE7D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACvF,IAAI,aAAa,CAAC,IAAI,KAAK,6BAAiB,CAAC,oBAAoB,EAAE,CAAC;gBAChE,WAAW,GAAG,SAAS,CAAC;YAC5B,CAAC;iBAAM,IAAI,aAAa,CAAC,IAAI,KAAK,6BAAiB,CAAC,iBAAiB,EAAE,CAAC;gBACpE,WAAW,GAAG,OAAO,CAAC;YAC1B,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;YAC1E,cAAc;YACd,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,aAAa,EAAE;gBAC3D,UAAU,EAAE,uBAAW,CAAC,WAAW;aACtC,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAEzB,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,QAAQ,EAAE;gBACtD,WAAW,EAAE,wBAAY,CAAC,KAAK;gBAC/B,YAAY,EAAE,KAAK,CAAC,mBAAmB;gBACvC,cAAc,EAAE,KAAK,CAAC,WAAW;gBACjC,mBAAmB,EAAE,KAAK,CAAC,WAAW;gBACtC,YAAY,EAAE,kBAAkB;aACnC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAI,KAAe,CAAC,OAAO,CAAC,CAAC;QACvF,CAAC;QAED,OAAO,WAAW,CAAC,CAAC,mCAAmC;IAC3D,CAAC;IAEM,KAAK,CAAC,IAAI;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,kBAAkB;QAC3B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,eAAe,CAAC,CAAC;QACzF,OAAO,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,qBAAqB;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG;YACT,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,QAAQ,CAAS,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7D,QAAQ,EAAE,QAAQ,CAAS,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7D,QAAQ,EAAE,QAAQ,CAAS,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,QAAQ,EAAE,QAAQ,CAAS,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;SACnE,CAAC;QAEF,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI;SACb,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,cAAuB;QAC5D,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC;QAEvD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAC/B,4CAA4C;YAC5C,wDAAwD;YACxD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAEnG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YAEnG,0BAA0B;YAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,2CAA2C;gBAC3C,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,+BAA+B;YAC/B,wDAAwD;YACxD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAEnG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACvG,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,OAAO,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,6DAA6D;IACtD,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,GAAW;QACxD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAqB;QACpC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,mBAAmB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACnF,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,oBAAoB;QAC7B,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,eAAe,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAE3F,OAAO;gBACH,KAAK,EAAU,MAAM,CAAC,OAAO,CAAC,KAAK;gBACnC,aAAa,EAAU,MAAM,CAAC,OAAO,CAAC,QAAQ;gBAC9C,OAAO,EAAU,MAAM,CAAC,OAAO,CAAC,OAAO;aAC1C,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,cAAc;QACvB,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,MAAM;QACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,KAAa;QACvC,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;IAgBM,KAAK,CAAC,OAAO,CAChB,WAAmB,EACnB,cAAsB,EACtB,SAAY,EACZ,OAAe,EACf,eAAwB;QAExB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YACvC,8BAA8B;YAC9B,oDAAoD;YACpD,QAAQ,SAAS,EAAE,CAAC;gBAChB,KAAK,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;oBAC/B,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kCAAkC;oBAC5F,eAAe,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;oBACjD,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAEhC,OAAO,GAAG,eAAe,CAAC;oBAC1B,MAAM;gBACV,CAAC;gBAED,KAAK,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC;gBAChC,KAAK,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;oBAChC,6CAA6C;oBAC7C,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;oBACnC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;oBAC9D,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAEhC,OAAO,GAAG,eAAe,CAAC;oBAE1B,MAAM;gBACV,CAAC;gBAED,KAAK,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC;gBAC1C,KAAK,GAAG,CAAC,SAAS,CAAC,+BAA+B,CAAC;gBACnD,KAAK,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC;gBACrC,KAAK,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC;gBACzC,KAAK,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC;gBACzC,KAAK,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBACpC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACzD,eAAe,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;oBACjD,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAEhC,OAAO,GAAG,eAAe,CAAC;oBAC1B,MAAM;gBACV,CAAC;YACL,CAAC;YAED,IAAI,MAAM,CAAC;YAEX,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnB,MAAM,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;gBAEpE,IAAI,iBAAiB,EAAE,CAAC;oBACpB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;wBAC5B,SAAS,EAAE,iBAAiB;wBAC5B,MAAM,EAAE,iBAAiB,KAAK,GAAG,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;qBACtG,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAED,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAEjD,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC;gBAE5C,OAAO,MAAM,CAAC,GAAuC,CAAC;YAC1D,CAAC;QACL,CAAC,EAAE,cAAc,CAAC,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAC/B,QAAgB,EAChB,cAAsB,EACtB,QAAgB,EAChB,QAAmB,EACnB,OAAe,EACf,eAAwB,EACxB,eAAwB,EACxB,cAAuB;QAEvB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAA2B,KAAK,IAAI,EAAE;YACjE,OAAO,MAAM,IAAI,CAAC,8BAA8B,CAC5C,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,cAAc,IAAI,CAAC,EACnB,QAAQ,EACR,OAAO,EACP,eAAe,EACf,eAAe,EACf,CAAC,EACD,CAAC,EACD,KAAK,EACL,KAAK,CACR,CAAC;QACN,CAAC,EAAE,cAAc,CAAC,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,8BAA8B,CACxC,QAA4B,EAC5B,cAAsB,EACtB,QAAgB,EAChB,cAAsB,EACtB,QAAmB,EACnB,OAAe,EACf,eAAwB,EACxB,eAAwB,EACxB,eAAuB,EACvB,kBAA0B,EAC1B,qBAA8B,EAC9B,eAAwB;QAExB,eAAM,CAAC,KAAK,CACR,kCAAkC,QAAQ,IAAI,cAAc,IAAI,QAAQ,KAAK,eAAe,IAAI,kBAAkB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAC3I,EAAE,CACL,CAAC;QACF,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,MAAM,OAAO,GAA6B;YACtC,WAAW,EAAE,wBAAY,CAAC,KAAK,EAAE,KAAK;YACtC,kBAAkB,EAAE,cAAc;YAClC,cAAc,EAAE,cAAc,IAAI,KAAK,CAAC,WAAW;YACnD,mBAAmB,EAAE,QAAQ;YAC7B,SAAS,EAAE,KAAK,CAAC,aAAa;YAC9B,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC9B,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,IAAI,EAAE,IAAI;SACb,CAAC;QAEF,IAAI,OAAO,CAAC,QAAQ,IAAI,SAAS,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;YAC7D,QAAQ,GAAG,IAAI,CAAC,OAAO,CACnB,cAAc,EACd,QAAQ,EACR,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EACtC,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAC9B,QAAQ,CAAC,MAAM,CAAC,yBAAyB,EACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,EACnB,OAAO,CAAC,QAAQ,EAChB,OAAO,CACV,CAAC;QACN,CAAC;aAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;YAC9D,QAAQ,GAAG,IAAI,CAAC,OAAO,CACnB,cAAc,EACd,QAAQ,EACR,GAAG,CAAC,SAAS,CAAC,MAAM,EACpB,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAC9B,QAAQ,CAAC,MAAM,CAAC,yBAAyB,EACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,EACnB,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAC5B,OAAO,CACV,CAAC;QACN,CAAC;QAED,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC;QAChH,CAAC;QAAC,MAAM,CAAC;YACL,IAAI,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC1C,uBAAuB;gBACvB,OAAO,MAAM,IAAI,CAAC,8BAA8B,CAC5C,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,OAAO,EACP,eAAe,EACf,eAAe,EACf,eAAe,GAAG,CAAC,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,CAClB,CAAC;YACN,CAAC;QACL,CAAC;QAED,8BAA8B;QAC9B,4DAA4D;QAC5D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC;gBACD,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC;gBAE9B,uBAAuB;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,eAAM,CAAC,KAAK,CAAC,kBAAmB,KAAe,CAAC,OAAO,KAAK,QAAQ,IAAI,cAAc,IAAI,eAAe,GAAG,EAAE,EAAE,CAAC,CAAC;gBAClH,IAAI,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC1C,OAAO,MAAM,IAAI,CAAC,8BAA8B,CAC5C,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,OAAO,EACP,eAAe,EACf,eAAe,EACf,eAAe,GAAG,CAAC,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,CAClB,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,MAAM,KAAK,CAAC;gBAChB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,QAAmB,EAAE,cAAsB,EAAE,WAA6B;QACvH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAO,KAAK,IAAI,EAAE;YAC7C,IAAI,cAAc,KAAK,IAAI,CAAC,6BAA6B,EAAE,CAAC;gBACxD,kDAAkD;gBAClD,eAAM,CAAC,KAAK,CAAC,mBAAmB,cAAc,iBAAiB,EAAE,EAAE,CAAC,CAAC;gBACrE,OAAO;YACX,CAAC;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,OAAO,GAA6B;gBACtC,WAAW,EAAE,wBAAY,CAAC,KAAK,EAAE,KAAK;gBACtC,kBAAkB,EAAE,WAAW;gBAC/B,cAAc,EAAE,cAAc;gBAC9B,mBAAmB,EAAE,QAAQ;gBAC7B,SAAS,EAAE,gEAAgE,CAAC,KAAK,CAAC,aAAa;gBAC/F,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAC9B,YAAY,EAAE,IAAI;gBAClB,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,IAAI,EAAE,IAAI;aACb,CAAC;YACF,eAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAEvE,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACjG,MAAM,IAAA,YAAI,EAAC,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,OAAe,EAAE,QAAmB,EAAE,cAAuB;QAC1F,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAO,KAAK,IAAI,EAAE;YAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,OAAO,GAA6B;gBACtC,WAAW,EAAE,wBAAY,CAAC,KAAK,EAAE,KAAK;gBACtC,kBAAkB,EAAE,OAAO;gBAC3B,cAAc,EAAE,cAAc,IAAI,KAAK,CAAC,WAAW;gBACnD,mBAAmB,EAAE,IAAI;gBACzB,SAAS,EAAE,KAAK,CAAC,aAAa;gBAC9B,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAC9B,YAAY,EAAE,IAAI;gBAClB,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,IAAI,EAAE,IAAI;aACb,CAAC;YAEF,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACjG,MAAM,IAAA,YAAI,EAAC,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW;QACrB,eAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,cAAc,CAAC,WAAW,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5E,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,cAAc,EAAE;YAC5D,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;SACjF,CAAC,CAAC;QAEH,eAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,mBAAmB,EAAE;YACjE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,oBAAoB;gBAC7C,CAAC,CAAC,0BAAc,CAAC,4BAA4B;gBAC7C,CAAC,CAAC,0BAAc,CAAC,8BAA8B;YACnD,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU;SACtC,CAAC,CAAC;QAEH,IAAI,CAAC;YACD,wHAAwH;YACxH,eAAM,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,aAAc,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAChF,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,gBAAgB,EAAE;gBAC9D,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa;aAC3C,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,eAAM,CAAC,KAAK,CAAE,KAAe,CAAC,KAAM,EAAE,EAAE,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAEM,OAAO,CACV,cAAkC,EAClC,QAAgB,EAChB,SAAwB,EACxB,SAAwB,EACxB,yBAA6C,EAC7C,SAAiB,EACjB,iBAAyB,EACzB,OAAe;QAEf,MAAM,OAAO,GAAG;YACZ,OAAO,EAAE,cAAc;YACvB,QAAQ;YACR,SAAS;YACT,iBAAiB;YACjB,SAAS;YACT,SAAS;YACT,yBAAyB;SAC5B,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAC,CAAC;IACrD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAY;QACxC,OAAO,MAAM,gBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,cAAc;QAC9B,OAAO,MAAM,gBAAM,CAAC,cAAc,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,6DAA6D;IACtD,KAAK,CAAC,kBAAkB,CAAC,OAAe;QAC3C,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC;IAED,6DAA6D;IACtD,KAAK,CAAC,8BAA8B,CAAC,QAAmB,EAAE,WAAmB;QAChF,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC;IAED,6DAA6D;IACtD,KAAK,CAAC,6BAA6B,CAAC,QAAmB,EAAE,OAAe;QAC3E,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC;IAEM,sBAAsB;QACzB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC;IAEO,sBAAsB,CAAC,QAAoC;QAC/D,iBAAiB;QACjB,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAC,cAAc,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAC,CAAC,CAAC;QAC/F,CAAC;aAAM,CAAC;YACJ,iEAAiE;YACjE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChG,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,SAAwB,EAAE,QAAqC;QACjF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAEO,YAAY,CAAC,YAA0B;QAC3C,MAAM,OAAO,GAAsB;YAC/B,OAAO,EAAU,YAAY,CAAC,OAAO,CAAC,aAAa;YACnD,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,SAAS;YACzC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO;YAClC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3D,QAAQ,EAAU,YAAY,CAAC,OAAO,CAAC,cAAc;YACrD,WAAW,EAAE,YAAY,CAAC,KAAM,CAAC,QAAQ,EAAE,EAAE,oBAAoB;YACjE,OAAO,EAAE,CAAC,EAAE,QAAQ;YACpB,YAAY,EAAE,KAAK,EAAE,OAAO;YAC5B,mBAAmB,EAAU,YAAY,CAAC,OAAO,CAAC,mBAAmB;SACxE,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAEO,uBAAuB,CAAC,YAA0B;QACtD,eAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1E,MAAM,OAAO,GAA8B;YACvC,cAAc,EAAU,YAAY,CAAC,OAAO,CAAC,eAAe;YAC5D,QAAQ,EAAU,YAAY,CAAC,OAAO,CAAC,eAAe;SACzD,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAEO,wBAAwB,CAAC,OAAwB,EAAE,OAAe;QACtE,OAAO,CACH,aAAa,OAAO,CAAC,OAAO,MAAM,OAAO,CAAC,QAAQ,EAAE;YACpD,MAAM,OAAO,CAAC,yBAAyB,MAAM,OAAO,CAAC,SAAS,EAAE;YAChE,MAAM,OAAO,CAAC,iBAAiB,UAAU,OAAO,IAAI,CACvD,CAAC;IACN,CAAC;IAEO,iBAAiB,CAAC,OAA0B,EAAE,OAAwB;QAC1E,OAAO,OAAO,CACV,OAAO,CAAC,MAAM;YACV,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC;YACzD,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;YACrC,CAAC,CAAC,OAAO,CAAC,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC,yBAAyB,KAAK,OAAO,CAAC,yBAAyB,CAAC;YACtH,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS;YACvC,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS;YAC3D,OAAO,CAAC,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,iBAAiB;YAC9D,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAClE,CAAC;IACN,CAAC;IAEO,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC;CACJ;AAED,kBAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"buffaloZiGate.d.ts","sourceRoot":"","sources":["../../../../src/adapter/zigate/driver/buffaloZiGate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAC,KAAK,EAAC,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,sCAAsC,CAAC;AAEvE,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,cAAM,aAAc,SAAQ,OAAO;IAExB,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAwD3E,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO;IA2FjE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,YAAY,IAAI,MAAM;IAKtB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,YAAY,IAAI,MAAM;IAKtB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAQ1C,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAMzC,cAAc,IAAI,KAAK;IAGvB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAmB,IAAI;CAI9D;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"buffaloZiGate.d.ts","sourceRoot":"","sources":["../../../../src/adapter/zigate/driver/buffaloZiGate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAC,KAAK,EAAC,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,sCAAsC,CAAC;AAGvE,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,cAAM,aAAc,SAAQ,OAAO;IAExB,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAwD3E,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO;IAyEjE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,YAAY,IAAI,MAAM;IAKtB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,YAAY,IAAI,MAAM;IAKtB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAQ1C,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAMzC,cAAc,IAAI,KAAK;IAGvB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAmB,IAAI;CAI9D;AAED,eAAe,aAAa,CAAC"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const buffalo_1 = require("../../../buffalo");
8
+ const utils_1 = require("../../../zspec/zdo/utils");
8
9
  const constants_1 = require("./constants");
9
10
  const parameterType_1 = __importDefault(require("./parameterType"));
10
11
  class BuffaloZiGate extends buffalo_1.Buffalo {
@@ -109,24 +110,7 @@ class BuffaloZiGate extends buffalo_1.Buffalo {
109
110
  return this.readInt8();
110
111
  }
111
112
  case parameterType_1.default.MACCAPABILITY: {
112
- const result = {};
113
- const mac = this.readUInt8();
114
- //
115
- result.alternatePanCoordinator = !!(mac & 0b00000001);
116
- // bit 0: Alternative PAN Coordinator, always 0
117
- result.fullFunctionDevice = !!(mac & 0b00000010);
118
- // bit 1: Device Type, 1 = FFD , 0 = RFD ; cf. https://fr.wikipedia.org/wiki/IEEE_802.15.4
119
- result.mainsPowerSource = !!(mac & 0b00000100);
120
- // bit 2: Power Source, 1 = mains power, 0 = other
121
- result.receiverOnWhenIdle = !!(mac & 0b00001000);
122
- // bit 3: Receiver on when Idle, 1 = non-sleepy, 0 = sleepy
123
- result.reserved = (mac & 0b00110000) >> 4;
124
- // bit 4&5: Reserved
125
- result.securityCapability = !!(mac & 0b01000000);
126
- // bit 6: Security capacity, always 0 (standard security)
127
- result.allocateAddress = !!(mac & 0b10000000);
128
- // bit 7: 1 = joining device must be issued network address
129
- return result;
113
+ return (0, utils_1.getMacCapFlags)(this.readUInt8());
130
114
  }
131
115
  case parameterType_1.default.ADDRESS_WITH_TYPE_DEPENDENCY: {
132
116
  const addressMode = this.buffer.readUInt8(this.position - 1);