jooby-codec 1.2.0 → 1.4.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 (86) hide show
  1. package/dist/CommandBinaryBuffer.d.ts +9 -13
  2. package/dist/CommandBinaryBuffer.js +27 -22
  3. package/dist/CommandBinaryBuffer.js.map +1 -1
  4. package/dist/commands/downlink/CorrectTime2000.d.ts +3 -3
  5. package/dist/commands/downlink/CorrectTime2000.js +4 -4
  6. package/dist/commands/downlink/CorrectTime2000.js.map +1 -1
  7. package/dist/commands/downlink/ExAbsArchiveDaysMC.d.ts +47 -0
  8. package/dist/commands/downlink/ExAbsArchiveDaysMC.js +65 -0
  9. package/dist/commands/downlink/ExAbsArchiveDaysMC.js.map +1 -0
  10. package/dist/commands/downlink/ExAbsArchiveHoursMC.d.ts +47 -0
  11. package/dist/commands/downlink/ExAbsArchiveHoursMC.js +67 -0
  12. package/dist/commands/downlink/ExAbsArchiveHoursMC.js.map +1 -0
  13. package/dist/commands/downlink/GetArchiveDaysMC.d.ts +47 -0
  14. package/dist/commands/downlink/GetArchiveDaysMC.js +64 -0
  15. package/dist/commands/downlink/GetArchiveDaysMC.js.map +1 -0
  16. package/dist/commands/downlink/GetArchiveHoursMC.d.ts +47 -0
  17. package/dist/commands/downlink/{GetArchiveHoursMul.js → GetArchiveHoursMC.js} +20 -20
  18. package/dist/commands/downlink/GetArchiveHoursMC.js.map +1 -0
  19. package/dist/commands/downlink/SetParameter.d.ts +73 -0
  20. package/dist/commands/downlink/SetParameter.js +136 -0
  21. package/dist/commands/downlink/SetParameter.js.map +1 -0
  22. package/dist/commands/downlink/SetTime2000.d.ts +3 -3
  23. package/dist/commands/downlink/SetTime2000.js +4 -4
  24. package/dist/commands/downlink/SetTime2000.js.map +1 -1
  25. package/dist/commands/downlink/index.d.ts +5 -1
  26. package/dist/commands/downlink/index.js +5 -1
  27. package/dist/commands/downlink/index.js.map +1 -1
  28. package/dist/commands/uplink/DataDayMC.d.ts +20 -0
  29. package/dist/commands/uplink/{DataDayMul.js → DataDayMC.js} +15 -15
  30. package/dist/commands/uplink/DataDayMC.js.map +1 -0
  31. package/dist/commands/uplink/{DataHourMul.d.ts → DataHourMC.d.ts} +3 -3
  32. package/dist/commands/uplink/{DataHourMul.js → DataHourMC.js} +24 -24
  33. package/dist/commands/uplink/DataHourMC.js.map +1 -0
  34. package/dist/commands/uplink/ExAbsArchiveDaysMC.d.ts +46 -0
  35. package/dist/commands/uplink/ExAbsArchiveDaysMC.js +72 -0
  36. package/dist/commands/uplink/ExAbsArchiveDaysMC.js.map +1 -0
  37. package/dist/commands/uplink/ExAbsArchiveHoursMC.d.ts +11 -0
  38. package/dist/commands/uplink/ExAbsArchiveHoursMC.js +93 -0
  39. package/dist/commands/uplink/ExAbsArchiveHoursMC.js.map +1 -0
  40. package/dist/commands/uplink/{ExAbsDayMul.d.ts → ExAbsDayMC.d.ts} +3 -3
  41. package/dist/commands/uplink/{ExAbsDayMul.js → ExAbsDayMC.js} +18 -18
  42. package/dist/commands/uplink/ExAbsDayMC.js.map +1 -0
  43. package/dist/commands/uplink/{ExAbsHourMul.d.ts → ExAbsHourMC.d.ts} +3 -3
  44. package/dist/commands/uplink/{ExAbsHourMul.js → ExAbsHourMC.js} +24 -24
  45. package/dist/commands/uplink/ExAbsHourMC.js.map +1 -0
  46. package/dist/commands/uplink/GetArchiveDaysMC.d.ts +73 -0
  47. package/dist/commands/uplink/GetArchiveDaysMC.js +97 -0
  48. package/dist/commands/uplink/GetArchiveDaysMC.js.map +1 -0
  49. package/dist/commands/uplink/GetArchiveHoursMC.d.ts +28 -0
  50. package/dist/commands/uplink/{GetArchiveHoursMul.js → GetArchiveHoursMC.js} +20 -20
  51. package/dist/commands/uplink/GetArchiveHoursMC.js.map +1 -0
  52. package/dist/commands/uplink/GetCurrentMC.d.ts +24 -0
  53. package/dist/commands/uplink/GetCurrentMC.js +36 -0
  54. package/dist/commands/uplink/GetCurrentMC.js.map +1 -0
  55. package/dist/commands/uplink/NewEvent.d.ts +2 -2
  56. package/dist/commands/uplink/NewEvent.js +5 -5
  57. package/dist/commands/uplink/NewEvent.js.map +1 -1
  58. package/dist/commands/uplink/Time2000.d.ts +3 -3
  59. package/dist/commands/uplink/Time2000.js +4 -4
  60. package/dist/commands/uplink/Time2000.js.map +1 -1
  61. package/dist/commands/uplink/index.d.ts +9 -6
  62. package/dist/commands/uplink/index.js +9 -6
  63. package/dist/commands/uplink/index.js.map +1 -1
  64. package/dist/constants/deviceParameters.d.ts +15 -0
  65. package/dist/constants/deviceParameters.js +16 -0
  66. package/dist/constants/deviceParameters.js.map +1 -0
  67. package/dist/utils/bitSet.d.ts +2 -2
  68. package/dist/utils/bitSet.js +2 -3
  69. package/dist/utils/bitSet.js.map +1 -1
  70. package/dist/utils/time.d.ts +2 -2
  71. package/dist/utils/time.js +2 -2
  72. package/dist/utils/time.js.map +1 -1
  73. package/package.json +1 -1
  74. package/readme.md +3 -3
  75. package/dist/commands/downlink/GetArchiveHoursMul.d.ts +0 -47
  76. package/dist/commands/downlink/GetArchiveHoursMul.js.map +0 -1
  77. package/dist/commands/uplink/DataDayMul.d.ts +0 -20
  78. package/dist/commands/uplink/DataDayMul.js.map +0 -1
  79. package/dist/commands/uplink/DataHourMul.js.map +0 -1
  80. package/dist/commands/uplink/ExAbsDayMul.js.map +0 -1
  81. package/dist/commands/uplink/ExAbsHourMul.js.map +0 -1
  82. package/dist/commands/uplink/GetArchiveHoursMul.d.ts +0 -28
  83. package/dist/commands/uplink/GetArchiveHoursMul.js.map +0 -1
  84. package/dist/commands/uplink/GetCurrentMul.d.ts +0 -24
  85. package/dist/commands/uplink/GetCurrentMul.js +0 -36
  86. package/dist/commands/uplink/GetCurrentMul.js.map +0 -1
