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.
Files changed (95) hide show
  1. package/dist/CommandBinaryBuffer.d.ts +41 -24
  2. package/dist/CommandBinaryBuffer.js +100 -65
  3. package/dist/CommandBinaryBuffer.js.map +1 -1
  4. package/dist/commands/downlink/ExAbsArchiveDaysMC.d.ts +47 -0
  5. package/dist/commands/downlink/{ExAbsArchiveDaysMul.js → ExAbsArchiveDaysMC.js} +20 -20
  6. package/dist/commands/downlink/ExAbsArchiveDaysMC.js.map +1 -0
  7. package/dist/commands/downlink/ExAbsArchiveHoursMC.d.ts +47 -0
  8. package/dist/commands/downlink/{ExAbsArchiveHoursMul.js → ExAbsArchiveHoursMC.js} +20 -20
  9. package/dist/commands/downlink/ExAbsArchiveHoursMC.js.map +1 -0
  10. package/dist/commands/downlink/ExAbsCurrentMC.d.ts +30 -0
  11. package/dist/commands/downlink/ExAbsCurrentMC.js +43 -0
  12. package/dist/commands/downlink/ExAbsCurrentMC.js.map +1 -0
  13. package/dist/commands/downlink/GetArchiveDaysMC.d.ts +47 -0
  14. package/dist/commands/downlink/{GetArchiveDaysMul.js → GetArchiveDaysMC.js} +20 -20
  15. package/dist/commands/downlink/GetArchiveDaysMC.js.map +1 -0
  16. package/dist/commands/downlink/GetArchiveHoursMC.d.ts +47 -0
  17. package/dist/commands/downlink/{GetArchiveHoursMul.js → GetArchiveHoursMC.js} +20 -20
  18. package/dist/commands/downlink/GetArchiveHoursMC.js.map +1 -0
  19. package/dist/commands/downlink/SetParameter.d.ts +8 -2
  20. package/dist/commands/downlink/SetParameter.js +11 -0
  21. package/dist/commands/downlink/SetParameter.js.map +1 -1
  22. package/dist/commands/downlink/index.d.ts +5 -4
  23. package/dist/commands/downlink/index.js +5 -4
  24. package/dist/commands/downlink/index.js.map +1 -1
  25. package/dist/commands/uplink/DataDayMC.d.ts +20 -0
  26. package/dist/commands/uplink/{DataDayMul.js → DataDayMC.js} +17 -17
  27. package/dist/commands/uplink/DataDayMC.js.map +1 -0
  28. package/dist/commands/uplink/DataHourMC.d.ts +17 -0
  29. package/dist/commands/uplink/DataHourMC.js +55 -0
  30. package/dist/commands/uplink/DataHourMC.js.map +1 -0
  31. package/dist/commands/uplink/ExAbsArchiveDaysMC.d.ts +17 -0
  32. package/dist/commands/uplink/ExAbsArchiveDaysMC.js +50 -0
  33. package/dist/commands/uplink/ExAbsArchiveDaysMC.js.map +1 -0
  34. package/dist/commands/uplink/ExAbsArchiveHoursMC.d.ts +17 -0
  35. package/dist/commands/uplink/ExAbsArchiveHoursMC.js +57 -0
  36. package/dist/commands/uplink/ExAbsArchiveHoursMC.js.map +1 -0
  37. package/dist/commands/uplink/ExAbsCurrentMC.d.ts +15 -0
  38. package/dist/commands/uplink/ExAbsCurrentMC.js +30 -0
  39. package/dist/commands/uplink/ExAbsCurrentMC.js.map +1 -0
  40. package/dist/commands/uplink/ExAbsDayMC.d.ts +16 -0
  41. package/dist/commands/uplink/ExAbsDayMC.js +34 -0
  42. package/dist/commands/uplink/ExAbsDayMC.js.map +1 -0
  43. package/dist/commands/uplink/ExAbsHourMC.d.ts +63 -0
  44. package/dist/commands/uplink/ExAbsHourMC.js +87 -0
  45. package/dist/commands/uplink/ExAbsHourMC.js.map +1 -0
  46. package/dist/commands/uplink/GetArchiveDaysMC.d.ts +49 -0
  47. package/dist/commands/uplink/GetArchiveDaysMC.js +71 -0
  48. package/dist/commands/uplink/GetArchiveDaysMC.js.map +1 -0
  49. package/dist/commands/uplink/GetArchiveHoursMC.d.ts +68 -0
  50. package/dist/commands/uplink/GetArchiveHoursMC.js +71 -0
  51. package/dist/commands/uplink/GetArchiveHoursMC.js.map +1 -0
  52. package/dist/commands/uplink/GetCurrentMC.d.ts +18 -0
  53. package/dist/commands/uplink/GetCurrentMC.js +36 -0
  54. package/dist/commands/uplink/GetCurrentMC.js.map +1 -0
  55. package/dist/commands/uplink/index.d.ts +10 -9
  56. package/dist/commands/uplink/index.js +10 -9
  57. package/dist/commands/uplink/index.js.map +1 -1
  58. package/dist/constants/deviceParameters.d.ts +5 -1
  59. package/dist/constants/deviceParameters.js +5 -1
  60. package/dist/constants/deviceParameters.js.map +1 -1
  61. package/package.json +1 -1
  62. package/dist/commands/downlink/ExAbsArchiveDaysMul.d.ts +0 -47
  63. package/dist/commands/downlink/ExAbsArchiveDaysMul.js.map +0 -1
  64. package/dist/commands/downlink/ExAbsArchiveHoursMul.d.ts +0 -47
  65. package/dist/commands/downlink/ExAbsArchiveHoursMul.js.map +0 -1
  66. package/dist/commands/downlink/GetArchiveDaysMul.d.ts +0 -47
  67. package/dist/commands/downlink/GetArchiveDaysMul.js.map +0 -1
  68. package/dist/commands/downlink/GetArchiveHoursMul.d.ts +0 -47
  69. package/dist/commands/downlink/GetArchiveHoursMul.js.map +0 -1
  70. package/dist/commands/uplink/DataDayMul.d.ts +0 -20
  71. package/dist/commands/uplink/DataDayMul.js.map +0 -1
  72. package/dist/commands/uplink/DataHourMul.d.ts +0 -11
  73. package/dist/commands/uplink/DataHourMul.js +0 -77
  74. package/dist/commands/uplink/DataHourMul.js.map +0 -1
  75. package/dist/commands/uplink/ExAbsArchiveDaysMul.d.ts +0 -46
  76. package/dist/commands/uplink/ExAbsArchiveDaysMul.js +0 -72
  77. package/dist/commands/uplink/ExAbsArchiveDaysMul.js.map +0 -1
  78. package/dist/commands/uplink/ExAbsArchiveHoursMul.d.ts +0 -11
  79. package/dist/commands/uplink/ExAbsArchiveHoursMul.js +0 -93
  80. package/dist/commands/uplink/ExAbsArchiveHoursMul.js.map +0 -1
  81. package/dist/commands/uplink/ExAbsDayMul.d.ts +0 -11
  82. package/dist/commands/uplink/ExAbsDayMul.js +0 -60
  83. package/dist/commands/uplink/ExAbsDayMul.js.map +0 -1
  84. package/dist/commands/uplink/ExAbsHourMul.d.ts +0 -11
  85. package/dist/commands/uplink/ExAbsHourMul.js +0 -92
  86. package/dist/commands/uplink/ExAbsHourMul.js.map +0 -1
  87. package/dist/commands/uplink/GetArchiveDaysMul.d.ts +0 -73
  88. package/dist/commands/uplink/GetArchiveDaysMul.js +0 -97
  89. package/dist/commands/uplink/GetArchiveDaysMul.js.map +0 -1
  90. package/dist/commands/uplink/GetArchiveHoursMul.d.ts +0 -28
  91. package/dist/commands/uplink/GetArchiveHoursMul.js +0 -51
  92. package/dist/commands/uplink/GetArchiveHoursMul.js.map +0 -1
  93. package/dist/commands/uplink/GetCurrentMul.d.ts +0 -24
  94. package/dist/commands/uplink/GetCurrentMul.js +0 -36
  95. 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
