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
@@ -3,6 +3,7 @@ import Command from '../../Command.js';
3
3
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
4
4
  import { getSecondsFromDate } from '../../utils/time.js';
5
5
  import GetCurrentMul from './GetCurrentMul.js';
6
+ import { UPLINK } from '../../constants/directionTypes.js';
6
7
  const COMMAND_ID = 0x16;
7
8
  const COMMAND_TITLE = 'DATA_DAY_MUL';
8
9
  // 2 byte for date + 2 for channels (max channels: 7)
@@ -14,7 +15,7 @@ class DataDayMul extends GetCurrentMul {
14
15
  this.parameters = parameters;
15
16
  }
16
17
  static fromBytes(data) {
17
- const parameters = { channels: [], time: 0 };
18
+ const parameters = { channels: [], seconds: 0 };
18
19
  const buffer = new CommandBinaryBuffer(data);
19
20
  const date = buffer.getDate();
20
21
  const channelArray = buffer.getChannels(false);
@@ -22,20 +23,20 @@ class DataDayMul extends GetCurrentMul {
22
23
  value: buffer.getExtendedValue(),
23
24
  index: channelIndex
24
25
  }));
25
- parameters.time = getSecondsFromDate(date);
26
+ parameters.seconds = getSecondsFromDate(date);
26
27
  return new DataDayMul(parameters);
27
28
  }
28
29
  toBytes() {
29
30
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
30
- const { channels, time } = this.parameters;
31
- buffer.setDate(time);
31
+ const { channels, seconds } = this.parameters;
32
+ buffer.setDate(seconds);
32
33
  buffer.setChannels(channels.map(({ index }) => index));
33
34
  channels.forEach(({ value }) => buffer.setExtendedValue(value));
34
35
  return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
35
36
  }
36
37
  }
37
38
  DataDayMul.id = COMMAND_ID;
38
- DataDayMul.isUplink = true;
39
+ DataDayMul.directionType = UPLINK;
39
40
  DataDayMul.title = COMMAND_TITLE;
40
41
  export default DataDayMul;
41
42
  //# sourceMappingURL=DataDayMul.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataDayMul.js","sourceRoot":"","sources":["../../../src/commands/uplink/DataDayMul.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,aAAyC,MAAM,oBAAoB,CAAC;AAc3E,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC,qDAAqD;AACrD,cAAc;AACd,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAGjC,MAAM,UAAW,SAAQ,aAAa;IAClC,YAAqB,UAAiC;QAClD,KAAK,CAAC,UAAU,CAAC,CAAC;QADD,eAAU,GAAV,UAAU,CAAuB;IAEtD,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,UAAU,GAA0B,EAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAC,CAAC;QAElE,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE/C,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACpD,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE;YAChC,KAAK,EAAE,YAAY;SACtB,CAAC,CAAC,CAAC;QAEJ,UAAU,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE3C,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,QAAQ,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAEzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9D,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAjCe,aAAE,GAAG,UAAU,CAAC;AAEhB,mBAAQ,GAAG,IAAI,CAAC;AAEhB,gBAAK,GAAG,aAAa,CAAC;AAiC1C,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"DataDayMul.js","sourceRoot":"","sources":["../../../src/commands/uplink/DataDayMul.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,aAAyC,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAczD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC,qDAAqD;AACrD,cAAc;AACd,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAGjC,MAAM,UAAW,SAAQ,aAAa;IAClC,YAAqB,UAAiC;QAClD,KAAK,CAAC,UAAU,CAAC,CAAC;QADD,eAAU,GAAV,UAAU,CAAuB;IAEtD,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,UAAU,GAA0B,EAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAC,CAAC;QAErE,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE/C,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACpD,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE;YAChC,KAAK,EAAE,YAAY;SACtB,CAAC,CAAC,CAAC;QAEJ,UAAU,CAAC,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,QAAQ,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAE5C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9D,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAjCe,aAAE,GAAG,UAAU,CAAC;AAEhB,wBAAa,GAAG,MAAM,CAAC;AAEvB,gBAAK,GAAG,aAAa,CAAC;AAiC1C,eAAe,UAAU,CAAC"}
