jooby-codec 1.1.0 → 1.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.
Files changed (113) hide show
  1. package/dist/Command.d.ts +1 -1
  2. package/dist/Command.js +3 -4
  3. package/dist/Command.js.map +1 -1
  4. package/dist/CommandBinaryBuffer.d.ts +37 -0
  5. package/dist/CommandBinaryBuffer.js +51 -2
  6. package/dist/CommandBinaryBuffer.js.map +1 -1
  7. package/dist/UnknownCommand.d.ts +20 -0
  8. package/dist/UnknownCommand.js +22 -0
  9. package/dist/UnknownCommand.js.map +1 -0
  10. package/dist/commands/downlink/CorrectTime2000.d.ts +5 -5
  11. package/dist/commands/downlink/CorrectTime2000.js +6 -5
  12. package/dist/commands/downlink/CorrectTime2000.js.map +1 -1
  13. package/dist/commands/downlink/ExAbsArchiveDaysMul.d.ts +47 -0
  14. package/dist/commands/downlink/ExAbsArchiveDaysMul.js +65 -0
  15. package/dist/commands/downlink/ExAbsArchiveDaysMul.js.map +1 -0
  16. package/dist/commands/downlink/ExAbsArchiveHoursMul.d.ts +47 -0
  17. package/dist/commands/downlink/ExAbsArchiveHoursMul.js +67 -0
  18. package/dist/commands/downlink/ExAbsArchiveHoursMul.js.map +1 -0
  19. package/dist/commands/downlink/GetArchiveDaysMul.d.ts +47 -0
  20. package/dist/commands/downlink/GetArchiveDaysMul.js +64 -0
  21. package/dist/commands/downlink/GetArchiveDaysMul.js.map +1 -0
  22. package/dist/commands/downlink/GetArchiveHoursMul.d.ts +47 -0
  23. package/dist/commands/downlink/GetArchiveHoursMul.js +66 -0
  24. package/dist/commands/downlink/GetArchiveHoursMul.js.map +1 -0
  25. package/dist/commands/downlink/NewStatus.d.ts +1 -1
  26. package/dist/commands/downlink/NewStatus.js +2 -1
  27. package/dist/commands/downlink/NewStatus.js.map +1 -1
  28. package/dist/commands/downlink/SetParameter.d.ts +73 -0
  29. package/dist/commands/downlink/SetParameter.js +136 -0
  30. package/dist/commands/downlink/SetParameter.js.map +1 -0
  31. package/dist/commands/downlink/SetTime2000.d.ts +5 -5
  32. package/dist/commands/downlink/SetTime2000.js +6 -5
  33. package/dist/commands/downlink/SetTime2000.js.map +1 -1
  34. package/dist/commands/downlink/SoftRestart.d.ts +1 -1
  35. package/dist/commands/downlink/SoftRestart.js +2 -1
  36. package/dist/commands/downlink/SoftRestart.js.map +1 -1
  37. package/dist/commands/downlink/index.d.ts +5 -0
  38. package/dist/commands/downlink/index.js +5 -0
  39. package/dist/commands/downlink/index.js.map +1 -1
  40. package/dist/commands/uplink/CorrectTime2000.d.ts +1 -1
  41. package/dist/commands/uplink/CorrectTime2000.js +2 -1
  42. package/dist/commands/uplink/CorrectTime2000.js.map +1 -1
  43. package/dist/commands/uplink/DataDayMul.d.ts +2 -2
  44. package/dist/commands/uplink/DataDayMul.js +6 -5
  45. package/dist/commands/uplink/DataDayMul.js.map +1 -1
  46. package/dist/commands/uplink/DataHourMul.d.ts +1 -1
  47. package/dist/commands/uplink/DataHourMul.js +9 -9
  48. package/dist/commands/uplink/DataHourMul.js.map +1 -1
  49. package/dist/commands/uplink/ExAbsArchiveDaysMul.d.ts +46 -0
  50. package/dist/commands/uplink/ExAbsArchiveDaysMul.js +72 -0
  51. package/dist/commands/uplink/ExAbsArchiveDaysMul.js.map +1 -0
  52. package/dist/commands/uplink/ExAbsArchiveHoursMul.d.ts +11 -0
  53. package/dist/commands/uplink/ExAbsArchiveHoursMul.js +93 -0
  54. package/dist/commands/uplink/ExAbsArchiveHoursMul.js.map +1 -0
  55. package/dist/commands/uplink/ExAbsDayMul.d.ts +1 -1
  56. package/dist/commands/uplink/ExAbsDayMul.js +5 -5
  57. package/dist/commands/uplink/ExAbsDayMul.js.map +1 -1
  58. package/dist/commands/uplink/ExAbsHourMul.d.ts +1 -1
  59. package/dist/commands/uplink/ExAbsHourMul.js +7 -7
  60. package/dist/commands/uplink/ExAbsHourMul.js.map +1 -1
  61. package/dist/commands/uplink/GetArchiveDaysMul.d.ts +73 -0
  62. package/dist/commands/uplink/GetArchiveDaysMul.js +97 -0
  63. package/dist/commands/uplink/GetArchiveDaysMul.js.map +1 -0
  64. package/dist/commands/uplink/GetArchiveHoursMul.d.ts +28 -0
  65. package/dist/commands/uplink/GetArchiveHoursMul.js +51 -0
  66. package/dist/commands/uplink/GetArchiveHoursMul.js.map +1 -0
  67. package/dist/commands/uplink/GetCurrentMul.d.ts +1 -1
  68. package/dist/commands/uplink/GetCurrentMul.js +2 -1
  69. package/dist/commands/uplink/GetCurrentMul.js.map +1 -1
  70. package/dist/commands/uplink/LastEvent.d.ts +116 -0
  71. package/dist/commands/uplink/LastEvent.js +164 -0
  72. package/dist/commands/uplink/LastEvent.js.map +1 -0
  73. package/dist/commands/uplink/NewEvent.d.ts +3 -3
  74. package/dist/commands/uplink/NewEvent.js +8 -7
  75. package/dist/commands/uplink/NewEvent.js.map +1 -1
  76. package/dist/commands/uplink/NewStatus.d.ts +1 -1
  77. package/dist/commands/uplink/NewStatus.js +3 -2
  78. package/dist/commands/uplink/NewStatus.js.map +1 -1
  79. package/dist/commands/uplink/SetTime2000.d.ts +1 -1
  80. package/dist/commands/uplink/SetTime2000.js +2 -1
  81. package/dist/commands/uplink/SetTime2000.js.map +1 -1
  82. package/dist/commands/uplink/SoftRestart.d.ts +1 -1
  83. package/dist/commands/uplink/SoftRestart.js +2 -1
  84. package/dist/commands/uplink/SoftRestart.js.map +1 -1
  85. package/dist/commands/uplink/Time2000.d.ts +5 -5
  86. package/dist/commands/uplink/Time2000.js +6 -5
  87. package/dist/commands/uplink/Time2000.js.map +1 -1
  88. package/dist/commands/uplink/index.d.ts +5 -0
  89. package/dist/commands/uplink/index.js +5 -0
  90. package/dist/commands/uplink/index.js.map +1 -1
  91. package/dist/constants/deviceParameters.d.ts +15 -0
  92. package/dist/constants/deviceParameters.js +16 -0
  93. package/dist/constants/deviceParameters.js.map +1 -0
  94. package/dist/constants/directionTypes.d.ts +3 -0
  95. package/dist/constants/directionTypes.js +4 -0
  96. package/dist/constants/directionTypes.js.map +1 -0
  97. package/dist/constants/hardwareTypes.d.ts +56 -0
  98. package/dist/constants/hardwareTypes.js +56 -14
  99. package/dist/constants/hardwareTypes.js.map +1 -1
  100. package/dist/constants/index.d.ts +2 -0
  101. package/dist/constants/index.js +2 -0
  102. package/dist/constants/index.js.map +1 -1
  103. package/dist/utils/bitSet.d.ts +40 -0
  104. package/dist/utils/bitSet.js +53 -0
  105. package/dist/utils/bitSet.js.map +1 -0
  106. package/dist/utils/message.d.ts +2 -5
  107. package/dist/utils/message.js +30 -30
  108. package/dist/utils/message.js.map +1 -1
  109. package/dist/utils/time.d.ts +2 -2
  110. package/dist/utils/time.js +2 -2
  111. package/dist/utils/time.js.map +1 -1
  112. package/package.json +2 -2
  113. package/readme.md +3 -3
