zigbee-herdsman 0.33.9 → 0.34.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/.github/workflows/ci.yml +2 -2
  2. package/.release-please-manifest.json +1 -1
  3. package/CHANGELOG.md +27 -0
  4. package/dist/adapter/adapter.d.ts.map +1 -1
  5. package/dist/adapter/adapter.js +2 -1
  6. package/dist/adapter/adapter.js.map +1 -1
  7. package/dist/adapter/ember/adapter/emberAdapter.d.ts +818 -0
  8. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -0
  9. package/dist/adapter/ember/adapter/emberAdapter.js +2991 -0
  10. package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -0
  11. package/dist/adapter/ember/adapter/endpoints.d.ts +25 -0
  12. package/dist/adapter/ember/adapter/endpoints.d.ts.map +1 -0
  13. package/dist/adapter/ember/adapter/endpoints.js +66 -0
  14. package/dist/adapter/ember/adapter/endpoints.js.map +1 -0
  15. package/dist/adapter/ember/adapter/index.d.ts +3 -0
  16. package/dist/adapter/ember/adapter/index.d.ts.map +1 -0
  17. package/dist/adapter/ember/adapter/index.js +6 -0
  18. package/dist/adapter/ember/adapter/index.js.map +1 -0
  19. package/dist/adapter/ember/adapter/oneWaitress.d.ts +97 -0
  20. package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -0
  21. package/dist/adapter/ember/adapter/oneWaitress.js +226 -0
  22. package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -0
  23. package/dist/adapter/ember/adapter/requestQueue.d.ts +59 -0
  24. package/dist/adapter/ember/adapter/requestQueue.d.ts.map +1 -0
  25. package/dist/adapter/ember/adapter/requestQueue.js +144 -0
  26. package/dist/adapter/ember/adapter/requestQueue.js.map +1 -0
  27. package/dist/adapter/ember/adapter/tokensManager.d.ts +69 -0
  28. package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -0
  29. package/dist/adapter/ember/adapter/tokensManager.js +685 -0
  30. package/dist/adapter/ember/adapter/tokensManager.js.map +1 -0
  31. package/dist/adapter/ember/consts.d.ts +198 -0
  32. package/dist/adapter/ember/consts.d.ts.map +1 -0
  33. package/dist/adapter/ember/consts.js +253 -0
  34. package/dist/adapter/ember/consts.js.map +1 -0
  35. package/dist/adapter/ember/enums.d.ts +2184 -0
  36. package/dist/adapter/ember/enums.d.ts.map +1 -0
  37. package/dist/adapter/ember/enums.js +2391 -0
  38. package/dist/adapter/ember/enums.js.map +1 -0
  39. package/dist/adapter/ember/ezsp/buffalo.d.ts +156 -0
  40. package/dist/adapter/ember/ezsp/buffalo.d.ts.map +1 -0
  41. package/dist/adapter/ember/ezsp/buffalo.js +1033 -0
  42. package/dist/adapter/ember/ezsp/buffalo.js.map +1 -0
  43. package/dist/adapter/ember/ezsp/consts.d.ts +116 -0
  44. package/dist/adapter/ember/ezsp/consts.d.ts.map +1 -0
  45. package/dist/adapter/ember/ezsp/consts.js +128 -0
  46. package/dist/adapter/ember/ezsp/consts.js.map +1 -0
  47. package/dist/adapter/ember/ezsp/enums.d.ts +879 -0
  48. package/dist/adapter/ember/ezsp/enums.d.ts.map +1 -0
  49. package/dist/adapter/ember/ezsp/enums.js +948 -0
  50. package/dist/adapter/ember/ezsp/enums.js.map +1 -0
  51. package/dist/adapter/ember/ezsp/ezsp.d.ts +2664 -0
  52. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -0
  53. package/dist/adapter/ember/ezsp/ezsp.js +6449 -0
  54. package/dist/adapter/ember/ezsp/ezsp.js.map +1 -0
  55. package/dist/adapter/ember/types.d.ts +733 -0
  56. package/dist/adapter/ember/types.d.ts.map +1 -0
  57. package/dist/adapter/ember/types.js +3 -0
  58. package/dist/adapter/ember/types.js.map +1 -0
  59. package/dist/adapter/ember/uart/ash.d.ts +443 -0
  60. package/dist/adapter/ember/uart/ash.d.ts.map +1 -0
  61. package/dist/adapter/ember/uart/ash.js +1567 -0
  62. package/dist/adapter/ember/uart/ash.js.map +1 -0
  63. package/dist/adapter/ember/uart/consts.d.ts +91 -0
  64. package/dist/adapter/ember/uart/consts.d.ts.map +1 -0
  65. package/dist/adapter/ember/uart/consts.js +100 -0
  66. package/dist/adapter/ember/uart/consts.js.map +1 -0
  67. package/dist/adapter/ember/uart/enums.d.ts +191 -0
  68. package/dist/adapter/ember/uart/enums.d.ts.map +1 -0
  69. package/dist/adapter/ember/uart/enums.js +197 -0
  70. package/dist/adapter/ember/uart/enums.js.map +1 -0
  71. package/dist/adapter/ember/uart/parser.d.ts +10 -0
  72. package/dist/adapter/ember/uart/parser.d.ts.map +1 -0
  73. package/dist/adapter/ember/uart/parser.js +41 -0
  74. package/dist/adapter/ember/uart/parser.js.map +1 -0
  75. package/dist/adapter/ember/uart/queues.d.ts +85 -0
  76. package/dist/adapter/ember/uart/queues.d.ts.map +1 -0
  77. package/dist/adapter/ember/uart/queues.js +212 -0
  78. package/dist/adapter/ember/uart/queues.js.map +1 -0
  79. package/dist/adapter/ember/uart/writer.d.ts +15 -0
  80. package/dist/adapter/ember/uart/writer.d.ts.map +1 -0
  81. package/dist/adapter/ember/uart/writer.js +48 -0
  82. package/dist/adapter/ember/uart/writer.js.map +1 -0
  83. package/dist/adapter/ember/utils/initters.d.ts +20 -0
  84. package/dist/adapter/ember/utils/initters.d.ts.map +1 -0
  85. package/dist/adapter/ember/utils/initters.js +58 -0
  86. package/dist/adapter/ember/utils/initters.js.map +1 -0
  87. package/dist/adapter/ember/utils/math.d.ts +51 -0
  88. package/dist/adapter/ember/utils/math.d.ts.map +1 -0
  89. package/dist/adapter/ember/utils/math.js +102 -0
  90. package/dist/adapter/ember/utils/math.js.map +1 -0
  91. package/dist/adapter/ember/zdo.d.ts +921 -0
  92. package/dist/adapter/ember/zdo.d.ts.map +1 -0
  93. package/dist/adapter/ember/zdo.js +723 -0
  94. package/dist/adapter/ember/zdo.js.map +1 -0
  95. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  96. package/dist/adapter/ezsp/adapter/ezspAdapter.js +28 -22
  97. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  98. package/dist/adapter/ezsp/driver/driver.d.ts +1 -2
  99. package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
  100. package/dist/adapter/ezsp/driver/driver.js +21 -21
  101. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  102. package/dist/adapter/ezsp/driver/ezsp.d.ts +2 -0
  103. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
  104. package/dist/adapter/ezsp/driver/ezsp.js +24 -5
  105. package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
  106. package/dist/adapter/ezsp/driver/parser.d.ts +1 -2
  107. package/dist/adapter/ezsp/driver/parser.d.ts.map +1 -1
  108. package/dist/adapter/ezsp/driver/parser.js +29 -40
  109. package/dist/adapter/ezsp/driver/parser.js.map +1 -1
  110. package/dist/adapter/ezsp/driver/uart.d.ts +1 -0
  111. package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
  112. package/dist/adapter/ezsp/driver/uart.js +38 -13
  113. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  114. package/dist/adapter/ezsp/driver/writer.d.ts.map +1 -1
  115. package/dist/adapter/ezsp/driver/writer.js +10 -13
  116. package/dist/adapter/ezsp/driver/writer.js.map +1 -1
  117. package/dist/adapter/tstype.d.ts +1 -1
  118. package/dist/adapter/tstype.d.ts.map +1 -1
  119. package/dist/utils/backup.d.ts.map +1 -1
  120. package/dist/utils/backup.js +4 -0
  121. package/dist/utils/backup.js.map +1 -1
  122. package/package.json +1 -1
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.aesMmoHashInit = exports.initSecurityManagerContext = exports.initNetworkCache = void 0;
4
+ const consts_1 = require("../consts");
5
+ const enums_1 = require("../enums");
6
+ const consts_2 = require("../ezsp/consts");
7
+ /**
8
+ * Initialize a network cache index with proper "invalid" values.
9
+ * @returns
10
+ */
11
+ const initNetworkCache = () => {
12
+ return {
13
+ eui64: consts_1.BLANK_EUI64,
14
+ parameters: {
15
+ extendedPanId: consts_1.BLANK_EXTENDED_PAN_ID.slice(), // copy
16
+ panId: consts_1.INVALID_PAN_ID,
17
+ radioTxPower: 0,
18
+ radioChannel: consts_1.INVALID_RADIO_CHANNEL,
19
+ joinMethod: enums_1.EmberJoinMethod.MAC_ASSOCIATION,
20
+ nwkManagerId: consts_1.NULL_NODE_ID,
21
+ nwkUpdateId: 0,
22
+ channels: consts_1.EMBER_ALL_802_15_4_CHANNELS_MASK,
23
+ },
24
+ status: consts_1.UNKNOWN_NETWORK_STATE,
25
+ };
26
+ };
27
+ exports.initNetworkCache = initNetworkCache;
28
+ /**
29
+ * This routine will initialize a Security Manager context correctly for use in subsequent function calls.
30
+ * @returns
31
+ */
32
+ const initSecurityManagerContext = () => {
33
+ return {
34
+ coreKeyType: enums_1.SecManKeyType.NONE,
35
+ keyIndex: 0,
36
+ derivedType: enums_1.SecManDerivedKeyType.NONE,
37
+ eui64: `0x0000000000000000`,
38
+ multiNetworkIndex: 0,
39
+ flags: enums_1.SecManFlag.NONE,
40
+ psaKeyAlgPermission: consts_1.ZB_PSA_ALG, // unused for classic key storage
41
+ };
42
+ };
43
+ exports.initSecurityManagerContext = initSecurityManagerContext;
44
+ /**
45
+ * This routine clears the passed context so that a new hash calculation
46
+ * can be performed.
47
+ *
48
+ * @returns context A pointer to the location of hash context to clear.
49
+ */
50
+ const aesMmoHashInit = () => {
51
+ // MEMSET(context, 0, sizeof(EmberAesMmoHashContext));
52
+ return {
53
+ result: Buffer.alloc(consts_2.EMBER_AES_HASH_BLOCK_SIZE), // uint8_t[EMBER_AES_HASH_BLOCK_SIZE]
54
+ length: 0x00000000, // uint32_t
55
+ };
56
+ };
57
+ exports.aesMmoHashInit = aesMmoHashInit;
58
+ //# sourceMappingURL=initters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initters.js","sourceRoot":"","sources":["../../../../src/adapter/ember/utils/initters.ts"],"names":[],"mappings":";;;AAEA,sCASmB;AACnB,oCAMkB;AAClB,2CAAyD;AAIzD;;;GAGG;AACI,MAAM,gBAAgB,GAAG,GAAiB,EAAE;IAC/C,OAAO;QACH,KAAK,EAAE,oBAAW;QAClB,UAAU,EAAE;YACR,aAAa,EAAE,8BAAqB,CAAC,KAAK,EAAE,EAAC,OAAO;YACpD,KAAK,EAAE,uBAAc;YACrB,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,8BAAqB;YACnC,UAAU,EAAE,uBAAe,CAAC,eAAe;YAC3C,YAAY,EAAE,qBAAY;YAC1B,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,yCAAgC;SAC7C;QACD,MAAM,EAAE,8BAA2C;KACtD,CAAC;AACN,CAAC,CAAC;AAfW,QAAA,gBAAgB,oBAe3B;AAEF;;;GAGG;AACI,MAAM,0BAA0B,GAAG,GAAkB,EAAE;IAC1D,OAAO;QACH,WAAW,EAAE,qBAAa,CAAC,IAAI;QAC/B,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,4BAAoB,CAAC,IAAI;QACtC,KAAK,EAAE,oBAAoB;QAC3B,iBAAiB,EAAE,CAAC;QACpB,KAAK,EAAE,kBAAU,CAAC,IAAI;QACtB,mBAAmB,EAAE,mBAAU,EAAC,iCAAiC;KACpE,CAAC;AACN,CAAC,CAAC;AAVW,QAAA,0BAA0B,8BAUrC;AAEF;;;;;GAKG;AACI,MAAM,cAAc,GAAG,GAA2B,EAAE;IACvD,sDAAsD;IACtD,OAAO;QACH,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,kCAAyB,CAAC,EAAC,qCAAqC;QACrF,MAAM,EAAE,UAAU,EAAC,WAAW;KACjC,CAAC;AACN,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB"}
@@ -0,0 +1,51 @@
1
+ import { MACCapabilityFlags } from "../zdo";
2
+ /** mask to frame number modulus */
3
+ export declare const mod8: (n: number) => number;
4
+ /** increment in frame number modulus */
5
+ export declare const inc8: (n: number) => number;
6
+ /** Return true if n is within the range lo through hi, computed (mod 8) */
7
+ export declare const withinRange: (lo: number, n: number, hi: number) => boolean;
8
+ /**
9
+ * Calculates 16-bit cyclic redundancy code (CITT CRC 16).
10
+ *
11
+ * Applies the standard CITT CRC 16 polynomial to a
12
+ * single byte. It should support being called first with an initial
13
+ * value, then repeatedly until all data is processed.
14
+ *
15
+ * @param newByte The new byte to be run through CRC.
16
+ * @param prevResult The previous CRC result.
17
+ * @returns The new CRC result.
18
+ */
19
+ export declare const halCommonCrc16: (newByte: number, prevResult: number) => number;
20
+ /** Returns the low bits of the 8-bit value 'n' as uint8_t. */
21
+ export declare const lowBits: (n: number) => number;
22
+ /** Returns the high bits of the 8-bit value 'n' as uint8_t. */
23
+ export declare const highBits: (n: number) => number;
24
+ /** Returns the low byte of the 16-bit value 'n' as uint8_t. */
25
+ export declare const lowByte: (n: number) => number;
26
+ /** Returns the high byte of the 16-bit value 'n' as uint8_t. */
27
+ export declare const highByte: (n: number) => number;
28
+ /** Returns the value built from the two uint8_t values high and low. */
29
+ export declare const highLowToInt: (high: number, low: number) => number;
30
+ /** Useful to reference a single bit of a byte. */
31
+ export declare const bit: (x: number) => number;
32
+ /** Useful to reference a single bit of an uint32_t type. */
33
+ export declare const bit32: (x: number) => number;
34
+ /** Returns both the low and high bytes (in that order) of the same 16-bit value 'n' as uint8_t. */
35
+ export declare const lowHighBytes: (n: number) => [number, highByte: number];
36
+ /** Returns both the low and high bits (in that order) of the same 8-bit value 'n' as uint8_t. */
37
+ export declare const lowHighBits: (n: number) => [number, highBits: number];
38
+ /**
39
+ * Get byte as an 8-bit string (`n` assumed of proper range).
40
+ * @param n
41
+ * @returns
42
+ */
43
+ export declare const byteToBits: (n: number) => string;
44
+ /**
45
+ * Get the values for the bitmap `Mac Capability Flags Field` as per spec.
46
+ * Given value is assumed to be a proper byte.
47
+ * @param capabilities
48
+ * @returns
49
+ */
50
+ export declare const getMacCapFlags: (capabilities: number) => MACCapabilityFlags;
51
+ //# sourceMappingURL=math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../../../src/adapter/ember/utils/math.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,kBAAkB,EAAC,MAAM,QAAQ,CAAC;AAE1C,mCAAmC;AACnC,eAAO,MAAM,IAAI,MAAO,MAAM,KAAG,MAAe,CAAC;AACjD,wCAAwC;AACxC,eAAO,MAAM,IAAI,MAAO,MAAM,KAAG,MAAqB,CAAC;AACvD,2EAA2E;AAC3E,eAAO,MAAM,WAAW,OAAQ,MAAM,KAAK,MAAM,MAAM,MAAM,KAAG,OAAwC,CAAC;AAMzG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,YAAa,MAAM,cAAc,MAAM,KAAG,MAgBpE,CAAC;AAMF,8DAA8D;AAC9D,eAAO,MAAM,OAAO,MAAO,MAAM,KAAG,MAAmB,CAAC;AACxD,+DAA+D;AAC/D,eAAO,MAAM,QAAQ,MAAO,MAAM,KAAG,MAAiC,CAAC;AACvE,+DAA+D;AAC/D,eAAO,MAAM,OAAO,MAAO,MAAM,KAAG,MAAoB,CAAC;AACzD,gEAAgE;AAChE,eAAO,MAAM,QAAQ,MAAO,MAAM,KAAG,MAAkC,CAAC;AACxE,wEAAwE;AACxE,eAAO,MAAM,YAAY,SAAU,MAAM,OAAO,MAAM,KAAG,MAA4D,CAAC;AACtH,kDAAkD;AAClD,eAAO,MAAM,GAAG,MAAO,MAAM,KAAG,MAAkB,CAAC;AACnD,4DAA4D;AAC5D,eAAO,MAAM,KAAK,MAAO,MAAM,KAAG,MAAkB,CAAC;AACrD,mGAAmG;AACnG,eAAO,MAAM,YAAY,MAAO,MAAM,KAAG,CAAC,MAAM,EAAE,UAAU,MAAM,CAA8B,CAAC;AACjG,iGAAiG;AACjG,eAAO,MAAM,WAAW,MAAO,MAAM,KAAG,CAAC,MAAM,EAAE,UAAU,MAAM,CAA8B,CAAC;AAEhG;;;;GAIG;AACH,eAAO,MAAM,UAAU,MAAO,MAAM,KAAG,MAEtC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,iBAAkB,MAAM,KAAG,kBAWrD,CAAC"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ /* istanbul ignore file */
3
+ //--------------------------------------------------------------
4
+ // Define macros for handling 3-bit frame numbers modulo 8
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getMacCapFlags = exports.byteToBits = exports.lowHighBits = exports.lowHighBytes = exports.bit32 = exports.bit = exports.highLowToInt = exports.highByte = exports.lowByte = exports.highBits = exports.lowBits = exports.halCommonCrc16 = exports.withinRange = exports.inc8 = exports.mod8 = void 0;
7
+ /** mask to frame number modulus */
8
+ const mod8 = (n) => n & 7;
9
+ exports.mod8 = mod8;
10
+ /** increment in frame number modulus */
11
+ const inc8 = (n) => (0, exports.mod8)(n + 1);
12
+ exports.inc8 = inc8;
13
+ /** Return true if n is within the range lo through hi, computed (mod 8) */
14
+ const withinRange = (lo, n, hi) => (0, exports.mod8)(n - lo) <= (0, exports.mod8)(hi - lo);
15
+ exports.withinRange = withinRange;
16
+ //--------------------------------------------------------------
17
+ // CRC
18
+ /**
19
+ * Calculates 16-bit cyclic redundancy code (CITT CRC 16).
20
+ *
21
+ * Applies the standard CITT CRC 16 polynomial to a
22
+ * single byte. It should support being called first with an initial
23
+ * value, then repeatedly until all data is processed.
24
+ *
25
+ * @param newByte The new byte to be run through CRC.
26
+ * @param prevResult The previous CRC result.
27
+ * @returns The new CRC result.
28
+ */
29
+ const halCommonCrc16 = (newByte, prevResult) => {
30
+ /*
31
+ * 16bit CRC notes:
32
+ * "CRC-CCITT"
33
+ * poly is g(X) = X^16 + X^12 + X^5 + 1 (0x1021)
34
+ * used in the FPGA (green boards and 15.4)
35
+ * initial remainder should be 0xFFFF
36
+ */
37
+ prevResult = ((prevResult >> 8) & 0xFFFF) | ((prevResult << 8) & 0xFFFF);
38
+ prevResult ^= newByte;
39
+ prevResult ^= (prevResult & 0xFF) >> 4;
40
+ prevResult ^= (((prevResult << 8) & 0xFFFF) << 4) & 0xFFFF;
41
+ prevResult ^= (((prevResult & 0xFF) << 5) & 0xFF) | (((((prevResult & 0xFF) >> 3) & 0xFFFF) << 8) & 0xFFFF);
42
+ return prevResult;
43
+ };
44
+ exports.halCommonCrc16 = halCommonCrc16;
45
+ //--------------------------------------------------------------
46
+ // Byte manipulation
47
+ /** Returns the low bits of the 8-bit value 'n' as uint8_t. */
48
+ const lowBits = (n) => (n & 0xF);
49
+ exports.lowBits = lowBits;
50
+ /** Returns the high bits of the 8-bit value 'n' as uint8_t. */
51
+ const highBits = (n) => ((0, exports.lowBits)(n >> 4) & 0xF);
52
+ exports.highBits = highBits;
53
+ /** Returns the low byte of the 16-bit value 'n' as uint8_t. */
54
+ const lowByte = (n) => (n & 0xFF);
55
+ exports.lowByte = lowByte;
56
+ /** Returns the high byte of the 16-bit value 'n' as uint8_t. */
57
+ const highByte = (n) => ((0, exports.lowByte)(n >> 8) & 0xFF);
58
+ exports.highByte = highByte;
59
+ /** Returns the value built from the two uint8_t values high and low. */
60
+ const highLowToInt = (high, low) => (((high & 0xFFFF) << 8) + ((low & 0xFFFF) & 0xFF));
61
+ exports.highLowToInt = highLowToInt;
62
+ /** Useful to reference a single bit of a byte. */
63
+ const bit = (x) => (1 << x);
64
+ exports.bit = bit;
65
+ /** Useful to reference a single bit of an uint32_t type. */
66
+ const bit32 = (x) => (1 << x);
67
+ exports.bit32 = bit32;
68
+ /** Returns both the low and high bytes (in that order) of the same 16-bit value 'n' as uint8_t. */
69
+ const lowHighBytes = (n) => [(0, exports.lowByte)(n), (0, exports.highByte)(n)];
70
+ exports.lowHighBytes = lowHighBytes;
71
+ /** Returns both the low and high bits (in that order) of the same 8-bit value 'n' as uint8_t. */
72
+ const lowHighBits = (n) => [(0, exports.lowBits)(n), (0, exports.highBits)(n)];
73
+ exports.lowHighBits = lowHighBits;
74
+ /**
75
+ * Get byte as an 8-bit string (`n` assumed of proper range).
76
+ * @param n
77
+ * @returns
78
+ */
79
+ const byteToBits = (n) => {
80
+ return (n >>> 0).toString(2).padStart(8, '0');
81
+ };
82
+ exports.byteToBits = byteToBits;
83
+ /**
84
+ * Get the values for the bitmap `Mac Capability Flags Field` as per spec.
85
+ * Given value is assumed to be a proper byte.
86
+ * @param capabilities
87
+ * @returns
88
+ */
89
+ const getMacCapFlags = (capabilities) => {
90
+ return {
91
+ alternatePANCoordinator: (capabilities & 0x01),
92
+ deviceType: (capabilities & 0x02) >> 1,
93
+ powerSource: (capabilities & 0x04) >> 2,
94
+ rxOnWhenIdle: (capabilities & 0x08) >> 3,
95
+ reserved1: (capabilities & 0x10) >> 4,
96
+ reserved2: (capabilities & 0x20) >> 5,
97
+ securityCapability: (capabilities & 0x40) >> 6,
98
+ allocateAddress: (capabilities & 0x80) >> 7,
99
+ };
100
+ };
101
+ exports.getMacCapFlags = getMacCapFlags;
102
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../../../src/adapter/ember/utils/math.ts"],"names":[],"mappings":"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"}