jooby-codec 1.5.0 → 1.7.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 (135) hide show
  1. package/dist/Command.d.ts +14 -4
  2. package/dist/Command.js +10 -5
  3. package/dist/Command.js.map +1 -1
  4. package/dist/CommandBinaryBuffer.d.ts +142 -5
  5. package/dist/CommandBinaryBuffer.js +275 -0
  6. package/dist/CommandBinaryBuffer.js.map +1 -1
  7. package/dist/commands/downlink/CorrectTime2000.d.ts +1 -6
  8. package/dist/commands/downlink/CorrectTime2000.js +2 -8
  9. package/dist/commands/downlink/CorrectTime2000.js.map +1 -1
  10. package/dist/commands/downlink/ExAbsArchiveDaysMC.d.ts +5 -10
  11. package/dist/commands/downlink/ExAbsArchiveDaysMC.js +3 -9
  12. package/dist/commands/downlink/ExAbsArchiveDaysMC.js.map +1 -1
  13. package/dist/commands/downlink/ExAbsArchiveHoursMC.d.ts +5 -10
  14. package/dist/commands/downlink/ExAbsArchiveHoursMC.js +3 -9
  15. package/dist/commands/downlink/ExAbsArchiveHoursMC.js.map +1 -1
  16. package/dist/commands/downlink/ExAbsCurrentMC.d.ts +1 -6
  17. package/dist/commands/downlink/ExAbsCurrentMC.js +3 -8
  18. package/dist/commands/downlink/ExAbsCurrentMC.js.map +1 -1
  19. package/dist/commands/downlink/GetArchiveDaysMC.d.ts +5 -5
  20. package/dist/commands/downlink/GetArchiveDaysMC.js +3 -4
  21. package/dist/commands/downlink/GetArchiveDaysMC.js.map +1 -1
  22. package/dist/commands/downlink/GetArchiveEvents.d.ts +39 -0
  23. package/dist/commands/downlink/GetArchiveEvents.js +58 -0
  24. package/dist/commands/downlink/GetArchiveEvents.js.map +1 -0
  25. package/dist/commands/downlink/GetArchiveHoursMC.d.ts +5 -10
  26. package/dist/commands/downlink/GetArchiveHoursMC.js +3 -9
  27. package/dist/commands/downlink/GetArchiveHoursMC.js.map +1 -1
  28. package/dist/commands/downlink/GetCurrentMC.d.ts +25 -0
  29. package/dist/commands/downlink/GetCurrentMC.js +41 -0
  30. package/dist/commands/downlink/GetCurrentMC.js.map +1 -0
  31. package/dist/commands/downlink/GetLmicVersion.d.ts +25 -0
  32. package/dist/commands/downlink/GetLmicVersion.js +41 -0
  33. package/dist/commands/downlink/GetLmicVersion.js.map +1 -0
  34. package/dist/commands/downlink/GetParameter.d.ts +37 -0
  35. package/dist/commands/downlink/GetParameter.js +64 -0
  36. package/dist/commands/downlink/GetParameter.js.map +1 -0
  37. package/dist/commands/downlink/NewStatus.d.ts +1 -1
  38. package/dist/commands/downlink/NewStatus.js +3 -3
  39. package/dist/commands/downlink/NewStatus.js.map +1 -1
  40. package/dist/commands/downlink/SetParameter.d.ts +6 -56
  41. package/dist/commands/downlink/SetParameter.js +45 -105
  42. package/dist/commands/downlink/SetParameter.js.map +1 -1
  43. package/dist/commands/downlink/SetTime2000.d.ts +1 -6
  44. package/dist/commands/downlink/SetTime2000.js +2 -8
  45. package/dist/commands/downlink/SetTime2000.js.map +1 -1
  46. package/dist/commands/downlink/SoftRestart.d.ts +1 -1
  47. package/dist/commands/downlink/SoftRestart.js +3 -3
  48. package/dist/commands/downlink/SoftRestart.js.map +1 -1
  49. package/dist/commands/downlink/index.d.ts +4 -0
  50. package/dist/commands/downlink/index.js +4 -0
  51. package/dist/commands/downlink/index.js.map +1 -1
  52. package/dist/commands/uplink/CorrectTime2000.d.ts +1 -1
  53. package/dist/commands/uplink/CorrectTime2000.js +3 -3
  54. package/dist/commands/uplink/CorrectTime2000.js.map +1 -1
  55. package/dist/commands/uplink/DataDayMC.d.ts +3 -5
  56. package/dist/commands/uplink/DataDayMC.js +4 -3
  57. package/dist/commands/uplink/DataDayMC.js.map +1 -1
  58. package/dist/commands/uplink/DataHourMC.d.ts +3 -2
  59. package/dist/commands/uplink/DataHourMC.js +4 -3
  60. package/dist/commands/uplink/DataHourMC.js.map +1 -1
  61. package/dist/commands/uplink/ExAbsArchiveDaysMC.d.ts +3 -2
  62. package/dist/commands/uplink/ExAbsArchiveDaysMC.js +4 -3
  63. package/dist/commands/uplink/ExAbsArchiveDaysMC.js.map +1 -1
  64. package/dist/commands/uplink/ExAbsArchiveHoursMC.d.ts +3 -2
  65. package/dist/commands/uplink/ExAbsArchiveHoursMC.js +4 -3
  66. package/dist/commands/uplink/ExAbsArchiveHoursMC.js.map +1 -1
  67. package/dist/commands/uplink/ExAbsCurrentMC.d.ts +1 -1
  68. package/dist/commands/uplink/ExAbsCurrentMC.js +4 -3
  69. package/dist/commands/uplink/ExAbsCurrentMC.js.map +1 -1
  70. package/dist/commands/uplink/ExAbsDayMC.d.ts +3 -2
  71. package/dist/commands/uplink/ExAbsDayMC.js +4 -3
  72. package/dist/commands/uplink/ExAbsDayMC.js.map +1 -1
  73. package/dist/commands/uplink/ExAbsHourMC.d.ts +3 -2
  74. package/dist/commands/uplink/ExAbsHourMC.js +4 -3
  75. package/dist/commands/uplink/ExAbsHourMC.js.map +1 -1
  76. package/dist/commands/uplink/GetArchiveDaysMC.d.ts +3 -2
  77. package/dist/commands/uplink/GetArchiveDaysMC.js +4 -3
  78. package/dist/commands/uplink/GetArchiveDaysMC.js.map +1 -1
  79. package/dist/commands/uplink/GetArchiveEvents.d.ts +48 -0
  80. package/dist/commands/uplink/GetArchiveEvents.js +105 -0
  81. package/dist/commands/uplink/GetArchiveEvents.js.map +1 -0
  82. package/dist/commands/uplink/GetArchiveHoursMC.d.ts +3 -2
  83. package/dist/commands/uplink/GetArchiveHoursMC.js +4 -3
  84. package/dist/commands/uplink/GetArchiveHoursMC.js.map +1 -1
  85. package/dist/commands/uplink/GetCurrentMC.d.ts +24 -2
  86. package/dist/commands/uplink/GetCurrentMC.js +60 -3
  87. package/dist/commands/uplink/GetCurrentMC.js.map +1 -1
  88. package/dist/commands/uplink/GetLmicVersion.d.ts +46 -0
  89. package/dist/commands/uplink/GetLmicVersion.js +90 -0
  90. package/dist/commands/uplink/GetLmicVersion.js.map +1 -0
  91. package/dist/commands/uplink/GetParameter.d.ts +30 -0
  92. package/dist/commands/uplink/GetParameter.js +91 -0
  93. package/dist/commands/uplink/GetParameter.js.map +1 -0
  94. package/dist/commands/uplink/LastEvent.d.ts +5 -76
  95. package/dist/commands/uplink/LastEvent.js +67 -115
  96. package/dist/commands/uplink/LastEvent.js.map +1 -1
  97. package/dist/commands/uplink/NewEvent.d.ts +35 -7
  98. package/dist/commands/uplink/NewEvent.js +96 -20
  99. package/dist/commands/uplink/NewEvent.js.map +1 -1
  100. package/dist/commands/uplink/NewStatus.d.ts +1 -1
  101. package/dist/commands/uplink/NewStatus.js +4 -3
  102. package/dist/commands/uplink/NewStatus.js.map +1 -1
  103. package/dist/commands/uplink/SetTime2000.d.ts +1 -1
  104. package/dist/commands/uplink/SetTime2000.js +3 -3
  105. package/dist/commands/uplink/SetTime2000.js.map +1 -1
  106. package/dist/commands/uplink/SoftRestart.d.ts +1 -1
  107. package/dist/commands/uplink/SoftRestart.js +3 -3
  108. package/dist/commands/uplink/SoftRestart.js.map +1 -1
  109. package/dist/commands/uplink/Time2000.d.ts +5 -5
  110. package/dist/commands/uplink/Time2000.js +6 -7
  111. package/dist/commands/uplink/Time2000.js.map +1 -1
  112. package/dist/commands/uplink/index.d.ts +3 -0
  113. package/dist/commands/uplink/index.js +3 -0
  114. package/dist/commands/uplink/index.js.map +1 -1
  115. package/dist/constants/{directionTypes.js → directions.js} +1 -1
  116. package/dist/constants/directions.js.map +1 -0
  117. package/dist/constants/events.d.ts +30 -4
  118. package/dist/constants/events.js +30 -4
  119. package/dist/constants/events.js.map +1 -1
  120. package/dist/constants/hardwareTypes.d.ts +2 -2
  121. package/dist/constants/hardwareTypes.js +2 -2
  122. package/dist/constants/index.d.ts +1 -1
  123. package/dist/constants/index.js +1 -1
  124. package/dist/constants/index.js.map +1 -1
  125. package/dist/utils/bitSet.d.ts +2 -2
  126. package/dist/utils/bitSet.js +2 -2
  127. package/dist/utils/message.d.ts +8 -0
  128. package/dist/utils/message.js +3 -3
  129. package/dist/utils/message.js.map +1 -1
  130. package/dist/utils/time.d.ts +20 -3
  131. package/dist/utils/time.js +2 -2
  132. package/dist/utils/time.js.map +1 -1
  133. package/package.json +1 -1
  134. package/dist/constants/directionTypes.js.map +0 -1
  135. /package/dist/constants/{directionTypes.d.ts → directions.d.ts} +0 -0
