jooby-codec 1.6.0 → 1.8.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 (150) hide show
  1. package/dist/Command.d.ts +1 -0
  2. package/dist/Command.js +3 -2
  3. package/dist/Command.js.map +1 -1
  4. package/dist/CommandBinaryBuffer.d.ts +190 -32
  5. package/dist/CommandBinaryBuffer.js +301 -2
  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 +1 -1
  29. package/dist/commands/downlink/GetCurrentMC.js +3 -3
  30. package/dist/commands/downlink/GetCurrentMC.js.map +1 -1
  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/GetStatus.d.ts +26 -0
  38. package/dist/commands/downlink/GetStatus.js +45 -0
  39. package/dist/commands/downlink/GetStatus.js.map +1 -0
  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 -1
  50. package/dist/commands/downlink/index.js +4 -1
  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 +1 -1
  86. package/dist/commands/uplink/GetCurrentMC.js +4 -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/GetStatus.d.ts +57 -0
  95. package/dist/commands/uplink/{NewStatus.js → GetStatus.js} +56 -37
  96. package/dist/commands/uplink/GetStatus.js.map +1 -0
  97. package/dist/commands/uplink/LastEvent.d.ts +5 -76
  98. package/dist/commands/uplink/LastEvent.js +67 -115
  99. package/dist/commands/uplink/LastEvent.js.map +1 -1
  100. package/dist/commands/uplink/NewEvent.d.ts +35 -7
  101. package/dist/commands/uplink/NewEvent.js +96 -20
  102. package/dist/commands/uplink/NewEvent.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 +5 -2
  113. package/dist/commands/uplink/index.js +5 -2
  114. package/dist/commands/uplink/index.js.map +1 -1
  115. package/dist/constants/deviceParameters.d.ts +12 -12
  116. package/dist/constants/deviceParameters.js +12 -12
  117. package/dist/constants/deviceParameters.js.map +1 -1
  118. package/dist/constants/{directionTypes.js → directions.js} +1 -1
  119. package/dist/constants/directions.js.map +1 -0
  120. package/dist/constants/events.d.ts +30 -4
  121. package/dist/constants/events.js +30 -4
  122. package/dist/constants/events.js.map +1 -1
  123. package/dist/constants/hardwareTypes.d.ts +2 -2
  124. package/dist/constants/hardwareTypes.js +2 -2
  125. package/dist/constants/index.d.ts +1 -1
  126. package/dist/constants/index.js +1 -1
  127. package/dist/constants/index.js.map +1 -1
  128. package/dist/utils/message.js +2 -2
  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 +2 -1
  134. package/readme.md +33 -16
  135. package/dist/commands/downlink/NewStatus.d.ts +0 -25
  136. package/dist/commands/downlink/NewStatus.js +0 -37
  137. package/dist/commands/downlink/NewStatus.js.map +0 -1
  138. package/dist/commands/uplink/NewStatus.d.ts +0 -56
  139. package/dist/commands/uplink/NewStatus.js.map +0 -1
  140. package/dist/constants/directionTypes.js.map +0 -1
  141. package/dist/constants/general.d.ts +0 -1
  142. package/dist/constants/general.js +0 -2
  143. package/dist/constants/general.js.map +0 -1
  144. package/dist/utils/getBitArrayFromNumber.d.ts +0 -14
  145. package/dist/utils/getBitArrayFromNumber.js +0 -15
  146. package/dist/utils/getBitArrayFromNumber.js.map +0 -1
  147. package/dist/utils/getIntFromBitString.d.ts +0 -6
  148. package/dist/utils/getIntFromBitString.js +0 -6
  149. package/dist/utils/getIntFromBitString.js.map +0 -1
  150. /package/dist/constants/{directionTypes.d.ts → directions.d.ts} +0 -0
