zigbee-herdsman 0.56.2 → 0.57.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 (61) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +14 -0
  3. package/dist/adapter/adapter.d.ts.map +1 -1
  4. package/dist/adapter/adapter.js +9 -1
  5. package/dist/adapter/adapter.js.map +1 -1
  6. package/dist/adapter/tstype.d.ts +1 -1
  7. package/dist/adapter/tstype.d.ts.map +1 -1
  8. package/dist/adapter/zboss/adapter/index.d.ts +3 -0
  9. package/dist/adapter/zboss/adapter/index.d.ts.map +1 -0
  10. package/dist/adapter/zboss/adapter/index.js +6 -0
  11. package/dist/adapter/zboss/adapter/index.js.map +1 -0
  12. package/dist/adapter/zboss/adapter/zbossAdapter.d.ts +55 -0
  13. package/dist/adapter/zboss/adapter/zbossAdapter.d.ts.map +1 -0
  14. package/dist/adapter/zboss/adapter/zbossAdapter.js +391 -0
  15. package/dist/adapter/zboss/adapter/zbossAdapter.js.map +1 -0
  16. package/dist/adapter/zboss/commands.d.ts +19 -0
  17. package/dist/adapter/zboss/commands.d.ts.map +1 -0
  18. package/dist/adapter/zboss/commands.js +1064 -0
  19. package/dist/adapter/zboss/commands.js.map +1 -0
  20. package/dist/adapter/zboss/consts.d.ts +9 -0
  21. package/dist/adapter/zboss/consts.d.ts.map +1 -0
  22. package/dist/adapter/zboss/consts.js +12 -0
  23. package/dist/adapter/zboss/consts.js.map +1 -0
  24. package/dist/adapter/zboss/driver.d.ts +62 -0
  25. package/dist/adapter/zboss/driver.d.ts.map +1 -0
  26. package/dist/adapter/zboss/driver.js +332 -0
  27. package/dist/adapter/zboss/driver.js.map +1 -0
  28. package/dist/adapter/zboss/enums.d.ts +279 -0
  29. package/dist/adapter/zboss/enums.d.ts.map +1 -0
  30. package/dist/adapter/zboss/enums.js +327 -0
  31. package/dist/adapter/zboss/enums.js.map +1 -0
  32. package/dist/adapter/zboss/frame.d.ts +29 -0
  33. package/dist/adapter/zboss/frame.d.ts.map +1 -0
  34. package/dist/adapter/zboss/frame.js +155 -0
  35. package/dist/adapter/zboss/frame.js.map +1 -0
  36. package/dist/adapter/zboss/reader.d.ts +8 -0
  37. package/dist/adapter/zboss/reader.d.ts.map +1 -0
  38. package/dist/adapter/zboss/reader.js +58 -0
  39. package/dist/adapter/zboss/reader.js.map +1 -0
  40. package/dist/adapter/zboss/types.d.ts +1 -0
  41. package/dist/adapter/zboss/types.d.ts.map +1 -0
  42. package/dist/adapter/zboss/types.js +2 -0
  43. package/dist/adapter/zboss/types.js.map +1 -0
  44. package/dist/adapter/zboss/uart.d.ts +37 -0
  45. package/dist/adapter/zboss/uart.d.ts.map +1 -0
  46. package/dist/adapter/zboss/uart.js +369 -0
  47. package/dist/adapter/zboss/uart.js.map +1 -0
  48. package/dist/adapter/zboss/utils.d.ts +9 -0
  49. package/dist/adapter/zboss/utils.d.ts.map +1 -0
  50. package/dist/adapter/zboss/utils.js +56 -0
  51. package/dist/adapter/zboss/utils.js.map +1 -0
  52. package/dist/adapter/zboss/writer.d.ts +14 -0
  53. package/dist/adapter/zboss/writer.d.ts.map +1 -0
  54. package/dist/adapter/zboss/writer.js +43 -0
  55. package/dist/adapter/zboss/writer.js.map +1 -0
  56. package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
  57. package/dist/zspec/zcl/definition/cluster.js +0 -115
  58. package/dist/zspec/zcl/definition/cluster.js.map +1 -1
  59. package/dist/zspec/zcl/definition/tstype.d.ts +1 -1
  60. package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
  61. package/package.json +7 -8