@@ -0,0 +1,37 @@
1
+ import Command, { TCommandExampleList } from '../../Command.js';
2
+ /**
3
+ * GetParameter command parameters
4
+ */
5
+ interface IDownlinkGetParameterParameters {
6
+ /**
7
+ * Parameter id - one of `constants/deviceParameters`.
8
+ */
9
+ id: number;
10
+ }
11
+ /**
12
+ * Downlink command.
13
+ *
14
+ * @example
15
+ * ```js
16
+ * import {constants} from 'jooby-codec';
17
+ * import GetParameter from 'jooby-codec/commands/downlink/GetParameter';
18
+ *
19
+ * const command = new GetParameter({id: constants.deviceParameters.INITIAL_DATA});
20
+ *
21
+ * // output command binary in hex representation
22
+ * console.log(command.toHex());
23
+ * // 04 01 17
24
+ * ```
25
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetParameter.md#request)
26
+ */
27
+ declare class GetParameter extends Command {
28
+ parameters: IDownlinkGetParameterParameters;
29
+ constructor(parameters: IDownlinkGetParameterParameters);
30
+ static readonly id = 4;
31
+ static readonly directionType = 1;
32
+ static readonly examples: TCommandExampleList;
33
+ static readonly hasParameters = true;
34
+ static fromBytes(data: Uint8Array): GetParameter;
35
+ toBytes(): Uint8Array;
36
+ }
37
+ export default GetParameter;
@@ -0,0 +1,64 @@
1
+ import Command from '../../Command.js';
2
+ import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
3
+ import { DOWNLINK } from '../../constants/directions.js';
4
+ import * as deviceParameters from '../../constants/deviceParameters.js';
5
+ const COMMAND_ID = 0x04;
6
+ const COMMAND_BODY_SIZE = 1;
7
+ const examples = [
8
+ {
9
+ name: 'request initial data from device',
10
+ parameters: { id: deviceParameters.INITIAL_DATA },
11
+ hex: {
12
+ header: '04 01',
13
+ body: '17'
14
+ }
15
+ },
16
+ {
17
+ name: 'request for data type sending from device',
18
+ parameters: { id: deviceParameters.ABSOLUTE_DATA_STATUS },
19
+ hex: {
20
+ header: '04 01',
21
+ body: '18'
22
+ }
23
+ }
24
+ ];
25
+ /**
26
+ * Downlink command.
27
+ *
28
+ * @example
29
+ * ```js
30
+ * import {constants} from 'jooby-codec';
31
+ * import GetParameter from 'jooby-codec/commands/downlink/GetParameter';
32
+ *
33
+ * const command = new GetParameter({id: constants.deviceParameters.INITIAL_DATA});
34
+ *
35
+ * // output command binary in hex representation
36
+ * console.log(command.toHex());
37
+ * // 04 01 17
38
+ * ```
39
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetParameter.md#request)
40
+ */
41
+ class GetParameter extends Command {
42
+ constructor(parameters) {
43
+ super();
44
+ this.parameters = parameters;
45
+ }
46
+ // data - only body (without header)
47
+ static fromBytes(data) {
48
+ const buffer = new CommandBinaryBuffer(data);
49
+ return new GetParameter({ id: buffer.getUint8() });
50
+ }
51
+ // returns full message - header with body
52
+ // eslint-disable-next-line class-methods-use-this
53
+ toBytes() {
54
+ const buffer = new CommandBinaryBuffer(COMMAND_BODY_SIZE);
55
+ buffer.setUint8(this.parameters.id);
56
+ return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
57
+ }
58
+ }
59
+ GetParameter.id = COMMAND_ID;
60
+ GetParameter.directionType = DOWNLINK;
61
+ GetParameter.examples = examples;
62
+ GetParameter.hasParameters = true;
63
+ export default GetParameter;
64
+ //# sourceMappingURL=GetParameter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetParameter.js","sourceRoot":"","sources":["../../../src/commands/downlink/GetParameter.ts"],"names":[],"mappings":"AAAA,OAAO,OAA8B,MAAM,kBAAkB,CAAC;AAC9D,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAC,QAAQ,EAAC,MAAM,+BAA+B,CAAC;AACvD,OAAO,KAAK,gBAAgB,MAAM,qCAAqC,CAAC;AAcxE,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,QAAQ,GAAwB;IAClC;QACI,IAAI,EAAE,kCAAkC;QACxC,UAAU,EAAE,EAAC,EAAE,EAAE,gBAAgB,CAAC,YAAY,EAAC;QAC/C,GAAG,EAAE;YACD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI;SACb;KACJ;IACD;QACI,IAAI,EAAE,2CAA2C;QACjD,UAAU,EAAE,EAAC,EAAE,EAAE,gBAAgB,CAAC,oBAAoB,EAAC;QACvD,GAAG,EAAE;YACD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI;SACb;KACJ;CACJ,CAAC;AAGF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,YAAa,SAAQ,OAAO;IAC9B,YAAqB,UAA2C;QAC5D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAiC;IAEhE,CAAC;IAYD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,OAAO,IAAI,YAAY,CAAC,EAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAC,CAAC,CAAC;IACrD,CAAC;IAED,0CAA0C;IAC1C,kDAAkD;IAClD,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAEpC,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAxBe,eAAE,GAAG,UAAU,CAAC;AAEhB,0BAAa,GAAG,QAAQ,CAAC;AAEzB,qBAAQ,GAAG,QAAQ,CAAC;AAEpB,0BAAa,GAAG,IAAI,CAAC;AAsBzC,eAAe,YAAY,CAAC"}
@@ -18,7 +18,7 @@ declare class NewStatus extends Command {
18
18
  constructor();
19
19
  static readonly id = 20;
20
20
  static readonly directionType = 1;
21
- static readonly title = "NEW_STATUS";
21
+ static readonly hasParameters = false;
22
22
  static fromBytes(): NewStatus;
23
23
  toBytes(): Uint8Array;
24
24
  }