@@ -0,0 +1,47 @@
1
+ /**
2
+ * [[include:commands/downlink/GetArchiveHoursMC.md]]
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import Command from '../../Command.js';
7
+ /**
8
+ * GetArchiveHoursMC command parameters
9
+ *
10
+ * @example
11
+ * // request for 2 hours archive values from channel #1 from 2023-12-23T12:00:00.000Z or 756648000 seconds since 2000 year
12
+ * {channelList: [0], hours: 2, seconds: 756648000}
13
+ */
14
+ interface IDownlinkGetArchiveHoursMCParameters {
15
+ /** amount of hours to retrieve */
16
+ hours: number;
17
+ /** time */
18
+ seconds: number;
19
+ /** array of channelList indexes */
20
+ channelList: Array<number>;
21
+ }
22
+ /**
23
+ * Downlink command
24
+ *
25
+ * @example
26
+ * ```js
27
+ * import GetArchiveHoursMC from 'jooby-codec/commands/downlink/GetArchiveHoursMC';
28
+ *
29
+ * const parameters = {channelList: [0], hours: 0, seconds: 756648000};
30
+ * const command = new GetArchiveHoursMC(parameters);
31
+ *
32
+ * // output command binary in hex representation
33
+ * console.log(command.toHex());
34
+ * // 1a 04 2f 97 0c 01
35
+ * ```
36
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetArchiveHoursMC.md#request)
37
+ */
38
+ declare class GetArchiveHoursMC extends Command {
39
+ parameters: IDownlinkGetArchiveHoursMCParameters;
40
+ constructor(parameters: IDownlinkGetArchiveHoursMCParameters);
41
+ static readonly id = 26;
42
+ static readonly directionType = 1;
43
+ static readonly title = "GET_ARCHIVE_HOURS_MUL";
44
+ static fromBytes(data: Uint8Array): GetArchiveHoursMC;
45
+ toBytes(): Uint8Array;
46
+ }
47
+ export default GetArchiveHoursMC;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * [[include:commands/downlink/GetArchiveHoursMul.md]]
2
+ * [[include:commands/downlink/GetArchiveHoursMC.md]]
3
3
  *
4
4
  * @packageDocumentation
5
5
  */
@@ -11,26 +11,26 @@ const COMMAND_ID = 0x1a;
11
11
  const COMMAND_TITLE = 'GET_ARCHIVE_HOURS_MUL';
12
12
  const COMMAND_BODY_SIZE = 4;
