jooby-codec 1.4.0 → 1.6.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 (74) hide show
  1. package/dist/Command.d.ts +13 -4
  2. package/dist/Command.js +7 -3
  3. package/dist/Command.js.map +1 -1
  4. package/dist/CommandBinaryBuffer.d.ts +53 -23
  5. package/dist/CommandBinaryBuffer.js +111 -58
  6. package/dist/CommandBinaryBuffer.js.map +1 -1
  7. package/dist/commands/downlink/ExAbsArchiveDaysMC.d.ts +2 -2
  8. package/dist/commands/downlink/ExAbsArchiveDaysMC.js +6 -6
  9. package/dist/commands/downlink/ExAbsArchiveDaysMC.js.map +1 -1
  10. package/dist/commands/downlink/ExAbsArchiveHoursMC.d.ts +2 -2
  11. package/dist/commands/downlink/ExAbsArchiveHoursMC.js +6 -6
  12. package/dist/commands/downlink/ExAbsArchiveHoursMC.js.map +1 -1
  13. package/dist/commands/downlink/ExAbsCurrentMC.d.ts +30 -0
  14. package/dist/commands/downlink/ExAbsCurrentMC.js +43 -0
  15. package/dist/commands/downlink/ExAbsCurrentMC.js.map +1 -0
  16. package/dist/commands/downlink/GetArchiveDaysMC.d.ts +2 -2
  17. package/dist/commands/downlink/GetArchiveDaysMC.js +6 -6
  18. package/dist/commands/downlink/GetArchiveDaysMC.js.map +1 -1
  19. package/dist/commands/downlink/GetArchiveHoursMC.d.ts +2 -2
  20. package/dist/commands/downlink/GetArchiveHoursMC.js +6 -6
  21. package/dist/commands/downlink/GetArchiveHoursMC.js.map +1 -1
  22. package/dist/commands/downlink/GetCurrentMC.d.ts +25 -0
  23. package/dist/commands/downlink/GetCurrentMC.js +41 -0
  24. package/dist/commands/downlink/GetCurrentMC.js.map +1 -0
  25. package/dist/commands/downlink/SetParameter.d.ts +7 -1
  26. package/dist/commands/downlink/SetParameter.js +11 -0
  27. package/dist/commands/downlink/SetParameter.js.map +1 -1
  28. package/dist/commands/downlink/index.d.ts +2 -0
  29. package/dist/commands/downlink/index.js +2 -0
  30. package/dist/commands/downlink/index.js.map +1 -1
  31. package/dist/commands/uplink/DataDayMC.d.ts +2 -2
  32. package/dist/commands/uplink/DataDayMC.js +8 -8
  33. package/dist/commands/uplink/DataDayMC.js.map +1 -1
  34. package/dist/commands/uplink/DataHourMC.d.ts +10 -4
  35. package/dist/commands/uplink/DataHourMC.js +13 -35
  36. package/dist/commands/uplink/DataHourMC.js.map +1 -1
  37. package/dist/commands/uplink/ExAbsArchiveDaysMC.d.ts +9 -38
  38. package/dist/commands/uplink/ExAbsArchiveDaysMC.js +16 -38
  39. package/dist/commands/uplink/ExAbsArchiveDaysMC.js.map +1 -1
  40. package/dist/commands/uplink/ExAbsArchiveHoursMC.d.ts +13 -7
  41. package/dist/commands/uplink/ExAbsArchiveHoursMC.js +24 -60
  42. package/dist/commands/uplink/ExAbsArchiveHoursMC.js.map +1 -1
  43. package/dist/commands/uplink/ExAbsCurrentMC.d.ts +15 -0
  44. package/dist/commands/uplink/ExAbsCurrentMC.js +30 -0
  45. package/dist/commands/uplink/ExAbsCurrentMC.js.map +1 -0
  46. package/dist/commands/uplink/ExAbsDayMC.d.ts +8 -3
  47. package/dist/commands/uplink/ExAbsDayMC.js +10 -36
  48. package/dist/commands/uplink/ExAbsDayMC.js.map +1 -1
  49. package/dist/commands/uplink/ExAbsHourMC.d.ts +58 -6
  50. package/dist/commands/uplink/ExAbsHourMC.js +45 -50
  51. package/dist/commands/uplink/ExAbsHourMC.js.map +1 -1
  52. package/dist/commands/uplink/GetArchiveDaysMC.d.ts +5 -29
  53. package/dist/commands/uplink/GetArchiveDaysMC.js +11 -37
  54. package/dist/commands/uplink/GetArchiveDaysMC.js.map +1 -1
  55. package/dist/commands/uplink/GetArchiveHoursMC.d.ts +47 -7
  56. package/dist/commands/uplink/GetArchiveHoursMC.js +43 -23
  57. package/dist/commands/uplink/GetArchiveHoursMC.js.map +1 -1
  58. package/dist/commands/uplink/GetCurrentMC.d.ts +25 -9
  59. package/dist/commands/uplink/GetCurrentMC.js +59 -3
  60. package/dist/commands/uplink/GetCurrentMC.js.map +1 -1
  61. package/dist/commands/uplink/NewEvent.d.ts +1 -1
  62. package/dist/commands/uplink/NewEvent.js +1 -1
  63. package/dist/commands/uplink/index.d.ts +1 -0
  64. package/dist/commands/uplink/index.js +1 -0
  65. package/dist/commands/uplink/index.js.map +1 -1
  66. package/dist/constants/deviceParameters.d.ts +5 -1
  67. package/dist/constants/deviceParameters.js +5 -1
  68. package/dist/constants/deviceParameters.js.map +1 -1
  69. package/dist/utils/bitSet.d.ts +2 -2
  70. package/dist/utils/bitSet.js +2 -2
  71. package/dist/utils/message.d.ts +8 -0
  72. package/dist/utils/message.js +1 -1
  73. package/dist/utils/message.js.map +1 -1
  74. package/package.json +1 -1
