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
@@ -0,0 +1,64 @@
1
+ /**
2
+ * [[include:commands/downlink/GetArchiveDaysMul.md]]
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import Command from '../../Command.js';
7
+ import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
8
+ import { DOWNLINK } from '../../constants/directionTypes.js';
9
+ import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
10
+ const COMMAND_ID = 0x1b;
11
+ const COMMAND_TITLE = 'GET_ARCHIVE_DAYS_MUL';
12
+ const COMMAND_BODY_SIZE = 4;
13
+ /**
14
+ * Downlink command
15
+ *
16
+ * @example
17
+ * ```js
18
+ * import GetArchiveDaysMul from 'jooby-codec/commands/downlink/GetArchiveDaysMul';
19
+ *
20
+ * const parameters = {channels: [0], dayAmount: 1, seconds: 756691200};
21
+ * const command = new GetArchiveDaysMul(parameters);
22
+ *
23
+ * // output command binary in hex representation
24
+ * console.log(command.toHex());
25
+ * // 1b 04 2f 98 01 01
26
+ * ```
27
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetArchiveDaysMul.md#request)
28
+ */
29
+ class GetArchiveDaysMul extends Command {
30
+ constructor(parameters) {
31
+ super();
32
+ this.parameters = parameters;
33
+ this.parameters.channels = this.parameters.channels.sort((a, b) => a - b);
34
+ }
35
+ // data - only body (without header)
36
+ static fromBytes(data) {
37
+ if (data.byteLength !== COMMAND_BODY_SIZE) {
38
+ throw new Error(`${this.getName()}. Wrong buffer size: ${data.byteLength}.`);
39
+ }
40
+ const buffer = new CommandBinaryBuffer(data);
41
+ const date = buffer.getDate();
42
+ const channels = buffer.getChannels(true);
43
+ const dayAmount = buffer.getUint8();
44
+ if (!buffer.isEmpty) {
45
+ throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
46
+ }
47
+ return new GetArchiveDaysMul({ channels, dayAmount, seconds: getSecondsFromDate(date) });
48
+ }
49
+ // returns full message - header with body
50
+ toBytes() {
51
+ const { channels, dayAmount, seconds } = this.parameters;
52
+ const buffer = new CommandBinaryBuffer(COMMAND_BODY_SIZE);
53
+ const date = getDateFromSeconds(seconds);
54
+ buffer.setDate(date);
55
+ buffer.setChannels(channels);
56
+ buffer.setUint8(dayAmount);
57
+ return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
58
+ }
59
+ }
60
+ GetArchiveDaysMul.id = COMMAND_ID;
61
+ GetArchiveDaysMul.directionType = DOWNLINK;
62
+ GetArchiveDaysMul.title = COMMAND_TITLE;
63
+ export default GetArchiveDaysMul;
64
+ //# sourceMappingURL=GetArchiveDaysMul.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetArchiveDaysMul.js","sourceRoot":"","sources":["../../../src/commands/downlink/GetArchiveDaysMul.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,sBAAsB,CAAC;AAC7C,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,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAQD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,IAAK,IAAI,CAAC,UAAU,KAAK,iBAAiB,EAAG;YACzC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,wBAAwB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SAChF;QAED,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEpC,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,iBAAiB,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC3F,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE3B,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AArCe,oBAAE,GAAG,UAAU,CAAC;AAEhB,+BAAa,GAAG,QAAQ,CAAC;AAEzB,uBAAK,GAAG,aAAa,CAAC;AAqC1C,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * [[include:commands/downlink/GetArchiveHoursMul.md]]
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import Command from '../../Command.js';
7
+ /**
8
+ * GetArchiveHoursMul command parameters
9
+ *
10
+ * @example
11
+ * // request for 2 hours archive values from channel #1 from 2023-12-23T12:00:00.000Z or 756648000 seconds since 2000 year
12
+ * {channels: [0], hourAmount: 2, seconds: 756648000}
13
+ */
14
+ interface IDownlinkGetArchiveHoursMulParameters {
15
+ /** amount of hours to retrieve */
16
+ hourAmount: number;
17
+ /** time */
18
+ seconds: number;
19
+ /** array of channels indexes */
20
+ channels: Array<number>;
21
+ }
22
+ /**
23
+ * Downlink command
24
+ *
25
+ * @example
26
+ * ```js
27
+ * import GetArchiveHoursMul from 'jooby-codec/commands/downlink/GetArchiveHoursMul';
28
+ *
29
+ * const parameters = {channels: [0], hourAmount: 0, seconds: 756648000};
30
+ * const command = new GetArchiveHoursMul(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/GetArchiveHoursMul.md#request)
37
+ */
38
+ declare class GetArchiveHoursMul extends Command {
39
+ parameters: IDownlinkGetArchiveHoursMulParameters;
40
+ constructor(parameters: IDownlinkGetArchiveHoursMulParameters);
41
+ static readonly id = 26;
42
+ static readonly directionType = 1;
43
+ static readonly title = "GET_ARCHIVE_HOURS_MUL";
44
+ static fromBytes(data: Uint8Array): GetArchiveHoursMul;
45
+ toBytes(): Uint8Array;
46
+ }
47
+ export default GetArchiveHoursMul;
@@ -0,0 +1,66 @@
1
+ /**
2
+ * [[include:commands/downlink/GetArchiveHoursMul.md]]
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import Command from '../../Command.js';
7
+ import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
8
+ import { DOWNLINK } from '../../constants/directionTypes.js';
9
+ import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
10
+ const COMMAND_ID = 0x1a;
11
+ const COMMAND_TITLE = 'GET_ARCHIVE_HOURS_MUL';
12
+ const COMMAND_BODY_SIZE = 4;
13
+ /**
14
+ * Downlink command
15
+ *
16
+ * @example
17
+ * ```js
18
+ * import GetArchiveHoursMul from 'jooby-codec/commands/downlink/GetArchiveHoursMul';
19
+ *
20
+ * const parameters = {channels: [0], hourAmount: 0, seconds: 756648000};
21
+ * const command = new GetArchiveHoursMul(parameters);
22
+ *
23
+ * // output command binary in hex representation
24
+ * console.log(command.toHex());
25
+ * // 1a 04 2f 97 0c 01
26
+ * ```
27
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetArchiveHoursMul.md#request)
28
+ */
29
+ class GetArchiveHoursMul extends Command {
30
+ constructor(parameters) {
31
+ super();
32
+ this.parameters = parameters;
33
+ this.parameters.channels = this.parameters.channels.sort((a, b) => a - b);
34
+ }
35
+ // data - only body (without header)
36
+ static fromBytes(data) {
37
+ if (data.byteLength !== COMMAND_BODY_SIZE) {
38
+ throw new Error(`${this.getName()}. Wrong buffer size: ${data.byteLength}.`);
39
+ }
40
+ const buffer = new CommandBinaryBuffer(data);
41
+ const date = buffer.getDate();
42
+ const { hour, hours: hourAmount } = buffer.getHours();
43
+ const channels = buffer.getChannels(true);
44
+ date.setUTCHours(hour);
45
+ if (!buffer.isEmpty) {
46
+ throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
47
+ }
48
+ return new GetArchiveHoursMul({ channels, hourAmount, seconds: getSecondsFromDate(date) });
49
+ }
50
+ // returns full message - header with body
51
+ toBytes() {
52
+ const { channels, hourAmount, seconds } = this.parameters;
53
+ const buffer = new CommandBinaryBuffer(COMMAND_BODY_SIZE);
54
+ const date = getDateFromSeconds(seconds);
55
+ const hour = date.getUTCHours();
56
+ buffer.setDate(date);
57
+ buffer.setHours(hour, hourAmount);
58
+ buffer.setChannels(channels);
59
+ return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
60
+ }
61
+ }
62
+ GetArchiveHoursMul.id = COMMAND_ID;
63
+ GetArchiveHoursMul.directionType = DOWNLINK;
64
+ GetArchiveHoursMul.title = COMMAND_TITLE;
65
+ export default GetArchiveHoursMul;
66
+ //# sourceMappingURL=GetArchiveHoursMul.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetArchiveHoursMul.js","sourceRoot":"","sources":["../../../src/commands/downlink/GetArchiveHoursMul.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,kBAAmB,SAAQ,OAAO;IACpC,YAAqB,UAAiD;QAClE,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAuC;QAGlE,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAQD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,IAAK,IAAI,CAAC,UAAU,KAAK,iBAAiB,EAAG;YACzC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,wBAAwB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SAChF;QAED,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEvB,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,kBAAkB,CAAC,EAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC7F,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE7B,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAxCe,qBAAE,GAAG,UAAU,CAAC;AAEhB,gCAAa,GAAG,QAAQ,CAAC;AAEzB,wBAAK,GAAG,aAAa,CAAC;AAwC1C,eAAe,kBAAkB,CAAC"}
@@ -17,7 +17,7 @@ import Command from '../../Command.js';
17
17
  declare class NewStatus extends Command {
18
18
  constructor();
19
19
  static readonly id = 20;
20
- static readonly isUplink = false;
20
+ static readonly directionType = 1;
21
21
  static readonly title = "NEW_STATUS";
22
22
  static fromBytes(): NewStatus;
23
23
  toBytes(): Uint8Array;
@@ -1,4 +1,5 @@
1
1
  import Command from '../../Command.js';
2
+ import { DOWNLINK } from '../../constants/directionTypes.js';
2
3
  const COMMAND_ID = 0x14;
3
4
  const COMMAND_TITLE = 'NEW_STATUS';
4
5
  /**
@@ -30,7 +31,7 @@ class NewStatus extends Command {
30
31
  }
31
32
  }
32
33
  NewStatus.id = COMMAND_ID;
33
- NewStatus.isUplink = false;
34
+ NewStatus.directionType = DOWNLINK;
34
35
  NewStatus.title = COMMAND_TITLE;
35
36
  export default NewStatus;
36
37
  //# sourceMappingURL=NewStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NewStatus.js","sourceRoot":"","sources":["../../../src/commands/downlink/NewStatus.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAGvC,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,YAAY,CAAC;AAGnC;;;;;;;;;;;;;;GAcG;AACH,MAAM,SAAU,SAAQ,OAAO;IAC3B;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAQD,oCAAoC;IACpC,MAAM,CAAC,SAAS;QACZ,OAAO,IAAI,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED,kDAAkD;IAClD,OAAO;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;;AAde,YAAE,GAAG,UAAU,CAAC;AAEhB,kBAAQ,GAAG,KAAK,CAAC;AAEjB,eAAK,GAAG,aAAa,CAAC;AAc1C,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"NewStatus.js","sourceRoot":"","sources":["../../../src/commands/downlink/NewStatus.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,QAAQ,EAAC,MAAM,mCAAmC,CAAC;AAG3D,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,YAAY,CAAC;AAGnC;;;;;;;;;;;;;;GAcG;AACH,MAAM,SAAU,SAAQ,OAAO;IAC3B;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAQD,oCAAoC;IACpC,MAAM,CAAC,SAAS;QACZ,OAAO,IAAI,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED,kDAAkD;IAClD,OAAO;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;;AAde,YAAE,GAAG,UAAU,CAAC;AAEhB,uBAAa,GAAG,QAAQ,CAAC;AAEzB,eAAK,GAAG,aAAa,CAAC;AAc1C,eAAe,SAAS,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 IParameterInitialDataMultiChannel 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 | IParameterInitialDataMultiChannel | 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":"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"}
@@ -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
- /** sequence Number */
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
@@ -37,7 +37,7 @@ declare class SetTime2000 extends Command {
37
37
  parameters: IDownlinkSetTime2000Parameters;
38
38
  constructor(parameters: IDownlinkSetTime2000Parameters);
39
39
  static readonly id = 2;
40
- static readonly isUplink = false;
40
+ static readonly directionType = 1;
41
41
  static readonly title = "SET_TIME_2000";
42
42
  static fromBytes(data: Uint8Array): SetTime2000;
43
43
  toBytes(): Uint8Array;
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import Command from '../../Command.js';
7
7
  import BinaryBuffer from '../../BinaryBuffer.js';
8
+ import { DOWNLINK } from '../../constants/directionTypes.js';
8
9
  const COMMAND_ID = 0x02;
9
10
  const COMMAND_TITLE = 'SET_TIME_2000';
10
11
  const COMMAND_BODY_SIZE = 5;
@@ -15,7 +16,7 @@ const COMMAND_BODY_SIZE = 5;
15
16
  * ```js
16
17
  * import SetTime2000 from 'jooby-codec/commands/downlink/SetTime2000';
17
18
  *
18
- * const parameters = {sequenceNumber: 78, time: 123456};
19
+ * const parameters = {sequenceNumber: 78, seconds: 123456};
19
20
  * const command = new SetTime2000(parameters);
20
21
  *
21
22
  * // output command binary in hex representation
@@ -37,7 +38,7 @@ class SetTime2000 extends Command {
37
38
  const buffer = new BinaryBuffer(data, false);
38
39
  const parameters = {
39
40
  sequenceNumber: buffer.getUint8(),
40
- time: buffer.getInt32()
41
+ seconds: buffer.getInt32()
41
42
  };
42
43
  if (!buffer.isEmpty) {
43
44
  throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
@@ -46,15 +47,15 @@ class SetTime2000 extends Command {
46
47
  }
47
48
  // returns full message - header with body
48
49
  toBytes() {
49
- const { sequenceNumber, time } = this.parameters;
50
+ const { sequenceNumber, seconds } = this.parameters;
50
51
  const buffer = new BinaryBuffer(COMMAND_BODY_SIZE, false);
51
52
  buffer.setUint8(sequenceNumber);
52
- buffer.setInt32(time);
53
+ buffer.setInt32(seconds);
53
54
  return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
54
55
  }
55
56
  }
56
57
  SetTime2000.id = COMMAND_ID;
57
- SetTime2000.isUplink = false;
58
+ SetTime2000.directionType = DOWNLINK;
58
59
  SetTime2000.title = COMMAND_TITLE;
59
60
  export default SetTime2000;
60
61
  //# sourceMappingURL=SetTime2000.js.map
@@ -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;AAkBjD,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,oBAAQ,GAAG,KAAK,CAAC;AAEjB,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"}
@@ -16,7 +16,7 @@ import Command from '../../Command.js';
16
16
  */
17
17
  declare class SoftRestart extends Command {
18
18
  static readonly id = 25;
19
- static readonly isUplink = false;
19
+ static readonly directionType = 1;
20
20
  static readonly title = "SOFT_RESTART";
21
21
  static fromBytes(): SoftRestart;
22
22
  toBytes(): Uint8Array;
@@ -1,4 +1,5 @@
1
1
  import Command from '../../Command.js';
2
+ import { DOWNLINK } from '../../constants/directionTypes.js';
2
3
  const COMMAND_ID = 0x19;
3
4
  const COMMAND_TITLE = 'SOFT_RESTART';
4
5
  /**
@@ -27,7 +28,7 @@ class SoftRestart extends Command {
27
28
  }
28
29
  }
29
30
  SoftRestart.id = COMMAND_ID;
30
- SoftRestart.isUplink = false;
31
+ SoftRestart.directionType = DOWNLINK;
31
32
  SoftRestart.title = COMMAND_TITLE;
32
33
  export default SoftRestart;
33
34
  //# sourceMappingURL=SoftRestart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SoftRestart.js","sourceRoot":"","sources":["../../../src/commands/downlink/SoftRestart.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAGvC,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,cAAc,CAAC;AAGrC;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAY,SAAQ,OAAO;IAO7B,oCAAoC;IACpC,MAAM,CAAC,SAAS;QACZ,OAAO,IAAI,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,kDAAkD;IAClD,OAAO;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;;AAde,cAAE,GAAG,UAAU,CAAC;AAEhB,oBAAQ,GAAG,KAAK,CAAC;AAEjB,iBAAK,GAAG,aAAa,CAAC;AAc1C,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"SoftRestart.js","sourceRoot":"","sources":["../../../src/commands/downlink/SoftRestart.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,QAAQ,EAAC,MAAM,mCAAmC,CAAC;AAG3D,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,cAAc,CAAC;AAGrC;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAY,SAAQ,OAAO;IAO7B,oCAAoC;IACpC,MAAM,CAAC,SAAS;QACZ,OAAO,IAAI,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,kDAAkD;IAClD,OAAO;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;;AAde,cAAE,GAAG,UAAU,CAAC;AAEhB,yBAAa,GAAG,QAAQ,CAAC;AAEzB,iBAAK,GAAG,aAAa,CAAC;AAc1C,eAAe,WAAW,CAAC"}
@@ -4,6 +4,11 @@
4
4
  * @packageDocumentation
5
5
  */
6
6
  export { default as CorrectTime2000 } from './CorrectTime2000.js';
7
+ export { default as ExAbsArchiveDaysMul } from './ExAbsArchiveDaysMul.js';
8
+ export { default as ExAbsArchiveHoursMul } from './ExAbsArchiveHoursMul.js';
9
+ export { default as GetArchiveDaysMul } from './GetArchiveDaysMul.js';
10
+ export { default as GetArchiveHoursMul } from './GetArchiveHoursMul.js';
7
11
  export { default as NewStatus } from './NewStatus.js';
12
+ export { default as SetParameter } from './SetParameter.js';
8
13
  export { default as SetTime2000 } from './SetTime2000.js';
9
14
  export { default as SoftRestart } from './SoftRestart.js';
@@ -4,7 +4,12 @@
4
4
  * @packageDocumentation
5
5
  */
6
6
  export { default as CorrectTime2000 } from './CorrectTime2000.js';
7
+ export { default as ExAbsArchiveDaysMul } from './ExAbsArchiveDaysMul.js';
8
+ export { default as ExAbsArchiveHoursMul } from './ExAbsArchiveHoursMul.js';
9
+ export { default as GetArchiveDaysMul } from './GetArchiveDaysMul.js';
10
+ export { default as GetArchiveHoursMul } from './GetArchiveHoursMul.js';
7
11
  export { default as NewStatus } from './NewStatus.js';
12
+ export { default as SetParameter } from './SetParameter.js';
8
13
  export { default as SetTime2000 } from './SetTime2000.js';
9
14
  export { default as SoftRestart } from './SoftRestart.js';
10
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,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,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAC,OAAO,IAAI,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AACtE,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"}
@@ -29,7 +29,7 @@ declare class CorrectTime2000 extends Command {
29
29
  parameters: IUplinkCorrectTime2000Parameters;
30
30
  constructor(parameters: IUplinkCorrectTime2000Parameters);
31
31
  static readonly id = 12;
32
- static readonly isUplink = true;
32
+ static readonly directionType = 2;
33
33
  static readonly title = "CORRECT_TIME_2000";
34
34
  static fromBytes(data: Uint8Array): CorrectTime2000;
35
35
  toBytes(): Uint8Array;
@@ -1,5 +1,6 @@
1
1
  import Command from '../../Command.js';
2
2
  import BinaryBuffer from '../../BinaryBuffer.js';
3
+ import { UPLINK } from '../../constants/directionTypes.js';
3
4
  const COMMAND_ID = 0x0c;
4
5
  const COMMAND_TITLE = 'CORRECT_TIME_2000';
5
6
  const COMMAND_BODY_SIZE = 1;
@@ -47,7 +48,7 @@ class CorrectTime2000 extends Command {
47
48
  }
48
49
  }
49
50
  CorrectTime2000.id = COMMAND_ID;
50
- CorrectTime2000.isUplink = true;
51
+ CorrectTime2000.directionType = UPLINK;
51
52
  CorrectTime2000.title = COMMAND_TITLE;
52
53
  export default CorrectTime2000;
53
54
  //# sourceMappingURL=CorrectTime2000.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CorrectTime2000.js","sourceRoot":"","sources":["../../../src/commands/uplink/CorrectTime2000.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,OAAO,YAAY,MAAM,uBAAuB,CAAC;AAcjD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAG5B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,eAAgB,SAAQ,OAAO;IACjC,YAAqB,UAA4C;QAC7D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAkC;IAEjE,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;QAE7C,MAAM,UAAU,GAAG;YACf,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;SAC5B,CAAC;QAEF,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO;QACH,MAAM,EAAC,MAAM,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAE1D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAExB,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAhCe,kBAAE,GAAG,UAAU,CAAC;AAEhB,wBAAQ,GAAG,IAAI,CAAC;AAEhB,qBAAK,GAAG,aAAa,CAAC;AAgC1C,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"CorrectTime2000.js","sourceRoot":"","sources":["../../../src/commands/uplink/CorrectTime2000.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAczD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAG5B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,eAAgB,SAAQ,OAAO;IACjC,YAAqB,UAA4C;QAC7D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAkC;IAEjE,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;QAE7C,MAAM,UAAU,GAAG;YACf,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;SAC5B,CAAC;QAEF,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO;QACH,MAAM,EAAC,MAAM,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAE1D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAExB,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAhCe,kBAAE,GAAG,UAAU,CAAC;AAEhB,6BAAa,GAAG,MAAM,CAAC;AAEvB,qBAAK,GAAG,aAAa,CAAC;AAgC1C,eAAe,eAAe,CAAC"}
@@ -6,13 +6,13 @@ interface IDataDayMulParameters extends IGetCurrentMulParameters {
6
6
  /**
7
7
  * Seconds since year 2000, i.e. timestamp (in seconds) - 946684800
8
8
  */
9
- time: number;
9
+ seconds: number;
10
10
  }
11
11
  declare class DataDayMul extends GetCurrentMul {
12
12
  parameters: IDataDayMulParameters;
13
13
  constructor(parameters: IDataDayMulParameters);
14
14
  static readonly id = 22;
15
- static readonly isUplink = true;
15
+ static readonly directionType = 2;
16
16
  static readonly title = "DATA_DAY_MUL";
17
17
  static fromBytes(data: Uint8Array): DataDayMul;
18
18
  toBytes(): Uint8Array;