@@ -1,7 +1,6 @@
1
1
  import Command from '../../Command.js';
2
- import { DOWNLINK } from '../../constants/directionTypes.js';
2
+ import { DOWNLINK } from '../../constants/directions.js';
3
3
  const COMMAND_ID = 0x14;
4
- const COMMAND_TITLE = 'NEW_STATUS';
5
4
  /**
6
5
  * Downlink command.
7
6
  *
@@ -25,6 +24,7 @@ class NewStatus extends Command {
25
24
  static fromBytes() {
26
25
  return new NewStatus();
27
26
  }
27
+ // returns full message - header with body
28
28
  // eslint-disable-next-line class-methods-use-this
29
29
  toBytes() {
30
30
  return Command.toBytes(COMMAND_ID);
@@ -32,6 +32,6 @@ class NewStatus extends Command {
32
32
  }
33
33
  NewStatus.id = COMMAND_ID;
34
34
  NewStatus.directionType = DOWNLINK;
35
- NewStatus.title = COMMAND_TITLE;
35
+ NewStatus.hasParameters = false;
36
36
  export default NewStatus;
37
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;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"}
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,+BAA+B,CAAC;AAGvD,MAAM,UAAU,GAAG,IAAI,CAAC;AAGxB;;;;;;;;;;;;;;GAcG;AACH,MAAM,SAAU,SAAQ,OAAO;IAC3B;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAUD,oCAAoC;IACpC,MAAM,CAAC,SAAS;QACZ,OAAO,IAAI,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED,0CAA0C;IAC1C,kDAAkD;IAClD,OAAO;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;;AAhBe,YAAE,GAAG,UAAU,CAAC;AAEhB,uBAAa,GAAG,QAAQ,CAAC;AAEzB,uBAAa,GAAG,KAAK,CAAC;AAgB1C,eAAe,SAAS,CAAC"}
@@ -1,56 +1,5 @@
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
- interface IParameterAbsoluteDataStatusMC extends IParameterAbsoluteDataStatus {
31
- /**
32
- * Channel that accept status changing.
33
- */
34
- channel: number;
35
- }
36
- type TParameter = IParameterInitialData | IParameterInitialDataMC | IParameterAbsoluteDataStatus | IParameterAbsoluteDataStatusMC;
37
- /**
38
- * SetParameter command parameters
39
- *
40
- * @example
41
- * import {constants} from 'jooby-codec';
42
- * {id: constants.deviceParameters.INITIAL_DATA, data: {value: 2023, meterValue: 204, pulseCoefficient: 100}}
43
- */
44
- interface ISetParameterParameters {
45
- /**
46
- * Parameter id - one of `constants/deviceParameters`.
47
- */
48
- id: number;
49
- /**
50
- * Parameter data, different - depending on id.
51
- */
52
- data: TParameter;
53
- }
1
+ import Command, { TCommandExampleList } from '../../Command.js';
2
+ import { IParameter } from '../../CommandBinaryBuffer.js';
54
3
  /**
55
4
  * Downlink command.
56
5
  *
@@ -68,11 +17,12 @@ interface ISetParameterParameters {
68
17
  * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/downlink/SetParameter.md)
69
18
  */