package/dist/Command.d.ts CHANGED
@@ -4,7 +4,7 @@ import { IHexFormatOptions } from './utils/getHexFromBytes.js';
4
4
  */
5
5
  declare class Command {
6
6
  static id: number;
7
- static isUplink: boolean;
7
+ static directionType: unknown;
8
8
  static title: string;
9
9
  parameters: unknown;
10
10
  /** Get command ID in hex format. */
package/dist/Command.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as header from './utils/header.js';
2
2
  import getHexFromBytes from './utils/getHexFromBytes.js';
3
+ import { UPLINK } from './constants/directionTypes.js';
3
4
  /**
4
5
  * private
5
6
  */
@@ -10,7 +11,8 @@ class Command {
10
11
  }
11
12
  /** Get command ID and title. */
12
13
  static getName() {
13
- return `${this.isUplink ? 'uplink' : 'downlink'} command ${this.getId()}:${this.title}`;
14
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
15
+ return `${this.directionType === UPLINK ? 'uplink' : 'downlink'} command ${this.getId()}:${this.title}`;
14
16
  }
15
17
  /**
16
18
  * Parse header with body.
@@ -78,8 +80,5 @@ class Command {
78
80
  return JSON.stringify(this.getParameters());
79
81
  }
80
82
  }
81
- Command.id = 0;
82
- Command.isUplink = false;
83
- Command.title = '';
84
83
  export default Command;
85
84
  //# sourceMappingURL=Command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Command.js","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,eAAoC,MAAM,4BAA4B,CAAC;AAG9E;;GAEG;AACH,MAAM,OAAO;IAST,oCAAoC;IACpC,MAAM,CAAC,KAAK;QACR,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACxD,CAAC;IAED,gCAAgC;IAChC,MAAM,CAAC,OAAO;QACV,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,YAAY,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5F,CAAC;IAGD;;;;;;;;OAQG;IACH,kEAAkE;IAClE,iDAAiD;IAEjD,4EAA4E;IAC5E,2BAA2B;IAC3B,2IAA2I;IAC3I,aAAa;IACb,QAAQ;IAER,0DAA0D;IAE1D,wBAAwB;IACxB,2BAA2B;IAC3B,sEAAsE;IACtE,aAAa;IACb,QAAQ;IAER,oEAAoE;IACpE,gCAAgC;IAChC,4FAA4F;IAC5F,SAAS;IACT,IAAI;IAGJ;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAG,EAAU,EAAE,WAAwB;QACjD,MAAM,aAAa,GAAG,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAErD,IAAK,WAAW,IAAI,aAAa,EAAG;YAChC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;YAErE,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAE/C,OAAO,UAAU,CAAC;SACrB;QAED,8BAA8B;QAC9B,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,8BAA8B;IAC9B,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,kDAAkD;IAClD,OAAO;QACH,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAG,UAA6B,EAAE;QACnC,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,MAAM;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAChD,CAAC;;AAjGM,UAAE,GAAG,CAAC,CAAC;AAEP,gBAAQ,GAAG,KAAK,CAAC;AAEjB,aAAK,GAAG,EAAE,CAAC;AAiGtB,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Command.js","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,eAAoC,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAC,MAAM,EAAC,MAAM,+BAA+B,CAAC;AAGrD;;GAEG;AACH,MAAM,OAAO;IAST,oCAAoC;IACpC,MAAM,CAAC,KAAK;QACR,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACxD,CAAC;IAED,gCAAgC;IAChC,MAAM,CAAC,OAAO;QACV,uEAAuE;QACvE,OAAO,GAAG,IAAI,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,YAAY,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5G,CAAC;IAGD;;;;;;;;OAQG;IACH,kEAAkE;IAClE,iDAAiD;IAEjD,4EAA4E;IAC5E,2BAA2B;IAC3B,2IAA2I;IAC3I,aAAa;IACb,QAAQ;IAER,0DAA0D;IAE1D,wBAAwB;IACxB,2BAA2B;IAC3B,sEAAsE;IACtE,aAAa;IACb,QAAQ;IAER,oEAAoE;IACpE,gCAAgC;IAChC,4FAA4F;IAC5F,SAAS;IACT,IAAI;IAGJ;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAG,EAAU,EAAE,WAAwB;QACjD,MAAM,aAAa,GAAG,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAErD,IAAK,WAAW,IAAI,aAAa,EAAG;YAChC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;YAErE,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAE/C,OAAO,UAAU,CAAC;SACrB;QAED,8BAA8B;QAC9B,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,8BAA8B;IAC9B,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,kDAAkD;IAClD,OAAO;QACH,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAG,UAA6B,EAAE;QACnC,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,MAAM;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAChD,CAAC;CACJ;AAGD,eAAe,OAAO,CAAC"}
@@ -13,6 +13,37 @@ 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
+ export interface IChannel {
26
+ /**
27
+ * Channel number.
28
+ */
29
+ index: number;
30
+ /**
31
+ * Pulse counter or absolute value of device channel.
32
+ */
33
+ value: number;
34
+ /**
35
+ * Values differences between hours.
36
+ */
37
+ diff: Array<IHourDiff>;
38
+ /**
39
+ * time
40
+ */
41
+ seconds: number | undefined;
42
+ /**
43
+ * Normal date in UTC.
44
+ */
45
+ date: Date | undefined;
46
+ }
16
47
  /**
17
48
  * Command specific byte array manipulation.
18
49
  */