13
13
  /**
14
- * Downlink command.
14
+ * Downlink command
15
15
  *
16
16
  * @example
17
17
  * ```js
18
- * import GetArchiveHoursMul from 'jooby-codec/commands/downlink/GetArchiveHoursMul';
18
+ * import GetArchiveHoursMC from 'jooby-codec/commands/downlink/GetArchiveHoursMC';
19
19
  *
20
- * const parameters = {channels: [0], hourAmount: 0, time: 756648000};
21
- * const command = new GetArchiveHoursMul(parameters);
20
+ * const parameters = {channelList: [0], hours: 0, seconds: 756648000};
21
+ * const command = new GetArchiveHoursMC(parameters);
22
22
  *
23
23
  * // output command binary in hex representation
24
24
  * console.log(command.toHex());
25
25
  * // 1a 04 2f 97 0c 01
26
26
  * ```
27
- * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetArchiveHoursMul.md#request)
27
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetArchiveHoursMC.md#request)
28
28
  */
29
- class GetArchiveHoursMul extends Command {
29
+ class GetArchiveHoursMC extends Command {
30
30
  constructor(parameters) {
31
31
  super();
32
32
  this.parameters = parameters;
33
- this.parameters.channels = this.parameters.channels.sort((a, b) => a - b);
33
+ this.parameters.channelList = this.parameters.channelList.sort((a, b) => a - b);
34
34
  }
35
35
  // data - only body (without header)
36
36
  static fromBytes(data) {
@@ -39,28 +39,28 @@ class GetArchiveHoursMul extends Command {
39
39
  }
40
40
  const buffer = new CommandBinaryBuffer(data);
41
41
  const date = buffer.getDate();
42
- const { hour, hours: hourAmount } = buffer.getHours();
43
- const channels = buffer.getChannels(true);
42
+ const { hour, hours } = buffer.getHours();
43
+ const channelList = buffer.getChannels(true);
44
44
  date.setUTCHours(hour);
45
45
  if (!buffer.isEmpty) {
46
46
  throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
47
47
  }
48
- return new GetArchiveHoursMul({ channels, hourAmount, time: getSecondsFromDate(date) });
48
+ return new GetArchiveHoursMC({ channelList, hours, seconds: getSecondsFromDate(date) });
49
49
  }
50
50
  // returns full message - header with body
51
51
  toBytes() {
52
- const { channels, hourAmount, time } = this.parameters;
52
+ const { channelList, hours, seconds } = this.parameters;
53
53
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_SIZE);
54
- const date = getDateFromSeconds(time);
54
+ const date = getDateFromSeconds(seconds);
55
55
  const hour = date.getUTCHours();
56
56
  buffer.setDate(date);
57
- buffer.setHours(hour, hourAmount);
58
- buffer.setChannels(channels);
57
+ buffer.setHours(hour, hours);
58
+ buffer.setChannels(channelList);
59
59
  return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
60
60
  }
61
61
  }