70
19
  declare class SetParameter extends Command {
71
- parameters: ISetParameterParameters;
72
- constructor(parameters: ISetParameterParameters);
20
+ parameters: IParameter;
21
+ constructor(parameters: IParameter);
73
22
  static readonly id = 3;
74
23
  static readonly directionType = 1;
75
- static readonly title = "SET_PARAMETER";
24
+ static readonly examples: TCommandExampleList;
25
+ static readonly hasParameters = true;
76
26
  static fromBytes(data: Uint8Array): SetParameter;
77
27
  toBytes(): Uint8Array;
78
28
  }
@@ -1,52 +1,51 @@
1
- /**
2
- * [[include:commands/downlink/SetParameter.md]]
3
- *
4
- * @packageDocumentation
5
- */
6
1
  import Command from '../../Command.js';
7
2
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
8
- import { DOWNLINK } from '../../constants/directionTypes.js';
3
+ import { DOWNLINK } from '../../constants/directions.js';
9
4
  import * as deviceParameters from '../../constants/deviceParameters.js';
10
5
  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;
6
+ const examples = [
7
+ {
8
+ name: 'initial data setup',
9
+ parameters: {
10
+ id: deviceParameters.INITIAL_DATA,
11
+ data: { value: 2023, meterValue: 204, pulseCoefficient: 100 }
12
+ },
13
+ hex: {
14
+ header: '03 0a',
15
+ body: '17 00 00 00 cc 82 00 00 07 e7'
31
16
  }
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);
17
+ },
18
+ {
19
+ name: 'enable sending absolute data',
20
+ parameters: { id: deviceParameters.ABSOLUTE_DATA_STATUS, data: { status: 1 } },
21
+ hex: {
22
+ header: '03 02',
23
+ body: '18 01'
41
24
  }
42
- else {
43
- throw new Error('pulseCoefficient MSB is set, but value unknown');
25
+ },
26
+ {
27
+ name: 'initial data setup for 1 channel',
28
+ parameters: {
29
+ id: deviceParameters.INITIAL_DATA_MULTI_CHANNEL,
30
+ data: { value: 2032, meterValue: 402, pulseCoefficient: 1000, channel: 1 }
31
+ },
32
+ hex: {
33
+ header: '03 0b',
34
+ body: '1d 01 00 00 01 92 80 00 00 07 f0'
35
+ }
36
+ },
37
+ {
38
+ name: 'disable sending absolute data from 2 channel',
39
+ parameters: {
40
+ id: deviceParameters.ABSOLUTE_DATA_STATUS_MULTI_CHANNEL,
41
+ data: { status: 0, channel: 2 }
42
+ },
43
+ hex: {
44
+ header: '03 03',
45
+ body: '1e 02 00'
44
46
  }
45
47
  }
46
- else {
47
- buffer.setUint8(value);
48
- }
49
- };
48
+ ];
50
49
  /**
51
50
  * Downlink command.
52
51
  *
@@ -71,77 +70,18 @@ class SetParameter extends Command {
71
70
  // data - only body (without header)
72
71
  static fromBytes(data) {
73
72
  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
- case deviceParameters.ABSOLUTE_DATA_STATUS_MULTI_CHANNEL:
98
- parameterData = {
99
- channel: buffer.getUint8(),
100
- status: buffer.getUint8()
101
- };
102
- break;
103
- default:
104
- throw new Error(`${SetParameter.getId()}: parameter ${id} is not supported`);
105
- }
106
- return new SetParameter({ id, data: parameterData });
73
+ return new SetParameter(buffer.getParameter());
107
74
  }
108
75
  // returns full message - header with body
109
76
  toBytes() {
110
- const { id, data } = this.parameters;
111
- const buffer = new CommandBinaryBuffer(COMMAND_MAX_BODY_SIZE);
112
- let parameterData;
113
- buffer.setUint8(id);
114
- switch (id) {
115
- case deviceParameters.INITIAL_DATA:
116
- parameterData = data;
117
- buffer.setUint32(parameterData.meterValue, false);
118
- setPulseCoefficient(buffer, parameterData.pulseCoefficient);
119
- buffer.setUint32(parameterData.value, false);
120
- break;
121
- case deviceParameters.INITIAL_DATA_MULTI_CHANNEL:
122
- parameterData = data;
123
- buffer.setUint8(parameterData.channel);
124
- buffer.setUint32(parameterData.meterValue, false);
125
- setPulseCoefficient(buffer, parameterData.pulseCoefficient);
126
- buffer.setUint32(parameterData.value, false);
127
- break;
128
- case deviceParameters.ABSOLUTE_DATA_STATUS:
129
- parameterData = data;
130
- buffer.setUint8(parameterData.status);
131
- break;
132
- case deviceParameters.ABSOLUTE_DATA_STATUS_MULTI_CHANNEL:
133
- parameterData = data;
134
- buffer.setUint8(parameterData.channel);
135
- buffer.setUint8(parameterData.status);
136
- break;
137
- default:
138
- throw new Error(`${SetParameter.getId()}: parameter ${id} is not supported`);
139
- }
77
+ const buffer = new CommandBinaryBuffer(CommandBinaryBuffer.getParameterSize(this.parameters));
78
+ buffer.setParameter(this.parameters);
140
79
  return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
141
80
  }
142
81
  }
143
82
  SetParameter.id = COMMAND_ID;
144
83
  SetParameter.directionType = DOWNLINK;
145
- SetParameter.title = COMMAND_TITLE;
84
+ SetParameter.examples = examples;
85
+ SetParameter.hasParameters = true;
146
86
  export default SetParameter;
147
87
  //# sourceMappingURL=SetParameter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SetParameter.js","sourceRoot":"","sources":["../../../src/commands/downlink/SetParameter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SetParameter.js","sourceRoot":"","sources":["../../../src/commands/downlink/SetParameter.ts"],"names":[],"mappings":"AAAA,OAAO,OAA8B,MAAM,kBAAkB,CAAC;AAC9D,OAAO,mBAAiC,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAC,QAAQ,EAAC,MAAM,+BAA+B,CAAC;AACvD,OAAO,KAAK,gBAAgB,MAAM,qCAAqC,CAAC;AAGxE,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB,MAAM,QAAQ,GAAwB;IAClC;QACI,IAAI,EAAE,oBAAoB;QAC1B,UAAU,EAAE;YACR,EAAE,EAAE,gBAAgB,CAAC,YAAY;YACjC,IAAI,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAC;SAC9D;QACD,GAAG,EAAE;YACD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,+BAA+B;SACxC;KACJ;IACD;QACI,IAAI,EAAE,8BAA8B;QACpC,UAAU,EAAE,EAAC,EAAE,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,IAAI,EAAE,EAAC,MAAM,EAAE,CAAC,EAAC,EAAC;QAC1E,GAAG,EAAE;YACD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,OAAO;SAChB;KACJ;IACD;QACI,IAAI,EAAE,kCAAkC;QACxC,UAAU,EAAE;YACR,EAAE,EAAE,gBAAgB,CAAC,0BAA0B;YAC/C,IAAI,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAC;SAC3E;QACD,GAAG,EAAE;YACD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,kCAAkC;SAC3C;KACJ;IACD;QACI,IAAI,EAAE,8CAA8C;QACpD,UAAU,EAAE;YACR,EAAE,EAAE,gBAAgB,CAAC,kCAAkC;YACvD,IAAI,EAAE,EAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAC;SAChC;QACD,GAAG,EAAE;YACD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,UAAU;SACnB;KACJ;CACJ,CAAC;AAGF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,YAAa,SAAQ,OAAO;IAC9B,YAAqB,UAAsB;QACvC,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAY;IAE3C,CAAC;IAYD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAE9F,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAErC,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAvBe,eAAE,GAAG,UAAU,CAAC;AAEhB,0BAAa,GAAG,QAAQ,CAAC;AAEzB,qBAAQ,GAAG,QAAQ,CAAC;AAEpB,0BAAa,GAAG,IAAI,CAAC;AAqBzC,eAAe,YAAY,CAAC"}
@@ -1,8 +1,3 @@
1
- /**
2
- * [[include:commands/downlink/SetTime2000.md]]
3
- *
4
- * @packageDocumentation
5
- */
6
1
  import Command from '../../Command.js';