@@ -59,5 +90,11 @@ declare class CommandBinaryBuffer extends BinaryBuffer {
59
90
  setTime(value: number): void;
60
91
  getBatterVoltage(): IBatteryVoltage;
61
92
  setBatterVoltage(batteryVoltage: IBatteryVoltage): void;
93
+ getChannelsValuesWithHourDiff(): {
94
+ hourAmount: number;
95
+ channels: Array<IChannel>;
96
+ date: Date;
97
+ };
98
+ setChannelsValuesWithHourDiff(hourAmount: number, date: Date, channels: Array<IChannel>): void;
62
99
  }
63
100
  export default CommandBinaryBuffer;
@@ -1,5 +1,5 @@
1
1
  import BinaryBuffer from './BinaryBuffer.js';
2
- import { getDateFromSeconds } from './utils/time.js';
2
+ import { getDateFromSeconds, getSecondsFromDate } from './utils/time.js';
3
3
  const INITIAL_YEAR = 2000;
4
4
  const MONTH_BIT_SIZE = 4;
5
5
  const DATE_BIT_SIZE = 5;
@@ -129,7 +129,12 @@ class CommandBinaryBuffer extends BinaryBuffer {
129
129
  return { hours, hour };
130
130
  }
131
131
  setHours(hour, hours) {
132
- this.setUint8(((hours & 0x07) << 5) | (hour & 0x1f));
132
+ let hourAmount = hours;
133
+ // TODO: add link to doc
134
+ if (hourAmount === 1) {
135
+ hourAmount = 0;
136
+ }
137
+ this.setUint8(((hourAmount & 0x07) << 5) | (hour & 0x1f));
133
138
  }