62
- GetArchiveHoursMul.id = COMMAND_ID;
63
- GetArchiveHoursMul.directionType = DOWNLINK;
64
- GetArchiveHoursMul.title = COMMAND_TITLE;
65
- export default GetArchiveHoursMul;
66
- //# sourceMappingURL=GetArchiveHoursMul.js.map
62
+ GetArchiveHoursMC.id = COMMAND_ID;
63
+ GetArchiveHoursMC.directionType = DOWNLINK;
64
+ GetArchiveHoursMC.title = COMMAND_TITLE;
65
+ export default GetArchiveHoursMC;
66
+ //# sourceMappingURL=GetArchiveHoursMC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetArchiveHoursMC.js","sourceRoot":"","sources":["../../../src/commands/downlink/GetArchiveHoursMC.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,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAC9C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAG5B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,iBAAkB,SAAQ,OAAO;IACnC,YAAqB,UAAgD;QACjE,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAsC;QAGjE,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,iBAAiB,CAAC,EAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC1F,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,oBAAE,GAAG,UAAU,CAAC;AAEhB,+BAAa,GAAG,QAAQ,CAAC;AAEzB,uBAAK,GAAG,aAAa,CAAC;AAwC1C,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * [[include:commands/downlink/SetParameter.md]]
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import Command from '../../Command.js';
7
+ /**
8
+ * Initial values for pulse devices.
9
+ */
10
+ interface IParameterInitialData {
11
+ /**
12
+ * 4 byte int BE
13
+ */
14
+ value: number;
15
+ /**
16
+ * 4 byte int BE
17
+ */
18
+ meterValue: number;
19
+ pulseCoefficient: number;
20
+ }
21
+ interface IParameterInitialDataMC extends IParameterInitialData {
22
+ /**
23
+ * Channel that accept initial values.
24
+ */
25
+ channel: number;
26
+ }
27
+ interface IParameterAbsoluteDataStatus {
28
+ status: number;
29
+ }
30
+ type TParameter = IParameterInitialData | IParameterInitialDataMC | IParameterAbsoluteDataStatus;
31
+ /**
32
+ * SetParameter command parameters
33
+ *
34
+ * @example
35
+ * import {constants} from 'jooby-codec';
36
+ * {id: constants.deviceParameters.INITIAL_DATA, data: {value: 2023, meterValue: 204, pulseCoefficient: 100}}
37
+ */
38
+ interface ISetParameterParameters {
39
+ /**
40
+ * Parameter id - one of `constants/deviceParameters`.
41
+ */
42
+ id: number;
43
+ /**
44
+ * Parameter data, different - depending on id.
45
+ */
46
+ data: TParameter;
47
+ }
48
+ /**
49
+ * Downlink command.
50
+ *
51
+ * @example
52
+ * ```js
53
+ * import SetParameter from 'jooby-codec/commands/downlink/SetParameter';
54
+ *
55
+ * const parameters = {id: constants.deviceParameters.INITIAL_DATA, data: {value: 2023, meterValue: 204, pulseCoefficient: 100}};
56
+ * const command = new SetParameter(parameters);
57
+ *
58
+ * // output command binary in hex representation
59
+ * console.log(command.toHex());
60
+ * // 03 0a 17 00 00 00 cc 82 00 00 07 e7
61
+ * ```
62
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/downlink/SetParameter.md)
63
+ */
64
+ declare class SetParameter extends Command {
65
+ parameters: ISetParameterParameters;
66
+ constructor(parameters: ISetParameterParameters);
67
+ static readonly id = 3;
68
+ static readonly directionType = 1;
69
+ static readonly title = "SET_PARAMETER";
70
+ static fromBytes(data: Uint8Array): SetParameter;
71
+ toBytes(): Uint8Array;
72
+ }
73
+ export default SetParameter;
@@ -0,0 +1,136 @@
1
+ /**
2
+ * [[include:commands/downlink/SetParameter.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 * as deviceParameters from '../../constants/deviceParameters.js';
10
+ const COMMAND_ID = 0x03;
11
+ const COMMAND_TITLE = 'SET_PARAMETER';
12
+ // max size for current implementation
13
+ const COMMAND_MAX_BODY_SIZE = 11;
14
+ const byteToPulseCoefficientMap = new Map([
15
+ [0x80, 1000],
16
+ [0x81, 5000],
17
+ [0x82, 100],
18
+ [0x83, 10],
19
+ [0x84, 1],
20
+ [0x85, 0.1],
21
+ [0x86, 0.01]
22
+ ]);
23
+ const pulseCoefficientToByteMap = new Map([...byteToPulseCoefficientMap.entries()].map(([key, value]) => [value, key]));
24
+ const isMSBSet = (value) => !!(value & 0x80);
25
+ const getPulseCoefficient = (buffer) => {
26
+ const pulseCoefficient = buffer.getUint8();
27
+ if (isMSBSet(pulseCoefficient)) {
28
+ const value = byteToPulseCoefficientMap.get(pulseCoefficient);
29
+ if (value) {
30
+ return value;
31
+ }
32
+ throw new Error('pulseCoefficient MSB is set, but value unknown');
33
+ }
34
+ return pulseCoefficient;
35
+ };
36
+ const setPulseCoefficient = (buffer, value) => {
37
+ if (pulseCoefficientToByteMap.has(value)) {
38
+ const byte = pulseCoefficientToByteMap.get(value);
39
+ if (byte) {
40
+ buffer.setUint8(byte);
41
+ }
42
+ else {
43
+ throw new Error('pulseCoefficient MSB is set, but value unknown');
44
+ }
45
+ }
46
+ else {
47
+ buffer.setUint8(value);
48
+ }
49
+ };
50
+ /**
51
+ * Downlink command.
52
+ *
53
+ * @example
54
+ * ```js
55
+ * import SetParameter from 'jooby-codec/commands/downlink/SetParameter';
56
+ *
57
+ * const parameters = {id: constants.deviceParameters.INITIAL_DATA, data: {value: 2023, meterValue: 204, pulseCoefficient: 100}};
58
+ * const command = new SetParameter(parameters);
59
+ *
60
+ * // output command binary in hex representation
61
+ * console.log(command.toHex());
62
+ * // 03 0a 17 00 00 00 cc 82 00 00 07 e7
63
+ * ```
64
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/downlink/SetParameter.md)
65
+ */
66
+ class SetParameter extends Command {
67
+ constructor(parameters) {
68
+ super();
69
+ this.parameters = parameters;
70
+ }
71
+ // data - only body (without header)
72
+ static fromBytes(data) {
73
+ const buffer = new CommandBinaryBuffer(data);
74
+ const id = buffer.getUint8();
75
+ let parameterData;
76
+ switch (id) {
77
+ case deviceParameters.INITIAL_DATA:
78
+ parameterData = {
79
+ meterValue: buffer.getUint32(false),
80
+ pulseCoefficient: getPulseCoefficient(buffer),
81
+ value: buffer.getUint32(false)
82
+ };
83
+ break;
84
+ case deviceParameters.INITIAL_DATA_MULTI_CHANNEL:
85
+ parameterData = {
86
+ channel: buffer.getUint8(),
87
+ meterValue: buffer.getUint32(false),
88
+ pulseCoefficient: getPulseCoefficient(buffer),
89
+ value: buffer.getUint32(false)
90
+ };
91
+ break;
92
+ case deviceParameters.ABSOLUTE_DATA_STATUS:
93
+ parameterData = {
94
+ status: buffer.getUint8()
95
+ };
96
+ break;
97
+ default:
98
+ throw new Error(`${SetParameter.getId()}: parameter ${id} is not supported`);
99
+ }
100
+ return new SetParameter({ id, data: parameterData });
101
+ }
102
+ // returns full message - header with body
103
+ toBytes() {
104
+ const { id, data } = this.parameters;
105
+ const buffer = new CommandBinaryBuffer(COMMAND_MAX_BODY_SIZE);
106
+ let parameterData;
107
+ buffer.setUint8(id);
108
+ switch (id) {
109
+ case deviceParameters.INITIAL_DATA:
110
+ parameterData = data;
111
+ buffer.setUint32(parameterData.meterValue, false);
112
+ setPulseCoefficient(buffer, parameterData.pulseCoefficient);
113
+ buffer.setUint32(parameterData.value, false);
114
+ break;
115
+ case deviceParameters.INITIAL_DATA_MULTI_CHANNEL:
116
+ parameterData = data;
117
+ buffer.setUint8(parameterData.channel);
118
+ buffer.setUint32(parameterData.meterValue, false);
119
+ setPulseCoefficient(buffer, parameterData.pulseCoefficient);
120
+ buffer.setUint32(parameterData.value, false);
121
+ break;
122
+ case deviceParameters.ABSOLUTE_DATA_STATUS:
123
+ parameterData = data;
124
+ buffer.setUint8(parameterData.status);
125
+ break;
126
+ default:
127
+ throw new Error(`${SetParameter.getId()}: parameter ${id} is not supported`);
128
+ }
129
+ return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
130
+ }
131
+ }
132
+ SetParameter.id = COMMAND_ID;
133
+ SetParameter.directionType = DOWNLINK;
134
+ SetParameter.title = COMMAND_TITLE;
135
+ export default SetParameter;
136
+ //# sourceMappingURL=SetParameter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetParameter.js","sourceRoot":"","sources":["../../../src/commands/downlink/SetParameter.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,KAAK,gBAAgB,MAAM,qCAAqC,CAAC;AAyDxE,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,sCAAsC;AACtC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACtC,CAAC,IAAI,EAAE,IAAI,CAAC;IACZ,CAAC,IAAI,EAAE,IAAI,CAAC;IACZ,CAAC,IAAI,EAAE,GAAG,CAAC;IACX,CAAC,IAAI,EAAE,EAAE,CAAC;IACV,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,GAAG,CAAC;IACX,CAAC,IAAI,EAAE,IAAI,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,IAAI,GAAG,CACrC,CAAC,GAAG,yBAAyB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAC/E,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAE,KAAa,EAAY,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AAEhE,MAAM,mBAAmB,GAAG,CAAE,MAA2B,EAAW,EAAE;IAClE,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAE3C,IAAK,QAAQ,CAAC,gBAAgB,CAAC,EAAG;QAC9B,MAAM,KAAK,GAAG,yBAAyB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAE9D,IAAK,KAAK,EAAG;YACT,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACrE;IAED,OAAO,gBAAgB,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAE,MAA2B,EAAE,KAAa,EAAS,EAAE;IAC/E,IAAK,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAG;QACxC,MAAM,IAAI,GAAG,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAElD,IAAK,IAAI,EAAG;YACR,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACzB;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACrE;KACJ;SAAM;QACH,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC1B;AACL,CAAC,CAAC;AAGF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,YAAa,SAAQ,OAAO;IAC9B,YAAqB,UAAmC;QACpD,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAyB;IAExD,CAAC;IAQD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,aAAa,CAAC;QAElB,QAAS,EAAE,EAAG;YACV,KAAK,gBAAgB,CAAC,YAAY;gBAC9B,aAAa,GAAG;oBACZ,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;oBACnC,gBAAgB,EAAE,mBAAmB,CAAC,MAAM,CAAC;oBAC7C,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;iBACR,CAAC;gBAC3B,MAAM;YAEV,KAAK,gBAAgB,CAAC,0BAA0B;gBAC5C,aAAa,GAAG;oBACZ,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE;oBAC1B,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;oBACnC,gBAAgB,EAAE,mBAAmB,CAAC,MAAM,CAAC;oBAC7C,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;iBACR,CAAC;gBAC3B,MAAM;YAEV,KAAK,gBAAgB,CAAC,oBAAoB;gBACtC,aAAa,GAAG;oBACZ,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;iBACI,CAAC;gBAClC,MAAM;YAEV;gBACI,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;SACpF;QAED,OAAO,IAAI,YAAY,CAAC,EAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC;IACvD,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,EAAE,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAE9D,IAAI,aAAa,CAAC;QAElB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEpB,QAAS,EAAE,EAAG;YACV,KAAK,gBAAgB,CAAC,YAAY;gBAC9B,aAAa,GAAG,IAA6B,CAAC;gBAE9C,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAClD,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;gBAC5D,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC7C,MAAM;YAEV,KAAK,gBAAgB,CAAC,0BAA0B;gBAC5C,aAAa,GAAG,IAA+B,CAAC;gBAEhD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACvC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAClD,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;gBAC5D,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC7C,MAAM;YAEV,KAAK,gBAAgB,CAAC,oBAAoB;gBACtC,aAAa,GAAG,IAAoC,CAAC;gBAErD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACtC,MAAM;YAEV;gBACI,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;SACpF;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAjFe,eAAE,GAAG,UAAU,CAAC;AAEhB,0BAAa,GAAG,QAAQ,CAAC;AAEzB,kBAAK,GAAG,aAAa,CAAC;AAiF1C,eAAe,YAAY,CAAC"}
@@ -9,13 +9,13 @@ import Command from '../../Command.js';
9
9
  *