@@ -3,7 +3,7 @@ declare class DataHourMul extends GetCurrentMul {
3
3
  parameters: any;
4
4
  constructor(parameters: any);
5
5
  static readonly id = 23;
6
- static readonly isUplink = true;
6
+ static readonly directionType = 2;
7
7
  static readonly title = "DATA_HOUR_MUL";
8
8
  static fromBytes(data: Uint8Array): any;
9
9
  toBytes(): Uint8Array;
@@ -1,18 +1,18 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
3
3
  /* eslint-disable @typescript-eslint/no-unsafe-argument */
4
- /* eslint-disable no-restricted-syntax */
5
4
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
6
5
  import Command from '../../Command.js';
7
6
  import GetCurrentMul from './GetCurrentMul.js';
8
7
  import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
9
8
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
9
+ import { UPLINK } from '../../constants/directionTypes.js';
10
10
  const COMMAND_ID = 0x17;
11
11
  const COMMAND_TITLE = 'DATA_HOUR_MUL';
12
12
  // date 2 bytes, hour 1 byte, channels - 1 byte, so max channels = 4
13
13
  // max hours diff - 7 (3 bit value)
14
- // 4 + (4 channels * 3 bytes of hour values) + (4 * 2 bytes of diff * 7 max hours diff)
15
- const COMMAND_BODY_MAX_SIZE = 72;
14
+ // 4 + (4 channels * 5 bytes of hour values) + (4 * 5 bytes of diff * 7 max hours diff)
15
+ const COMMAND_BODY_MAX_SIZE = 164;
16
16
  class DataHourMul extends GetCurrentMul {
17
17
  constructor(parameters) {
18
18
  super(parameters);
@@ -38,12 +38,12 @@ class DataHourMul extends GetCurrentMul {
38
38
  value = buffer.getExtendedValue();
39
39
  counterDate.setTime(date.getTime());
40
40
  const diff = [];
41
- const channel = { value, index: channelIndex, time: getSecondsFromDate(counterDate), diff };
41
+ const channel = { value, index: channelIndex, seconds: getSecondsFromDate(counterDate), diff };
42
42
  channels.push(channel);
43
43
  for (let hourIndex = 0; hourIndex < hourAmount; ++hourIndex) {
44
44
  value = buffer.getExtendedValue();
45
45
  counterDate.setUTCHours(counterDate.getUTCHours() + hourIndex);
46
- diff.push({ value, time: getSecondsFromDate(counterDate) });
46
+ diff.push({ value, seconds: getSecondsFromDate(counterDate) });
47
47
  }
48
48
  }
49
49
  return new DataHourMul({ channels });
@@ -51,14 +51,14 @@ class DataHourMul extends GetCurrentMul {
51
51
  toBytes() {
52
52
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
53
53
  const { channels } = this.parameters;
54
- const { time } = channels[0];
55
- const realDate = getDateFromSeconds(time);
54
+ const { seconds } = channels[0];
55
+ const realDate = getDateFromSeconds(seconds);
56
56
  const hour = realDate.getUTCHours();
57
57
  let hourAmount = channels[0].diff.length;
58
58
  if (hourAmount === 1) {
59
59
  hourAmount = 0;
60
60
  }
61
- buffer.setDate(time);
61
+ buffer.setDate(seconds);
62
62
  buffer.setHours(hour, hourAmount);
63
63
  buffer.setChannels(channels);
64
64
  for (const { value, diff } of channels) {
@@ -71,7 +71,7 @@ class DataHourMul extends GetCurrentMul {
71
71
  }
72
72
  }
73
73
  DataHourMul.id = COMMAND_ID;
74
- DataHourMul.isUplink = true;
74
+ DataHourMul.directionType = UPLINK;
75
75
  DataHourMul.title = COMMAND_TITLE;
76
76
  export default DataHourMul;
77
77
  //# sourceMappingURL=DataHourMul.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataHourMul.js","sourceRoot":"","sources":["../../../src/commands/uplink/DataHourMul.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataHourMul.js","sourceRoot":"","sources":["../../../src/commands/uplink/DataHourMul.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import Command from '../../Command.js';
2
+ /**
3
+ * Channel absolute value by day.
4
+ */
5
+ interface IArchiveChannelDayAbsoluteValue {
6
+ value: number;
7
+ meterValue: number;
8
+ day: number;
9
+ seconds: number;
10
+ date: Date;
11
+ }
12
+ interface IArchiveChannelDayAbsolute {
13
+ /**
14
+ * channel number
15
+ */
16
+ index: number;
17
+ /**
18
+ * values by days
19
+ */
20
+ days: Array<IArchiveChannelDayAbsoluteValue>;
21
+ /**
22
+ * Channel pulse coefficient - IPK in bytes.
23
+ */
24
+ pulseCoefficient: number;
25
+ /** time */
26
+ seconds: number;
27
+ /**
28
+ * Normal date in UTC.
29
+ */
30
+ date: Date;
31
+ }
32
+ interface IUplinkExAbsArchiveDayMulParameters {
33
+ channels: Array<IArchiveChannelDayAbsolute>;
34
+ date: Date;
35
+ dayAmount: number;
36
+ }
37
+ declare class ExAbsArchiveDayMul extends Command {
38
+ parameters: IUplinkExAbsArchiveDayMulParameters;
39
+ constructor(parameters: IUplinkExAbsArchiveDayMulParameters);
40
+ static id: number;
41
+ static readonly directionType = 2;
42
+ static title: string;
43
+ static fromBytes(data: Uint8Array): ExAbsArchiveDayMul;
44
+ toBytes(): Uint8Array;
45
+ }
46
+ export default ExAbsArchiveDayMul;
@@ -0,0 +1,72 @@
1
+ import Command from '../../Command.js';
2
+ import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
3
+ import roundNumber from '../../utils/roundNumber.js';
4
+ import { getSecondsFromDate } from '../../utils/time.js';
5
+ import { UPLINK } from '../../constants/directionTypes.js';
6
+ const COMMAND_ID = 0x0d1f;
7
+ const COMMAND_TITLE = 'EX_ABS_ARCH_DAYS_MUL';
8
+ // date 2 bytes, channels 1 byte (max channels: 4), days 1 byte (max days - 255)
9
+ // 4 + (4 channels * (1 byte pulse coefficient + 5 bytes of day values) * 255 max days)
10
+ const COMMAND_BODY_MAX_SIZE = 6124;
11
+ class ExAbsArchiveDayMul extends Command {
12
+ constructor(parameters) {
13
+ super();
14
+ this.parameters = parameters;
15
+ this.parameters.channels = this.parameters.channels.sort((a, b) => a.index - b.index);
16
+ }
17
+ static fromBytes(data) {
18
+ const buffer = new CommandBinaryBuffer(data);
19
+ const date = buffer.getDate();
20
+ const channelArray = buffer.getChannels(true);
21
+ const dayAmount = buffer.getUint8();
22
+ const maxChannel = Math.max.apply(null, channelArray);
23
+ const counterDate = new Date(date);
24
+ let value;
25
+ const channels = [];
26
+ for (let channelIndex = 0; channelIndex <= maxChannel; ++channelIndex) {
27
+ // IPK_${channelIndex}
28
+ const pulseCoefficient = buffer.getUint8();
29
+ const days = [];
30
+ counterDate.setTime(date.getTime());
31
+ channels.push({
32
+ days,
33
+ pulseCoefficient,
34
+ index: channelIndex,
35
+ seconds: getSecondsFromDate(counterDate),
36
+ date: new Date(counterDate)
37
+ });
38
+ for (let day = 0; day < dayAmount; ++day) {
39
+ value = buffer.getExtendedValue();
40
+ counterDate.setTime(date.getTime());
41
+ counterDate.setUTCHours(counterDate.getUTCHours() + (day * 24));
42
+ days.push({
43
+ value,
44
+ day,
45
+ meterValue: roundNumber(value / pulseCoefficient),
46
+ date: new Date(counterDate),
47
+ seconds: getSecondsFromDate(counterDate)
48
+ });
49
+ }
50
+ }
51
+ return new ExAbsArchiveDayMul({ channels, date, dayAmount });
52
+ }
53
+ toBytes() {
54
+ const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
55
+ const { channels, date, dayAmount } = this.parameters;
56
+ buffer.setDate(date);
57
+ buffer.setChannels(channels);
58
+ buffer.setUint8(dayAmount);
59
+ channels.forEach(({ days, pulseCoefficient }) => {
60
+ buffer.setUint8(pulseCoefficient);
61
+ days.forEach(({ value }) => {
62
+ buffer.setExtendedValue(value);
63
+ });
64
+ });
65
+ return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
66
+ }
67
+ }
68
+ ExAbsArchiveDayMul.id = COMMAND_ID;
69
+ ExAbsArchiveDayMul.directionType = UPLINK;
70
+ ExAbsArchiveDayMul.title = COMMAND_TITLE;
71
+ export default ExAbsArchiveDayMul;
72
+ //# sourceMappingURL=ExAbsArchiveDaysMul.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExAbsArchiveDaysMul.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsArchiveDaysMul.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import GetCurrentMul from './GetCurrentMul.js';
2
+ declare class ExAbsArchiveHourMul extends GetCurrentMul {
3
+ parameters: any;
4
+ constructor(parameters: any);
5
+ static readonly id = 3103;
6
+ static readonly directionType = 2;
7
+ static readonly title = "EX_ABS_ARCH_HOUR_MUL";
8
+ static fromBytes(data: Uint8Array): any;
9
+ toBytes(): Uint8Array;
10
+ }
11
+ export default ExAbsArchiveHourMul;
@@ -0,0 +1,93 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
3
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
4
+ /* eslint-disable @typescript-eslint/no-unsafe-argument */
5
+ import Command from '../../Command.js';
6
+ import GetCurrentMul from './GetCurrentMul.js';
7
+ import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
8
+ import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
9
+ import roundNumber from '../../utils/roundNumber.js';
10
+ import { UPLINK } from '../../constants/directionTypes.js';
11
+ // TODO: rework extended headers detection
12
+ const COMMAND_ID = 0x0c1f;
13
+ const COMMAND_TITLE = 'EX_ABS_ARCH_HOUR_MUL';
14
+ // date 2 bytes, hour 1 byte (max hours: 7), channels 1 byte (max channels: 4)
15
+ // 4 + (4 channels * 1 byte pulse coefficient) + (4 channels * 5 bytes of hour values) + (4 * 5 bytes of diff * 7 max hours diff)
16
+ const COMMAND_BODY_MAX_SIZE = 168;
17
+ class ExAbsArchiveHourMul extends GetCurrentMul {
18
+ // TODO: add interface for parameters
19
+ constructor(parameters) {
20
+ super(parameters);
21
+ this.parameters = parameters;
22
+ }
23
+ static fromBytes(data) {
24
+ const buffer = new CommandBinaryBuffer(data);
25
+ const date = buffer.getDate();
26
+ const { hour, hours } = buffer.getHours();
27
+ const channelArray = buffer.getChannels(true);
28
+ const maxChannel = Math.max.apply(null, channelArray);
29
+ date.setUTCHours(hour);
30
+ const counterDate = new Date(date);
31
+ let hourAmount = hours;
32
+ const channels = [];
33
+ if (hourAmount === 0) {
34
+ // one hour
35
+ hourAmount = 1;
36
+ }
37
+ for (let channelIndex = 0; channelIndex <= maxChannel; ++channelIndex) {
38
+ // IPK_${channelIndex}
39
+ const pulseCoefficient = buffer.getUint8();
40
+ // decode hour value for channel
41
+ const pulseValue = buffer.getExtendedValue();
42
+ const diff = [];
43
+ counterDate.setTime(date.getTime());
44
+ for (let hourIndex = 0; hourIndex < hourAmount; ++hourIndex) {
45
+ const value = buffer.getExtendedValue();
46
+ counterDate.setUTCHours(counterDate.getUTCHours() + hourIndex);
47
+ diff.push({
48
+ value,
49
+ pulseCoefficient,
50
+ seconds: getSecondsFromDate(counterDate),
51
+ meterValue: roundNumber((value + pulseValue) / pulseCoefficient)
52
+ });
53
+ }
54
+ channels.push({
55
+ diff,
56
+ pulseCoefficient,
57
+ index: channelIndex,
58
+ value: pulseValue,
59
+ seconds: getSecondsFromDate(date),
60
+ meterValue: roundNumber(pulseValue / pulseCoefficient)
61
+ });
62
+ }
63
+ return new ExAbsArchiveHourMul({ channels, date });
64
+ }
65
+ toBytes() {
66
+ const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
67
+ const { channels } = this.parameters;
68
+ const { seconds } = channels[0];
69
+ const realDate = getDateFromSeconds(seconds);
70
+ const hour = realDate.getUTCHours();
71
+ let hourAmount = channels[0].diff.length;
72
+ // TODO: add link to doc
73
+ if (hourAmount === 1) {
74
+ hourAmount = 0;
75
+ }
76
+ buffer.setDate(seconds);
77
+ buffer.setHours(hour, hourAmount);
78
+ buffer.setChannels(channels);
79
+ for (const { value, diff, pulseCoefficient } of channels) {
80
+ buffer.setUint8(pulseCoefficient);
81
+ buffer.setExtendedValue(value);
82
+ for (const { value: diffValue } of diff) {
83
+ buffer.setExtendedValue(diffValue);
84
+ }
85
+ }
86
+ return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
87
+ }
88
+ }
89
+ ExAbsArchiveHourMul.id = COMMAND_ID;
90
+ ExAbsArchiveHourMul.directionType = UPLINK;
91
+ ExAbsArchiveHourMul.title = COMMAND_TITLE;
92
+ export default ExAbsArchiveHourMul;
93
+ //# sourceMappingURL=ExAbsArchiveHoursMul.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExAbsArchiveHoursMul.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsArchiveHoursMul.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ declare class ExAbsDayMul extends GetCurrentMul {
3
3
  parameters: any;
4
4
  constructor(parameters: any);
5
5
  static id: number;
6
- static readonly isUplink = true;
6
+ static readonly directionType = 2;
7
7
  static title: string;
8
8
  static fromBytes(data: Uint8Array): any;
9
9
  toBytes(): Uint8Array;
@@ -1,4 +1,3 @@
1
- /* eslint-disable no-restricted-syntax */
2
1
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
3
2
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
4
3
  /* eslint-disable @typescript-eslint/no-explicit-any */
@@ -8,6 +7,7 @@ import GetCurrentMul from './GetCurrentMul.js';
8
7
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
9
8
  import roundNumber from '../../utils/roundNumber.js';
10
9
  import { getSecondsFromDate } from '../../utils/time.js';
10
+ import { UPLINK } from '../../constants/directionTypes.js';
11
11
  const COMMAND_ID = 0x0b1f;
12
12
  const COMMAND_TITLE = 'EX_ABS_DAY_MUL';
13
13
  // date 2 bytes, channels - 1 byte (max channels: 4)
@@ -34,7 +34,7 @@ class ExAbsDayMul extends GetCurrentMul {
34
34
  value,
35
35
  pulseCoefficient,
36
36
  index: channelIndex,
37
- time: getSecondsFromDate(date),
37
+ seconds: getSecondsFromDate(date),
38
38
  meterValue: roundNumber(value / pulseCoefficient)
39
39
  });
40
40
  }
@@ -43,8 +43,8 @@ class ExAbsDayMul extends GetCurrentMul {
43
43
  toBytes() {
44
44
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
45
45
  const { channels } = this.parameters;
46
- const { time } = channels[0];
47
- buffer.setDate(time);
46
+ const { seconds } = channels[0];
47
+ buffer.setDate(seconds);
48
48
  buffer.setChannels(channels);
49
49
  for (const { value, pulseCoefficient } of channels) {
50
50
  buffer.setUint8(pulseCoefficient);
@@ -54,7 +54,7 @@ class ExAbsDayMul extends GetCurrentMul {
54
54
  }
55
55
  }
56
56
  ExAbsDayMul.id = COMMAND_ID;
57
- ExAbsDayMul.isUplink = true;
57
+ ExAbsDayMul.directionType = UPLINK;
58
58
  ExAbsDayMul.title = COMMAND_TITLE;
59
59
  export default ExAbsDayMul;
60
60
  //# sourceMappingURL=ExAbsDayMul.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExAbsDayMul.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsDayMul.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,+DAA+D;AAC/D,4DAA4D;AAC5D,uDAAuD;AACvD,0DAA0D;AAE1D,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAGvD,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAEvC,oDAAoD;AACpD,0DAA0D;AAC1D,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAGjC,MAAM,WAAY,SAAQ,aAAa;IACnC,YAAqB,UAAe;QAChC,KAAK,CAAC,UAAU,CAAC,CAAC;QADD,eAAU,GAAV,UAAU,CAAK;IAEpC,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAEtD,IAAI,KAAK,CAAC;QAEV,MAAM,QAAQ,GAAe,EAAE,CAAC;QAEhC,KAAM,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,IAAI,UAAU,EAAE,EAAE,YAAY,EAAG;YACrE,sBAAsB;YACtB,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,YAAY;YACZ,KAAK,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC;gBACV,KAAK;gBACL,gBAAgB;gBAChB,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;gBAC9B,UAAU,EAAE,WAAW,CAAC,KAAK,GAAG,gBAAgB,CAAC;aACpD,CAAC,CAAC;SACN;QAED,OAAO,IAAI,WAAW,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAEnC,MAAM,EAAC,IAAI,EAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE3B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE7B,KAAM,MAAM,EAAC,KAAK,EAAE,gBAAgB,EAAC,IAAI,QAAQ,EAAG;YAChD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAClC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAClC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAjDM,cAAE,GAAG,UAAU,CAAC;AAEP,oBAAQ,GAAG,IAAI,CAAC;AAEzB,iBAAK,GAAG,aAAa,CAAC;AAiDjC,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ExAbsDayMul.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsDayMul.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4DAA4D;AAC5D,uDAAuD;AACvD,0DAA0D;AAE1D,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAGzD,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAEvC,oDAAoD;AACpD,0DAA0D;AAC1D,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAGjC,MAAM,WAAY,SAAQ,aAAa;IACnC,YAAqB,UAAe;QAChC,KAAK,CAAC,UAAU,CAAC,CAAC;QADD,eAAU,GAAV,UAAU,CAAK;IAEpC,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAEtD,IAAI,KAAK,CAAC;QAEV,MAAM,QAAQ,GAAe,EAAE,CAAC;QAEhC,KAAM,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,IAAI,UAAU,EAAE,EAAE,YAAY,EAAG;YACrE,sBAAsB;YACtB,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,YAAY;YACZ,KAAK,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC;gBACV,KAAK;gBACL,gBAAgB;gBAChB,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC;gBACjC,UAAU,EAAE,WAAW,CAAC,KAAK,GAAG,gBAAgB,CAAC;aACpD,CAAC,CAAC;SACN;QAED,OAAO,IAAI,WAAW,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAEnC,MAAM,EAAC,OAAO,EAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE9B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE7B,KAAM,MAAM,EAAC,KAAK,EAAE,gBAAgB,EAAC,IAAI,QAAQ,EAAG;YAChD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAClC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAClC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAjDM,cAAE,GAAG,UAAU,CAAC;AAEP,yBAAa,GAAG,MAAM,CAAC;AAEhC,iBAAK,GAAG,aAAa,CAAC;AAiDjC,eAAe,WAAW,CAAC"}
@@ -3,7 +3,7 @@ declare class ExAbsHourMul extends GetCurrentMul {
3
3
  parameters: any;
4
4
  constructor(parameters: any);
5
5
  static readonly id = 2591;
6
- static readonly isUplink = true;
6
+ static readonly directionType = 2;
7
7
  static readonly title = "EX_ABS_HOUR_MUL";
8
8
  static fromBytes(data: Uint8Array): any;
9
9
  toBytes(): Uint8Array;
@@ -1,4 +1,3 @@
1
- /* eslint-disable no-restricted-syntax */
2
1
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
3
2
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
4
3
  /* eslint-disable @typescript-eslint/no-explicit-any */
@@ -8,6 +7,7 @@ import GetCurrentMul from './GetCurrentMul.js';
8
7
  import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
9
8
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
10
9
  import roundNumber from '../../utils/roundNumber.js';
10
+ import { UPLINK } from '../../constants/directionTypes.js';
11
11
  const COMMAND_ID = 0x0a1f;
12
12
  const COMMAND_TITLE = 'EX_ABS_HOUR_MUL';
13
13
  // date 2 bytes, hour 1 byte, channels - 1 byte (max channels: 4)
@@ -46,7 +46,7 @@ class ExAbsHourMul extends GetCurrentMul {
46
46
  diff.push({
47
47
  value,
48
48
  pulseCoefficient,
49
- time: getSecondsFromDate(counterDate),
49
+ seconds: getSecondsFromDate(counterDate),
50
50
  meterValue: roundNumber((value + pulseValue) / pulseCoefficient)
51
51
  });
52
52
  }
@@ -55,7 +55,7 @@ class ExAbsHourMul extends GetCurrentMul {
55
55
  pulseCoefficient,
56
56
  index: channelIndex,
57
57
  value: pulseValue,
58
- time: getSecondsFromDate(date),
58
+ seconds: getSecondsFromDate(date),
59
59
  meterValue: roundNumber(pulseValue / pulseCoefficient)
60
60
  });
61
61
  }
@@ -64,15 +64,15 @@ class ExAbsHourMul extends GetCurrentMul {
64
64
  toBytes() {
65
65
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
66
66
  const { channels } = this.parameters;
67
- const { time } = channels[0];
68
- const realDate = getDateFromSeconds(time);
67
+ const { seconds } = channels[0];
68
+ const realDate = getDateFromSeconds(seconds);
69
69
  const hour = realDate.getUTCHours();
70
70
  let hourAmount = channels[0].diff.length;
71
71
  // TODO: add link to doc
72
72
  if (hourAmount === 1) {
73
73
  hourAmount = 0;
74
74
  }
75
- buffer.setDate(time);
75
+ buffer.setDate(seconds);
76
76
  buffer.setHours(hour, hourAmount);
77
77
  buffer.setChannels(channels);
78
78
  for (const { value, diff, pulseCoefficient } of channels) {
@@ -86,7 +86,7 @@ class ExAbsHourMul extends GetCurrentMul {
86
86
  }
87
87
  }
88
88
  ExAbsHourMul.id = COMMAND_ID;
89
- ExAbsHourMul.isUplink = true;
89
+ ExAbsHourMul.directionType = UPLINK;
90
90
  ExAbsHourMul.title = COMMAND_TITLE;
91
91
  export default ExAbsHourMul;
92
92
  //# sourceMappingURL=ExAbsHourMul.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExAbsHourMul.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsHourMul.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExAbsHourMul.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsHourMul.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import Command from '../../Command.js';
2
+ /**
3
+ * GetArchiveDaysMul command parameters
4
+ *
5
+ * @example
6
+ * // archive 2 days values from 2001-03-10T00:00:00.000Z
7
+ * {
8
+ * channels: [{index: 0, days: [{value: 234, day: 0}, {value: 332, day: 1}]}],
9
+ * date: '2001-03-10T12:00:00.000Z',
10
+ * dayAmount: 2
11
+ * }
12
+ */
13
+ interface IUplinkGetArchiveDaysMulParameters {
14
+ channels: Array<IArchiveChannel>;
15
+ date: Date | undefined | string;
16
+ dayAmount: number | undefined;
17
+ }
18
+ /**
19
+ * channel value by day
20
+ */
21
+ export interface IArchiveDayValue {
22
+ value: number;
23
+ day: number;
24
+ seconds: number;
25
+ date: Date;
26
+ }
27
+ interface IArchiveChannel {
28
+ /**
29
+ * channel number
30
+ */
31
+ index: number;
32
+ /**
33
+ * values by days
34
+ */
35
+ days: Array<IArchiveDayValue>;
36
+ /** time */
37
+ seconds: number;
38
+ /**
39
+ * Normal date in UTC.
40
+ */
41
+ date: Date;
42
+ }
43
+ /**
44
+ * Uplink command
45
+ *
46
+ * @example
47
+ * ```js
48
+ * import GetArchiveDaysMul from 'jooby-codec/commands/uplink/GetArchiveDaysMul';
49
+ *
50
+ * const parameters = {
51
+ * channels: [{index: 0, days: [{value: 234, day: 0}, {value: 332, day: 1}]}],
52
+ * date: '2001-03-10T12:00:00.000Z',
53
+ * dayAmount: 2
54
+ * };
55
+ *
56
+ * const command = new GetArchiveDaysMul(parameters);
57
+ *
58
+ * // output command binary in hex representation
59
+ * console.log(command.toHex());
60
+ * // 1b 04 2f 97 0c 01
61
+ * ```
62
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetArchiveDaysMul.md#response)
63
+ */
64
+ declare class GetArchiveDaysMul extends Command {
65
+ parameters: IUplinkGetArchiveDaysMulParameters;
66
+ constructor(parameters: IUplinkGetArchiveDaysMulParameters);
67
+ static readonly id = 27;
68
+ static readonly directionType = 2;
69
+ static readonly title = "GET_ARCHIVE_DAYS_MUL";
70
+ static fromBytes(data: Uint8Array): GetArchiveDaysMul;
71
+ toBytes(): Uint8Array;
72
+ }
73
+ export default GetArchiveDaysMul;