134
139
  getTime() {
135
140
  return this.getUint32(false);
@@ -167,6 +172,50 @@ class CommandBinaryBuffer extends BinaryBuffer {
167
172
  const highVoltageByte = high & 0xff;
168
173
  [lowVoltageByte, lowAndHighVoltageByte, highVoltageByte].forEach(byte => this.setUint8(byte));
169
174
  }
175
+ getChannelsValuesWithHourDiff() {
176
+ const date = this.getDate();
177
+ 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;
183
+ 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) {
190
+ const diff = [];
191
+ // decode hour value for channel
192
+ value = this.getExtendedValue();
193
+ counterDate.setTime(date.getTime());
194
+ channels.push({
195
+ value,
196
+ diff,
197
+ index: channelIndex,
198
+ seconds: getSecondsFromDate(counterDate),
199
+ date: new Date(counterDate)
200
+ });
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 };
208
+ }
209
+ setChannelsValuesWithHourDiff(hourAmount, date, channels) {
210
+ const hour = date.getUTCHours();
211
+ this.setDate(date);
212
+ this.setHours(hour, hourAmount);
213
+ this.setChannels(channels);
214
+ channels.forEach(({ value, diff }) => {
215
+ this.setExtendedValue(value);
216
+ diff.forEach(({ value: diffValue }) => this.setExtendedValue(diffValue));
217
+ });
218
+ }
170
219
  }
171
220
  export default CommandBinaryBuffer;
172
221
  //# 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,20 @@
1
+ import Command from './Command.js';
2
+ /**
3
+ * UnknownCommand command parameters.
4
+ */
5
+ interface IUnknownCommandParameters {
6
+ /** command id */
7
+ id: number;
8
+ /** raw data */
9
+ data: Uint8Array;
10
+ }
11
+ /**
12
+ * Unknown command.
13
+ */
14
+ declare class UnknownCommand extends Command {
15
+ parameters: IUnknownCommandParameters;
16
+ constructor(parameters: IUnknownCommandParameters);
17
+ static fromBytes(data: Uint8Array, id: number): UnknownCommand;
18
+ toBytes(): Uint8Array;
19
+ }
20
+ export default UnknownCommand;
@@ -0,0 +1,22 @@
1
+ import Command from './Command.js';
2
+ /**
3
+ * Unknown command.
4
+ */
5
+ class UnknownCommand extends Command {
6
+ constructor(parameters) {
7
+ super();
8
+ this.parameters = parameters;
9
+ }
10
+ // data - only body (without header)
11
+ static fromBytes(data, id) {
12
+ const parameters = { id, data };
13
+ return new UnknownCommand(parameters);
14
+ }
15
+ // returns full message - header with body
16
+ toBytes() {
17
+ const { id, data } = this.parameters;
18
+ return Command.toBytes(id, data);
19
+ }
20
+ }
21
+ export default UnknownCommand;
22
+ //# sourceMappingURL=UnknownCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnknownCommand.js","sourceRoot":"","sources":["../src/UnknownCommand.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAcnC;;GAEG;AACH,MAAM,cAAe,SAAQ,OAAO;IAChC,YAAqB,UAAqC;QACtD,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAA2B;IAE1D,CAAC;IAED,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB,EAAE,EAAU;QAC3C,MAAM,UAAU,GAA8B,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC;QAEzD,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,EAAE,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAEnC,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;CACJ;AAGD,eAAe,cAAc,CAAC"}
@@ -9,16 +9,16 @@ import Command from '../../Command.js';
9
9
  *