10
10
  * @example
11
11
  * // time: 2023-04-03T14:01:17.000Z
12
- * {sequenceNumber: 77, time: 733845677}
12
+ * {sequenceNumber: 77, seconds: 733845677}
13
13
  */
14
14
  interface IDownlinkSetTime2000Parameters {
15
15
  /** unique time manipulation operation number */
16
16
  sequenceNumber: number;
17
17
  /** seconds */
18
- time: number;
18
+ seconds: number;
19
19
  }
20
20
  /**
21
21
  * Downlink command.
@@ -24,7 +24,7 @@ interface IDownlinkSetTime2000Parameters {
24
24
  * ```js
25
25
  * import SetTime2000 from 'jooby-codec/commands/downlink/SetTime2000';
26
26
  *
27
- * const parameters = {sequenceNumber: 78, time: 123456};
27
+ * const parameters = {sequenceNumber: 78, seconds: 123456};
28
28
  * const command = new SetTime2000(parameters);
29
29
  *
30
30
  * // output command binary in hex representation
@@ -16,7 +16,7 @@ const COMMAND_BODY_SIZE = 5;
16
16
  * ```js
17
17
  * import SetTime2000 from 'jooby-codec/commands/downlink/SetTime2000';
18
18
  *
19
- * const parameters = {sequenceNumber: 78, time: 123456};
19
+ * const parameters = {sequenceNumber: 78, seconds: 123456};
20
20
  * const command = new SetTime2000(parameters);
21
21
  *
22
22
  * // output command binary in hex representation
@@ -38,7 +38,7 @@ class SetTime2000 extends Command {
38
38
  const buffer = new BinaryBuffer(data, false);
39
39
  const parameters = {
40
40
  sequenceNumber: buffer.getUint8(),
41
- time: buffer.getInt32()
41
+ seconds: buffer.getInt32()
42
42
  };
43
43
  if (!buffer.isEmpty) {
44
44
  throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
@@ -47,10 +47,10 @@ class SetTime2000 extends Command {
47
47
  }
48
48
  // returns full message - header with body
49
49
  toBytes() {
50
- const { sequenceNumber, time } = this.parameters;
50
+ const { sequenceNumber, seconds } = this.parameters;
51
51
  const buffer = new BinaryBuffer(COMMAND_BODY_SIZE, false);
52
52
  buffer.setUint8(sequenceNumber);
53
- buffer.setInt32(time);
53
+ buffer.setInt32(seconds);
54
54
  return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
55
55
  }
56
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SetTime2000.js","sourceRoot":"","sources":["../../../src/commands/downlink/SetTime2000.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;AAkB3D,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAG5B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAY,SAAQ,OAAO;IAC7B,YAAqB,UAA0C;QAC3D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAgC;IAE/D,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,QAAQ,EAAE;SAC1B,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,WAAW,CAAC,UAAU,CAAC,CAAC;IACvC,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,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEtB,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAlCe,cAAE,GAAG,UAAU,CAAC;AAEhB,yBAAa,GAAG,QAAQ,CAAC;AAEzB,iBAAK,GAAG,aAAa,CAAC;AAkC1C,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"SetTime2000.js","sourceRoot":"","sources":["../../../src/commands/downlink/SetTime2000.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;AAkB3D,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAG5B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAY,SAAQ,OAAO;IAC7B,YAAqB,UAA0C;QAC3D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAgC;IAE/D,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,QAAQ,EAAE;SAC7B,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,WAAW,CAAC,UAAU,CAAC,CAAC;IACvC,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,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEzB,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAlCe,cAAE,GAAG,UAAU,CAAC;AAEhB,yBAAa,GAAG,QAAQ,CAAC;AAEzB,iBAAK,GAAG,aAAa,CAAC;AAkC1C,eAAe,WAAW,CAAC"}
@@ -4,7 +4,11 @@
4
4
  * @packageDocumentation
5
5
  */