@@ -0,0 +1,48 @@
1
+ import Command, { TCommandExampleList } from '../../Command.js';
2
+ import { TTime2000 } from '../../utils/time.js';
3
+ interface IArchiveEvent {
4
+ time: TTime2000;
5
+ id: number;
6
+ sequenceNumber: number;
7
+ }
8
+ /**
9
+ * GetArchiveEvents command parameters
10
+ *
11
+ * @example
12
+ * ```js
13
+ * import {constants} from 'jooby-codec';
14
+ *
15
+ * // one `MAGNET_ON` event at 2023-04-05 13:17:20 GMT
16
+ * [events: {id: constants.events.MAGNET_ON, sequenceNumber: 1, time: 734015840}]
17
+ */
18
+ interface IUplinkGetArchiveEventsParameters {
19
+ eventList: Array<IArchiveEvent>;
20
+ }
21
+ /**
22
+ * Uplink command.
23
+ *
24
+ * @example
25
+ * ```js
26
+ * import GetArchiveEvents from 'jooby-codec/commands/uplink/GetArchiveEvents';
27
+ * import {constants} from 'jooby-codec';
28
+ *
29
+ * const parameters = [eventList: {id: constants.events.MAGNET_ON, sequenceNumber: 1, time: 734015840}];
30
+ * const command = new GetArchiveEvents(parameters);
31
+ *
32
+ * // output command binary in hex representation
33
+ * console.log(command.toHex());
34
+ * // 0b 06 2b c0 31 60 01 01
35
+ * ```
36
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetArchiveEvents.md#response)
37
+ */
38
+ declare class GetArchiveEvents extends Command {
39
+ parameters: IUplinkGetArchiveEventsParameters;
40
+ constructor(parameters: IUplinkGetArchiveEventsParameters);
41
+ static readonly id = 11;
42
+ static readonly directionType = 2;
43
+ static readonly examples: TCommandExampleList;
44
+ static readonly hasParameters = true;
45
+ static fromBytes(data: Uint8Array): GetArchiveEvents;
46
+ toBytes(): Uint8Array;
47
+ }
48
+ export default GetArchiveEvents;
@@ -0,0 +1,105 @@
1
+ import Command from '../../Command.js';
2
+ import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
3
+ import { UPLINK } from '../../constants/directions.js';
4
+ import * as events from '../../constants/events.js';
5
+ const COMMAND_ID = 0x0b;
6
+ // 4 bytes for event seconds, 1 byte for event id, 1 byte for sequence number
7
+ const COMMAND_BODY_MIN_SIZE = 4 + 1 + 1;
8
+ const examples = [
9
+ {
10
+ name: '1 event - "MAGNET_ON" at 2023-04-05 13:17:20 GMT',
11
+ parameters: {
12
+ eventList: [
13
+ {
14
+ time: 734015840,
15
+ id: events.MAGNET_ON,
16
+ sequenceNumber: 1
17
+ }
18
+ ]
19
+ },
20
+ hex: { header: '0b 06', body: '2b c0 31 60 01 01' }
21
+ },
22
+ {
23
+ name: '4 events example',
24
+ parameters: {
25
+ eventList: [
26
+ {
27
+ time: 734015840,
28
+ id: events.MAGNET_OFF,
29
+ sequenceNumber: 1
30
+ },
31
+ {
32
+ time: 734025840,
33
+ id: events.MAGNET_ON,
34
+ sequenceNumber: 2
35
+ },
36
+ {
37
+ time: 734035840,
38
+ id: events.ACTIVATE,
39
+ sequenceNumber: 3
40
+ },
41
+ {
42
+ time: 734045840,
43
+ id: events.DEACTIVATE,
44
+ sequenceNumber: 4
45
+ }
46
+ ]
47
+ },
48
+ hex: { header: '0b 18', body: '2b c0 31 60 02 01 2b c0 58 70 01 02 2b c0 7f 80 03 03 2b c0 a6 90 04 04' }
49
+ }
50
+ ];
51
+ const getEvent = (buffer) => ({
52
+ time: buffer.getTime(),
53
+ id: buffer.getUint8(),
54
+ sequenceNumber: buffer.getUint8()
55
+ });
56
+ const setEvent = (buffer, event) => {
57
+ buffer.setTime(event.time);
58
+ buffer.setUint8(event.id);
59
+ buffer.setUint8(event.sequenceNumber);
60
+ };
61
+ /**
62
+ * Uplink command.
63
+ *
64
+ * @example
65
+ * ```js
66
+ * import GetArchiveEvents from 'jooby-codec/commands/uplink/GetArchiveEvents';
67
+ * import {constants} from 'jooby-codec';
68
+ *
69
+ * const parameters = [eventList: {id: constants.events.MAGNET_ON, sequenceNumber: 1, time: 734015840}];
70
+ * const command = new GetArchiveEvents(parameters);
71
+ *
72
+ * // output command binary in hex representation
73
+ * console.log(command.toHex());
74
+ * // 0b 06 2b c0 31 60 01 01
75
+ * ```
76
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetArchiveEvents.md#response)
77
+ */
78
+ class GetArchiveEvents extends Command {
79
+ constructor(parameters) {
80
+ super();
81
+ this.parameters = parameters;
82
+ }
83
+ // data - only body (without header)
84
+ static fromBytes(data) {
85
+ const buffer = new CommandBinaryBuffer(data);
86
+ const eventList = [];
87
+ while (buffer.bytesLeft > 0) {
88
+ eventList.push(getEvent(buffer));
89
+ }
90
+ return new GetArchiveEvents({ eventList });
91
+ }
92
+ // returns full message - header with body
93
+ toBytes() {
94
+ const { eventList } = this.parameters;
95
+ const buffer = new CommandBinaryBuffer(eventList.length * COMMAND_BODY_MIN_SIZE);
96
+ eventList.forEach(event => setEvent(buffer, event));
97
+ return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
98
+ }
99
+ }
100
+ GetArchiveEvents.id = COMMAND_ID;
101
+ GetArchiveEvents.directionType = UPLINK;
102
+ GetArchiveEvents.examples = examples;
103
+ GetArchiveEvents.hasParameters = true;
104
+ export default GetArchiveEvents;
105
+ //# sourceMappingURL=GetArchiveEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetArchiveEvents.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetArchiveEvents.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import Command from '../../Command.js';
2
2
  import { IChannelHours } from '../../CommandBinaryBuffer.js';