package/dist/Command.d.ts CHANGED
@@ -1,22 +1,31 @@
1
1
  import { IHexFormatOptions } from './utils/getHexFromBytes.js';
2
+ export interface ICommandExample {
3
+ name: string;
4
+ parameters?: object;
5
+ hardwareType?: number;
6
+ hex: {
7
+ header: string;
8
+ body: string;
9
+ };
10
+ }
11
+ export type TCommandExampleList = Array<ICommandExample>;
2
12
  /**
3
13
  * private
4
14
  */
5
- declare class Command {
15
+ declare abstract class Command {
6
16
  static id: number;
7
17
  static directionType: unknown;
8
18
  static title: string;
19
+ static examples: TCommandExampleList;
9
20
  parameters: unknown;
10
21
  /** Get command ID in hex format. */
11
22
  static getId(): string;
12
23
  /** Get command ID and title. */
13
24
  static getName(): string;
14
25
  /**
15
- * Parse header with body.
16
- * Should not be used directly, only from Command child.
26
+ * Parse body without header.
17
27
  *
18
28
  * @param data command in binary form
19
- * @param commandsById
20
29
  *
21
30
  * @returns command instance
22
31
  */
package/dist/Command.js CHANGED
@@ -15,14 +15,18 @@ class Command {
15
15
  return `${this.directionType === UPLINK ? 'uplink' : 'downlink'} command ${this.getId()}:${this.title}`;
16
16
  }
17
17
  /**
18
- * Parse header with body.
19
- * Should not be used directly, only from Command child.
18
+ * Parse body without header.
20
19
  *
21
20
  * @param data command in binary form
22
- * @param commandsById
23
21
  *
24
22
  * @returns command instance
25
23
  */
24
+ // static fromBytes ( data: Uint8Array ): Command {
25
+ // throw new Error('not implemented!');
26
+ // }
27
+ // static fromHex ( data: string ): Command {
28
+ // return this.fromBytes(getBytesFromHex(data));
29
+ // }
26
30
  // static fromBytes ( data: Uint8Array, commandsById: any ): any {
27
31
  // const headerData = header.fromBytes(data);
28
32
  // if ( headerData.headerSize + headerData.commandSize < data.length ) {
@@ -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;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"}
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;AAiBrD;;GAEG;AACH,MAAe,OAAO;IAWlB,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;;;;;;OAMG;IACH,mDAAmD;IACnD,2CAA2C;IAC3C,IAAI;IAEJ,6CAA6C;IAC7C,oDAAoD;IACpD,IAAI;IAEJ,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,54 +13,82 @@ 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.
49
67
  */
50
68
  declare class CommandBinaryBuffer extends BinaryBuffer {
69
+ /**
70
+ * Get amount of bytes necessary to store an extended value.
71
+ *
72
+ * @param bits - amount of bits of original value
73
+ *
74
+ * @example
75
+ * ```js
76
+ * const bits = (16384).toString(2).length;
77
+ * const bytes = CommandBinaryBuffer.getExtendedValueSize(bits);
78
+ * // 16384 normally is stored in 2 bytes but for extended value 3 bytes are required
79
+ * ```
80
+ */
81
+ static getExtendedValueSize(bits: number): number;
51
82
  getExtendedValue(): number;
52
83
  setExtendedValue(value: number): void;
53
84
  /**
54
85
  * Get array of channel indexes.
55
- *
56
- * @param short - get 4 channelList or more
57
86
  */
58
- getChannels(short: boolean): Array<number>;
87
+ getChannels(): Array<number>;
59
88
  /**
60
89
  * Set array of channel indexes.
61
- *
62
90
  */
63
- setChannels(channelList: Array<any>): void;
91
+ setChannels(channelList: Array<IChannel>): void;
64
92
  /**
65
93
  * Retrieve device time from byte array.
66
94
  *
@@ -92,9 +120,11 @@ declare class CommandBinaryBuffer extends BinaryBuffer {
92
120
  setBatterVoltage(batteryVoltage: IBatteryVoltage): void;
93
121
  getChannelsValuesWithHourDiff(): {
94
122
  hours: number;
95
- channelList: Array<IChannel>;
96
- date: Date;
123
+ startTime: number;
124
+ channelList: Array<IChannelHours>;
97
125
  };
98
- setChannelsValuesWithHourDiff(hours: number, date: Date, channelList: Array<IChannel>): void;
126
+ setChannelsValuesWithHourDiff(hours: number, startTime: number, channelList: Array<IChannelHours>): void;
127
+ getChannelsWithAbsoluteValues(): Array<IChannelAbsoluteValue>;
128
+ setChannelsWithAbsoluteValues(channelList: Array<IChannelAbsoluteValue>): void;
99
129
  }
100
130
  export default CommandBinaryBuffer;
@@ -4,21 +4,39 @@ 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
+ /**
15
+ * Get amount of bytes necessary to store an extended value.
16
+ *
17
+ * @param bits - amount of bits of original value
18
+ *
19
+ * @example
20
+ * ```js
21
+ * const bits = (16384).toString(2).length;
22
+ * const bytes = CommandBinaryBuffer.getExtendedValueSize(bits);
23
+ * // 16384 normally is stored in 2 bytes but for extended value 3 bytes are required
24
+ * ```
25
+ */
26
+ static getExtendedValueSize(bits) {
27
+ const extBits = Math.ceil(bits / 7);
28
+ const totalBits = bits + extBits;
29
+ const extBytes = Math.ceil(totalBits / 8);
30
+ return extBytes;
31
+ }
14
32
  getExtendedValue() {
15
33
  let value = 0;
16
- let extended = 1;
34
+ let isByteExtended = true;
17
35
  // byte offset
18
36
  let position = 0;
19
- while (extended && this.offset <= this.data.byteLength) {
37
+ while (isByteExtended && this.offset <= this.data.byteLength) {
20
38
  const byte = this.getUint8();
21
- extended = byte & 0x80;
39
+ isByteExtended = !!(byte & EXTEND_BIT_MASK);
22
40
  value += (byte & 0x7f) << (7 * position);
23
41
  ++position;
24
42
  }
@@ -32,7 +50,7 @@ class CommandBinaryBuffer extends BinaryBuffer {
32
50
  const data = [];
33
51
  let encodedValue = value;
34
52
  while (encodedValue) {
35
- data.push(0x80 | (encodedValue & 0x7f));
53
+ data.push(EXTEND_BIT_MASK | (encodedValue & 0x7f));
36
54
  encodedValue >>= 7;
37
55
  }
38
56
  const lastByte = data.pop();
@@ -44,41 +62,65 @@ class CommandBinaryBuffer extends BinaryBuffer {
44
62
  }
45
63
  /**
46
64
  * Get array of channel indexes.
47
- *
48
- * @param short - get 4 channelList or more
49
65
  */
50
- getChannels(short) {
66
+ getChannels() {
51
67
  const channelList = [];
52
- let extended = 1;
68
+ let extended = true;
53
69
  let channelIndex = 0;
54
- const MASK = short ? CHANNELS_SHORT_MASK : CHANNELS_FULL_MASK;
70
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
55
71
  while (extended) {
56
72
  const byte = this.getUint8();
57
- extended = byte & 0x80;
58
- for (let index = 0; index < MASK.length; index++) {
59
- if (byte & MASK[index]) {
60
- channelList.push((channelIndex * 7) + index);
73
+ // original 0b00000001, reverse it to get first - `1`
74
+ const bits = byte.toString(2).padStart(LAST_BIT_INDEX + 1, '0').split('').reverse();
75
+ // eslint-disable-next-line @typescript-eslint/no-loop-func
76
+ bits.forEach((bit, index) => {
77
+ const value = Number(bit);
78
+ if (index === LAST_BIT_INDEX) {
79
+ // highest bit in byte
80
+ extended = !!value;
61
81
  }
62
- }
63
- ++channelIndex;
82
+ else {
83
+ if (value) {
84
+ channelList.push(channelIndex);
85
+ }
86
+ ++channelIndex;
87
+ }
88
+ });
64
89
  }
65
- return channelList.sort((a, b) => a - b);
90
+ return channelList;
66
91
  }
67
92
  /**
68
93
  * Set array of channel indexes.
69
- *
70
94
  */
71
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
72
95
  setChannels(channelList) {
73
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-return
96
+ // sort channels by index
97
+ channelList.sort((a, b) => a.index - b.index);
98
+ // find max channel to detect amount of bytes
74
99
  const maxChannel = Math.max(...channelList.map(({ index }) => index));
75
- const size = (Math.ceil(maxChannel / 7) + (maxChannel % 7)) ? 1 : 0;
76
- const data = Array(size).fill(0x80);
77
- channelList.forEach((_, channelIndex) => {
78
- data[Math.floor(channelIndex / 7)] |= CHANNELS_FULL_MASK[channelIndex % 7];
100
+ const size = (maxChannel - (maxChannel % LAST_BIT_INDEX)) / LAST_BIT_INDEX;
101
+ const data = new Array(size + 1).fill(0);
102
+ let byte = 0;
103
+ data.forEach((_, byteIndex) => {
104
+ // max channel index in one byte - 6
105
+ let channelIndex = byteIndex * LAST_BIT_INDEX;
106
+ const maxChannelIndex = channelIndex + LAST_BIT_INDEX;
107
+ while (channelIndex < maxChannelIndex) {
108
+ // eslint-disable-next-line @typescript-eslint/no-loop-func
109
+ const channel = channelList.find((item => item.index === channelIndex));
110
+ if (channel !== undefined) {
111
+ // set channel bit
112
+ byte |= 1 << (channel.index % LAST_BIT_INDEX);
113
+ }
114
+ ++channelIndex;
115
+ }
116
+ // set extended bit if next byte exist
117
+ if (data[byteIndex + 1] !== undefined) {
118
+ byte |= 1 << LAST_BIT_INDEX;
119
+ }
120
+ data[byteIndex] = byte;
121
+ byte = 0;
79
122
  });
80
- data[data.length - 1] &= 0x7f;
81
- data.forEach((byte) => this.setUint8(byte));
123
+ data.forEach((value) => this.setUint8(value));
82
124
  }
83
125
  /**
84
126
  * Retrieve device time from byte array.
@@ -124,8 +166,10 @@ class CommandBinaryBuffer extends BinaryBuffer {
124
166
  */
125
167
  getHours() {
126
168
  const byte = this.getUint8();
127
- const hours = (byte & 0xe0) >> 5;
169
+ let hours = (byte & 0xe0) >> 5;
128
170
  const hour = byte & 0x1f;
171
+ // TODO: add link to doc
172
+ hours = hours === 0 ? 1 : hours;
129
173
  return { hours, hour };
130
174
  }
131
175
  setHours(hour, hours) {
@@ -151,10 +195,10 @@ class CommandBinaryBuffer extends BinaryBuffer {
151
195
  low = lowVoltageByte << 4;
152
196
  low |= (lowAndHightVoltageByte & 0xf0) >> 4;
153
197
  high = ((lowAndHightVoltageByte & 0x0f) << 8) | highVoltageByte;
154
- if (high === UNKNOWN_BATTER_VOLTAGE) {
198
+ if (high === UNKNOWN_BATTERY_VOLTAGE) {
155
199
  high = undefined;
156
200
  }
157
- if (low === UNKNOWN_BATTER_VOLTAGE) {
201
+ if (low === UNKNOWN_BATTERY_VOLTAGE) {
158
202
  low = undefined;
159
203
  }
160
204
  return { low, high };
@@ -162,10 +206,10 @@ class CommandBinaryBuffer extends BinaryBuffer {
162
206
  setBatterVoltage(batteryVoltage) {
163
207
  let { low, high } = batteryVoltage;
164
208
  if (low === undefined) {
165
- low = UNKNOWN_BATTER_VOLTAGE;
209
+ low = UNKNOWN_BATTERY_VOLTAGE;
166
210
  }
167
211
  if (high === undefined) {
168
- high = UNKNOWN_BATTER_VOLTAGE;
212
+ high = UNKNOWN_BATTERY_VOLTAGE;
169
213
  }
170
214
  const lowVoltageByte = (low >> 4) & 0xff;
171
215
  const lowAndHighVoltageByte = ((low & 0x0f) << 4) | ((high >> 8) & 0x0f);
@@ -174,47 +218,56 @@ class CommandBinaryBuffer extends BinaryBuffer {
174
218
  }
175
219
  getChannelsValuesWithHourDiff() {
176
220
  const date = this.getDate();
177
- const { hour, hours: hourAmount } = this.getHours();
178
- const channelArray = this.getChannels(true);
179
- const maxChannel = Math.max.apply(null, channelArray);
221
+ const { hour, hours } = this.getHours();
222
+ const channels = this.getChannels();
180
223
  const channelList = [];
181
- let hours = hourAmount;
182
- let value;
183
224
  date.setUTCHours(hour);
184
- const counterDate = new Date(date);
185
- // TODO: add link to doc
186
- if (hours === 0) {
187
- hours = 1;
188
- }
189
- for (let channelIndex = 0; channelIndex <= maxChannel; ++channelIndex) {
225
+ channels.forEach(channelIndex => {
190
226
  const diff = [];
191
227
  // decode hour value for channel
192
- value = this.getExtendedValue();
193
- counterDate.setTime(date.getTime());
228
+ const value = this.getExtendedValue();
229
+ for (let diffHour = 0; diffHour < hours; ++diffHour) {
230
+ diff.push(this.getExtendedValue());
231
+ }
194
232
  channelList.push({
195
233
  value,
196
234
  diff,
197
- index: channelIndex,
198
- seconds: getSecondsFromDate(counterDate),
199
- date: new Date(counterDate)
235
+ index: channelIndex
200
236
  });
201
- for (let diffHour = 0; diffHour < hours; ++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 { channelList, date, hours };
237
+ });
238
+ return { channelList, hours, startTime: getSecondsFromDate(date) };
208
239
  }
209
- setChannelsValuesWithHourDiff(hours, date, channelList) {
240
+ setChannelsValuesWithHourDiff(hours, startTime, channelList) {
241
+ const date = getDateFromSeconds(startTime);
210
242
  const hour = date.getUTCHours();
211
243
  this.setDate(date);
212
244
  this.setHours(hour, hours);
213
245
  this.setChannels(channelList);
214
246
  channelList.forEach(({ value, diff }) => {
215
247
  this.setExtendedValue(value);
216
- diff.forEach(({ value: diffValue }) => this.setExtendedValue(diffValue));
248
+ diff.forEach(diffValue => this.setExtendedValue(diffValue));
249
+ });
250
+ }
251
+ getChannelsWithAbsoluteValues() {
252
+ const channels = this.getChannels();
253
+ const channelList = [];
254
+ channels.forEach(channelIndex => {
255
+ channelList.push({
256
+ // IPK_${channelIndex}
257
+ pulseCoefficient: this.getUint8(),
258
+ // day value
259
+ value: this.getExtendedValue(),
260
+ index: channelIndex
261
+ });
217
262
  });
263
+ return channelList;
264
+ }
265
+ setChannelsWithAbsoluteValues(channelList) {
266
+ this.setChannels(channelList);
267
+ for (const { value, pulseCoefficient } of channelList) {
268
+ this.setUint8(pulseCoefficient);
269
+ this.setExtendedValue(value);
270
+ }
218
271
  }
219
272
  }
220
273
  export default CommandBinaryBuffer;
@@ -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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"}
@@ -15,7 +15,7 @@ interface IDownlinkExAbsArchiveDaysMCParameters {
15
15
  /** amount of days to retrieve */
16
16
  days: number;
17
17
  /** time */
18
- seconds: number;
18
+ startTime: number;
19
19
  /** array of channelList indexes */
20
20
  channelList: Array<number>;
21
21
  }
@@ -40,7 +40,7 @@ declare class ExAbsArchiveDaysMC extends Command {
40
40
  constructor(parameters: IDownlinkExAbsArchiveDaysMCParameters);
41
41
  static readonly id = 3359;
42
42
  static readonly directionType = 1;
43
- static readonly title = "EX_ABS_ARCHIVE_DAYS_MUL";
43
+ static readonly title = "EX_ABS_ARCHIVE_DAYS_MC";
44
44
  static fromBytes(data: Uint8Array): ExAbsArchiveDaysMC;
45
45
  toBytes(): Uint8Array;
46
46
  }
@@ -9,7 +9,7 @@ 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
@@ -40,20 +40,20 @@ class ExAbsArchiveDaysMC extends Command {
40
40
  }
41
41
  const buffer = new CommandBinaryBuffer(data);
42
42
  const date = buffer.getDate();
43
- const channelList = buffer.getChannels(true);
43
+ const channelList = buffer.getChannels();
44
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 ExAbsArchiveDaysMC({ channelList, days, 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 { channelList, days, 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(channelList);
56
+ buffer.setChannels(channelList.map(index => ({ index })));
57
57
  buffer.setUint8(days);
58
58
  return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
59
59
  }
@@ -1 +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,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,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,CAAC,IAAI,CAAC,CAAC;QAC7C,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,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC1F,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACrD,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,WAAW,CAAC,CAAC;QAChC,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"}
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"}
@@ -15,7 +15,7 @@ interface IDownlinkExAbsArchiveHoursMCParameters {
15
15
  /** amount of hours to retrieve */
16
16
  hours: number;
17
17
  /** time */
18
- seconds: number;
18
+ startTime: number;
19
19
  /** array of channelList indexes */
20
20
  channelList: Array<number>;
21
21
  }
@@ -40,7 +40,7 @@ declare class ExAbsArchiveHoursMC extends Command {
40
40
  constructor(parameters: IDownlinkExAbsArchiveHoursMCParameters);
41
41
  static readonly id = 3103;
42
42
  static readonly directionType = 1;
43
- static readonly title = "EX_ABS_ARCHIVE_HOUR_MUL";
43
+ static readonly title = "EX_ABS_ARCHIVE_HOUR_MC";
44
44
  static fromBytes(data: Uint8Array): ExAbsArchiveHoursMC;
45
45
  toBytes(): Uint8Array;
46
46
  }
@@ -9,7 +9,7 @@ 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 = 0x0c1f;
12
- const COMMAND_TITLE = 'EX_ABS_ARCHIVE_HOUR_MUL';
12
+ const COMMAND_TITLE = 'EX_ABS_ARCHIVE_HOUR_MC';
13
13
  const COMMAND_BODY_SIZE = 4;
14
14
  /**
15
15
  * Downlink command
@@ -41,22 +41,22 @@ class ExAbsArchiveHoursMC extends Command {
41
41
  const buffer = new CommandBinaryBuffer(data);
42
42
  const date = buffer.getDate();
43
43
  const { hour, hours } = buffer.getHours();
44
- const channelList = buffer.getChannels(true);
44
+ const channelList = buffer.getChannels();
45
45
  date.setUTCHours(hour);
46
46
  if (!buffer.isEmpty) {
47
47
  throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
48
48
  }
49
- return new ExAbsArchiveHoursMC({ channelList, hours, seconds: getSecondsFromDate(date) });
49
+ return new ExAbsArchiveHoursMC({ channelList, hours, startTime: getSecondsFromDate(date) });
50
50
  }
51
51
  // returns full message - header with body
52
52
  toBytes() {
53
- const { channelList, hours, seconds } = this.parameters;
53
+ const { channelList, hours, startTime } = this.parameters;
54
54
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_SIZE);
55
- const date = getDateFromSeconds(seconds);
55
+ const date = getDateFromSeconds(startTime);
56
56
  const hour = date.getUTCHours();
57
57
  buffer.setDate(date);
58
58
  buffer.setHours(hour, hours);
59
- buffer.setChannels(channelList);
59
+ buffer.setChannels(channelList.map(index => ({ index })));
60
60
  return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
61
61
  }
62
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ExAbsArchiveHoursMC.js","sourceRoot":"","sources":["../../../src/commands/downlink/ExAbsArchiveHoursMC.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,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,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE7C,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,mBAAmB,CAAC,EAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC5F,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACtD,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,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAEhC,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAxCe,sBAAE,GAAG,UAAU,CAAC;AAEhB,iCAAa,GAAG,QAAQ,CAAC;AAEzB,yBAAK,GAAG,aAAa,CAAC;AAwC1C,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"ExAbsArchiveHoursMC.js","sourceRoot":"","sources":["../../../src/commands/downlink/ExAbsArchiveHoursMC.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,mBAAoB,SAAQ,OAAO;IACrC,YAAqB,UAAkD;QACnE,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAwC;QAGnE,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,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAEzC,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,mBAAmB,CAAC,EAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC9F,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAC,KAAK,EAAc,CAAA,CAAC,CAAC,CAAC;QAEpE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAxCe,sBAAE,GAAG,UAAU,CAAC;AAEhB,iCAAa,GAAG,QAAQ,CAAC;AAEzB,yBAAK,GAAG,aAAa,CAAC;AAwC1C,eAAe,mBAAmB,CAAC"}