6
6
  export { default as CorrectTime2000 } from './CorrectTime2000.js';
7
- export { default as GetArchiveHoursMul } from './GetArchiveHoursMul.js';
7
+ export { default as ExAbsArchiveDaysMC } from './ExAbsArchiveDaysMC.js';
8
+ export { default as ExAbsArchiveHoursMC } from './ExAbsArchiveHoursMC.js';
9
+ export { default as GetArchiveDaysMC } from './GetArchiveDaysMC.js';
10
+ export { default as GetArchiveHoursMC } from './GetArchiveHoursMC.js';
8
11
  export { default as NewStatus } from './NewStatus.js';
12
+ export { default as SetParameter } from './SetParameter.js';
9
13
  export { default as SetTime2000 } from './SetTime2000.js';
10
14
  export { default as SoftRestart } from './SoftRestart.js';
@@ -4,8 +4,12 @@
4
4
  * @packageDocumentation
5
5
  */
6
6
  export { default as CorrectTime2000 } from './CorrectTime2000.js';
7
- export { default as GetArchiveHoursMul } from './GetArchiveHoursMul.js';
7
+ export { default as ExAbsArchiveDaysMC } from './ExAbsArchiveDaysMC.js';
8
+ export { default as ExAbsArchiveHoursMC } from './ExAbsArchiveHoursMC.js';
9
+ export { default as GetArchiveDaysMC } from './GetArchiveDaysMC.js';
10
+ export { default as GetArchiveHoursMC } from './GetArchiveHoursMC.js';
8
11
  export { default as NewStatus } from './NewStatus.js';
