jooby-codec 1.12.0 → 1.13.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/CommandBinaryBuffer.d.ts +44 -35
- package/dist/CommandBinaryBuffer.js +61 -45
- package/dist/CommandBinaryBuffer.js.map +1 -1
- package/dist/commands/downlink/CorrectTime2000.d.ts +2 -1
- package/dist/commands/downlink/CorrectTime2000.js +8 -0
- package/dist/commands/downlink/CorrectTime2000.js.map +1 -1
- package/dist/commands/downlink/GetArchiveDaysMC.js +1 -4
- package/dist/commands/downlink/GetArchiveDaysMC.js.map +1 -1
- package/dist/commands/downlink/GetArchiveHoursMC.js +1 -4
- package/dist/commands/downlink/GetArchiveHoursMC.js.map +1 -1
- package/dist/commands/downlink/GetExAbsArchiveDaysMC.js +1 -4
- package/dist/commands/downlink/GetExAbsArchiveDaysMC.js.map +1 -1
- package/dist/commands/downlink/GetExAbsArchiveHoursMC.js +2 -5
- package/dist/commands/downlink/GetExAbsArchiveHoursMC.js.map +1 -1
- package/dist/commands/downlink/GetExAbsCurrentMC.d.ts +2 -1
- package/dist/commands/downlink/GetExAbsCurrentMC.js +7 -0
- package/dist/commands/downlink/GetExAbsCurrentMC.js.map +1 -1
- package/dist/commands/downlink/GetLmicInfo.js.map +1 -1
- package/dist/commands/downlink/GetParameter.d.ts +1 -1
- package/dist/commands/downlink/GetParameter.js +4 -4
- package/dist/commands/downlink/GetParameter.js.map +1 -1
- package/dist/commands/downlink/SetParameter.d.ts +2 -2
- package/dist/commands/downlink/SetParameter.js +25 -17
- package/dist/commands/downlink/SetParameter.js.map +1 -1
- package/dist/commands/downlink/SetTime2000.d.ts +2 -1
- package/dist/commands/downlink/SetTime2000.js +8 -0
- package/dist/commands/downlink/SetTime2000.js.map +1 -1
- package/dist/commands/downlink/SoftRestart.d.ts +2 -1
- package/dist/commands/downlink/SoftRestart.js +7 -0
- package/dist/commands/downlink/SoftRestart.js.map +1 -1
- package/dist/commands/uplink/ExAbsCurrentMC.js +3 -10
- package/dist/commands/uplink/ExAbsCurrentMC.js.map +1 -1
- package/dist/commands/uplink/ExAbsDayMC.js +2 -9
- package/dist/commands/uplink/ExAbsDayMC.js.map +1 -1
- package/dist/commands/uplink/GetArchiveDaysMCResponse.js +1 -1
- package/dist/commands/uplink/GetParameterResponse.d.ts +1 -1
- package/dist/commands/uplink/GetParameterResponse.js +10 -10
- package/dist/commands/uplink/GetParameterResponse.js.map +1 -1
- package/dist/commands/uplink/Time2000.js +1 -2
- package/dist/commands/uplink/Time2000.js.map +1 -1
- package/dist/constants/deviceParameters.d.ts +15 -9
- package/dist/constants/deviceParameters.js +15 -9
- package/dist/constants/deviceParameters.js.map +1 -1
- package/dist/utils/message.d.ts +1 -1
- package/dist/utils/message.js +22 -6
- package/dist/utils/message.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Device parameters. Used in SetParameter/GetParameter.
|
|
3
3
|
*/
|
|
4
|
-
/**
|
|
5
|
-
export declare const
|
|
4
|
+
/** reporting data interval from device */
|
|
5
|
+
export declare const REPORTING_DATA_INTERVAL = 1;
|
|
6
6
|
/** the parameter defines the hour of the day by which the daily consumption is calculated */
|
|
7
7
|
export declare const DAY_CHECKOUT_HOUR = 4;
|
|
8
|
-
/** type
|
|
9
|
-
export declare const
|
|
8
|
+
/** data type from device */
|
|
9
|
+
export declare const REPORTING_DATA_TYPE = 5;
|
|
10
10
|
/** type of priority data delivery, with confirmation or not */
|
|
11
|
-
export declare const
|
|
11
|
+
export declare const PRIORITY_DATA_DELIVERY_TYPE = 8;
|
|
12
12
|
/** device activation method */
|
|
13
13
|
export declare const ACTIVATION_METHOD = 9;
|
|
14
14
|
/** device battery depassivation information */
|
|
15
15
|
export declare const BATTERY_DEPASSIVATION_INFO = 10;
|
|
16
16
|
/** device battery minimum required battery load time per day to prevent passivation */
|
|
17
17
|
export declare const BATTERY_MINIMAL_LOAD_TIME = 11;
|
|
18
|
+
/**
|
|
19
|
+
* Setup channels config, only for universal 4-channels devices.
|
|
20
|
+
*
|
|
21
|
+
* [Values description](https://github.com/jooby-dev/jooby-docs/blob/main/docs/parameter-types.md#channels-config)
|
|
22
|
+
*/
|
|
23
|
+
export declare const CHANNELS_CONFIG = 13;
|
|
18
24
|
/** setup parameters for RX2 window config */
|
|
19
25
|
export declare const RX2_CONFIG = 18;
|
|
20
|
-
/** setup
|
|
21
|
-
export declare const
|
|
26
|
+
/** setup absolute data for device, pulse counter, pulse coefficient, meter value */
|
|
27
|
+
export declare const ABSOLUTE_DATA = 23;
|
|
22
28
|
/** enable absolute value sending */
|
|
23
29
|
export declare const ABSOLUTE_DATA_ENABLE = 24;
|
|
24
30
|
/** device serial number */
|
|
@@ -27,7 +33,7 @@ export declare const SERIAL_NUMBER = 25;
|
|
|
27
33
|
export declare const GEOLOCATION = 26;
|
|
28
34
|
/** interval in seconds when device send EXTRA FRAME */
|
|
29
35
|
export declare const EXTRA_FRAME_INTERVAL = 28;
|
|
30
|
-
/** same as
|
|
31
|
-
export declare const
|
|
36
|
+
/** same as ABSOLUTE_DATA for a specific channel */
|
|
37
|
+
export declare const ABSOLUTE_DATA_MULTI_CHANNEL = 29;
|
|
32
38
|
/** enable absolute value sending for a specific channel */
|
|
33
39
|
export declare const ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL = 30;
|
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Device parameters. Used in SetParameter/GetParameter.
|
|
3
3
|
*/
|
|
4
|
-
/**
|
|
5
|
-
export const
|
|
4
|
+
/** reporting data interval from device */
|
|
5
|
+
export const REPORTING_DATA_INTERVAL = 1;
|
|
6
6
|
/** the parameter defines the hour of the day by which the daily consumption is calculated */
|
|
7
7
|
export const DAY_CHECKOUT_HOUR = 4;
|
|
8
|
-
/** type
|
|
9
|
-
export const
|
|
8
|
+
/** data type from device */
|
|
9
|
+
export const REPORTING_DATA_TYPE = 5;
|
|
10
10
|
/** type of priority data delivery, with confirmation or not */
|
|
11
|
-
export const
|
|
11
|
+
export const PRIORITY_DATA_DELIVERY_TYPE = 8;
|
|
12
12
|
/** device activation method */
|
|
13
13
|
export const ACTIVATION_METHOD = 9;
|
|
14
14
|
/** device battery depassivation information */
|
|
15
15
|
export const BATTERY_DEPASSIVATION_INFO = 10;
|
|
16
16
|
/** device battery minimum required battery load time per day to prevent passivation */
|
|
17
17
|
export const BATTERY_MINIMAL_LOAD_TIME = 11;
|
|
18
|
+
/**
|
|
19
|
+
* Setup channels config, only for universal 4-channels devices.
|
|
20
|
+
*
|
|
21
|
+
* [Values description](https://github.com/jooby-dev/jooby-docs/blob/main/docs/parameter-types.md#channels-config)
|
|
22
|
+
*/
|
|
23
|
+
export const CHANNELS_CONFIG = 13;
|
|
18
24
|
/** setup parameters for RX2 window config */
|
|
19
25
|
export const RX2_CONFIG = 18;
|
|
20
|
-
/** setup
|
|
21
|
-
export const
|
|
26
|
+
/** setup absolute data for device, pulse counter, pulse coefficient, meter value */
|
|
27
|
+
export const ABSOLUTE_DATA = 23;
|
|
22
28
|
/** enable absolute value sending */
|
|
23
29
|
export const ABSOLUTE_DATA_ENABLE = 24;
|
|
24
30
|
/** device serial number */
|
|
@@ -27,8 +33,8 @@ export const SERIAL_NUMBER = 25;
|
|
|
27
33
|
export const GEOLOCATION = 26;
|
|
28
34
|
/** interval in seconds when device send EXTRA FRAME */
|
|
29
35
|
export const EXTRA_FRAME_INTERVAL = 28;
|
|
30
|
-
/** same as
|
|
31
|
-
export const
|
|
36
|
+
/** same as ABSOLUTE_DATA for a specific channel */
|
|
37
|
+
export const ABSOLUTE_DATA_MULTI_CHANNEL = 29;
|
|
32
38
|
/** enable absolute value sending for a specific channel */
|
|
33
39
|
export const ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL = 30;
|
|
34
40
|
//# sourceMappingURL=deviceParameters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceParameters.js","sourceRoot":"","sources":["../../src/constants/deviceParameters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,
|
|
1
|
+
{"version":3,"file":"deviceParameters.js","sourceRoot":"","sources":["../../src/constants/deviceParameters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,0CAA0C;AAC1C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,6FAA6F;AAC7F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,4BAA4B;AAC5B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C,+BAA+B;AAC/B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAE7C,uFAAuF;AACvF,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAElC,6CAA6C;AAC7C,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAE7B,oFAAoF;AACpF,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAEhC,oCAAoC;AACpC,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC,2BAA2B;AAC3B,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAEhC,yBAAyB;AACzB,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAE9B,uDAAuD;AACvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC,mDAAmD;AACnD,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,2DAA2D;AAC3D,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC"}
|
package/dist/utils/message.d.ts
CHANGED
package/dist/utils/message.js
CHANGED
|
@@ -56,25 +56,41 @@ const getCommand = (id, data, direction = AUTO, hardwareType) => {
|
|
|
56
56
|
};
|
|
57
57
|
export const fromBytes = (data, direction = AUTO, hardwareType) => {
|
|
58
58
|
const commandsData = data.slice(0, -1);
|
|
59
|
-
const expectedLrc = data.at(-1) ?? 0;
|
|
60
|
-
const actualLrc = calculateLrc(commandsData);
|
|
61
59
|
const commands = [];
|
|
62
60
|
const result = {
|
|
63
61
|
commands,
|
|
64
|
-
lrc: { expected:
|
|
62
|
+
lrc: { expected: undefined, actual: 0 },
|
|
65
63
|
isValid: false
|
|
66
64
|
};
|
|
65
|
+
let expectedLrc = data.at(-1);
|
|
66
|
+
let actualLrc = calculateLrc(commandsData);
|
|
67
67
|
let position = 0;
|
|
68
68
|
do {
|
|
69
69
|
const headerInfo = header.fromBytes(commandsData.slice(position, position + HEADER_MAX_SIZE));
|
|
70
70
|
const headerData = commandsData.slice(position, position + headerInfo.headerSize);
|
|
71
71
|
const bodyData = commandsData.slice(position + headerInfo.headerSize, position + headerInfo.headerSize + headerInfo.commandSize);
|
|
72
|
+
let command;
|
|
73
|
+
// shift
|
|
74
|
+
position = position + headerInfo.headerSize + headerInfo.commandSize;
|
|
75
|
+
try {
|
|
76
|
+
command = getCommand(headerInfo.commandId, bodyData, direction, hardwareType);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
// the last command in the message
|
|
80
|
+
if (position >= commandsData.length) {
|
|
81
|
+
// LRC may be missing so try to add one
|
|
82
|
+
command = getCommand(headerInfo.commandId, new Uint8Array([...bodyData, ...data.slice(-1)]), direction, hardwareType);
|
|
83
|
+
actualLrc = calculateLrc(data);
|
|
84
|
+
expectedLrc = undefined;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
throw error;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
72
90
|
commands.push({
|
|
73
91
|
data: { header: headerData, body: bodyData },
|
|
74
|
-
command
|
|
92
|
+
command
|
|
75
93
|
});
|
|
76
|
-
// shift
|
|
77
|
-
position = position + headerInfo.headerSize + headerInfo.commandSize;
|
|
78
94
|
} while (position < commandsData.length);
|
|
79
95
|
result.lrc.actual = actualLrc;
|
|
80
96
|
result.lrc.expected = expectedLrc;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/utils/message.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/utils/message.ts"],"names":[],"mappings":"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"}
|