@@ -0,0 +1,29 @@
1
+ import { KeyValue } from '../../controller/tstype';
2
+ import { DataType } from '../../zspec/zcl';
3
+ import { BuffaloZcl } from '../../zspec/zcl/buffaloZcl';
4
+ import { BuffaloZclDataType } from '../../zspec/zcl/definition/enums';
5
+ import { BuffaloZclOptions } from '../../zspec/zcl/definition/tstype';
6
+ import { ParamsDesc } from './commands';
7
+ import { BuffaloZBOSSDataType, CommandId } from './enums';
8
+ export declare class ZBOSSBuffaloZcl extends BuffaloZcl {
9
+ write(type: DataType | BuffaloZclDataType | BuffaloZBOSSDataType, value: any, options: BuffaloZclOptions): void;
10
+ read(type: DataType | BuffaloZclDataType | BuffaloZBOSSDataType, options: BuffaloZclOptions): any;
11
+ writeByDesc(payload: KeyValue, params: ParamsDesc[]): number;
12
+ readByDesc(params: ParamsDesc[]): KeyValue;
13
+ }
14
+ export declare function readZBOSSFrame(buffer: Buffer): ZBOSSFrame;
15
+ export declare function writeZBOSSFrame(frame: ZBOSSFrame): Buffer;
16
+ export declare enum FrameType {
17
+ REQUEST = 0,
18
+ RESPONSE = 1,
19
+ INDICATION = 2
20
+ }
21
+ export interface ZBOSSFrame {
22
+ version: number;
23
+ type: FrameType;
24
+ commandId: CommandId;
25
+ tsn: number;
26
+ payload: KeyValue;
27
+ }
28
+ export declare function makeFrame(type: FrameType, commandId: CommandId, params: KeyValue): ZBOSSFrame;
29
+ //# sourceMappingURL=frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../../src/adapter/zboss/frame.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAC,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAC,iBAAiB,EAAC,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAS,UAAU,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,oBAAoB,EAAE,SAAS,EAAC,MAAM,SAAS,CAAC;AAExD,qBAAa,eAAgB,SAAQ,UAAU;IAEpC,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,kBAAkB,GAAG,oBAAoB,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAY/G,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,kBAAkB,GAAG,oBAAoB,EAAE,OAAO,EAAE,iBAAiB,GAAG,GAAG;IAWjG,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM;IAsB5D,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ;CA6BpD;AAeD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAkBzD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQzD;AAED,oBAAY,SAAS;IACjB,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,UAAU,IAAI;CACjB;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,QAAQ,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAG,UAAU,CAmB7F"}
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ /* istanbul ignore file */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.FrameType = exports.ZBOSSBuffaloZcl = void 0;
5
+ exports.readZBOSSFrame = readZBOSSFrame;
6
+ exports.writeZBOSSFrame = writeZBOSSFrame;
7
+ exports.makeFrame = makeFrame;
8
+ const buffaloZcl_1 = require("../../zspec/zcl/buffaloZcl");
9
+ const commands_1 = require("./commands");
10
+ const enums_1 = require("./enums");
11
+ class ZBOSSBuffaloZcl extends buffaloZcl_1.BuffaloZcl {
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ write(type, value, options) {
14
+ switch (type) {
15
+ case enums_1.BuffaloZBOSSDataType.EXTENDED_PAN_ID: {
16
+ return this.writeBuffer(value, 8);
17
+ }
18
+ default: {
19
+ return super.write(type, value, options);
20
+ }
21
+ }
22
+ }
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
+ read(type, options) {
25
+ switch (type) {
26
+ case enums_1.BuffaloZBOSSDataType.EXTENDED_PAN_ID: {
27
+ return this.readBuffer(8);
28
+ }
29
+ default: {
30
+ return super.read(type, options);
31
+ }
32
+ }
33
+ }
34
+ writeByDesc(payload, params) {
35
+ const start = this.getPosition();
36
+ for (const parameter of params) {
37
+ const options = {};
38
+ if (parameter.condition && !parameter.condition(payload, this)) {
39
+ continue;
40
+ }
41
+ if (parameter.options)
42
+ parameter.options(payload, options);
43
+ if (parameter.type == enums_1.BuffaloZBOSSDataType.LIST_TYPED && parameter.typed) {
44
+ const internalPaload = payload[parameter.name];
45
+ for (const value of internalPaload) {
46
+ this.writeByDesc(value, parameter.typed);
47
+ }
48
+ }
49
+ else {
50
+ this.write(parameter.type, payload[parameter.name], options);
51
+ }
52
+ }
53
+ return this.getPosition() - start;
54
+ }
55
+ readByDesc(params) {
56
+ const payload = {};
57
+ for (const parameter of params) {
58
+ const options = { payload };
59
+ if (parameter.condition && !parameter.condition(payload, this)) {
60
+ continue;
61
+ }
62
+ if (parameter.options)
63
+ parameter.options(payload, options);
64
+ if (parameter.type == enums_1.BuffaloZBOSSDataType.LIST_TYPED && parameter.typed) {
65
+ payload[parameter.name] = [];
66
+ if (!this.isMore())
67
+ break;
68
+ for (let i = 0; i < (options.length || 0); i++) {
69
+ const internalPaload = this.readByDesc(parameter.typed);
70
+ payload[parameter.name].push(internalPaload);
71
+ }
72
+ }
73
+ else {
74
+ if (!this.isMore())
75
+ break;
76
+ payload[parameter.name] = this.read(parameter.type, options);
77
+ }
78
+ }
79
+ return payload;
80
+ }
81
+ }
82
+ exports.ZBOSSBuffaloZcl = ZBOSSBuffaloZcl;
83
+ function getFrameDesc(type, key) {
84
+ const frameDesc = commands_1.FRAMES[key];
85
+ if (!frameDesc)
86
+ throw new Error(`Unrecognized frame type from FrameID ${key}`);
87
+ switch (type) {
88
+ case FrameType.REQUEST:
89
+ return frameDesc.request || [];
90
+ case FrameType.RESPONSE:
91
+ return frameDesc.response || [];
92
+ case FrameType.INDICATION:
93
+ return frameDesc.indication || [];
94
+ }
95
+ }
96
+ function readZBOSSFrame(buffer) {
97
+ const buf = new ZBOSSBuffaloZcl(buffer);
98
+ const version = buf.readUInt8();
99
+ const type = buf.readUInt8();
100
+ const commandId = buf.readUInt16();
101
+ let tsn = 0;
102
+ if ([FrameType.REQUEST, FrameType.RESPONSE].includes(type)) {
103
+ tsn = buf.readUInt8();
104
+ }
105
+ const payload = readPayload(type, commandId, buf);
106
+ return {
107
+ version,
108
+ type,
109
+ commandId,
110
+ tsn,
111
+ payload,
112
+ };
113
+ }
114
+ function writeZBOSSFrame(frame) {
115
+ const buf = new ZBOSSBuffaloZcl(Buffer.alloc(247));
116
+ buf.writeInt8(frame.version);
117
+ buf.writeInt8(frame.type);
118
+ buf.writeUInt16(frame.commandId);
119
+ buf.writeUInt8(frame.tsn);
120
+ writePayload(frame.type, frame.commandId, frame.payload, buf);
121
+ return buf.getWritten();
122
+ }
123
+ var FrameType;
124
+ (function (FrameType) {
125
+ FrameType[FrameType["REQUEST"] = 0] = "REQUEST";
126
+ FrameType[FrameType["RESPONSE"] = 1] = "RESPONSE";
127
+ FrameType[FrameType["INDICATION"] = 2] = "INDICATION";
128
+ })(FrameType || (exports.FrameType = FrameType = {}));
129
+ function makeFrame(type, commandId, params) {
130
+ const frameDesc = getFrameDesc(type, commandId);
131
+ const payload = {};
132
+ for (const parameter of frameDesc) {
133
+ // const options: BuffaloZclOptions = {payload};
134
+ if (parameter.condition && !parameter.condition(payload, undefined)) {
135
+ continue;
136
+ }
137
+ payload[parameter.name] = params[parameter.name];
138
+ }
139
+ return {
140
+ version: 0,
141
+ type: type,
142
+ commandId: commandId,
143
+ tsn: 0,
144
+ payload: payload,
145
+ };
146
+ }
147
+ function readPayload(type, commandId, buffalo) {
148
+ const frameDesc = getFrameDesc(type, commandId);
149
+ return buffalo.readByDesc(frameDesc);
150
+ }
151
+ function writePayload(type, commandId, payload, buffalo) {
152
+ const frameDesc = getFrameDesc(type, commandId);
153
+ return buffalo.writeByDesc(payload, frameDesc);
154
+ }
155
+ //# sourceMappingURL=frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.js","sourceRoot":"","sources":["../../../src/adapter/zboss/frame.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Transform, TransformCallback, TransformOptions } from 'stream';
2
+ export declare class ZBOSSReader extends Transform {
3
+ private buffer;
4
+ constructor(opts?: TransformOptions);
5
+ _transform(chunk: Buffer, encoding: BufferEncoding, cb: TransformCallback): void;
6
+ _flush(cb: TransformCallback): void;
7
+ }
8
+ //# sourceMappingURL=reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../../src/adapter/zboss/reader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,QAAQ,CAAC;AAOtE,qBAAa,WAAY,SAAQ,SAAS;IACtC,OAAO,CAAC,MAAM,CAAS;gBAEJ,IAAI,CAAC,EAAE,gBAAgB;IAM1C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB,GAAG,IAAI;IAsChF,MAAM,CAAC,EAAE,EAAE,iBAAiB,GAAG,IAAI;CAOtC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /* istanbul ignore file */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ZBOSSReader = void 0;
5
+ const stream_1 = require("stream");
6
+ const logger_1 = require("../../utils/logger");
7
+ const consts_1 = require("./consts");
8
+ const NS = 'zh:zboss:read';
9
+ class ZBOSSReader extends stream_1.Transform {
10
+ buffer;
11
+ constructor(opts) {
12
+ super(opts);
13
+ this.buffer = Buffer.alloc(0);
14
+ }
15
+ _transform(chunk, encoding, cb) {
16
+ let data = Buffer.concat([this.buffer, chunk]);
17
+ let position;
18
+ logger_1.logger.debug(`<<< DATA [${chunk.toString('hex')}]`, NS);
19
+ // SIGNATURE - start of package
20
+ while ((position = data.indexOf(consts_1.SIGNATURE)) !== -1) {
21
+ // need for read length
22
+ if (data.length > position + 3) {
23
+ const len = data.readUInt16LE(position + 1);
24
+ if (data.length >= position - 1 + len) {
25
+ const frame = data.subarray(position + 1, position + 1 + len);
26
+ logger_1.logger.debug(`<<< FRAME [${frame.toString('hex')}]`, NS);
27
+ // emit the frame via 'data' event
28
+ this.push(frame);
29
+ // if position not 1 - try to convert buffer before position to text - chip console output
30
+ if (position > 1) {
31
+ logger_1.logger.debug(`<<< CONSOLE:\n\r${data.subarray(0, position - 1).toString()}`, NS);
32
+ }
33
+ // remove the frame from internal buffer (set below)
34
+ data = data.subarray(position + 1 + len);
35
+ if (data.length)
36
+ logger_1.logger.debug(`<<< TAIL [${data.toString('hex')}]`, NS);
37
+ }
38
+ else {
39
+ logger_1.logger.debug(`<<< Not enough data. Length=${data.length}, frame length=${len}. Waiting`, NS);
40
+ break;
41
+ }
42
+ }
43
+ else {
44
+ logger_1.logger.debug(`<<< Not enough data. Length=${data.length}. Waiting`, NS);
45
+ break;
46
+ }
47
+ }
48
+ this.buffer = data;
49
+ cb();
50
+ }
51
+ _flush(cb) {
52
+ this.push(this.buffer);
53
+ this.buffer = Buffer.alloc(0);
54
+ cb();
55
+ }
56
+ }
57
+ exports.ZBOSSReader = ZBOSSReader;
58
+ //# sourceMappingURL=reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../../src/adapter/zboss/reader.ts"],"names":[],"mappings":";AAAA,0BAA0B;;;AAE1B,mCAAsE;AAEtE,+CAA0C;AAC1C,qCAAmC;AAEnC,MAAM,EAAE,GAAG,eAAe,CAAC;AAE3B,MAAa,WAAY,SAAQ,kBAAS;IAC9B,MAAM,CAAS;IAEvB,YAAmB,IAAuB;QACtC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,QAAwB,EAAE,EAAqB;QACrE,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/C,IAAI,QAAgB,CAAC;QAErB,eAAM,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzD,+BAA+B;QAC/B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACjD,uBAAuB;YACvB,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAC5C,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;oBACpC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;oBAC9D,eAAM,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACzD,kCAAkC;oBAClC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAEjB,0FAA0F;oBAC1F,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;wBACf,eAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBACrF,CAAC;oBACD,oDAAoD;oBACpD,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;oBACzC,IAAI,IAAI,CAAC,MAAM;wBAAE,eAAM,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC5E,CAAC;qBAAM,CAAC;oBACJ,eAAM,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,MAAM,kBAAkB,GAAG,WAAW,EAAE,EAAE,CAAC,CAAC;oBAC7F,MAAM;gBACV,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,eAAM,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,CAAC,CAAC;gBACxE,MAAM;YACV,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,EAAE,EAAE,CAAC;IACT,CAAC;IAED,MAAM,CAAC,EAAqB;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE9B,EAAE,EAAE,CAAC;IACT,CAAC;CACJ;AAtDD,kCAsDC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapter/zboss/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapter/zboss/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import EventEmitter from 'stream';
2
+ import { SerialPortOptions } from '../tstype';
3
+ import { ZBOSSFrame } from './frame';
4
+ export declare class ZBOSSUart extends EventEmitter {
5
+ private readonly portOptions;
6
+ private serialPort?;
7
+ private socketPort?;
8
+ private writer;
9
+ private reader;
10
+ private closing;
11
+ private sendSeq;
12
+ private recvSeq;
13
+ private ackSeq;
14
+ private waitress;
15
+ private queue;
16
+ inReset: boolean;
17
+ constructor(options: SerialPortOptions);
18
+ resetNcp(): Promise<boolean>;
19
+ get portOpen(): boolean | undefined;
20
+ start(): Promise<boolean>;
21
+ stop(): Promise<void>;
22
+ private openPort;
23
+ closePort(): Promise<void>;
24
+ private onPortClose;
25
+ private onPortError;
26
+ private onPackage;
27
+ sendFrame(frame: ZBOSSFrame): Promise<void>;
28
+ private sendDATA;
29
+ private handleACK;
30
+ private sendACK;
31
+ private writeBuffer;
32
+ private makePack;
33
+ private waitFor;
34
+ private waitressTimeoutFormatter;
35
+ private waitressValidator;
36
+ }
37
+ //# sourceMappingURL=uart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uart.d.ts","sourceRoot":"","sources":["../../../src/adapter/zboss/uart.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAOlC,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAkC,UAAU,EAAC,MAAM,SAAS,CAAC;AAOpE,qBAAa,SAAU,SAAQ,YAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,KAAK,CAAQ;IACd,OAAO,UAAS;gBAEX,OAAO,EAAE,iBAAiB;IAYzB,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAoBzC,IAAI,QAAQ,IAAI,OAAO,GAAG,SAAS,CASlC;IAEY,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAmBzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAQpB,QAAQ;IA0ET,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAiBzB,WAAW;YASX,WAAW;YAIX,SAAS;IAgEV,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAyB1C,QAAQ;IAwCtB,OAAO,CAAC,SAAS;YAsBH,OAAO;IAuBrB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,iBAAiB;CAG5B"}