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.
- package/.github/workflows/ci.yml +2 -2
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +27 -0
- package/dist/adapter/adapter.d.ts.map +1 -1
- package/dist/adapter/adapter.js +2 -1
- package/dist/adapter/adapter.js.map +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.d.ts +818 -0
- package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -0
- package/dist/adapter/ember/adapter/emberAdapter.js +2991 -0
- package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -0
- package/dist/adapter/ember/adapter/endpoints.d.ts +25 -0
- package/dist/adapter/ember/adapter/endpoints.d.ts.map +1 -0
- package/dist/adapter/ember/adapter/endpoints.js +66 -0
- package/dist/adapter/ember/adapter/endpoints.js.map +1 -0
- package/dist/adapter/ember/adapter/index.d.ts +3 -0
- package/dist/adapter/ember/adapter/index.d.ts.map +1 -0
- package/dist/adapter/ember/adapter/index.js +6 -0
- package/dist/adapter/ember/adapter/index.js.map +1 -0
- package/dist/adapter/ember/adapter/oneWaitress.d.ts +97 -0
- package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -0
- package/dist/adapter/ember/adapter/oneWaitress.js +226 -0
- package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -0
- package/dist/adapter/ember/adapter/requestQueue.d.ts +59 -0
- package/dist/adapter/ember/adapter/requestQueue.d.ts.map +1 -0
- package/dist/adapter/ember/adapter/requestQueue.js +144 -0
- package/dist/adapter/ember/adapter/requestQueue.js.map +1 -0
- package/dist/adapter/ember/adapter/tokensManager.d.ts +69 -0
- package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -0
- package/dist/adapter/ember/adapter/tokensManager.js +685 -0
- package/dist/adapter/ember/adapter/tokensManager.js.map +1 -0
- package/dist/adapter/ember/consts.d.ts +198 -0
- package/dist/adapter/ember/consts.d.ts.map +1 -0
- package/dist/adapter/ember/consts.js +253 -0
- package/dist/adapter/ember/consts.js.map +1 -0
- package/dist/adapter/ember/enums.d.ts +2184 -0
- package/dist/adapter/ember/enums.d.ts.map +1 -0
- package/dist/adapter/ember/enums.js +2391 -0
- package/dist/adapter/ember/enums.js.map +1 -0
- package/dist/adapter/ember/ezsp/buffalo.d.ts +156 -0
- package/dist/adapter/ember/ezsp/buffalo.d.ts.map +1 -0
- package/dist/adapter/ember/ezsp/buffalo.js +1033 -0
- package/dist/adapter/ember/ezsp/buffalo.js.map +1 -0
- package/dist/adapter/ember/ezsp/consts.d.ts +116 -0
- package/dist/adapter/ember/ezsp/consts.d.ts.map +1 -0
- package/dist/adapter/ember/ezsp/consts.js +128 -0
- package/dist/adapter/ember/ezsp/consts.js.map +1 -0
- package/dist/adapter/ember/ezsp/enums.d.ts +879 -0
- package/dist/adapter/ember/ezsp/enums.d.ts.map +1 -0
- package/dist/adapter/ember/ezsp/enums.js +948 -0
- package/dist/adapter/ember/ezsp/enums.js.map +1 -0
- package/dist/adapter/ember/ezsp/ezsp.d.ts +2664 -0
- package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -0
- package/dist/adapter/ember/ezsp/ezsp.js +6449 -0
- package/dist/adapter/ember/ezsp/ezsp.js.map +1 -0
- package/dist/adapter/ember/types.d.ts +733 -0
- package/dist/adapter/ember/types.d.ts.map +1 -0
- package/dist/adapter/ember/types.js +3 -0
- package/dist/adapter/ember/types.js.map +1 -0
- package/dist/adapter/ember/uart/ash.d.ts +443 -0
- package/dist/adapter/ember/uart/ash.d.ts.map +1 -0
- package/dist/adapter/ember/uart/ash.js +1567 -0
- package/dist/adapter/ember/uart/ash.js.map +1 -0
- package/dist/adapter/ember/uart/consts.d.ts +91 -0
- package/dist/adapter/ember/uart/consts.d.ts.map +1 -0
- package/dist/adapter/ember/uart/consts.js +100 -0
- package/dist/adapter/ember/uart/consts.js.map +1 -0
- package/dist/adapter/ember/uart/enums.d.ts +191 -0
- package/dist/adapter/ember/uart/enums.d.ts.map +1 -0
- package/dist/adapter/ember/uart/enums.js +197 -0
- package/dist/adapter/ember/uart/enums.js.map +1 -0
- package/dist/adapter/ember/uart/parser.d.ts +10 -0
- package/dist/adapter/ember/uart/parser.d.ts.map +1 -0
- package/dist/adapter/ember/uart/parser.js +41 -0
- package/dist/adapter/ember/uart/parser.js.map +1 -0
- package/dist/adapter/ember/uart/queues.d.ts +85 -0
- package/dist/adapter/ember/uart/queues.d.ts.map +1 -0
- package/dist/adapter/ember/uart/queues.js +212 -0
- package/dist/adapter/ember/uart/queues.js.map +1 -0
- package/dist/adapter/ember/uart/writer.d.ts +15 -0
- package/dist/adapter/ember/uart/writer.d.ts.map +1 -0
- package/dist/adapter/ember/uart/writer.js +48 -0
- package/dist/adapter/ember/uart/writer.js.map +1 -0
- package/dist/adapter/ember/utils/initters.d.ts +20 -0
- package/dist/adapter/ember/utils/initters.d.ts.map +1 -0
- package/dist/adapter/ember/utils/initters.js +58 -0
- package/dist/adapter/ember/utils/initters.js.map +1 -0
- package/dist/adapter/ember/utils/math.d.ts +51 -0
- package/dist/adapter/ember/utils/math.d.ts.map +1 -0
- package/dist/adapter/ember/utils/math.js +102 -0
- package/dist/adapter/ember/utils/math.js.map +1 -0
- package/dist/adapter/ember/zdo.d.ts +921 -0
- package/dist/adapter/ember/zdo.d.ts.map +1 -0
- package/dist/adapter/ember/zdo.js +723 -0
- package/dist/adapter/ember/zdo.js.map +1 -0
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.js +28 -22
- package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
- package/dist/adapter/ezsp/driver/driver.d.ts +1 -2
- package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/driver.js +21 -21
- package/dist/adapter/ezsp/driver/driver.js.map +1 -1
- package/dist/adapter/ezsp/driver/ezsp.d.ts +2 -0
- package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/ezsp.js +24 -5
- package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
- package/dist/adapter/ezsp/driver/parser.d.ts +1 -2
- package/dist/adapter/ezsp/driver/parser.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/parser.js +29 -40
- package/dist/adapter/ezsp/driver/parser.js.map +1 -1
- package/dist/adapter/ezsp/driver/uart.d.ts +1 -0
- package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/uart.js +38 -13
- package/dist/adapter/ezsp/driver/uart.js.map +1 -1
- package/dist/adapter/ezsp/driver/writer.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/writer.js +10 -13
- package/dist/adapter/ezsp/driver/writer.js.map +1 -1
- package/dist/adapter/tstype.d.ts +1 -1
- package/dist/adapter/tstype.d.ts.map +1 -1
- package/dist/utils/backup.d.ts.map +1 -1
- package/dist/utils/backup.js +4 -0
- package/dist/utils/backup.js.map +1 -1
- 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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"}
|