jooby-codec 2.1.0 → 2.3.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.
- package/dist/analog/commands/downlink/GetExAbsArchiveDaysMC.js.map +1 -1
- package/dist/analog/commands/uplink/ExAbsHourMC.js.map +1 -1
- package/dist/analog/message.js +16 -17
- package/dist/analog/message.js.map +1 -1
- package/dist/obis-observer/CommandBinaryBuffer.d.ts +12 -3
- package/dist/obis-observer/CommandBinaryBuffer.js +29 -5
- package/dist/obis-observer/CommandBinaryBuffer.js.map +1 -1
- package/dist/obis-observer/commands/downlink/AddShortNameProfile.js +1 -1
- package/dist/obis-observer/commands/downlink/AddShortNameProfile.js.map +1 -1
- package/dist/obis-observer/commands/downlink/GetDeviceInfo.d.ts +13 -0
- package/dist/obis-observer/commands/downlink/GetDeviceInfo.js +39 -0
- package/dist/obis-observer/commands/downlink/GetDeviceInfo.js.map +1 -0
- package/dist/obis-observer/commands/downlink/GetLorawanInfo.d.ts +13 -0
- package/dist/obis-observer/commands/downlink/GetLorawanInfo.js +39 -0
- package/dist/obis-observer/commands/downlink/GetLorawanInfo.js.map +1 -0
- package/dist/obis-observer/commands/downlink/GetShortNameProfile.js.map +1 -1
- package/dist/obis-observer/commands/downlink/SetSerialPort.d.ts +1 -1
- package/dist/obis-observer/commands/downlink/SetSerialPort.js +2 -2
- package/dist/obis-observer/commands/downlink/SetSerialPort.js.map +1 -1
- package/dist/obis-observer/commands/downlink/index.d.ts +2 -0
- package/dist/obis-observer/commands/downlink/index.js +2 -0
- package/dist/obis-observer/commands/downlink/index.js.map +1 -1
- package/dist/obis-observer/commands/uplink/GetDeviceInfoResponse.d.ts +18 -0
- package/dist/obis-observer/commands/uplink/GetDeviceInfoResponse.js +60 -0
- package/dist/obis-observer/commands/uplink/GetDeviceInfoResponse.js.map +1 -0
- package/dist/obis-observer/commands/uplink/GetLorawanInfoResponse.d.ts +18 -0
- package/dist/obis-observer/commands/uplink/GetLorawanInfoResponse.js +49 -0
- package/dist/obis-observer/commands/uplink/GetLorawanInfoResponse.js.map +1 -0
- package/dist/obis-observer/commands/uplink/GetShortNameInfoResponse.js +10 -4
- package/dist/obis-observer/commands/uplink/GetShortNameInfoResponse.js.map +1 -1
- package/dist/obis-observer/commands/uplink/GetShortNameProfileResponse.js +1 -1
- package/dist/obis-observer/commands/uplink/GetShortNameProfileResponse.js.map +1 -1
- package/dist/obis-observer/commands/uplink/index.d.ts +2 -0
- package/dist/obis-observer/commands/uplink/index.js +2 -0
- package/dist/obis-observer/commands/uplink/index.js.map +1 -1
- package/dist/obis-observer/constants/baudRates.d.ts +16 -0
- package/dist/obis-observer/constants/baudRates.js +18 -0
- package/dist/obis-observer/constants/baudRates.js.map +1 -0
- package/dist/obis-observer/constants/commandRelations.d.ts +2 -0
- package/dist/obis-observer/constants/commandRelations.js +21 -0
- package/dist/obis-observer/constants/commandRelations.js.map +1 -0
- package/dist/obis-observer/constants/index.d.ts +1 -0
- package/dist/obis-observer/constants/index.js +1 -0
- package/dist/obis-observer/constants/index.js.map +1 -1
- package/dist/obis-observer/constants/shortNames.d.ts +34 -0
- package/dist/obis-observer/constants/shortNames.js +228 -0
- package/dist/obis-observer/constants/shortNames.js.map +1 -0
- package/dist/obis-observer/index.d.ts +2 -1
- package/dist/obis-observer/index.js +2 -1
- package/dist/obis-observer/index.js.map +1 -1
- package/dist/obis-observer/utils/index.d.ts +1 -0
- package/dist/obis-observer/utils/index.js +2 -0
- package/dist/obis-observer/utils/index.js.map +1 -0
- package/dist/obis-observer/utils/obis.d.ts +3 -0
- package/dist/obis-observer/utils/obis.js +72 -0
- package/dist/obis-observer/utils/obis.js.map +1 -0
- package/dist/utils/invertObject.d.ts +3 -0
- package/dist/utils/invertObject.js +4 -0
- package/dist/utils/invertObject.js.map +1 -0
- package/package.json +1 -1
- package/readme.md +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/obis-observer/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/obis-observer/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * as obis from './obis.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/obis-observer/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import invertObject from '../../utils/invertObject.js';
|
|
2
|
+
const letterCodes = {
|
|
3
|
+
C: 96,
|
|
4
|
+
F: 97,
|
|
5
|
+
L: 98,
|
|
6
|
+
P: 99
|
|
7
|
+
};
|
|
8
|
+
const codeLetters = invertObject(letterCodes);
|
|
9
|
+
export const toString = (obis) => {
|
|
10
|
+
if (!obis || typeof obis !== 'object' || Object.keys(obis).length === 0) {
|
|
11
|
+
throw new Error('Must be an object with properties.');
|
|
12
|
+
}
|
|
13
|
+
const { a, b, c, d, e, f } = obis;
|
|
14
|
+
if (c === null || c === undefined || d === null || d === undefined) {
|
|
15
|
+
throw new Error('Properties "c" and "d" are mandatory.');
|
|
16
|
+
}
|
|
17
|
+
let result = '';
|
|
18
|
+
if (a && b) {
|
|
19
|
+
result += `${a}-${b}:`;
|
|
20
|
+
}
|
|
21
|
+
result += `${(codeLetters[c] ?? c)}.${(codeLetters[d] ?? d)}`;
|
|
22
|
+
if (e && f) {
|
|
23
|
+
result += `.${e}*${f}`;
|
|
24
|
+
}
|
|
25
|
+
else if (e) {
|
|
26
|
+
result += `.${e}`;
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
};
|
|
30
|
+
export const fromString = (obisString) => {
|
|
31
|
+
const result = {};
|
|
32
|
+
let unprocessed = obisString;
|
|
33
|
+
let parts;
|
|
34
|
+
let eValue;
|
|
35
|
+
parts = unprocessed.split('-');
|
|
36
|
+
if (parts.length > 1) {
|
|
37
|
+
[result.a, unprocessed] = parts;
|
|
38
|
+
}
|
|
39
|
+
parts = unprocessed.split(':');
|
|
40
|
+
if (parts.length > 1) {
|
|
41
|
+
[result.b, unprocessed] = parts;
|
|
42
|
+
}
|
|
43
|
+
parts = unprocessed.split('*');
|
|
44
|
+
if (parts.length > 1) {
|
|
45
|
+
[unprocessed, result.f] = parts;
|
|
46
|
+
}
|
|
47
|
+
parts = unprocessed.split('.');
|
|
48
|
+
if (parts.length > 1) {
|
|
49
|
+
[result.c, result.d, eValue] = parts;
|
|
50
|
+
if (eValue) {
|
|
51
|
+
result.e = eValue;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
Object.keys(result).forEach(groupName => {
|
|
55
|
+
const groupValue = result[groupName];
|
|
56
|
+
if (groupValue) {
|
|
57
|
+
const intValue = parseInt(letterCodes[groupValue] || groupValue, 10);
|
|
58
|
+
if (intValue < 0 || intValue > 255) {
|
|
59
|
+
throw new Error(`Value for group "${groupName}" should be in range [0..255].`);
|
|
60
|
+
}
|
|
61
|
+
result[groupName] = intValue;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
throw new Error(`Value for group "${groupName}" can't be empty.`);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
if (!('c' in result && 'd' in result)) {
|
|
68
|
+
throw new Error('Properties "c" and "d" are mandatory.');
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=obis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obis.js","sourceRoot":"","sources":["../../../src/obis-observer/utils/obis.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invertObject.js","sourceRoot":"","sources":["../../src/utils/invertObject.ts"],"names":[],"mappings":"AASA,eAAe,CAAE,MAAkB,EAAe,EAAE,CAAC,MAAM,CAAC,WAAW,CACnE,MAAM;KACD,OAAO,CAAC,MAAM,CAAC;KACf,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAC3C,CAAC"}
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -99,6 +99,8 @@ const messageData = message.fromHex(
|
|
|
99
99
|
It's possible to parse message with autodetect direction:
|
|
100
100
|
|
|
101
101
|
```js
|
|
102
|
+
// It is highly recommended to use a specific direction.
|
|
103
|
+
// AUTO is used here just for example.
|
|
102
104
|
const messageData = message.fromHex(
|
|
103
105
|
'02 01 01 18 06 0f 83 01 08 0a 0c 16 08 2f 97 0f 83 01 08 0a 0c ef',
|
|
104
106
|
directions.AUTO
|