3
+ import { TTime2000 } from '../../utils/time.js';
3
4
  /**
4
5
  * GetArchiveHoursMC command parameters
5
6
  *
@@ -13,7 +14,7 @@ import { IChannelHours } from '../../CommandBinaryBuffer.js';
13
14
  */
14
15
  interface IUplinkGetArchiveHoursMCParameters {
15
16
  channelList: Array<IChannelHours>;
16
- startTime: number;
17
+ startTime: TTime2000;
17
18
  hours: number;
18
19
  }
19
20
  /**
@@ -61,7 +62,7 @@ declare class GetArchiveHoursMC extends Command {
61
62
  constructor(parameters: IUplinkGetArchiveHoursMCParameters);
62
63
  static readonly id = 26;
63
64
  static readonly directionType = 2;
64
- static readonly title = "GET_ARCHIVE_HOURS";
65
+ static readonly hasParameters = true;
65
66
  static fromBytes(data: Uint8Array): GetArchiveHoursMC;
66
67
  toBytes(): Uint8Array;
67
68
  }
@@ -1,8 +1,7 @@
1
1
  import Command from '../../Command.js';
2
2
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
3
- import { UPLINK } from '../../constants/directionTypes.js';
3
+ import { UPLINK } from '../../constants/directions.js';
4
4
  const COMMAND_ID = 0x1a;
5
- const COMMAND_TITLE = 'GET_ARCHIVE_HOURS';
6
5
  // date 2 bytes, hour 1 byte, channelList - 1 byte, so max channelList = 4
7
6
  // max hours diff - 7 (3 bit value)
8
7
  // 4 + (4 channelList * 5 bytes of hour values) + (4 * 5 bytes of diff * 7 max hours diff)
@@ -53,10 +52,12 @@ class GetArchiveHoursMC extends Command {
53
52
  this.parameters = parameters;
54
53
  this.parameters.channelList = this.parameters.channelList.sort((a, b) => a.index - b.index);
55
54
  }
55
+ // data - only body (without header)
56
56
  static fromBytes(data) {
57
57
  const buffer = new CommandBinaryBuffer(data);
58
58
  return new GetArchiveHoursMC(buffer.getChannelsValuesWithHourDiff());
59
59
  }
60
+ // returns full message - header with body
60
61
  toBytes() {
61
62
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
62
63
  const { hours, startTime, channelList } = this.parameters;
@@ -66,6 +67,6 @@ class GetArchiveHoursMC extends Command {
66
67
  }
67
68
  GetArchiveHoursMC.id = COMMAND_ID;
68
69
  GetArchiveHoursMC.directionType = UPLINK;
69
- GetArchiveHoursMC.title = COMMAND_TITLE;
70
+ GetArchiveHoursMC.hasParameters = true;
70
71
  export default GetArchiveHoursMC;
71
72
  //# sourceMappingURL=GetArchiveHoursMC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GetArchiveHoursMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetArchiveHoursMC.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAoC,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAqBzD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAE1C,0EAA0E;AAC1E,mCAAmC;AACnC,0FAA0F;AAC1F,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAGlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,iBAAkB,SAAQ,OAAO;IACnC,YAAqB,UAA8C;QAC/D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAoC;QAG/D,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,6BAA6B,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAExD,MAAM,CAAC,6BAA6B,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAEpE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAnBe,oBAAE,GAAG,UAAU,CAAC;AAEhB,+BAAa,GAAG,MAAM,CAAC;AAEvB,uBAAK,GAAG,aAAa,CAAC;AAmB1C,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"GetArchiveHoursMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetArchiveHoursMC.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAoC,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAC,MAAM,EAAC,MAAM,+BAA+B,CAAC;AAsBrD,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB,0EAA0E;AAC1E,mCAAmC;AACnC,0FAA0F;AAC1F,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAGlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,iBAAkB,SAAQ,OAAO;IACnC,YAAqB,UAA8C;QAC/D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAoC;QAG/D,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;IAUD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,6BAA6B,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAExD,MAAM,CAAC,6BAA6B,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAEpE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAtBe,oBAAE,GAAG,UAAU,CAAC;AAEhB,+BAAa,GAAG,MAAM,CAAC;AAEvB,+BAAa,GAAG,IAAI,CAAC;AAsBzC,eAAe,iBAAiB,CAAC"}
@@ -32,8 +32,8 @@ declare class GetCurrentMC extends Command {
32
32
  constructor(parameters: IGetCurrentMCParameters);
33
33
  static id: number;
34
34
  static readonly directionType = 2;
35
- static title: string;
36
35
  static readonly examples: TCommandExampleList;
36
+ static readonly hasParameters = true;
37
37
  static fromBytes(data: Uint8Array): GetCurrentMC;
38
38
  toBytes(): Uint8Array;
39
39
  }
@@ -1,8 +1,7 @@
1
1
  import Command from '../../Command.js';
2
2
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
3
- import { UPLINK } from '../../constants/directionTypes.js';
3
+ import { UPLINK } from '../../constants/directions.js';
4
4
  const COMMAND_ID = 0x18;
5
- const COMMAND_TITLE = 'GET_CURRENT_MC';
6
5
  // 2 bytes for 7 channelList + (7 channelList * 5 byte for current value of channel)
7
6
  const COMMAND_BODY_MAX_SIZE = 37;
8
7
  const examples = [
@@ -66,6 +65,7 @@ class GetCurrentMC extends Command {
66
65
  this.parameters = parameters;
67
66
  this.parameters.channelList = this.parameters.channelList.sort((a, b) => a.index - b.index);
68
67
  }
68
+ // data - only body (without header)
69
69
  static fromBytes(data) {
70
70
  const parameters = { channelList: [] };
71
71
  const buffer = new CommandBinaryBuffer(data);
@@ -76,6 +76,7 @@ class GetCurrentMC extends Command {
76
76
  }));
77
77
  return new GetCurrentMC(parameters);
78
78
  }
79
+ // returns full message - header with body
79
80
  toBytes() {
80
81
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
81
82
  const { channelList } = this.parameters;
@@ -86,7 +87,7 @@ class GetCurrentMC extends Command {
86
87
  }
87
88
  GetCurrentMC.id = COMMAND_ID;
88
89
  GetCurrentMC.directionType = UPLINK;
89
- GetCurrentMC.title = COMMAND_TITLE;
90
90
  GetCurrentMC.examples = examples;
91
+ GetCurrentMC.hasParameters = true;
91
92
  export default GetCurrentMC;
92
93
  //# sourceMappingURL=GetCurrentMC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GetCurrentMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetCurrentMC.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GetCurrentMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetCurrentMC.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import Command, { TCommandExampleList } from '../../Command.js';
2
+ import * as bitSet from '../../utils/bitSet.js';
3
+ interface ILmicCapabilities extends bitSet.TBooleanObject {
4
+ isMulticastSupported: boolean;
5
+ isFragmentedDataSupported: boolean;
6
+ }
7
+ /**
8
+ * GetLmicVersion command parameters
9
+ */
10
+ interface IUplinkGetLmicVersionParameters {
11
+ capabilities: ILmicCapabilities;
12
+ version: number;
13
+ }
14
+ /**
15
+ * Uplink command.
16
+ *
17
+ * @example
18
+ * ```js
19
+ * import GetLmicVersion from 'jooby-codec/commands/uplink/GetLmicVersion';
20
+ *
21
+ * const parameters = {
22
+ * version: 34,
23
+ * capabilities: {
24
+ * isMulticastSupported: true,
25
+ * isFragmentedDataSupported: true
26
+ * }
27
+ * };
28
+ * const command = new GetLmicVersion(parameters);
29
+ *
30
+ * // output command binary in hex representation
31
+ * console.log(command.toHex());
32
+ * // 1f 02 02 03 22
33
+ * ```
34
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetLmicVersion.md#response)
35
+ */
36
+ declare class GetLmicVersion extends Command {
37
+ parameters: IUplinkGetLmicVersionParameters;
38
+ constructor(parameters: IUplinkGetLmicVersionParameters);
39
+ static readonly id = 543;
40
+ static readonly directionType = 2;
41
+ static readonly examples: TCommandExampleList;
42
+ static readonly hasParameters = true;
43
+ static fromBytes(data: Uint8Array): GetLmicVersion;
44
+ toBytes(): Uint8Array;
45
+ }
46
+ export default GetLmicVersion;
@@ -0,0 +1,90 @@
1
+ import Command from '../../Command.js';
2
+ import BinaryBuffer from '../../BinaryBuffer.js';
3
+ import * as bitSet from '../../utils/bitSet.js';
4
+ import { UPLINK } from '../../constants/directions.js';
5
+ const COMMAND_ID = 0x021f;
6
+ const COMMAND_BODY_SIZE = 2;
7
+ const lmicCapabilitiesBitMask = {
8
+ isMulticastSupported: 2 ** 0,
9
+ isFragmentedDataSupported: 2 ** 1
10
+ };
11
+ const examples = [
12
+ {
13
+ name: 'version: 12, support only multicast',
14
+ parameters: {
15
+ version: 12,
16
+ capabilities: {
17
+ isMulticastSupported: true,
18
+ isFragmentedDataSupported: false
19
+ }
20
+ },
21
+ hex: { header: '1f 02 02', body: '01 0c' }
22
+ },
23
+ {
24
+ name: 'version: 34, support multicast and fragmented data',
25
+ parameters: {
26
+ version: 34,
27
+ capabilities: {
28
+ isMulticastSupported: true,
29
+ isFragmentedDataSupported: true
30
+ }
31
+ },
32
+ hex: { header: '1f 02 02', body: '03 22' }
33
+ }
34
+ ];
35
+ /**
36
+ * Uplink command.
37
+ *
38
+ * @example
39
+ * ```js
40
+ * import GetLmicVersion from 'jooby-codec/commands/uplink/GetLmicVersion';
41
+ *
42
+ * const parameters = {
43
+ * version: 34,
44
+ * capabilities: {
45
+ * isMulticastSupported: true,
46
+ * isFragmentedDataSupported: true
47
+ * }
48
+ * };
49
+ * const command = new GetLmicVersion(parameters);
50
+ *
51
+ * // output command binary in hex representation
52
+ * console.log(command.toHex());
53
+ * // 1f 02 02 03 22
54
+ * ```
55
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetLmicVersion.md#response)
56
+ */
57
+ class GetLmicVersion extends Command {
58
+ constructor(parameters) {
59
+ super();
60
+ this.parameters = parameters;
61
+ }
62
+ // data - only body (without header)
63
+ static fromBytes(data) {
64
+ console.log({ data });
65
+ if (data.byteLength !== COMMAND_BODY_SIZE) {
66
+ throw new Error(`${this.getName()}. Wrong buffer size: ${data.byteLength}.`);
67
+ }
68
+ const buffer = new BinaryBuffer(data);
69
+ const capabilities = bitSet.toObject(lmicCapabilitiesBitMask, buffer.getUint8());
70
+ const version = buffer.getUint8();
71
+ if (!buffer.isEmpty) {
72
+ throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
73
+ }
74
+ return new GetLmicVersion({ capabilities, version });
75
+ }
76
+ // returns full message - header with body
77
+ toBytes() {
78
+ const { capabilities, version } = this.parameters;
79
+ const buffer = new BinaryBuffer(COMMAND_BODY_SIZE);
80
+ buffer.setUint8(bitSet.fromObject(lmicCapabilitiesBitMask, capabilities));
81
+ buffer.setUint8(version);
82
+ return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
83
+ }
84
+ }
85
+ GetLmicVersion.id = COMMAND_ID;
86
+ GetLmicVersion.directionType = UPLINK;
87
+ GetLmicVersion.examples = examples;
88
+ GetLmicVersion.hasParameters = true;
89
+ export default GetLmicVersion;
90
+ //# sourceMappingURL=GetLmicVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetLmicVersion.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetLmicVersion.ts"],"names":[],"mappings":"AAAA,OAAO,OAA8B,MAAM,kBAAkB,CAAC;AAC9D,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAC,MAAM,EAAC,MAAM,+BAA+B,CAAC;AAmBrD,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,uBAAuB,GAAG;IAC5B,oBAAoB,EAAE,CAAC,IAAI,CAAC;IAC5B,yBAAyB,EAAE,CAAC,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,QAAQ,GAAwB;IAClC;QACI,IAAI,EAAE,qCAAqC;QAC3C,UAAU,EAAE;YACR,OAAO,EAAE,EAAE;YACX,YAAY,EAAE;gBACV,oBAAoB,EAAE,IAAI;gBAC1B,yBAAyB,EAAE,KAAK;aACnC;SACJ;QACD,GAAG,EAAE,EAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAC;KAC3C;IACD;QACI,IAAI,EAAE,oDAAoD;QAC1D,UAAU,EAAE;YACR,OAAO,EAAE,EAAE;YACX,YAAY,EAAE;gBACV,oBAAoB,EAAE,IAAI;gBAC1B,yBAAyB,EAAE,IAAI;aAClC;SACJ;QACD,GAAG,EAAE,EAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAC;KAC3C;CACJ,CAAC;AAGF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,cAAe,SAAQ,OAAO;IAChC,YAAqB,UAA2C;QAC5D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAiC;IAEhE,CAAC;IAYD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,OAAO,CAAC,GAAG,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC;QAEpB,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,CAAC,CAAC;QAEtC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAsB,CAAC;QACtG,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAElC,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,cAAc,CAAC,EAAC,YAAY,EAAE,OAAO,EAAC,CAAC,CAAC;IACvD,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,YAAY,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAEnD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEzB,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAtCe,iBAAE,GAAG,UAAU,CAAC;AAEhB,4BAAa,GAAG,MAAM,CAAC;AAEvB,uBAAQ,GAAG,QAAQ,CAAC;AAEpB,4BAAa,GAAG,IAAI,CAAC;AAoCzC,eAAe,cAAc,CAAC"}
@@ -0,0 +1,30 @@
1
+ import Command, { TCommandExampleList } from '../../Command.js';
2
+ import { IParameter } from '../../CommandBinaryBuffer.js';
3
+ /**
4
+ * Uplink command.
5
+ *
6
+ * @example
7
+ * ```js
8
+ * import GetParameter from 'jooby-codec/commands/uplink/GetParameter';
9
+ * import {constants} from 'jooby-codec';
10
+ *
11
+ * const parameters = [eventList: {id: constants.events.MAGNET_ON, sequenceNumber: 1, seconds: 734015840}];
12
+ * const command = new GetParameter(parameters);
13
+ *
14
+ * // output command binary in hex representation
15
+ * console.log(command.toHex());
16
+ * // 0b 06 2b c0 31 60 01 01
17
+ * ```
18
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetParameter.md#response)
19
+ */
20
+ declare class GetParameter extends Command {
21
+ parameters: IParameter;
22
+ constructor(parameters: IParameter);
23
+ static readonly id = 4;
24
+ static readonly directionType = 2;
25
+ static readonly examples: TCommandExampleList;
26
+ static readonly hasParameters = true;
27
+ static fromBytes(data: Uint8Array): GetParameter;
28
+ toBytes(): Uint8Array;
29
+ }
30
+ export default GetParameter;
@@ -0,0 +1,91 @@
1
+ import Command from '../../Command.js';
2
+ import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
3
+ import { UPLINK } from '../../constants/directions.js';
4
+ import * as deviceParameters from '../../constants/deviceParameters.js';
5
+ const COMMAND_ID = 0x04;
6
+ const examples = [
7
+ {
8
+ name: 'initial data response',
9
+ parameters: {
10
+ id: deviceParameters.INITIAL_DATA,
11
+ data: { value: 2023, meterValue: 204, pulseCoefficient: 100 }
12
+ },
13
+ hex: {
14
+ header: '04 0a',
15
+ body: '17 00 00 00 cc 82 00 00 07 e7'
16
+ }
17
+ },
18
+ {
19
+ name: 'device sending absolute data',
20
+ parameters: {
21
+ id: deviceParameters.ABSOLUTE_DATA_STATUS,
22
+ data: { status: 1 }
23
+ },
24
+ hex: {
25
+ header: '04 02',
26
+ body: '18 01'
27
+ }
28
+ },
29
+ {
30
+ name: 'initial data from 1 channel',
31
+ parameters: {
32
+ id: deviceParameters.INITIAL_DATA_MULTI_CHANNEL,
33
+ data: { value: 2032, meterValue: 402, pulseCoefficient: 1000, channel: 1 }
34
+ },
35
+ hex: {
36
+ header: '04 0b',
37
+ body: '1d 01 00 00 01 92 80 00 00 07 f0'
38
+ }
39
+ },
40
+ {
41
+ name: 'absolute data sending is disabled for 2 channel',
42
+ parameters: {
43
+ id: deviceParameters.ABSOLUTE_DATA_STATUS_MULTI_CHANNEL,
44
+ data: { status: 0, channel: 2 }
45
+ },
46
+ hex: {
47
+ header: '04 03',
48
+ body: '1e 02 00'
49
+ }
50
+ }
51
+ ];
52
+ /**
53
+ * Uplink command.
54
+ *
55
+ * @example
56
+ * ```js
57
+ * import GetParameter from 'jooby-codec/commands/uplink/GetParameter';
58
+ * import {constants} from 'jooby-codec';
59
+ *
60
+ * const parameters = [eventList: {id: constants.events.MAGNET_ON, sequenceNumber: 1, seconds: 734015840}];
61
+ * const command = new GetParameter(parameters);
62
+ *
63
+ * // output command binary in hex representation
64
+ * console.log(command.toHex());
65
+ * // 0b 06 2b c0 31 60 01 01
66
+ * ```
67
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetParameter.md#response)
68
+ */
69
+ class GetParameter extends Command {
70
+ constructor(parameters) {
71
+ super();
72
+ this.parameters = parameters;
73
+ }
74
+ // data - only body (without header)
75
+ static fromBytes(data) {
76
+ const buffer = new CommandBinaryBuffer(data);
77
+ return new GetParameter(buffer.getParameter());
78
+ }
79
+ // returns full message - header with body
80
+ toBytes() {
81
+ const buffer = new CommandBinaryBuffer(CommandBinaryBuffer.getParameterSize(this.parameters));
82
+ buffer.setParameter(this.parameters);
83
+ return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
84
+ }
85
+ }
86
+ GetParameter.id = COMMAND_ID;
87
+ GetParameter.directionType = UPLINK;
88
+ GetParameter.examples = examples;
89
+ GetParameter.hasParameters = true;
90
+ export default GetParameter;
91
+ //# sourceMappingURL=GetParameter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetParameter.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetParameter.ts"],"names":[],"mappings":"AAAA,OAAO,OAA8B,MAAM,kBAAkB,CAAC;AAC9D,OAAO,mBAAiC,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAC,MAAM,EAAC,MAAM,+BAA+B,CAAC;AACrD,OAAO,KAAK,gBAAgB,MAAM,qCAAqC,CAAC;AAGxE,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB,MAAM,QAAQ,GAAwB;IAClC;QACI,IAAI,EAAE,uBAAuB;QAC7B,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;YACR,EAAE,EAAE,gBAAgB,CAAC,oBAAoB;YACzC,IAAI,EAAE,EAAC,MAAM,EAAE,CAAC,EAAC;SACpB;QACD,GAAG,EAAE;YACD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,OAAO;SAChB;KACJ;IACD;QACI,IAAI,EAAE,6BAA6B;QACnC,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,iDAAiD;QACvD,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;;;;;;;;;;;;;;;;GAgBG;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,MAAM,CAAC;AAEvB,qBAAQ,GAAG,QAAQ,CAAC;AAEpB,0BAAa,GAAG,IAAI,CAAC;AAqBzC,eAAe,YAAY,CAAC"}
@@ -0,0 +1,57 @@
1
+ import Command, { TCommandExampleList } from '../../Command.js';
2
+ interface IStatusBase {
3
+ }
4
+ interface IProduct {
5
+ version: number;
6
+ type: number;
7
+ }
8
+ /**
9
+ * GetStatus command parameters
10
+ */
11
+ interface IGetStatusParameters {
12
+ software: IProduct;
13
+ hardware: IProduct;
14
+ data: IStatusBase;
15
+ }
16
+ /**
17
+ * Uplink command.
18
+ *
19
+ * @example
20
+ * ```js
21
+ * import GetStatus from 'jooby-codec/commands/uplink/GetStatus';
22
+ *
23
+ * const parameters = {
24
+ * software: {type: 2, version: 10},
25
+ * hardware: {type: 3, version: 1},
26
+ * data: {
27
+ * batteryVoltage: {
28
+ * low: 3158,
29
+ * high: 3522
30
+ * },
31
+ * batteryInternalResistance: 10034,
32
+ * temperature: 14,
33
+ * remainingBatteryCapacity: 41,
34
+ * lastEventSequenceNumber: 34
35
+ * }
36
+ * };
37
+ *
38
+ * const command = new GetStatus(parameters);
39
+ *
40
+ * // output command binary in hex representation
41
+ * console.log(command.toHex());
42
+ * // 14 0c 02 0a 03 01 c5 6d c2 27 32 0e 68 22
43
+ * ```
44
+ *
45
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetStatus.md#response)
46
+ */
47
+ declare class GetStatus extends Command {
48
+ parameters: IGetStatusParameters;
49
+ constructor(parameters: IGetStatusParameters);
50
+ static readonly id = 20;
51
+ static readonly directionType = 2;
52
+ static readonly examples: TCommandExampleList;
53
+ static readonly hasParameters = true;
54
+ static fromBytes(data: Uint8Array): GetStatus;
55
+ toBytes(): Uint8Array;
56
+ }
57
+ export default GetStatus;