7
2
  /**
8
3
  * SetTime2000 command parameters
@@ -38,7 +33,7 @@ declare class SetTime2000 extends Command {
38
33
  constructor(parameters: IDownlinkSetTime2000Parameters);
39
34
  static readonly id = 2;
40
35
  static readonly directionType = 1;
41
- static readonly title = "SET_TIME_2000";
36
+ static readonly hasParameters = true;
42
37
  static fromBytes(data: Uint8Array): SetTime2000;
43
38
  toBytes(): Uint8Array;
44
39
  }
@@ -1,13 +1,7 @@
1
- /**
2
- * [[include:commands/downlink/SetTime2000.md]]
3
- *
4
- * @packageDocumentation
5
- */
6
1
  import Command from '../../Command.js';
7
2
  import BinaryBuffer from '../../BinaryBuffer.js';
8
- import { DOWNLINK } from '../../constants/directionTypes.js';
3
+ import { DOWNLINK } from '../../constants/directions.js';
9
4
  const COMMAND_ID = 0x02;
10
- const COMMAND_TITLE = 'SET_TIME_2000';
11
5
  const COMMAND_BODY_SIZE = 5;
12
6
  /**
13
7
  * Downlink command.
@@ -56,6 +50,6 @@ class SetTime2000 extends Command {
56
50
  }
57
51
  SetTime2000.id = COMMAND_ID;
58
52
  SetTime2000.directionType = DOWNLINK;
59
- SetTime2000.title = COMMAND_TITLE;
53
+ SetTime2000.hasParameters = true;
60
54
  export default SetTime2000;
61
55
  //# 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;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"}
1
+ {"version":3,"file":"SetTime2000.js","sourceRoot":"","sources":["../../../src/commands/downlink/SetTime2000.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAC,MAAM,+BAA+B,CAAC;AAkBvD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,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;IAUD,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;;AAnCe,cAAE,GAAG,UAAU,CAAC;AAEhB,yBAAa,GAAG,QAAQ,CAAC;AAEzB,yBAAa,GAAG,IAAI,CAAC;AAmCzC,eAAe,WAAW,CAAC"}
@@ -17,7 +17,7 @@ import Command from '../../Command.js';
17
17
  declare class SoftRestart extends Command {
18
18
  static readonly id = 25;
19
19
  static readonly directionType = 1;
20
- static readonly title = "SOFT_RESTART";
20
+ static readonly hasParameters = false;
21
21
  static fromBytes(): SoftRestart;
22
22
  toBytes(): Uint8Array;
23
23
  }
@@ -1,7 +1,6 @@
1
1
  import Command from '../../Command.js';
2
- import { DOWNLINK } from '../../constants/directionTypes.js';
2
+ import { DOWNLINK } from '../../constants/directions.js';
3
3
  const COMMAND_ID = 0x19;
4
- const COMMAND_TITLE = 'SOFT_RESTART';
5
4
  /**
6
5
  * Downlink command.
7
6
  *
@@ -22,6 +21,7 @@ class SoftRestart extends Command {
22
21
  static fromBytes() {
23
22
  return new SoftRestart();
24
23
  }
24
+ // returns full message - header with body
25
25
  // eslint-disable-next-line class-methods-use-this
26
26
  toBytes() {
27
27
  return Command.toBytes(COMMAND_ID);
@@ -29,6 +29,6 @@ class SoftRestart extends Command {
29
29
  }
30
30
  SoftRestart.id = COMMAND_ID;
31
31
  SoftRestart.directionType = DOWNLINK;
32
- SoftRestart.title = COMMAND_TITLE;
32
+ SoftRestart.hasParameters = false;
33
33
  export default SoftRestart;
34
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;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"}
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,+BAA+B,CAAC;AAGvD,MAAM,UAAU,GAAG,IAAI,CAAC;AAGxB;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAY,SAAQ,OAAO;IAQ7B,oCAAoC;IACpC,MAAM,CAAC,SAAS;QACZ,OAAO,IAAI,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,0CAA0C;IAC1C,kDAAkD;IAClD,OAAO;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;;AAhBe,cAAE,GAAG,UAAU,CAAC;AAEhB,yBAAa,GAAG,QAAQ,CAAC;AAEzB,yBAAa,GAAG,KAAK,CAAC;AAgB1C,eAAe,WAAW,CAAC"}
@@ -8,7 +8,11 @@ export { default as ExAbsArchiveDaysMC } from './ExAbsArchiveDaysMC.js';
8
8
  export { default as ExAbsArchiveHoursMC } from './ExAbsArchiveHoursMC.js';
9
9
  export { default as ExAbsCurrentMC } from './ExAbsCurrentMC.js';
10
10
  export { default as GetArchiveDaysMC } from './GetArchiveDaysMC.js';
11
+ export { default as GetArchiveEvents } from './GetArchiveEvents.js';
11
12
  export { default as GetArchiveHoursMC } from './GetArchiveHoursMC.js';
13
+ export { default as GetCurrentMC } from './GetCurrentMC.js';
14
+ export { default as GetLmicVersion } from './GetLmicVersion.js';
15
+ export { default as GetParameter } from './GetParameter.js';
12
16
  export { default as NewStatus } from './NewStatus.js';
13
17
  export { default as SetParameter } from './SetParameter.js';
14
18
  export { default as SetTime2000 } from './SetTime2000.js';
@@ -8,7 +8,11 @@ export { default as ExAbsArchiveDaysMC } from './ExAbsArchiveDaysMC.js';
8
8
  export { default as ExAbsArchiveHoursMC } from './ExAbsArchiveHoursMC.js';
9
9
  export { default as ExAbsCurrentMC } from './ExAbsCurrentMC.js';
10
10
  export { default as GetArchiveDaysMC } from './GetArchiveDaysMC.js';
11
+ export { default as GetArchiveEvents } from './GetArchiveEvents.js';
11
12
  export { default as GetArchiveHoursMC } from './GetArchiveHoursMC.js';
13
+ export { default as GetCurrentMC } from './GetCurrentMC.js';
14
+ export { default as GetLmicVersion } from './GetLmicVersion.js';
15
+ export { default as GetParameter } from './GetParameter.js';
12
16
  export { default as NewStatus } from './NewStatus.js';
13
17
  export { default as SetParameter } from './SetParameter.js';
14
18
  export { default as SetTime2000 } from './SetTime2000.js';
@@ -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,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAC9D,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"}
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,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC1D,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"}
@@ -30,7 +30,7 @@ declare class CorrectTime2000 extends Command {
30
30
  constructor(parameters: IUplinkCorrectTime2000Parameters);
31
31
  static readonly id = 12;
32
32
  static readonly directionType = 2;
33
- static readonly title = "CORRECT_TIME_2000";
33
+ static readonly hasParameters = true;
34
34
  static fromBytes(data: Uint8Array): CorrectTime2000;
35
35
  toBytes(): Uint8Array;
36
36
  }
@@ -1,8 +1,7 @@
1
1
  import Command from '../../Command.js';
2
2
  import BinaryBuffer from '../../BinaryBuffer.js';
3
- import { UPLINK } from '../../constants/directionTypes.js';
3
+ import { UPLINK } from '../../constants/directions.js';
4
4
  const COMMAND_ID = 0x0c;
5
- const COMMAND_TITLE = 'CORRECT_TIME_2000';
6
5
  const COMMAND_BODY_SIZE = 1;
7
6
  /**
8
7
  * Uplink command.
@@ -40,6 +39,7 @@ class CorrectTime2000 extends Command {
40
39
  }
41
40
  return new CorrectTime2000(parameters);
42
41
  }
42
+ // returns full message - header with body
43
43
  toBytes() {
44
44
  const { status } = this.parameters;
45
45
  const buffer = new BinaryBuffer(COMMAND_BODY_SIZE, false);
@@ -49,6 +49,6 @@ class CorrectTime2000 extends Command {
49
49
  }
50
50
  CorrectTime2000.id = COMMAND_ID;
51
51
  CorrectTime2000.directionType = UPLINK;
52
- CorrectTime2000.title = COMMAND_TITLE;
52
+ CorrectTime2000.hasParameters = true;
53
53
  export default CorrectTime2000;
54
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;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"}
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,+BAA+B,CAAC;AAcrD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,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;IAUD,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,0CAA0C;IAC1C,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;;AAlCe,kBAAE,GAAG,UAAU,CAAC;AAEhB,6BAAa,GAAG,MAAM,CAAC;AAEvB,6BAAa,GAAG,IAAI,CAAC;AAkCzC,eAAe,eAAe,CAAC"}
@@ -1,19 +1,17 @@
1
+ import { TTime2000 } from '../../utils/time.js';
1
2
  import GetCurrentMC, { IGetCurrentMCParameters } from './GetCurrentMC.js';
2
3
  /**
3
4
  * DataDayMC command parameters.
4
5
  */
5
6
  interface IDataDayMCParameters extends IGetCurrentMCParameters {
6
- /**
7
- * Seconds since year 2000, i.e. timestamp (in seconds) - 946684800
8
- */
9
- startTime: number;
7
+ startTime: TTime2000;
10
8
  }
11
9
  declare class DataDayMC extends GetCurrentMC {
12
10
  parameters: IDataDayMCParameters;
13
11
  constructor(parameters: IDataDayMCParameters);
14
12
  static readonly id = 22;
15
13
  static readonly directionType = 2;
16
- static readonly title = "DATA_DAY_MC";
14
+ static readonly hasParameters = true;
17
15
  static fromBytes(data: Uint8Array): DataDayMC;
18
16
  toBytes(): Uint8Array;
19
17
  }