- * Values differences between hours.
51
+ * values by days
36
52
  */
37
- diff: Array<IHourDiff>;
53
+ dayList: Array<number>;
38
54
  /**
39
- * time
55
+ * Channel pulse coefficient - IPK in bytes.
40
56
  */
41
- seconds: number | undefined;
57
+ pulseCoefficient: number;
58
+ }
59
+ export interface IChannelArchiveDays extends IChannel {
42
60
  /**
43
- * Normal date in UTC.
61
+ * values by days
44
62
  */
45
- date: Date | undefined;
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(short: boolean): Array<number>;
74
+ getChannels(): Array<number>;
59
75
  /**
60
76
  * Set array of channel indexes.
61
- *
62
77
  */
63
- setChannels(channels: Array<any>): void;
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
- hourAmount: number;
95
- channels: Array<IChannel>;
96
- date: Date;
109
+ hours: number;
110
+ startTime: number;
111
+ channelList: Array<IChannelHours>;
97
112
  };
98
- setChannelsValuesWithHourDiff(hourAmount: number, date: Date, channels: Array<IChannel>): void;
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 CHANNELS_FULL_MASK = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40];
8
- const CHANNELS_SHORT_MASK = [0x01, 0x02, 0x04, 0x08];
9
- const UNKNOWN_BATTER_VOLTAGE = 4095;
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 extended = 1;
16
+ let isByteExtended = true;
17
17
  // byte offset
18
18
  let position = 0;