12
+ export { default as SetParameter } from './SetParameter.js';
9
13
  export { default as SetTime2000 } from './SetTime2000.js';
10
14
  export { default as SoftRestart } from './SoftRestart.js';
11
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/downlink/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/downlink/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import GetCurrentMC, { IGetCurrentMCParameters } from './GetCurrentMC.js';
2
+ /**
3
+ * DataDayMC command parameters.
4
+ */
5
+ interface IDataDayMCParameters extends IGetCurrentMCParameters {
6
+ /**
7
+ * Seconds since year 2000, i.e. timestamp (in seconds) - 946684800
8
+ */
9
+ seconds: number;
10
+ }
11
+ declare class DataDayMC extends GetCurrentMC {
12
+ parameters: IDataDayMCParameters;
13
+ constructor(parameters: IDataDayMCParameters);
14
+ static readonly id = 22;
15
+ static readonly directionType = 2;
16
+ static readonly title = "DATA_DAY_MUL";
17
+ static fromBytes(data: Uint8Array): DataDayMC;
18
+ toBytes(): Uint8Array;
19
+ }
20
+ export default DataDayMC;
@@ -2,41 +2,41 @@
2
2
  import Command from '../../Command.js';
3
3
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
4
4
  import { getSecondsFromDate } from '../../utils/time.js';
5
- import GetCurrentMul from './GetCurrentMul.js';
5
+ import GetCurrentMC from './GetCurrentMC.js';
6
6
  import { UPLINK } from '../../constants/directionTypes.js';
7
7
  const COMMAND_ID = 0x16;
8
8
  const COMMAND_TITLE = 'DATA_DAY_MUL';
9
9
  // 2 byte for date + 2 for channels (max channels: 7)
10
10
  // 4 + (7 * 4)
11
11
  const COMMAND_BODY_MAX_SIZE = 32;