10
10
  * @example
11
11
  * // 120 seconds to the past
12
- * {sequenceNumber: 45, time: -120}
12
+ * {sequenceNumber: 45, seconds: -120}
13
13
  */
14
14
  interface IDownlinkCorrectTime2000Parameters {
15
- /** sequence Number */
15
+ /** unique time manipulation operation number */
16
16
  sequenceNumber: number;
17
17
  /**
18
18
  * seconds
19
19
  * range: [-127..+127]
20
20
  */
21
- time: number;
21
+ seconds: number;
22
22
  }
23
23
  /**
24
24
  * Downlink command.
@@ -28,7 +28,7 @@ interface IDownlinkCorrectTime2000Parameters {
28
28
  * import CorrectTime2000 from 'jooby-codec/commands/downlink/CorrectTime2000';
29
29
  *
30
30
  * // 120 seconds to the past
31
- * const parameters = {sequenceNumber: 45, time: -120};
31
+ * const parameters = {sequenceNumber: 45, seconds: -120};
32
32
  * const command = new CorrectTime2000(parameters);
33
33
  *
34
34
  * // output command binary in hex representation
@@ -41,7 +41,7 @@ declare class CorrectTime2000 extends Command {
41
41
  parameters: IDownlinkCorrectTime2000Parameters;
42
42
  constructor(parameters: IDownlinkCorrectTime2000Parameters);
43
43
  static readonly id = 12;
44
- static readonly isUplink = false;
44
+ static readonly directionType = 1;
45
45
  static readonly title = "CORRECT_TIME_2000";
46
46
  static fromBytes(data: Uint8Array): CorrectTime2000;
47
47
  toBytes(): Uint8Array;
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import Command from '../../Command.js';
7
7
  import BinaryBuffer from '../../BinaryBuffer.js';
8
+ import { DOWNLINK } from '../../constants/directionTypes.js';
8
9
  const COMMAND_ID = 0x0c;
9
10
  const COMMAND_TITLE = 'CORRECT_TIME_2000';
10
11
  const COMMAND_BODY_SIZE = 2;
@@ -16,7 +17,7 @@ const COMMAND_BODY_SIZE = 2;
16
17
  * import CorrectTime2000 from 'jooby-codec/commands/downlink/CorrectTime2000';
17
18
  *
18
19
  * // 120 seconds to the past
19
- * const parameters = {sequenceNumber: 45, time: -120};
20
+ * const parameters = {sequenceNumber: 45, seconds: -120};
20
21
  * const command = new CorrectTime2000(parameters);
21
22
  *
22
23
  * // output command binary in hex representation
@@ -38,7 +39,7 @@ class CorrectTime2000 extends Command {
38
39
  const buffer = new BinaryBuffer(data, false);
39
40
  const parameters = {
40
41
  sequenceNumber: buffer.getUint8(),
41
- time: buffer.getInt8()
42
+ seconds: buffer.getInt8()
42
43
  };
43
44
  if (!buffer.isEmpty) {
44
45
  throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
@@ -47,15 +48,15 @@ class CorrectTime2000 extends Command {
47
48
  }
48
49
  // returns full message - header with body
49
50
  toBytes() {
50
- const { sequenceNumber, time } = this.parameters;
51
+ const { sequenceNumber, seconds } = this.parameters;
51
52
  const buffer = new BinaryBuffer(COMMAND_BODY_SIZE, false);
52
53
  buffer.setUint8(sequenceNumber);
53
- buffer.setInt8(time);
54
+ buffer.setInt8(seconds);
54
55
  return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
55
56
  }
56
57
  }
57
58
  CorrectTime2000.id = COMMAND_ID;
58
- CorrectTime2000.isUplink = false;
59
+ CorrectTime2000.directionType = DOWNLINK;
59
60
  CorrectTime2000.title = COMMAND_TITLE;
60
61
  export default CorrectTime2000;
61
62
  //# sourceMappingURL=CorrectTime2000.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CorrectTime2000.js","sourceRoot":"","sources":["../../../src/commands/downlink/CorrectTime2000.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,YAAY,MAAM,uBAAuB,CAAC;AAGjD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAqB5B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,eAAgB,SAAQ,OAAO;IACjC,YAAqB,UAA8C;QAC/D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAoC;IAEnE,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,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG;YACf,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE;YACjC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE;SACzB,CAAC;QAEF,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,cAAc,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAE1D,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAErB,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAlCe,kBAAE,GAAG,UAAU,CAAC;AAEhB,wBAAQ,GAAG,KAAK,CAAC;AAEjB,qBAAK,GAAG,aAAa,CAAC;AAkC1C,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"CorrectTime2000.js","sourceRoot":"","sources":["../../../src/commands/downlink/CorrectTime2000.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAC,MAAM,mCAAmC,CAAC;AAG3D,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAqB5B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,eAAgB,SAAQ,OAAO;IACjC,YAAqB,UAA8C;QAC/D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAoC;IAEnE,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,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG;YACf,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;SAC5B,CAAC;QAEF,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,cAAc,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAE1D,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExB,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAlCe,kBAAE,GAAG,UAAU,CAAC;AAEhB,6BAAa,GAAG,QAAQ,CAAC;AAEzB,qBAAK,GAAG,aAAa,CAAC;AAkC1C,eAAe,eAAe,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * [[include:commands/downlink/ExAbsArchiveDaysMul.md]]
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import Command from '../../Command.js';
7
+ /**
8
+ * ExAbsArchiveDaysMul 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
+ * {channels: [0], dayAmount: 1, seconds: 756691200}
13
+ */
14
+ interface IDownlinkExAbsArchiveDaysMulParameters {
15
+ /** amount of days to retrieve */
16
+ dayAmount: number;
17
+ /** time */
18
+ seconds: number;
19
+ /** array of channels indexes */
20
+ channels: Array<number>;
21
+ }
22
+ /**
23
+ * Downlink command
24
+ *
25
+ * @example
26
+ * ```js
27
+ * import ExAbsArchiveDaysMul from 'jooby-codec/commands/downlink/ExAbsArchiveDaysMul';
28
+ *
29
+ * const parameters = {channels: [0], dayAmount: 1, seconds: 756691200};
30
+ * const command = new ExAbsArchiveDaysMul(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/ExAbsArchiveDaysMul.md#request)
37
+ */
38
+ declare class ExAbsArchiveDaysMul extends Command {
39
+ parameters: IDownlinkExAbsArchiveDaysMulParameters;
40
+ constructor(parameters: IDownlinkExAbsArchiveDaysMulParameters);
41
+ static readonly id = 3359;
42
+ static readonly directionType = 1;
43
+ static readonly title = "EX_ABS_ARCHIVE_DAYS_MUL";
44
+ static fromBytes(data: Uint8Array): ExAbsArchiveDaysMul;
45
+ toBytes(): Uint8Array;
46
+ }
47
+ export default ExAbsArchiveDaysMul;
@@ -0,0 +1,65 @@
1
+ /**
2
+ * [[include:commands/downlink/ExAbsArchiveDaysMul.md]]
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import Command from '../../Command.js';
7
+ import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
8
+ import { DOWNLINK } from '../../constants/directionTypes.js';
9
+ import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
10
+ // TODO: rework extended headers detection
11
+ const COMMAND_ID = 0x0d1f;
12
+ const COMMAND_TITLE = 'EX_ABS_ARCHIVE_DAYS_MUL';
13
+ const COMMAND_BODY_SIZE = 4;
14
+ /**
15
+ * Downlink command
16
+ *
17
+ * @example
18
+ * ```js
19
+ * import ExAbsArchiveDaysMul from 'jooby-codec/commands/downlink/ExAbsArchiveDaysMul';
20
+ *
21
+ * const parameters = {channels: [0], dayAmount: 1, seconds: 756691200};
22
+ * const command = new ExAbsArchiveDaysMul(parameters);
23
+ *
24
+ * // output command binary in hex representation
25
+ * console.log(command.toHex());
26
+ * // 1f 0c 04 2f 98 01 01
27
+ * ```
28
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/ExAbsArchiveDaysMul.md#request)
29
+ */
30
+ class ExAbsArchiveDaysMul extends Command {
31
+ constructor(parameters) {
32
+ super();
33
+ this.parameters = parameters;
34
+ this.parameters.channels = this.parameters.channels.sort((a, b) => a - b);
35
+ }
36
+ // data - only body (without header)
37
+ static fromBytes(data) {
38
+ if (data.byteLength !== COMMAND_BODY_SIZE) {
39
+ throw new Error(`${this.getName()}. Wrong buffer size: ${data.byteLength}.`);
40
+ }
41
+ const buffer = new CommandBinaryBuffer(data);
42
+ const date = buffer.getDate();
43
+ const channels = buffer.getChannels(true);
44
+ const dayAmount = buffer.getUint8();
45
+ if (!buffer.isEmpty) {
46
+ throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
47
+ }
48
+ return new ExAbsArchiveDaysMul({ channels, dayAmount, seconds: getSecondsFromDate(date) });
49
+ }
50
+ // returns full message - header with body
51
+ toBytes() {
52
+ const { channels, dayAmount, seconds } = this.parameters;
53
+ const buffer = new CommandBinaryBuffer(COMMAND_BODY_SIZE);
54
+ const date = getDateFromSeconds(seconds);
55
+ buffer.setDate(date);
56
+ buffer.setChannels(channels);
57
+ buffer.setUint8(dayAmount);
58
+ return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
59
+ }
60
+ }
61
+ ExAbsArchiveDaysMul.id = COMMAND_ID;
62
+ ExAbsArchiveDaysMul.directionType = DOWNLINK;
63
+ ExAbsArchiveDaysMul.title = COMMAND_TITLE;
64
+ export default ExAbsArchiveDaysMul;
65
+ //# sourceMappingURL=ExAbsArchiveDaysMul.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExAbsArchiveDaysMul.js","sourceRoot":"","sources":["../../../src/commands/downlink/ExAbsArchiveDaysMul.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,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,yBAAyB,CAAC;AAChD,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAG5B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,mBAAoB,SAAQ,OAAO;IACrC,YAAqB,UAAkD;QACnE,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAwC;QAGnE,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,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,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEpC,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,mBAAmB,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC7F,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE3B,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AArCe,sBAAE,GAAG,UAAU,CAAC;AAEhB,iCAAa,GAAG,QAAQ,CAAC;AAEzB,yBAAK,GAAG,aAAa,CAAC;AAqC1C,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * [[include:commands/downlink/ExAbsArchiveHoursMul.md]]
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import Command from '../../Command.js';
7
+ /**
8
+ * ExAbsArchiveHoursMul 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
+ * {channels: [0], hourAmount: 2, seconds: 756648000}
13
+ */
14
+ interface IDownlinkExAbsArchiveHoursMulParameters {
15
+ /** amount of hours to retrieve */
16
+ hourAmount: number;
17
+ /** time */
18
+ seconds: number;
19
+ /** array of channels indexes */
20
+ channels: Array<number>;
21
+ }
22
+ /**
23
+ * Downlink command
24
+ *
25
+ * @example
26
+ * ```js
27
+ * import ExAbsArchiveHoursMul from 'jooby-codec/commands/downlink/ExAbsArchiveHoursMul';
28
+ *
29
+ * const parameters = {channels: [0], hourAmount: 0, seconds: 756648000};
30
+ * const command = new ExAbsArchiveHoursMul(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/ExAbsArchiveHoursMul.md#request)
37
+ */
38
+ declare class ExAbsArchiveHoursMul extends Command {
39
+ parameters: IDownlinkExAbsArchiveHoursMulParameters;
40
+ constructor(parameters: IDownlinkExAbsArchiveHoursMulParameters);
41
+ static readonly id = 3103;
42
+ static readonly directionType = 1;
43
+ static readonly title = "EX_ABS_ARCHIVE_HOUR_MUL";
44
+ static fromBytes(data: Uint8Array): ExAbsArchiveHoursMul;
45
+ toBytes(): Uint8Array;
46
+ }
47
+ export default ExAbsArchiveHoursMul;
@@ -0,0 +1,67 @@
1
+ /**
2
+ * [[include:commands/downlink/ExAbsArchiveHoursMul.md]]
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import Command from '../../Command.js';
7
+ import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
8
+ import { DOWNLINK } from '../../constants/directionTypes.js';
9
+ import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
10
+ // TODO: rework extended headers detection
11
+ const COMMAND_ID = 0x0c1f;
12
+ const COMMAND_TITLE = 'EX_ABS_ARCHIVE_HOUR_MUL';
13
+ const COMMAND_BODY_SIZE = 4;
14
+ /**
15
+ * Downlink command
16
+ *
17
+ * @example
18
+ * ```js
19
+ * import ExAbsArchiveHoursMul from 'jooby-codec/commands/downlink/ExAbsArchiveHoursMul';
20
+ *
21
+ * const parameters = {channels: [0], hourAmount: 0, seconds: 756648000};
22
+ * const command = new ExAbsArchiveHoursMul(parameters);
23
+ *
24
+ * // output command binary in hex representation
25
+ * console.log(command.toHex());
26
+ * // 1f 0c 04 2f 97 0c 01
27
+ * ```
28
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/ExAbsArchiveHoursMul.md#request)
29
+ */
30
+ class ExAbsArchiveHoursMul extends Command {
31
+ constructor(parameters) {
32
+ super();
33
+ this.parameters = parameters;
34
+ this.parameters.channels = this.parameters.channels.sort((a, b) => a - b);
35
+ }
36
+ // data - only body (without header)
37
+ static fromBytes(data) {
38
+ if (data.byteLength !== COMMAND_BODY_SIZE) {
39
+ throw new Error(`${this.getName()}. Wrong buffer size: ${data.byteLength}.`);
40
+ }
41
+ const buffer = new CommandBinaryBuffer(data);
42
+ const date = buffer.getDate();
43
+ const { hour, hours: hourAmount } = buffer.getHours();
44
+ const channels = buffer.getChannels(true);
45
+ date.setUTCHours(hour);
46
+ if (!buffer.isEmpty) {
47
+ throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
48
+ }
49
+ return new ExAbsArchiveHoursMul({ channels, hourAmount, seconds: getSecondsFromDate(date) });
50
+ }
51
+ // returns full message - header with body
52
+ toBytes() {
53
+ const { channels, hourAmount, seconds } = this.parameters;
54
+ const buffer = new CommandBinaryBuffer(COMMAND_BODY_SIZE);
55
+ const date = getDateFromSeconds(seconds);
56
+ const hour = date.getUTCHours();
57
+ buffer.setDate(date);
58
+ buffer.setHours(hour, hourAmount);
59
+ buffer.setChannels(channels);
60
+ return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
61
+ }
62
+ }
63
+ ExAbsArchiveHoursMul.id = COMMAND_ID;
64
+ ExAbsArchiveHoursMul.directionType = DOWNLINK;
65
+ ExAbsArchiveHoursMul.title = COMMAND_TITLE;
66
+ export default ExAbsArchiveHoursMul;
67
+ //# sourceMappingURL=ExAbsArchiveHoursMul.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExAbsArchiveHoursMul.js","sourceRoot":"","sources":["../../../src/commands/downlink/ExAbsArchiveHoursMul.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,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,yBAAyB,CAAC;AAChD,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAG5B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,oBAAqB,SAAQ,OAAO;IACtC,YAAqB,UAAmD;QACpE,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAyC;QAGpE,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,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,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEvB,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,oBAAoB,CAAC,EAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC/F,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE7B,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAxCe,uBAAE,GAAG,UAAU,CAAC;AAEhB,kCAAa,GAAG,QAAQ,CAAC;AAEzB,0BAAK,GAAG,aAAa,CAAC;AAwC1C,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * [[include:commands/downlink/GetArchiveDaysMul.md]]
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import Command from '../../Command.js';
7
+ /**
8
+ * GetArchiveDaysMul 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
+ * {channels: [0], dayAmount: 1, seconds: 756691200}
13
+ */
14
+ interface IDownlinkGetArchiveDaysMulParameters {
15
+ /** amount of days to retrieve */
16
+ dayAmount: number;
17
+ /** time */
18
+ seconds: number;
19
+ /** array of channels indexes */
20
+ channels: Array<number>;
21
+ }
22
+ /**
23
+ * Downlink command
24
+ *
25
+ * @example
26
+ * ```js
27
+ * import GetArchiveDaysMul from 'jooby-codec/commands/downlink/GetArchiveDaysMul';
28
+ *
29
+ * const parameters = {channels: [0], dayAmount: 1, seconds: 756691200};
30
+ * const command = new GetArchiveDaysMul(parameters);
31
+ *
32
+ * // output command binary in hex representation
33
+ * console.log(command.toHex());
34
+ * // 1b 04 2f 98 01 01
35
+ * ```
36
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetArchiveDaysMul.md#request)
37
+ */
38
+ declare class GetArchiveDaysMul extends Command {
39
+ parameters: IDownlinkGetArchiveDaysMulParameters;
40
+ constructor(parameters: IDownlinkGetArchiveDaysMulParameters);
41
+ static readonly id = 27;
42
+ static readonly directionType = 1;
43
+ static readonly title = "GET_ARCHIVE_DAYS_MUL";
44
+ static fromBytes(data: Uint8Array): GetArchiveDaysMul;
45
+ toBytes(): Uint8Array;
46
+ }
47
+ export default GetArchiveDaysMul;