jooby-codec 1.3.0 → 1.5.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 +41 -24
- package/dist/CommandBinaryBuffer.js +100 -65
- package/dist/CommandBinaryBuffer.js.map +1 -1
- package/dist/commands/downlink/ExAbsArchiveDaysMC.d.ts +47 -0
- package/dist/commands/downlink/{ExAbsArchiveDaysMul.js → ExAbsArchiveDaysMC.js} +20 -20
- package/dist/commands/downlink/ExAbsArchiveDaysMC.js.map +1 -0
- package/dist/commands/downlink/ExAbsArchiveHoursMC.d.ts +47 -0
- package/dist/commands/downlink/{ExAbsArchiveHoursMul.js → ExAbsArchiveHoursMC.js} +20 -20
- package/dist/commands/downlink/ExAbsArchiveHoursMC.js.map +1 -0
- package/dist/commands/downlink/ExAbsCurrentMC.d.ts +30 -0
- package/dist/commands/downlink/ExAbsCurrentMC.js +43 -0
- package/dist/commands/downlink/ExAbsCurrentMC.js.map +1 -0
- package/dist/commands/downlink/GetArchiveDaysMC.d.ts +47 -0
- package/dist/commands/downlink/{GetArchiveDaysMul.js → GetArchiveDaysMC.js} +20 -20
- package/dist/commands/downlink/GetArchiveDaysMC.js.map +1 -0
- package/dist/commands/downlink/GetArchiveHoursMC.d.ts +47 -0
- package/dist/commands/downlink/{GetArchiveHoursMul.js → GetArchiveHoursMC.js} +20 -20
- package/dist/commands/downlink/GetArchiveHoursMC.js.map +1 -0
- package/dist/commands/downlink/SetParameter.d.ts +8 -2
- package/dist/commands/downlink/SetParameter.js +11 -0
- package/dist/commands/downlink/SetParameter.js.map +1 -1
- package/dist/commands/downlink/index.d.ts +5 -4
- package/dist/commands/downlink/index.js +5 -4
- package/dist/commands/downlink/index.js.map +1 -1
- package/dist/commands/uplink/DataDayMC.d.ts +20 -0
- package/dist/commands/uplink/{DataDayMul.js → DataDayMC.js} +17 -17
- package/dist/commands/uplink/DataDayMC.js.map +1 -0
- package/dist/commands/uplink/DataHourMC.d.ts +17 -0
- package/dist/commands/uplink/DataHourMC.js +55 -0
- package/dist/commands/uplink/DataHourMC.js.map +1 -0
- package/dist/commands/uplink/ExAbsArchiveDaysMC.d.ts +17 -0
- package/dist/commands/uplink/ExAbsArchiveDaysMC.js +50 -0
- package/dist/commands/uplink/ExAbsArchiveDaysMC.js.map +1 -0
- package/dist/commands/uplink/ExAbsArchiveHoursMC.d.ts +17 -0
- package/dist/commands/uplink/ExAbsArchiveHoursMC.js +57 -0
- package/dist/commands/uplink/ExAbsArchiveHoursMC.js.map +1 -0
- package/dist/commands/uplink/ExAbsCurrentMC.d.ts +15 -0
- package/dist/commands/uplink/ExAbsCurrentMC.js +30 -0
- package/dist/commands/uplink/ExAbsCurrentMC.js.map +1 -0
- package/dist/commands/uplink/ExAbsDayMC.d.ts +16 -0
- package/dist/commands/uplink/ExAbsDayMC.js +34 -0
- package/dist/commands/uplink/ExAbsDayMC.js.map +1 -0
- package/dist/commands/uplink/ExAbsHourMC.d.ts +63 -0
- package/dist/commands/uplink/ExAbsHourMC.js +87 -0
- package/dist/commands/uplink/ExAbsHourMC.js.map +1 -0
- package/dist/commands/uplink/GetArchiveDaysMC.d.ts +49 -0
- package/dist/commands/uplink/GetArchiveDaysMC.js +71 -0
- package/dist/commands/uplink/GetArchiveDaysMC.js.map +1 -0
- package/dist/commands/uplink/GetArchiveHoursMC.d.ts +68 -0
- package/dist/commands/uplink/GetArchiveHoursMC.js +71 -0
- package/dist/commands/uplink/GetArchiveHoursMC.js.map +1 -0
- package/dist/commands/uplink/GetCurrentMC.d.ts +18 -0
- package/dist/commands/uplink/GetCurrentMC.js +36 -0
- package/dist/commands/uplink/GetCurrentMC.js.map +1 -0
- package/dist/commands/uplink/index.d.ts +10 -9
- package/dist/commands/uplink/index.js +10 -9
- package/dist/commands/uplink/index.js.map +1 -1
- package/dist/constants/deviceParameters.d.ts +5 -1
- package/dist/constants/deviceParameters.js +5 -1
- package/dist/constants/deviceParameters.js.map +1 -1
- package/package.json +1 -1
- package/dist/commands/downlink/ExAbsArchiveDaysMul.d.ts +0 -47
- package/dist/commands/downlink/ExAbsArchiveDaysMul.js.map +0 -1
- package/dist/commands/downlink/ExAbsArchiveHoursMul.d.ts +0 -47
- package/dist/commands/downlink/ExAbsArchiveHoursMul.js.map +0 -1
- package/dist/commands/downlink/GetArchiveDaysMul.d.ts +0 -47
- package/dist/commands/downlink/GetArchiveDaysMul.js.map +0 -1
- package/dist/commands/downlink/GetArchiveHoursMul.d.ts +0 -47
- package/dist/commands/downlink/GetArchiveHoursMul.js.map +0 -1
- package/dist/commands/uplink/DataDayMul.d.ts +0 -20
- package/dist/commands/uplink/DataDayMul.js.map +0 -1
- package/dist/commands/uplink/DataHourMul.d.ts +0 -11
- package/dist/commands/uplink/DataHourMul.js +0 -77
- package/dist/commands/uplink/DataHourMul.js.map +0 -1
- package/dist/commands/uplink/ExAbsArchiveDaysMul.d.ts +0 -46
- package/dist/commands/uplink/ExAbsArchiveDaysMul.js +0 -72
- package/dist/commands/uplink/ExAbsArchiveDaysMul.js.map +0 -1
- package/dist/commands/uplink/ExAbsArchiveHoursMul.d.ts +0 -11
- package/dist/commands/uplink/ExAbsArchiveHoursMul.js +0 -93
- package/dist/commands/uplink/ExAbsArchiveHoursMul.js.map +0 -1
- package/dist/commands/uplink/ExAbsDayMul.d.ts +0 -11
- package/dist/commands/uplink/ExAbsDayMul.js +0 -60
- package/dist/commands/uplink/ExAbsDayMul.js.map +0 -1
- package/dist/commands/uplink/ExAbsHourMul.d.ts +0 -11
- package/dist/commands/uplink/ExAbsHourMul.js +0 -92
- package/dist/commands/uplink/ExAbsHourMul.js.map +0 -1
- package/dist/commands/uplink/GetArchiveDaysMul.d.ts +0 -73
- package/dist/commands/uplink/GetArchiveDaysMul.js +0 -97
- package/dist/commands/uplink/GetArchiveDaysMul.js.map +0 -1
- package/dist/commands/uplink/GetArchiveHoursMul.d.ts +0 -28
- package/dist/commands/uplink/GetArchiveHoursMul.js +0 -51
- package/dist/commands/uplink/GetArchiveHoursMul.js.map +0 -1
- package/dist/commands/uplink/GetCurrentMul.d.ts +0 -24
- package/dist/commands/uplink/GetCurrentMul.js +0 -36
- package/dist/commands/uplink/GetCurrentMul.js.map +0 -1
|
@@ -13,36 +13,54 @@ export interface IBatteryVoltage {
|
|
|
13
13
|
*/
|
|
14
14
|
high: number | undefined;
|
|
15
15
|
}
|
|
16
|
-
/**
|
|
17
|
-
* Channel value hour diff
|
|
18
|
-
*/
|
|
19
|
-
export interface IHourDiff {
|
|
20
|
-
value: number;
|
|
21
|
-
hour: number;
|
|
22
|
-
seconds: number;
|
|
23
|
-
date: Date;
|
|
24
|
-
}
|
|
25
16
|
export interface IChannel {
|
|
26
17
|
/**
|
|
27
18
|
* Channel number.
|
|
28
19
|
*/
|
|
29
20
|
index: number;
|
|
21
|
+
}
|
|
22
|
+
export interface IChannelValue extends IChannel {
|
|
30
23
|
/**
|
|
31
24
|
* Pulse counter or absolute value of device channel.
|
|
32
25
|
*/
|
|
33
26
|
value: number;
|
|
27
|
+
}
|
|
28
|
+
export interface IChannelHours extends IChannelValue {
|
|
29
|
+
/**
|
|
30
|
+
* values differences between hours
|
|
31
|
+
*/
|
|
32
|
+
diff: Array<number>;
|
|
33
|
+
}
|
|
34
|
+
export interface IChannelHourAbsoluteValue extends IChannelHours {
|
|
35
|
+
/**
|
|
36
|
+
* Channel pulse coefficient - IPK in bytes.
|
|
37
|
+
*/
|
|
38
|
+
pulseCoefficient: number;
|
|
39
|
+
}
|
|
40
|
+
export interface IChannelDays extends IChannel {
|
|
41
|
+
dayList: Array<number>;
|
|
42
|
+
}
|
|
43
|
+
export interface IChannelAbsoluteValue extends IChannelValue {
|
|
44
|
+
/**
|
|
45
|
+
* Channel pulse coefficient - IPK in bytes.
|
|
46
|
+
*/
|
|
47
|
+
pulseCoefficient: number;
|
|
48
|
+
}
|
|
49
|
+
export interface IChannelArchiveDaysAbsolute extends IChannel {
|
|
34
50
|
/**
|
|
35
|
-
*
|
|
51
|
+
* values by days
|
|
36
52
|
*/
|
|
37
|
-
|
|
53
|
+
dayList: Array<number>;
|
|
38
54
|
/**
|
|
39
|
-
*
|
|
55
|
+
* Channel pulse coefficient - IPK in bytes.
|
|
40
56
|
*/
|
|
41
|
-
|
|
57
|
+
pulseCoefficient: number;
|
|
58
|
+
}
|
|
59
|
+
export interface IChannelArchiveDays extends IChannel {
|
|
42
60
|
/**
|
|
43
|
-
*
|
|
61
|
+
* values by days
|
|
44
62
|
*/
|
|
45
|
-
|
|
63
|
+
dayList: Array<number>;
|
|
46
64
|
}
|
|
47
65
|
/**
|
|
48
66
|
* Command specific byte array manipulation.
|
|
@@ -52,15 +70,12 @@ declare class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
52
70
|
setExtendedValue(value: number): void;
|
|
53
71
|
/**
|
|
54
72
|
* Get array of channel indexes.
|
|
55
|
-
*
|
|
56
|
-
* @param short - get 4 channels or more
|
|
57
73
|
*/
|
|
58
|
-
getChannels(
|
|
74
|
+
getChannels(): Array<number>;
|
|
59
75
|
/**
|
|
60
76
|
* Set array of channel indexes.
|
|
61
|
-
*
|
|
62
77
|
*/
|
|
63
|
-
setChannels(
|
|
78
|
+
setChannels(channelList: Array<IChannel>): void;
|
|
64
79
|
/**
|
|
65
80
|
* Retrieve device time from byte array.
|
|
66
81
|
*
|
|
@@ -91,10 +106,12 @@ declare class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
91
106
|
getBatterVoltage(): IBatteryVoltage;
|
|
92
107
|
setBatterVoltage(batteryVoltage: IBatteryVoltage): void;
|
|
93
108
|
getChannelsValuesWithHourDiff(): {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
109
|
+
hours: number;
|
|
110
|
+
startTime: number;
|
|
111
|
+
channelList: Array<IChannelHours>;
|
|
97
112
|
};
|
|
98
|
-
setChannelsValuesWithHourDiff(
|
|
113
|
+
setChannelsValuesWithHourDiff(hours: number, startTime: number, channelList: Array<IChannelHours>): void;
|
|
114
|
+
getChannelsWithAbsoluteValues(): Array<IChannelAbsoluteValue>;
|
|
115
|
+
setChannelsWithAbsoluteValues(channelList: Array<IChannelAbsoluteValue>): void;
|
|
99
116
|
}
|
|
100
117
|
export default CommandBinaryBuffer;
|
|
@@ -4,21 +4,21 @@ const INITIAL_YEAR = 2000;
|
|
|
4
4
|
const MONTH_BIT_SIZE = 4;
|
|
5
5
|
const DATE_BIT_SIZE = 5;
|
|
6
6
|
const YEAR_START_INDEX = 1;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
7
|
+
const UNKNOWN_BATTERY_VOLTAGE = 4095;
|
|
8
|
+
const EXTEND_BIT_MASK = 0x80;
|
|
9
|
+
const LAST_BIT_INDEX = 7;
|
|
10
10
|
/**
|
|
11
11
|
* Command specific byte array manipulation.
|
|
12
12
|
*/
|
|
13
13
|
class CommandBinaryBuffer extends BinaryBuffer {
|
|
14
14
|
getExtendedValue() {
|
|
15
15
|
let value = 0;
|
|
16
|
-
let
|
|
16
|
+
let isByteExtended = true;
|
|
17
17
|
// byte offset
|
|
18
18
|
let position = 0;
|
|
19
|
-
while (
|
|
19
|
+
while (isByteExtended && this.offset <= this.data.byteLength) {
|
|
20
20
|
const byte = this.getUint8();
|
|
21
|
-
|
|
21
|
+
isByteExtended = !!(byte & EXTEND_BIT_MASK);
|
|
22
22
|
value += (byte & 0x7f) << (7 * position);
|
|
23
23
|
++position;
|
|
24
24
|
}
|
|
@@ -32,7 +32,7 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
32
32
|
const data = [];
|
|
33
33
|
let encodedValue = value;
|
|
34
34
|
while (encodedValue) {
|
|
35
|
-
data.push(
|
|
35
|
+
data.push(EXTEND_BIT_MASK | (encodedValue & 0x7f));
|
|
36
36
|
encodedValue >>= 7;
|
|
37
37
|
}
|
|
38
38
|
const lastByte = data.pop();
|
|
@@ -44,41 +44,65 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
46
|
* Get array of channel indexes.
|
|
47
|
-
*
|
|
48
|
-
* @param short - get 4 channels or more
|
|
49
47
|
*/
|
|
50
|
-
getChannels(
|
|
51
|
-
const
|
|
52
|
-
let extended =
|
|
48
|
+
getChannels() {
|
|
49
|
+
const channelList = [];
|
|
50
|
+
let extended = true;
|
|
53
51
|
let channelIndex = 0;
|
|
54
|
-
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
55
53
|
while (extended) {
|
|
56
54
|
const byte = this.getUint8();
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
// original 0b00000001, reverse it to get first - `1`
|
|
56
|
+
const bits = byte.toString(2).padStart(LAST_BIT_INDEX + 1, '0').split('').reverse();
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
|
58
|
+
bits.forEach((bit, index) => {
|
|
59
|
+
const value = Number(bit);
|
|
60
|
+
if (index === LAST_BIT_INDEX) {
|
|
61
|
+
// highest bit in byte
|
|
62
|
+
extended = !!value;
|
|
61
63
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
else {
|
|
65
|
+
if (value) {
|
|
66
|
+
channelList.push(channelIndex);
|
|
67
|
+
}
|
|
68
|
+
++channelIndex;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
64
71
|
}
|
|
65
|
-
return
|
|
72
|
+
return channelList;
|
|
66
73
|
}
|
|
67
74
|
/**
|
|
68
75
|
* Set array of channel indexes.
|
|
69
|
-
*
|
|
70
76
|
*/
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
setChannels(channelList) {
|
|
78
|
+
// sort channels by index
|
|
79
|
+
channelList.sort((a, b) => a.index - b.index);
|
|
80
|
+
// find max channel to detect amount of bytes
|
|
81
|
+
const maxChannel = Math.max(...channelList.map(({ index }) => index));
|
|
82
|
+
const size = (maxChannel - (maxChannel % LAST_BIT_INDEX)) / LAST_BIT_INDEX;
|
|
83
|
+
const data = new Array(size + 1).fill(0);
|
|
84
|
+
let byte = 0;
|
|
85
|
+
data.forEach((_, byteIndex) => {
|
|
86
|
+
// max channel index in one byte - 6
|
|
87
|
+
let channelIndex = byteIndex * LAST_BIT_INDEX;
|
|
88
|
+
const maxChannelIndex = channelIndex + LAST_BIT_INDEX;
|
|
89
|
+
while (channelIndex < maxChannelIndex) {
|
|
90
|
+
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
|
91
|
+
const channel = channelList.find((item => item.index === channelIndex));
|
|
92
|
+
if (channel !== undefined) {
|
|
93
|
+
// set channel bit
|
|
94
|
+
byte |= 1 << (channel.index % LAST_BIT_INDEX);
|
|
95
|
+
}
|
|
96
|
+
++channelIndex;
|
|
97
|
+
}
|
|
98
|
+
// set extended bit if next byte exist
|
|
99
|
+
if (data[byteIndex + 1] !== undefined) {
|
|
100
|
+
byte |= 1 << LAST_BIT_INDEX;
|
|
101
|
+
}
|
|
102
|
+
data[byteIndex] = byte;
|
|
103
|
+
byte = 0;
|
|
79
104
|
});
|
|
80
|
-
data
|
|
81
|
-
data.forEach((byte) => this.setUint8(byte));
|
|
105
|
+
data.forEach((value) => this.setUint8(value));
|
|
82
106
|
}
|
|
83
107
|
/**
|
|
84
108
|
* Retrieve device time from byte array.
|
|
@@ -124,8 +148,10 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
124
148
|
*/
|
|
125
149
|
getHours() {
|
|
126
150
|
const byte = this.getUint8();
|
|
127
|
-
|
|
151
|
+
let hours = (byte & 0xe0) >> 5;
|
|
128
152
|
const hour = byte & 0x1f;
|
|
153
|
+
// TODO: add link to doc
|
|
154
|
+
hours = hours === 0 ? 1 : hours;
|
|
129
155
|
return { hours, hour };
|
|
130
156
|
}
|
|
131
157
|
setHours(hour, hours) {
|
|
@@ -151,10 +177,10 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
151
177
|
low = lowVoltageByte << 4;
|
|
152
178
|
low |= (lowAndHightVoltageByte & 0xf0) >> 4;
|
|
153
179
|
high = ((lowAndHightVoltageByte & 0x0f) << 8) | highVoltageByte;
|
|
154
|
-
if (high ===
|
|
180
|
+
if (high === UNKNOWN_BATTERY_VOLTAGE) {
|
|
155
181
|
high = undefined;
|
|
156
182
|
}
|
|
157
|
-
if (low ===
|
|
183
|
+
if (low === UNKNOWN_BATTERY_VOLTAGE) {
|
|
158
184
|
low = undefined;
|
|
159
185
|
}
|
|
160
186
|
return { low, high };
|
|
@@ -162,10 +188,10 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
162
188
|
setBatterVoltage(batteryVoltage) {
|
|
163
189
|
let { low, high } = batteryVoltage;
|
|
164
190
|
if (low === undefined) {
|
|
165
|
-
low =
|
|
191
|
+
low = UNKNOWN_BATTERY_VOLTAGE;
|
|
166
192
|
}
|
|
167
193
|
if (high === undefined) {
|
|
168
|
-
high =
|
|
194
|
+
high = UNKNOWN_BATTERY_VOLTAGE;
|
|
169
195
|
}
|
|
170
196
|
const lowVoltageByte = (low >> 4) & 0xff;
|
|
171
197
|
const lowAndHighVoltageByte = ((low & 0x0f) << 4) | ((high >> 8) & 0x0f);
|
|
@@ -175,47 +201,56 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
175
201
|
getChannelsValuesWithHourDiff() {
|
|
176
202
|
const date = this.getDate();
|
|
177
203
|
const { hour, hours } = this.getHours();
|
|
178
|
-
const
|
|
179
|
-
const
|
|
180
|
-
const channels = [];
|
|
181
|
-
let hourAmount = hours;
|
|
182
|
-
let value;
|
|
204
|
+
const channels = this.getChannels();
|
|
205
|
+
const channelList = [];
|
|
183
206
|
date.setUTCHours(hour);
|
|
184
|
-
|
|
185
|
-
// TODO: add link to doc
|
|
186
|
-
if (hourAmount === 0) {
|
|
187
|
-
hourAmount = 1;
|
|
188
|
-
}
|
|
189
|
-
for (let channelIndex = 0; channelIndex <= maxChannel; ++channelIndex) {
|
|
207
|
+
channels.forEach(channelIndex => {
|
|
190
208
|
const diff = [];
|
|
191
209
|
// decode hour value for channel
|
|
192
|
-
value = this.getExtendedValue();
|
|
193
|
-
|
|
194
|
-
|
|
210
|
+
const value = this.getExtendedValue();
|
|
211
|
+
for (let diffHour = 0; diffHour < hours; ++diffHour) {
|
|
212
|
+
diff.push(this.getExtendedValue());
|
|
213
|
+
}
|
|
214
|
+
channelList.push({
|
|
195
215
|
value,
|
|
196
216
|
diff,
|
|
197
|
-
index: channelIndex
|
|
198
|
-
seconds: getSecondsFromDate(counterDate),
|
|
199
|
-
date: new Date(counterDate)
|
|
217
|
+
index: channelIndex
|
|
200
218
|
});
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
counterDate.setUTCHours(counterDate.getUTCHours() + diffHour);
|
|
204
|
-
diff.push({ value, hour: diffHour, date: new Date(counterDate), seconds: getSecondsFromDate(counterDate) });
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
return { channels, date, hourAmount };
|
|
219
|
+
});
|
|
220
|
+
return { channelList, hours, startTime: getSecondsFromDate(date) };
|
|
208
221
|
}
|
|
209
|
-
setChannelsValuesWithHourDiff(
|
|
222
|
+
setChannelsValuesWithHourDiff(hours, startTime, channelList) {
|
|
223
|
+
const date = getDateFromSeconds(startTime);
|
|
210
224
|
const hour = date.getUTCHours();
|
|
211
225
|
this.setDate(date);
|
|
212
|
-
this.setHours(hour,
|
|
213
|
-
this.setChannels(
|
|
214
|
-
|
|
226
|
+
this.setHours(hour, hours);
|
|
227
|
+
this.setChannels(channelList);
|
|
228
|
+
channelList.forEach(({ value, diff }) => {
|
|
215
229
|
this.setExtendedValue(value);
|
|
216
|
-
diff.forEach(
|
|
230
|
+
diff.forEach(diffValue => this.setExtendedValue(diffValue));
|
|
217
231
|
});
|
|
218
232
|
}
|
|
233
|
+
getChannelsWithAbsoluteValues() {
|
|
234
|
+
const channels = this.getChannels();
|
|
235
|
+
const channelList = [];
|
|
236
|
+
channels.forEach(channelIndex => {
|
|
237
|
+
channelList.push({
|
|
238
|
+
// IPK_${channelIndex}
|
|
239
|
+
pulseCoefficient: this.getUint8(),
|
|
240
|
+
// day value
|
|
241
|
+
value: this.getExtendedValue(),
|
|
242
|
+
index: channelIndex
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
return channelList;
|
|
246
|
+
}
|
|
247
|
+
setChannelsWithAbsoluteValues(channelList) {
|
|
248
|
+
this.setChannels(channelList);
|
|
249
|
+
for (const { value, pulseCoefficient } of channelList) {
|
|
250
|
+
this.setUint8(pulseCoefficient);
|
|
251
|
+
this.setExtendedValue(value);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
219
254
|
}
|
|
220
255
|
export default CommandBinaryBuffer;
|
|
221
256
|
//# sourceMappingURL=CommandBinaryBuffer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandBinaryBuffer.js","sourceRoot":"","sources":["../src/CommandBinaryBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"CommandBinaryBuffer.js","sourceRoot":"","sources":["../src/CommandBinaryBuffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [[include:commands/downlink/ExAbsArchiveDaysMC.md]]
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
import Command from '../../Command.js';
|
|
7
|
+
/**
|
|
8
|
+
* ExAbsArchiveDaysMC command parameters
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* // request for 1 days archive values from channel #1 from 2023-12-24T00:00:00.000Z or 756691200 seconds since 2000 year
|
|
12
|
+
* {channelList: [0], days: 1, seconds: 756691200}
|
|
13
|
+
*/
|
|
14
|
+
interface IDownlinkExAbsArchiveDaysMCParameters {
|
|
15
|
+
/** amount of days to retrieve */
|
|
16
|
+
days: number;
|
|
17
|
+
/** time */
|
|
18
|
+
startTime: number;
|
|
19
|
+
/** array of channelList indexes */
|
|
20
|
+
channelList: Array<number>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Downlink command
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```js
|
|
27
|
+
* import ExAbsArchiveDaysMC from 'jooby-codec/commands/downlink/ExAbsArchiveDaysMC';
|
|
28
|
+
*
|
|
29
|
+
* const parameters = {channelList: [0], days: 1, seconds: 756691200};
|
|
30
|
+
* const command = new ExAbsArchiveDaysMC(parameters);
|
|
31
|
+
*
|
|
32
|
+
* // output command binary in hex representation
|
|
33
|
+
* console.log(command.toHex());
|
|
34
|
+
* // 1f 0c 04 2f 98 01 01
|
|
35
|
+
* ```
|
|
36
|
+
* [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/ExAbsArchiveDaysMC.md#request)
|
|
37
|
+
*/
|
|
38
|
+
declare class ExAbsArchiveDaysMC extends Command {
|
|
39
|
+
parameters: IDownlinkExAbsArchiveDaysMCParameters;
|
|
40
|
+
constructor(parameters: IDownlinkExAbsArchiveDaysMCParameters);
|
|
41
|
+
static readonly id = 3359;
|
|
42
|
+
static readonly directionType = 1;
|
|
43
|
+
static readonly title = "EX_ABS_ARCHIVE_DAYS_MC";
|
|
44
|
+
static fromBytes(data: Uint8Array): ExAbsArchiveDaysMC;
|
|
45
|
+
toBytes(): Uint8Array;
|
|
46
|
+
}
|
|
47
|
+
export default ExAbsArchiveDaysMC;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* [[include:commands/downlink/
|
|
2
|
+
* [[include:commands/downlink/ExAbsArchiveDaysMC.md]]
|
|
3
3
|
*
|
|
4
4
|
* @packageDocumentation
|
|
5
5
|
*/
|
|
@@ -9,29 +9,29 @@ import { DOWNLINK } from '../../constants/directionTypes.js';
|
|
|
9
9
|
import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
|
|
10
10
|
// TODO: rework extended headers detection
|
|
11
11
|
const COMMAND_ID = 0x0d1f;
|
|
12
|
-
const COMMAND_TITLE = '
|
|
12
|
+
const COMMAND_TITLE = 'EX_ABS_ARCHIVE_DAYS_MC';
|
|
13
13
|
const COMMAND_BODY_SIZE = 4;
|
|
14
14
|
/**
|
|
15
15
|
* Downlink command
|
|
16
16
|
*
|
|
17
17
|
* @example
|
|
18
18
|
* ```js
|
|
19
|
-
* import
|
|
19
|
+
* import ExAbsArchiveDaysMC from 'jooby-codec/commands/downlink/ExAbsArchiveDaysMC';
|
|
20
20
|
*
|
|
21
|
-
* const parameters = {
|
|
22
|
-
* const command = new
|
|
21
|
+
* const parameters = {channelList: [0], days: 1, seconds: 756691200};
|
|
22
|
+
* const command = new ExAbsArchiveDaysMC(parameters);
|
|
23
23
|
*
|
|
24
24
|
* // output command binary in hex representation
|
|
25
25
|
* console.log(command.toHex());
|
|
26
26
|
* // 1f 0c 04 2f 98 01 01
|
|
27
27
|
* ```
|
|
28
|
-
* [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/
|
|
28
|
+
* [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/ExAbsArchiveDaysMC.md#request)
|
|
29
29
|
*/
|
|
30
|
-
class
|
|
30
|
+
class ExAbsArchiveDaysMC extends Command {
|
|
31
31
|
constructor(parameters) {
|
|
32
32
|
super();
|
|
33
33
|
this.parameters = parameters;
|
|
34
|
-
this.parameters.
|
|
34
|
+
this.parameters.channelList = this.parameters.channelList.sort((a, b) => a - b);
|
|
35
35
|
}
|
|
36
36
|
// data - only body (without header)
|
|
37
37
|
static fromBytes(data) {
|
|
@@ -40,26 +40,26 @@ class ExAbsArchiveDaysMul extends Command {
|
|
|
40
40
|
}
|
|
41
41
|
const buffer = new CommandBinaryBuffer(data);
|
|
42
42
|
const date = buffer.getDate();
|
|
43
|
-
const
|
|
44
|
-
const
|
|
43
|
+
const channelList = buffer.getChannels();
|
|
44
|
+
const days = buffer.getUint8();
|
|
45
45
|
if (!buffer.isEmpty) {
|
|
46
46
|
throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
|
|
47
47
|
}
|
|
48
|
-
return new
|
|
48
|
+
return new ExAbsArchiveDaysMC({ channelList, days, startTime: getSecondsFromDate(date) });
|
|
49
49
|
}
|
|
50
50
|
// returns full message - header with body
|
|
51
51
|
toBytes() {
|
|
52
|
-
const {
|
|
52
|
+
const { channelList, days, startTime } = this.parameters;
|
|
53
53
|
const buffer = new CommandBinaryBuffer(COMMAND_BODY_SIZE);
|
|
54
|
-
const date = getDateFromSeconds(
|
|
54
|
+
const date = getDateFromSeconds(startTime);
|
|
55
55
|
buffer.setDate(date);
|
|
56
|
-
buffer.setChannels(
|
|
57
|
-
buffer.setUint8(
|
|
56
|
+
buffer.setChannels(channelList.map(index => ({ index })));
|
|
57
|
+
buffer.setUint8(days);
|
|
58
58
|
return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
export default
|
|
65
|
-
//# sourceMappingURL=
|
|
61
|
+
ExAbsArchiveDaysMC.id = COMMAND_ID;
|
|
62
|
+
ExAbsArchiveDaysMC.directionType = DOWNLINK;
|
|
63
|
+
ExAbsArchiveDaysMC.title = COMMAND_TITLE;
|
|
64
|
+
export default ExAbsArchiveDaysMC;
|
|
65
|
+
//# sourceMappingURL=ExAbsArchiveDaysMC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExAbsArchiveDaysMC.js","sourceRoot":"","sources":["../../../src/commands/downlink/ExAbsArchiveDaysMC.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAA+B,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAC,QAAQ,EAAC,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAsB3E,0CAA0C;AAC1C,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAC/C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAG5B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,kBAAmB,SAAQ,OAAO;IACpC,YAAqB,UAAiD;QAClE,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAuC;QAGlE,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,CAAC;IAQD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,IAAK,IAAI,CAAC,UAAU,KAAK,iBAAiB,EAAG;YACzC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,wBAAwB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SAChF;QAED,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAE/B,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,kBAAkB,CAAC,EAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC5F,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE3C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAC,KAAK,EAAc,CAAA,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEtB,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AArCe,qBAAE,GAAG,UAAU,CAAC;AAEhB,gCAAa,GAAG,QAAQ,CAAC;AAEzB,wBAAK,GAAG,aAAa,CAAC;AAqC1C,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [[include:commands/downlink/ExAbsArchiveHoursMC.md]]
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
import Command from '../../Command.js';
|
|
7
|
+
/**
|
|
8
|
+
* ExAbsArchiveHoursMC command parameters
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* // request for 2 hours archive values from channel #1 from 2023-12-23T12:00:00.000Z or 756648000 seconds since 2000 year
|
|
12
|
+
* {channelList: [0], hours: 2, seconds: 756648000}
|
|
13
|
+
*/
|
|
14
|
+
interface IDownlinkExAbsArchiveHoursMCParameters {
|
|
15
|
+
/** amount of hours to retrieve */
|
|
16
|
+
hours: number;
|
|
17
|
+
/** time */
|
|
18
|
+
startTime: number;
|
|
19
|
+
/** array of channelList indexes */
|
|
20
|
+
channelList: Array<number>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Downlink command
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```js
|
|
27
|
+
* import ExAbsArchiveHoursMC from 'jooby-codec/commands/downlink/ExAbsArchiveHoursMC';
|
|
28
|
+
*
|
|
29
|
+
* const parameters = {channelList: [0], hours: 0, seconds: 756648000};
|
|
30
|
+
* const command = new ExAbsArchiveHoursMC(parameters);
|
|
31
|
+
*
|
|
32
|
+
* // output command binary in hex representation
|
|
33
|
+
* console.log(command.toHex());
|
|
34
|
+
* // 1f 0c 04 2f 97 0c 01
|
|
35
|
+
* ```
|
|
36
|
+
* [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/ExAbsArchiveHoursMC.md#request)
|
|
37
|
+
*/
|
|
38
|
+
declare class ExAbsArchiveHoursMC extends Command {
|
|
39
|
+
parameters: IDownlinkExAbsArchiveHoursMCParameters;
|
|
40
|
+
constructor(parameters: IDownlinkExAbsArchiveHoursMCParameters);
|
|
41
|
+
static readonly id = 3103;
|
|
42
|
+
static readonly directionType = 1;
|
|
43
|
+
static readonly title = "EX_ABS_ARCHIVE_HOUR_MC";
|
|
44
|
+
static fromBytes(data: Uint8Array): ExAbsArchiveHoursMC;
|
|
45
|
+
toBytes(): Uint8Array;
|
|
46
|
+
}
|
|
47
|
+
export default ExAbsArchiveHoursMC;
|