12
- class DataDayMul extends GetCurrentMul {
12
+ class DataDayMC extends GetCurrentMC {
13
13
  constructor(parameters) {
14
14
  super(parameters);
15
15
  this.parameters = parameters;
16
16
  }
17
17
  static fromBytes(data) {
18
- const parameters = { channels: [], time: 0 };
18
+ const parameters = { channelList: [], seconds: 0 };
19
19
  const buffer = new CommandBinaryBuffer(data);
20
20
  const date = buffer.getDate();
21
21
  const channelArray = buffer.getChannels(false);
22
- parameters.channels = channelArray.map(channelIndex => ({
22
+ parameters.channelList = channelArray.map(channelIndex => ({
23
23
  value: buffer.getExtendedValue(),
24
24
  index: channelIndex
25
25
  }));
26
- parameters.time = getSecondsFromDate(date);
27
- return new DataDayMul(parameters);
26
+ parameters.seconds = getSecondsFromDate(date);
27
+ return new DataDayMC(parameters);
28
28
  }
29
29
  toBytes() {
30
30
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
31
- const { channels, time } = this.parameters;
32
- buffer.setDate(time);
33
- buffer.setChannels(channels.map(({ index }) => index));
34
- channels.forEach(({ value }) => buffer.setExtendedValue(value));
31
+ const { channelList, seconds } = this.parameters;
32
+ buffer.setDate(seconds);
33
+ buffer.setChannels(channelList.map(({ index }) => index));
34
+ channelList.forEach(({ value }) => buffer.setExtendedValue(value));
35
35
  return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
36
36
  }
37
37
  }
38
- DataDayMul.id = COMMAND_ID;
39
- DataDayMul.directionType = UPLINK;
40
- DataDayMul.title = COMMAND_TITLE;
41
- export default DataDayMul;
42
- //# sourceMappingURL=DataDayMul.js.map
38
+ DataDayMC.id = COMMAND_ID;
39
+ DataDayMC.directionType = UPLINK;
40
+ DataDayMC.title = COMMAND_TITLE;
41
+ export default DataDayMC;
42
+ //# sourceMappingURL=DataDayMC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataDayMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/DataDayMC.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,YAAuC,MAAM,mBAAmB,CAAC;AACxE,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,SAAU,SAAQ,YAAY;IAChC,YAAqB,UAAgC;QACjD,KAAK,CAAC,UAAU,CAAC,CAAC;QADD,eAAU,GAAV,UAAU,CAAsB;IAErD,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,UAAU,GAAyB,EAAC,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAC,CAAC;QAEvE,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,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACvD,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,SAAS,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,WAAW,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAE/C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,WAAW,CAAC,OAAO,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEjE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAjCe,YAAE,GAAG,UAAU,CAAC;AAEhB,uBAAa,GAAG,MAAM,CAAC;AAEvB,eAAK,GAAG,aAAa,CAAC;AAiC1C,eAAe,SAAS,CAAC"}
@@ -1,5 +1,5 @@
1
- import GetCurrentMul from './GetCurrentMul.js';
2
- declare class DataHourMul extends GetCurrentMul {
1
+ import GetCurrentMC from './GetCurrentMC.js';
2
+ declare class DataHourMC extends GetCurrentMC {
3
3
  parameters: any;
4
4
  constructor(parameters: any);
5
5
  static readonly id = 23;
@@ -8,4 +8,4 @@ declare class DataHourMul extends GetCurrentMul {
8
8
  static fromBytes(data: Uint8Array): any;
9
9
  toBytes(): Uint8Array;
10
10
  }
11
- export default DataHourMul;
11
+ export default DataHourMC;
@@ -3,17 +3,17 @@
3
3
  /* eslint-disable @typescript-eslint/no-unsafe-argument */
4
4
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
5
5
  import Command from '../../Command.js';
6
- import GetCurrentMul from './GetCurrentMul.js';
6
+ import GetCurrentMC from './GetCurrentMC.js';
7
7
  import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
8
8
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
9
9
  import { UPLINK } from '../../constants/directionTypes.js';
10
10
  const COMMAND_ID = 0x17;
11
11
  const COMMAND_TITLE = 'DATA_HOUR_MUL';
12
- // date 2 bytes, hour 1 byte, channels - 1 byte, so max channels = 4
12
+ // date 2 bytes, hour 1 byte, channelList - 1 byte, so max channelList = 4
13
13
  // max hours diff - 7 (3 bit value)
14
- // 4 + (4 channels * 5 bytes of hour values) + (4 * 5 bytes of diff * 7 max hours diff)
14
+ // 4 + (4 channelList * 5 bytes of hour values) + (4 * 5 bytes of diff * 7 max hours diff)
15
15
  const COMMAND_BODY_MAX_SIZE = 164;
16
- class DataHourMul extends GetCurrentMul {
16
+ class DataHourMC extends GetCurrentMC {
17
17
  constructor(parameters) {
18
18
  super(parameters);
19
19
  this.parameters = parameters;
@@ -28,7 +28,7 @@ class DataHourMul extends GetCurrentMul {
28
28
  const counterDate = new Date(date);
29
29
  let hourAmount = hours;
30
30
  let value;
31
- const channels = [];
31
+ const channelList = [];
32
32
  if (hourAmount === 0) {
33
33
  // one hour
34
34
  hourAmount = 1;
@@ -38,30 +38,30 @@ 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 };
42
- channels.push(channel);
41
+ const channel = { value, index: channelIndex, seconds: getSecondsFromDate(counterDate), diff };
42
+ channelList.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
- return new DataHourMul({ channels });
49
+ return new DataHourMC({ channelList });
50
50
  }
51
51
  toBytes() {
52
52
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
53
- const { channels } = this.parameters;
54
- const { time } = channels[0];
55
- const realDate = getDateFromSeconds(time);
53
+ const { channelList } = this.parameters;
54
+ const { seconds } = channelList[0];
55
+ const realDate = getDateFromSeconds(seconds);
56
56
  const hour = realDate.getUTCHours();
57
- let hourAmount = channels[0].diff.length;
58
- if (hourAmount === 1) {
59
- hourAmount = 0;
57
+ let hours = channelList[0].diff.length;
58
+ if (hours === 1) {
59
+ hours = 0;
60
60
  }
61
- buffer.setDate(time);
62
- buffer.setHours(hour, hourAmount);
63
- buffer.setChannels(channels);
64
- for (const { value, diff } of channels) {
61
+ buffer.setDate(seconds);
62
+ buffer.setHours(hour, hours);
63
+ buffer.setChannels(channelList);
64
+ for (const { value, diff } of channelList) {
65
65
  buffer.setExtendedValue(value);
66
66
  for (const { value: diffValue } of diff) {
67
67
  buffer.setExtendedValue(diffValue);
@@ -70,8 +70,8 @@ class DataHourMul extends GetCurrentMul {
70
70
  return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
71
71
  }
72
72
  }
73
- DataHourMul.id = COMMAND_ID;
74
- DataHourMul.directionType = UPLINK;
75
- DataHourMul.title = COMMAND_TITLE;
76
- export default DataHourMul;
77
- //# sourceMappingURL=DataHourMul.js.map
73
+ DataHourMC.id = COMMAND_ID;
74
+ DataHourMC.directionType = UPLINK;
75
+ DataHourMC.title = COMMAND_TITLE;
76
+ export default DataHourMC;
77
+ //# sourceMappingURL=DataHourMC.js.map