19
- while (extended && this.offset <= this.data.byteLength) {
19
+ while (isByteExtended && this.offset <= this.data.byteLength) {
20
20
  const byte = this.getUint8();
21
- extended = byte & 0x80;
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(0x80 | (encodedValue & 0x7f));
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(short) {
51
- const channels = [];
52
- let extended = 1;
48
+ getChannels() {
49
+ const channelList = [];
50
+ let extended = true;
53
51
  let channelIndex = 0;
54
- const MASK = short ? CHANNELS_SHORT_MASK : CHANNELS_FULL_MASK;
52
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
55
53
  while (extended) {
56
54
  const byte = this.getUint8();
57
- extended = byte & 0x80;
58
- for (let index = 0; index < MASK.length; index++) {
59
- if (byte & MASK[index]) {
60
- channels.push((channelIndex * 7) + index);
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
- ++channelIndex;
64
+ else {
65
+ if (value) {
66
+ channelList.push(channelIndex);
67
+ }
68
+ ++channelIndex;
69
+ }
70
+ });
64
71
  }
65
- return channels.sort((a, b) => a - b);
72
+ return channelList;
66
73
  }
67
74
  /**
68
75
  * Set array of channel indexes.
69
- *
70
76
  */
71
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
72
- setChannels(channels) {
73
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-return
74
- const maxChannel = Math.max(...channels.map(({ index }) => index));
75
- const size = (Math.ceil(maxChannel / 7) + (maxChannel % 7)) ? 1 : 0;
76
- const data = Array(size).fill(0x80);
77
- channels.forEach((_, channelIndex) => {
78
- data[Math.floor(channelIndex / 7)] |= CHANNELS_FULL_MASK[channelIndex % 7];
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[data.length - 1] &= 0x7f;
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
- const hours = (byte & 0xe0) >> 5;
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 === UNKNOWN_BATTER_VOLTAGE) {
180
+ if (high === UNKNOWN_BATTERY_VOLTAGE) {
155
181
  high = undefined;
156
182
  }
157
- if (low === UNKNOWN_BATTER_VOLTAGE) {
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 = UNKNOWN_BATTER_VOLTAGE;
191
+ low = UNKNOWN_BATTERY_VOLTAGE;
166
192
  }
167
193
  if (high === undefined) {
168
- high = UNKNOWN_BATTER_VOLTAGE;
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 channelArray = this.getChannels(true);
179
- const maxChannel = Math.max.apply(null, channelArray);
180
- const channels = [];
181
- let hourAmount = hours;
182
- let value;
204
+ const channels = this.getChannels();
205
+ const channelList = [];
183
206
  date.setUTCHours(hour);
184
- const counterDate = new Date(date);
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
- counterDate.setTime(date.getTime());
194
- channels.push({
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
- for (let diffHour = 0; diffHour < hourAmount; ++diffHour) {
202
- value = this.getExtendedValue();
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(hourAmount, date, channels) {
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, hourAmount);
213
- this.setChannels(channels);
214
- channels.forEach(({ value, diff }) => {
226
+ this.setHours(hour, hours);
227
+ this.setChannels(channelList);
228
+ channelList.forEach(({ value, diff }) => {
215
229
  this.setExtendedValue(value);
216
- diff.forEach(({ value: diffValue }) => this.setExtendedValue(diffValue));
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":"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"}
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/ExAbsArchiveDaysMul.md]]
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 = 'EX_ABS_ARCHIVE_DAYS_MUL';
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 ExAbsArchiveDaysMul from 'jooby-codec/commands/downlink/ExAbsArchiveDaysMul';
19
+ * import ExAbsArchiveDaysMC from 'jooby-codec/commands/downlink/ExAbsArchiveDaysMC';
20
20
  *
21
- * const parameters = {channels: [0], dayAmount: 1, seconds: 756691200};
22
- * const command = new ExAbsArchiveDaysMul(parameters);
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/ExAbsArchiveDaysMul.md#request)
28
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/ExAbsArchiveDaysMC.md#request)
29
29
  */
30
- class ExAbsArchiveDaysMul extends Command {
30
+ class ExAbsArchiveDaysMC extends Command {
31
31
  constructor(parameters) {
32
32
  super();
33
33
  this.parameters = parameters;
34
- this.parameters.channels = this.parameters.channels.sort((a, b) => a - b);
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 channels = buffer.getChannels(true);
44
- const dayAmount = buffer.getUint8();
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 ExAbsArchiveDaysMul({ channels, dayAmount, seconds: getSecondsFromDate(date) });
48
+ return new ExAbsArchiveDaysMC({ channelList, days, startTime: getSecondsFromDate(date) });
49
49
  }
50
50
  // returns full message - header with body
51
51
  toBytes() {
52
- const { channels, dayAmount, seconds } = this.parameters;
52
+ const { channelList, days, startTime } = this.parameters;
53
53
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_SIZE);
54
- const date = getDateFromSeconds(seconds);
54
+ const date = getDateFromSeconds(startTime);
55
55
  buffer.setDate(date);
56
- buffer.setChannels(channels);
57
- buffer.setUint8(dayAmount);
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
- ExAbsArchiveDaysMul.id = COMMAND_ID;
62
- ExAbsArchiveDaysMul.directionType = DOWNLINK;
63
- ExAbsArchiveDaysMul.title = COMMAND_TITLE;
64
- export default ExAbsArchiveDaysMul;
65
- //# sourceMappingURL=ExAbsArchiveDaysMul.js.map
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;