jooby-codec 3.11.0 → 3.13.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 (159) hide show
  1. package/dist/Command.d.ts +32 -0
  2. package/dist/Command.js +31 -0
  3. package/dist/Command.js.map +1 -0
  4. package/dist/analog/Command.d.ts +3 -25
  5. package/dist/analog/Command.js +3 -20
  6. package/dist/analog/Command.js.map +1 -1
  7. package/dist/analog/CommandBinaryBuffer.d.ts +113 -5
  8. package/dist/analog/CommandBinaryBuffer.js +596 -6
  9. package/dist/analog/CommandBinaryBuffer.js.map +1 -1
  10. package/dist/analog/UnknownCommand.d.ts +2 -3
  11. package/dist/analog/UnknownCommand.js +3 -4
  12. package/dist/analog/UnknownCommand.js.map +1 -1
  13. package/dist/analog/commands/DataSegmentBase.d.ts +2 -3
  14. package/dist/analog/commands/DataSegmentBase.js +3 -4
  15. package/dist/analog/commands/DataSegmentBase.js.map +1 -1
  16. package/dist/analog/commands/downlink/GetArchiveHoursMCEx.d.ts +20 -0
  17. package/dist/analog/commands/downlink/GetArchiveHoursMCEx.js +51 -0
  18. package/dist/analog/commands/downlink/GetArchiveHoursMCEx.js.map +1 -0
  19. package/dist/analog/commands/downlink/SetParameter.js +191 -0
  20. package/dist/analog/commands/downlink/SetParameter.js.map +1 -1
  21. package/dist/analog/commands/downlink/index.d.ts +1 -0
  22. package/dist/analog/commands/downlink/index.js +1 -0
  23. package/dist/analog/commands/downlink/index.js.map +1 -1
  24. package/dist/analog/commands/uplink/GetArchiveHoursMCExResponse.d.ts +21 -0
  25. package/dist/analog/commands/uplink/GetArchiveHoursMCExResponse.js +55 -0
  26. package/dist/analog/commands/uplink/GetArchiveHoursMCExResponse.js.map +1 -0
  27. package/dist/analog/commands/uplink/GetParameterResponse.js +179 -3
  28. package/dist/analog/commands/uplink/GetParameterResponse.js.map +1 -1
  29. package/dist/analog/commands/uplink/HourMCEx.d.ts +22 -0
  30. package/dist/analog/commands/uplink/HourMCEx.js +45 -0
  31. package/dist/analog/commands/uplink/HourMCEx.js.map +1 -0
  32. package/dist/analog/commands/uplink/Status.js +1 -0
  33. package/dist/analog/commands/uplink/Status.js.map +1 -1
  34. package/dist/analog/commands/uplink/index.d.ts +2 -0
  35. package/dist/analog/commands/uplink/index.js +2 -0
  36. package/dist/analog/commands/uplink/index.js.map +1 -1
  37. package/dist/analog/constants/commandRelations.d.ts +2 -2
  38. package/dist/analog/constants/commandRelations.js +1 -0
  39. package/dist/analog/constants/commandRelations.js.map +1 -1
  40. package/dist/analog/constants/deviceParameters.d.ts +17 -0
  41. package/dist/analog/constants/deviceParameters.js +17 -0
  42. package/dist/analog/constants/deviceParameters.js.map +1 -1
  43. package/dist/analog/constants/hardwareTypes.d.ts +1 -0
  44. package/dist/analog/constants/hardwareTypes.js +1 -0
  45. package/dist/analog/constants/hardwareTypes.js.map +1 -1
  46. package/dist/analog/splitBytesToDataSegments.js +4 -1
  47. package/dist/analog/splitBytesToDataSegments.js.map +1 -1
  48. package/dist/mtx/Command.d.ts +10 -26
  49. package/dist/mtx/Command.js +7 -28
  50. package/dist/mtx/Command.js.map +1 -1
  51. package/dist/mtx/CommandBinaryBuffer.d.ts +61 -29
  52. package/dist/mtx/CommandBinaryBuffer.js +165 -71
  53. package/dist/mtx/CommandBinaryBuffer.js.map +1 -1
  54. package/dist/mtx/UnknownCommand.d.ts +2 -3
  55. package/dist/mtx/UnknownCommand.js +3 -4
  56. package/dist/mtx/UnknownCommand.js.map +1 -1
  57. package/dist/mtx/commands/downlink/GetCurrentValues.d.ts +13 -0
  58. package/dist/mtx/commands/downlink/GetCurrentValues.js +31 -0
  59. package/dist/mtx/commands/downlink/GetCurrentValues.js.map +1 -0
  60. package/dist/mtx/commands/downlink/GetEnergyCurrent.d.ts +18 -0
  61. package/dist/mtx/commands/downlink/GetEnergyCurrent.js +49 -0
  62. package/dist/mtx/commands/downlink/GetEnergyCurrent.js.map +1 -0
  63. package/dist/mtx/commands/downlink/GetEnergyDay.d.ts +20 -0
  64. package/dist/mtx/commands/downlink/GetEnergyDay.js +67 -0
  65. package/dist/mtx/commands/downlink/GetEnergyDay.js.map +1 -0
  66. package/dist/mtx/commands/downlink/GetEnergyDayPrevious.d.ts +13 -0
  67. package/dist/mtx/commands/downlink/GetEnergyDayPrevious.js +31 -0
  68. package/dist/mtx/commands/downlink/GetEnergyDayPrevious.js.map +1 -0
  69. package/dist/mtx/commands/downlink/GetExtendedCurrentValues.d.ts +13 -0
  70. package/dist/mtx/commands/downlink/GetExtendedCurrentValues.js +31 -0
  71. package/dist/mtx/commands/downlink/GetExtendedCurrentValues.js.map +1 -0
  72. package/dist/mtx/commands/downlink/GetHalfHours.d.ts +15 -0
  73. package/dist/mtx/commands/downlink/GetHalfHours.js +44 -0
  74. package/dist/mtx/commands/downlink/GetHalfHours.js.map +1 -0
  75. package/dist/mtx/commands/downlink/GetRatePlanInfo.js +3 -3
  76. package/dist/mtx/commands/downlink/GetRatePlanInfo.js.map +1 -1
  77. package/dist/mtx/commands/downlink/SetCorrectDateTime.d.ts +1 -1
  78. package/dist/mtx/commands/downlink/SetCorrectDateTime.js +2 -2
  79. package/dist/mtx/commands/downlink/SetCorrectDateTime.js.map +1 -1
  80. package/dist/mtx/commands/downlink/SetDateTime.js +7 -7
  81. package/dist/mtx/commands/downlink/SetDateTime.js.map +1 -1
  82. package/dist/mtx/commands/downlink/index.d.ts +6 -0
  83. package/dist/mtx/commands/downlink/index.js +6 -0
  84. package/dist/mtx/commands/downlink/index.js.map +1 -1
  85. package/dist/mtx/commands/uplink/GetBuildVersionResponse.d.ts +2 -4
  86. package/dist/mtx/commands/uplink/GetBuildVersionResponse.js +13 -9
  87. package/dist/mtx/commands/uplink/GetBuildVersionResponse.js.map +1 -1
  88. package/dist/mtx/commands/uplink/GetCurrentValuesResponse.d.ts +27 -0
  89. package/dist/mtx/commands/uplink/GetCurrentValuesResponse.js +88 -0
  90. package/dist/mtx/commands/uplink/GetCurrentValuesResponse.js.map +1 -0
  91. package/dist/mtx/commands/uplink/GetDateTimeResponse.js +1 -1
  92. package/dist/mtx/commands/uplink/GetDateTimeResponse.js.map +1 -1
  93. package/dist/mtx/commands/uplink/GetEnergyCurrentResponse.d.ts +16 -0
  94. package/dist/mtx/commands/uplink/GetEnergyCurrentResponse.js +83 -0
  95. package/dist/mtx/commands/uplink/GetEnergyCurrentResponse.js.map +1 -0
  96. package/dist/mtx/commands/uplink/GetEnergyDayPreviousResponse.d.ts +21 -0
  97. package/dist/mtx/commands/uplink/GetEnergyDayPreviousResponse.js +74 -0
  98. package/dist/mtx/commands/uplink/GetEnergyDayPreviousResponse.js.map +1 -0
  99. package/dist/mtx/commands/uplink/GetEnergyDayResponse.d.ts +20 -0
  100. package/dist/mtx/commands/uplink/GetEnergyDayResponse.js +95 -0
  101. package/dist/mtx/commands/uplink/GetEnergyDayResponse.js.map +1 -0
  102. package/dist/mtx/commands/uplink/GetExtendedCurrentValuesResponse.d.ts +20 -0
  103. package/dist/mtx/commands/uplink/GetExtendedCurrentValuesResponse.js +58 -0
  104. package/dist/mtx/commands/uplink/GetExtendedCurrentValuesResponse.js.map +1 -0
  105. package/dist/mtx/commands/uplink/GetHalfHoursResponse.d.ts +21 -0
  106. package/dist/mtx/commands/uplink/GetHalfHoursResponse.js +261 -0
  107. package/dist/mtx/commands/uplink/GetHalfHoursResponse.js.map +1 -0
  108. package/dist/mtx/commands/uplink/GetRatePlanInfoResponse.js +3 -3
  109. package/dist/mtx/commands/uplink/GetRatePlanInfoResponse.js.map +1 -1
  110. package/dist/mtx/commands/uplink/SetCorrectDateTimeResponse.d.ts +1 -1
  111. package/dist/mtx/commands/uplink/SetCorrectDateTimeResponse.js +2 -2
  112. package/dist/mtx/commands/uplink/SetCorrectDateTimeResponse.js.map +1 -1
  113. package/dist/mtx/commands/uplink/SetDateTimeResponse.d.ts +1 -1
  114. package/dist/mtx/commands/uplink/SetDateTimeResponse.js +2 -2
  115. package/dist/mtx/commands/uplink/SetDateTimeResponse.js.map +1 -1
  116. package/dist/mtx/commands/uplink/index.d.ts +6 -0
  117. package/dist/mtx/commands/uplink/index.js +6 -0
  118. package/dist/mtx/commands/uplink/index.js.map +1 -1
  119. package/dist/mtx/constants/commandRelations.d.ts +2 -2
  120. package/dist/mtx/constants/commandRelations.js +2 -0
  121. package/dist/mtx/constants/commandRelations.js.map +1 -1
  122. package/dist/mtx/constants/screenIds.d.ts +29 -22
  123. package/dist/mtx/constants/screenIds.js +29 -22
  124. package/dist/mtx/constants/screenIds.js.map +1 -1
  125. package/dist/mtx/constants/screenSets.js +29 -21
  126. package/dist/mtx/constants/screenSets.js.map +1 -1
  127. package/dist/mtx/message.d.ts +4 -3
  128. package/dist/mtx/message.js +8 -6
  129. package/dist/mtx/message.js.map +1 -1
  130. package/dist/mtxLora/CommandBinaryBuffer.d.ts +3 -6
  131. package/dist/mtxLora/CommandBinaryBuffer.js +18 -18
  132. package/dist/mtxLora/CommandBinaryBuffer.js.map +1 -1
  133. package/dist/mtxLora/commands/downlink/GetHalfhoursEnergies.d.ts +3 -2
  134. package/dist/mtxLora/commands/downlink/GetHalfhoursEnergies.js +3 -3
  135. package/dist/mtxLora/commands/downlink/GetHalfhoursEnergies.js.map +1 -1
  136. package/dist/mtxLora/commands/uplink/GetDayEnergies.d.ts +4 -2
  137. package/dist/mtxLora/commands/uplink/GetDayEnergies.js +42 -5
  138. package/dist/mtxLora/commands/uplink/GetDayEnergies.js.map +1 -1
  139. package/dist/mtxLora/commands/uplink/GetDayMaxPower.d.ts +4 -2
  140. package/dist/mtxLora/commands/uplink/GetDayMaxPower.js +40 -3
  141. package/dist/mtxLora/commands/uplink/GetDayMaxPower.js.map +1 -1
  142. package/dist/mtxLora/commands/uplink/GetHalfhoursEnergies.d.ts +5 -3
  143. package/dist/mtxLora/commands/uplink/GetHalfhoursEnergies.js +43 -6
  144. package/dist/mtxLora/commands/uplink/GetHalfhoursEnergies.js.map +1 -1
  145. package/dist/mtxLora/message.d.ts +5 -27
  146. package/dist/mtxLora/message.js +5 -110
  147. package/dist/mtxLora/message.js.map +1 -1
  148. package/dist/obis-observer/Command.d.ts +3 -25
  149. package/dist/obis-observer/Command.js +3 -26
  150. package/dist/obis-observer/Command.js.map +1 -1
  151. package/dist/obis-observer/UnknownCommand.d.ts +2 -3
  152. package/dist/obis-observer/UnknownCommand.js +3 -4
  153. package/dist/obis-observer/UnknownCommand.js.map +1 -1
  154. package/dist/types.d.ts +5 -0
  155. package/dist/utils/bytesConversion.d.ts +6 -1
  156. package/dist/utils/bytesConversion.js +10 -3
  157. package/dist/utils/bytesConversion.js.map +1 -1
  158. package/dist/utils/permutations.d.ts +1 -1
  159. package/package.json +2 -2
@@ -102,7 +102,16 @@ const parametersSizeMap = new Map([
102
102
  [deviceParameters.ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL, 1 + 2],
103
103
  [deviceParameters.PULSE_CHANNELS_SCAN_CONFIG, 1 + 3],
104
104
  [deviceParameters.PULSE_CHANNELS_SET_CONFIG, 1 + 1],
105
- [deviceParameters.BATTERY_DEPASSIVATION_CONFIG, 1 + 4]
105
+ [deviceParameters.BATTERY_DEPASSIVATION_CONFIG, 1 + 4],
106
+ [deviceParameters.MQTT_SSL_ENABLE, 1 + 1],
107
+ [deviceParameters.MQTT_DATA_RECEIVE_CONFIG, 1 + 1],
108
+ [deviceParameters.MQTT_DATA_SEND_CONFIG, 1 + 5],
109
+ [deviceParameters.NBIOT_SSL_CONFIG, 1 + 2],
110
+ [deviceParameters.NBIOT_SSL_CACERT_SET, 1 + 4],
111
+ [deviceParameters.NBIOT_SSL_CLIENT_CERT_SET, 1 + 4],
112
+ [deviceParameters.NBIOT_SSL_CLIENT_KEY_SET, 1 + 4],
113
+ [deviceParameters.REPORTING_DATA_CONFIG, 1 + 4],
114
+ [deviceParameters.EVENTS_CONFIG, 1 + 4]
106
115
  ]);
107
116
  const fourChannelsBitMask = {
108
117
  channel1: 2 ** 0,
@@ -129,7 +138,66 @@ class CommandBinaryBuffer extends BinaryBuffer {
129
138
  return extBytes;
130
139
  }
131
140
  static getParameterSize(parameter) {
132
- const size = parametersSizeMap.get(parameter.id);
141
+ let size;
142
+ let data;
143
+ switch (parameter.id) {
144
+ case deviceParameters.MQTT_SESSION_CONFIG:
145
+ if (parameter.data) {
146
+ data = parameter.data;
147
+ size = 1 + 1;
148
+ size += data.clientId.length + 1;
149
+ size += data.username.length + 1;
150
+ size += data.password.length + 1;
151
+ }
152
+ else {
153
+ size = 1;
154
+ }
155
+ break;
156
+ case deviceParameters.MQTT_BROKER_ADDRESS:
157
+ data = parameter.data;
158
+ size = 1 + 2;
159
+ size += data.hostName.length + 1;
160
+ break;
161
+ case deviceParameters.MQTT_TOPIC_PREFIX:
162
+ data = parameter.data;
163
+ size = 1;
164
+ size += data.topicPrefix.length + 1;
165
+ break;
166
+ case deviceParameters.NBIOT_SSL_CACERT_WRITE:
167
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_WRITE:
168
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_WRITE:
169
+ if (parameter.data) {
170
+ data = parameter.data;
171
+ size = 1 + 2 + 2;
172
+ size += data.chunk.length;
173
+ }
174
+ else {
175
+ size = 1;
176
+ }
177
+ break;
178
+ case deviceParameters.NBIOT_DEVICE_SOFTWARE_UPDATE:
179
+ if (parameter.data) {
180
+ data = parameter.data;
181
+ size = 1;
182
+ size += data.softwareImageUrl.length + 1;
183
+ }
184
+ else {
185
+ size = 1;
186
+ }
187
+ break;
188
+ case deviceParameters.NBIOT_MODULE_FIRMWARE_UPDATE:
189
+ if (parameter.data) {
190
+ data = parameter.data;
191
+ size = 1;
192
+ size += data.moduleFirmwareImageUrl.length + 1;
193
+ }
194
+ else {
195
+ size = 1;
196
+ }
197
+ break;
198
+ default:
199
+ size = parametersSizeMap.get(parameter.id);
200
+ }
133
201
  if (size === undefined) {
134
202
  throw new Error('unknown parameter id');
135
203
  }
@@ -140,6 +208,8 @@ class CommandBinaryBuffer extends BinaryBuffer {
140
208
  switch (parameter.id) {
141
209
  case deviceParameters.ABSOLUTE_DATA_MULTI_CHANNEL:
142
210
  case deviceParameters.ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL:
211
+ case deviceParameters.REPORTING_DATA_CONFIG:
212
+ case deviceParameters.EVENTS_CONFIG:
143
213
  size = 2;
144
214
  break;
145
215
  default:
@@ -148,6 +218,39 @@ class CommandBinaryBuffer extends BinaryBuffer {
148
218
  }
149
219
  return size;
150
220
  }
221
+ static getResponseParameterSize(parameter) {
222
+ let size;
223
+ let data;
224
+ switch (parameter.id) {
225
+ case deviceParameters.MQTT_SESSION_CONFIG:
226
+ case deviceParameters.NBIOT_SSL_CACERT_WRITE:
227
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_WRITE:
228
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_WRITE:
229
+ case deviceParameters.NBIOT_SSL_CACERT_SET:
230
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_SET:
231
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_SET:
232
+ case deviceParameters.NBIOT_DEVICE_SOFTWARE_UPDATE:
233
+ case deviceParameters.NBIOT_MODULE_FIRMWARE_UPDATE:
234
+ size = 1;
235
+ break;
236
+ case deviceParameters.MQTT_BROKER_ADDRESS:
237
+ data = parameter.data;
238
+ size = 1 + 2;
239
+ size += data.hostName.length + 1;
240
+ break;
241
+ case deviceParameters.MQTT_TOPIC_PREFIX:
242
+ data = parameter.data;
243
+ size = 1;
244
+ size += data.topicPrefix.length + 1;
245
+ break;
246
+ default:
247
+ size = parametersSizeMap.get(parameter.id);
248
+ }
249
+ if (size === undefined) {
250
+ throw new Error('unknown parameter id');
251
+ }
252
+ return size;
253
+ }
151
254
  static getMagneticInfluenceBit(byte) {
152
255
  return !!extractBits(byte, 1, MAGNETIC_INFLUENCE_BIT_INDEX);
153
256
  }
@@ -424,6 +527,38 @@ class CommandBinaryBuffer extends BinaryBuffer {
424
527
  diff.forEach(diffValue => this.setExtendedValue(diffValue));
425
528
  });
426
529
  }
530
+ getChannelsValuesWithHourDiffExtended() {
531
+ const date = this.getDate();
532
+ const hour = this.getUint8();
533
+ const hours = this.getUint8();
534
+ const channels = this.getChannels();
535
+ const channelList = [];
536
+ date.setUTCHours(hour);
537
+ channels.forEach(channelIndex => {
538
+ const diff = [];
539
+ const value = this.getExtendedValue();
540
+ for (let diffHour = 1; diffHour < hours; ++diffHour) {
541
+ diff.push(this.getExtendedValue());
542
+ }
543
+ channelList.push({
544
+ value,
545
+ diff,
546
+ index: channelIndex
547
+ });
548
+ });
549
+ return { startTime2000: getTime2000FromDate(date), hour, hours, channelList };
550
+ }
551
+ setChannelsValuesWithHourDiffExtended(hour, hours, startTime2000, channelList) {
552
+ const date = getDateFromTime2000(startTime2000);
553
+ this.setDate(date);
554
+ this.setUint8(hour);
555
+ this.setUint8(hours);
556
+ this.setChannels(channelList);
557
+ channelList.forEach(({ value, diff }) => {
558
+ this.setExtendedValue(value);
559
+ diff.forEach(diffValue => this.setExtendedValue(diffValue));
560
+ });
561
+ }
427
562
  getChannelsWithAbsoluteValues() {
428
563
  const channels = this.getChannels();
429
564
  const channelList = [];
@@ -734,16 +869,157 @@ class CommandBinaryBuffer extends BinaryBuffer {
734
869
  channel4
735
870
  }));
736
871
  }
737
- getBatteryDepassivationConfig() {
872
+ getParameterBatteryDepassivationConfig() {
738
873
  return {
739
874
  resistanceStartThreshold: this.getUint16(false),
740
875
  resistanceStopThreshold: this.getUint16(false)
741
876
  };
742
877
  }
743
- setBatteryDepassivationConfig(parameter) {
878
+ setParameterBatteryDepassivationConfig(parameter) {
744
879
  this.setUint16(parameter.resistanceStartThreshold, false);
745
880
  this.setUint16(parameter.resistanceStopThreshold, false);
746
881
  }
882
+ getParameterMqttSessionConfig() {
883
+ return {
884
+ clientId: this.getString(),
885
+ username: this.getString(),
886
+ password: this.getString(),
887
+ cleanSession: this.getUint8()
888
+ };
889
+ }
890
+ setParameterMqttSessionConfig(parameter) {
891
+ this.setString(parameter.clientId);
892
+ this.setString(parameter.username);
893
+ this.setString(parameter.password);
894
+ this.setUint8(parameter.cleanSession);
895
+ }
896
+ getParameterMqttBrokerAddress() {
897
+ return {
898
+ hostName: this.getString(),
899
+ port: this.getUint16(false)
900
+ };
901
+ }
902
+ setParameterMqttBrokerAddress(parameter) {
903
+ this.setString(parameter.hostName);
904
+ this.setUint16(parameter.port, false);
905
+ }
906
+ getParameterMqttSslEnable() {
907
+ return {
908
+ enable: this.getUint8()
909
+ };
910
+ }
911
+ setParameterMqttSslEnable(parameter) {
912
+ this.setUint8(parameter.enable);
913
+ }
914
+ getParameterMqttTopicPrefix() {
915
+ return {
916
+ topicPrefix: this.getString()
917
+ };
918
+ }
919
+ setParameterMqttTopicPrefix(parameter) {
920
+ this.setString(parameter.topicPrefix);
921
+ }
922
+ getParameterMqttDataReceiveConfig() {
923
+ return {
924
+ qos: this.getUint8()
925
+ };
926
+ }
927
+ setParameterMqttDataReceiveConfig(parameter) {
928
+ this.setUint8(parameter.qos);
929
+ }
930
+ getParameterMqttDataSendConfig() {
931
+ return {
932
+ qos: this.getUint8(),
933
+ retain: this.getUint8(),
934
+ newestSendFirst: this.getUint8(),
935
+ sendCountAttempts: this.getUint8(),
936
+ sendTimeoutBetweenAttempts: this.getUint8()
937
+ };
938
+ }
939
+ setParameterMqttDataSendConfig(parameter) {
940
+ this.setUint8(parameter.qos);
941
+ this.setUint8(parameter.retain);
942
+ this.setUint8(parameter.newestSendFirst);
943
+ this.setUint8(parameter.sendCountAttempts);
944
+ this.setUint8(parameter.sendTimeoutBetweenAttempts);
945
+ }
946
+ getParameterNbiotSslConfig() {
947
+ return {
948
+ securityLevel: this.getUint8(),
949
+ version: this.getUint8()
950
+ };
951
+ }
952
+ setParameterNbiotSslConfig(parameter) {
953
+ this.setUint8(parameter.securityLevel);
954
+ this.setUint8(parameter.version);
955
+ }
956
+ getParameterNbiotSslWrite() {
957
+ return {
958
+ size: this.getUint16(false),
959
+ position: this.getUint16(false),
960
+ chunk: this.getBytes(this.size, this.offset)
961
+ };
962
+ }
963
+ setParameterNbiotSslWrite(parameter) {
964
+ if (parameter.size !== parameter.chunk.length) {
965
+ throw new Error('ssl chunk size parameter doesn\'t match actual ssl chunk size');
966
+ }
967
+ this.setUint16(parameter.size, false);
968
+ this.setUint16(parameter.position, false);
969
+ this.setBytes(parameter.chunk);
970
+ }
971
+ getParameterNbiotSslSet() {
972
+ return {
973
+ crc32: this.getUint32(false)
974
+ };
975
+ }
976
+ setParameterNbiotSslSet(parameter) {
977
+ this.setUint32(parameter.crc32, false);
978
+ }
979
+ getParameterNbiotDeviceSoftwareUpdate() {
980
+ return {
981
+ softwareImageUrl: this.getString()
982
+ };
983
+ }
984
+ setParameterNbiotDeviceSoftwareUpdate(parameter) {
985
+ this.setString(parameter.softwareImageUrl);
986
+ }
987
+ getParameterNbiotModuleFirmwareUpdate() {
988
+ return {
989
+ moduleFirmwareImageUrl: this.getString()
990
+ };
991
+ }
992
+ setParameterNbiotModuleFirmwareUpdate(parameter) {
993
+ this.setString(parameter.moduleFirmwareImageUrl);
994
+ }
995
+ getParameterReportingDataConfig() {
996
+ return {
997
+ dataType: this.getUint8(),
998
+ hour: this.getUint8(),
999
+ minutes: this.getUint8(),
1000
+ countToSend: this.getUint8()
1001
+ };
1002
+ }
1003
+ setParameterReportingDataConfig(parameter) {
1004
+ this.setUint8(parameter.dataType);
1005
+ this.setUint8(parameter.hour);
1006
+ this.setUint8(parameter.minutes);
1007
+ this.setUint8(parameter.countToSend);
1008
+ }
1009
+ getParameterEventsConfig() {
1010
+ return {
1011
+ eventId: this.getUint8(),
1012
+ enableEvent: this.getUint8(),
1013
+ sendEvent: this.getUint8(),
1014
+ saveEvent: this.getUint8()
1015
+ };
1016
+ }
1017
+ setParameterEventsConfig(parameter) {
1018
+ this.setUint8(parameter.eventId);
1019
+ this.setUint8(parameter.enableEvent);
1020
+ this.setUint8(parameter.sendEvent);
1021
+ this.setUint8(parameter.saveEvent);
1022
+ }
747
1023
  getLegacyHourDiff() {
748
1024
  const stateWithValueByte = this.getUint8();
749
1025
  const valueLowerByte = this.getUint8();
@@ -816,7 +1092,50 @@ class CommandBinaryBuffer extends BinaryBuffer {
816
1092
  data = this.getParameterPulseChannelsEnableConfig();
817
1093
  break;
818
1094
  case deviceParameters.BATTERY_DEPASSIVATION_CONFIG:
819
- data = this.getBatteryDepassivationConfig();
1095
+ data = this.getParameterBatteryDepassivationConfig();
1096
+ break;
1097
+ case deviceParameters.MQTT_SESSION_CONFIG:
1098
+ data = this.getParameterMqttSessionConfig();
1099
+ break;
1100
+ case deviceParameters.MQTT_BROKER_ADDRESS:
1101
+ data = this.getParameterMqttBrokerAddress();
1102
+ break;
1103
+ case deviceParameters.MQTT_SSL_ENABLE:
1104
+ data = this.getParameterMqttSslEnable();
1105
+ break;
1106
+ case deviceParameters.MQTT_TOPIC_PREFIX:
1107
+ data = this.getParameterMqttTopicPrefix();
1108
+ break;
1109
+ case deviceParameters.MQTT_DATA_RECEIVE_CONFIG:
1110
+ data = this.getParameterMqttDataReceiveConfig();
1111
+ break;
1112
+ case deviceParameters.MQTT_DATA_SEND_CONFIG:
1113
+ data = this.getParameterMqttDataSendConfig();
1114
+ break;
1115
+ case deviceParameters.NBIOT_SSL_CONFIG:
1116
+ data = this.getParameterNbiotSslConfig();
1117
+ break;
1118
+ case deviceParameters.NBIOT_SSL_CACERT_WRITE:
1119
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_WRITE:
1120
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_WRITE:
1121
+ data = this.getParameterNbiotSslWrite();
1122
+ break;
1123
+ case deviceParameters.NBIOT_SSL_CACERT_SET:
1124
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_SET:
1125
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_SET:
1126
+ data = this.getParameterNbiotSslSet();
1127
+ break;
1128
+ case deviceParameters.NBIOT_DEVICE_SOFTWARE_UPDATE:
1129
+ data = this.getParameterNbiotDeviceSoftwareUpdate();
1130
+ break;
1131
+ case deviceParameters.NBIOT_MODULE_FIRMWARE_UPDATE:
1132
+ data = this.getParameterNbiotModuleFirmwareUpdate();
1133
+ break;
1134
+ case deviceParameters.REPORTING_DATA_CONFIG:
1135
+ data = this.getParameterReportingDataConfig();
1136
+ break;
1137
+ case deviceParameters.EVENTS_CONFIG:
1138
+ data = this.getParameterEventsConfig();
820
1139
  break;
821
1140
  default:
822
1141
  throw new Error(`parameter ${id} is not supported`);
@@ -882,7 +1201,50 @@ class CommandBinaryBuffer extends BinaryBuffer {
882
1201
  this.setParameterPulseChannelsEnableConfig(data);
883
1202
  break;
884
1203
  case deviceParameters.BATTERY_DEPASSIVATION_CONFIG:
885
- this.setBatteryDepassivationConfig(data);
1204
+ this.setParameterBatteryDepassivationConfig(data);
1205
+ break;
1206
+ case deviceParameters.MQTT_SESSION_CONFIG:
1207
+ this.setParameterMqttSessionConfig(data);
1208
+ break;
1209
+ case deviceParameters.MQTT_BROKER_ADDRESS:
1210
+ this.setParameterMqttBrokerAddress(data);
1211
+ break;
1212
+ case deviceParameters.MQTT_SSL_ENABLE:
1213
+ this.setParameterMqttSslEnable(data);
1214
+ break;
1215
+ case deviceParameters.MQTT_TOPIC_PREFIX:
1216
+ this.setParameterMqttTopicPrefix(data);
1217
+ break;
1218
+ case deviceParameters.MQTT_DATA_RECEIVE_CONFIG:
1219
+ this.setParameterMqttDataReceiveConfig(data);
1220
+ break;
1221
+ case deviceParameters.MQTT_DATA_SEND_CONFIG:
1222
+ this.setParameterMqttDataSendConfig(data);
1223
+ break;
1224
+ case deviceParameters.NBIOT_SSL_CONFIG:
1225
+ this.setParameterNbiotSslConfig(data);
1226
+ break;
1227
+ case deviceParameters.NBIOT_SSL_CACERT_WRITE:
1228
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_WRITE:
1229
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_WRITE:
1230
+ this.setParameterNbiotSslWrite(data);
1231
+ break;
1232
+ case deviceParameters.NBIOT_SSL_CACERT_SET:
1233
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_SET:
1234
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_SET:
1235
+ this.setParameterNbiotSslSet(data);
1236
+ break;
1237
+ case deviceParameters.NBIOT_DEVICE_SOFTWARE_UPDATE:
1238
+ this.setParameterNbiotDeviceSoftwareUpdate(data);
1239
+ break;
1240
+ case deviceParameters.NBIOT_MODULE_FIRMWARE_UPDATE:
1241
+ this.setParameterNbiotModuleFirmwareUpdate(data);
1242
+ break;
1243
+ case deviceParameters.REPORTING_DATA_CONFIG:
1244
+ this.setParameterReportingDataConfig(data);
1245
+ break;
1246
+ case deviceParameters.EVENTS_CONFIG:
1247
+ this.setParameterEventsConfig(data);
886
1248
  break;
887
1249
  default:
888
1250
  throw new Error(`parameter ${id} is not supported`);
@@ -896,6 +1258,22 @@ class CommandBinaryBuffer extends BinaryBuffer {
896
1258
  setRequestChannelParameter(parameter) {
897
1259
  this.setChannelValue(parameter.channel);
898
1260
  }
1261
+ getRequestDataTypeParameter() {
1262
+ return {
1263
+ dataType: this.getUint8()
1264
+ };
1265
+ }
1266
+ setRequestDataTypeParameter(parameter) {
1267
+ this.setUint8(parameter.dataType);
1268
+ }
1269
+ getRequestEventIdParameter() {
1270
+ return {
1271
+ eventId: this.getUint8()
1272
+ };
1273
+ }
1274
+ setRequestEventIdParameter(parameter) {
1275
+ this.setUint8(parameter.eventId);
1276
+ }
899
1277
  getRequestParameter() {
900
1278
  const id = this.getUint8();
901
1279
  let data = null;
@@ -904,6 +1282,12 @@ class CommandBinaryBuffer extends BinaryBuffer {
904
1282
  case deviceParameters.ABSOLUTE_DATA_MULTI_CHANNEL:
905
1283
  data = this.getRequestChannelParameter();
906
1284
  break;
1285
+ case deviceParameters.REPORTING_DATA_CONFIG:
1286
+ data = this.getRequestDataTypeParameter();
1287
+ break;
1288
+ case deviceParameters.EVENTS_CONFIG:
1289
+ data = this.getRequestEventIdParameter();
1290
+ break;
907
1291
  default:
908
1292
  break;
909
1293
  }
@@ -917,8 +1301,214 @@ class CommandBinaryBuffer extends BinaryBuffer {
917
1301
  case deviceParameters.ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL:
918
1302
  this.setRequestChannelParameter(data);
919
1303
  break;
1304
+ case deviceParameters.REPORTING_DATA_CONFIG:
1305
+ this.setRequestDataTypeParameter(data);
1306
+ break;
1307
+ case deviceParameters.EVENTS_CONFIG:
1308
+ this.setRequestEventIdParameter(data);
1309
+ break;
1310
+ default:
1311
+ break;
1312
+ }
1313
+ }
1314
+ getResponseParameter() {
1315
+ const id = this.getUint8();
1316
+ let data;
1317
+ switch (id) {
1318
+ case deviceParameters.REPORTING_DATA_INTERVAL:
1319
+ data = this.getParameterReportingDataInterval();
1320
+ break;
1321
+ case deviceParameters.REPORTING_DATA_TYPE:
1322
+ data = this.getParameterReportingDataType();
1323
+ break;
1324
+ case deviceParameters.DAY_CHECKOUT_HOUR:
1325
+ data = this.getParameterDayCheckoutHour();
1326
+ break;
1327
+ case deviceParameters.PRIORITY_DATA_DELIVERY_TYPE:
1328
+ data = this.getParameterDeliveryTypeOfPriorityData();
1329
+ break;
1330
+ case deviceParameters.ACTIVATION_METHOD:
1331
+ data = this.getParameterActivationMethod();
1332
+ break;
1333
+ case deviceParameters.BATTERY_DEPASSIVATION_INFO:
1334
+ data = this.getParameterBatteryDepassivationInfo();
1335
+ break;
1336
+ case deviceParameters.BATTERY_MINIMAL_LOAD_TIME:
1337
+ data = this.getParameterBatteryMinimalLoadTime();
1338
+ break;
1339
+ case deviceParameters.CHANNELS_CONFIG:
1340
+ data = this.getParameterChannelsConfig();
1341
+ break;
1342
+ case deviceParameters.RX2_CONFIG:
1343
+ data = this.getParameterRx2Config();
1344
+ break;
1345
+ case deviceParameters.ABSOLUTE_DATA:
1346
+ data = this.getParameterAbsoluteData();
1347
+ break;
1348
+ case deviceParameters.ABSOLUTE_DATA_ENABLE:
1349
+ data = this.getParameterAbsoluteDataEnable();
1350
+ break;
1351
+ case deviceParameters.SERIAL_NUMBER:
1352
+ data = this.getParameterSerialNumber();
1353
+ break;
1354
+ case deviceParameters.GEOLOCATION:
1355
+ data = this.getParameterGeolocation();
1356
+ break;
1357
+ case deviceParameters.EXTRA_FRAME_INTERVAL:
1358
+ data = this.getParameterExtraFrameInterval();
1359
+ break;
1360
+ case deviceParameters.ABSOLUTE_DATA_MULTI_CHANNEL:
1361
+ data = this.getParameterAbsoluteDataMC();
1362
+ break;
1363
+ case deviceParameters.ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL:
1364
+ data = this.getParameterAbsoluteDataEnableMC();
1365
+ break;
1366
+ case deviceParameters.PULSE_CHANNELS_SCAN_CONFIG:
1367
+ data = this.getParameterPulseChannelsScanConfig();
1368
+ break;
1369
+ case deviceParameters.PULSE_CHANNELS_SET_CONFIG:
1370
+ data = this.getParameterPulseChannelsEnableConfig();
1371
+ break;
1372
+ case deviceParameters.BATTERY_DEPASSIVATION_CONFIG:
1373
+ data = this.getParameterBatteryDepassivationConfig();
1374
+ break;
1375
+ case deviceParameters.MQTT_BROKER_ADDRESS:
1376
+ data = this.getParameterMqttBrokerAddress();
1377
+ break;
1378
+ case deviceParameters.MQTT_SSL_ENABLE:
1379
+ data = this.getParameterMqttSslEnable();
1380
+ break;
1381
+ case deviceParameters.MQTT_TOPIC_PREFIX:
1382
+ data = this.getParameterMqttTopicPrefix();
1383
+ break;
1384
+ case deviceParameters.MQTT_DATA_RECEIVE_CONFIG:
1385
+ data = this.getParameterMqttDataReceiveConfig();
1386
+ break;
1387
+ case deviceParameters.MQTT_DATA_SEND_CONFIG:
1388
+ data = this.getParameterMqttDataSendConfig();
1389
+ break;
1390
+ case deviceParameters.NBIOT_SSL_CONFIG:
1391
+ data = this.getParameterNbiotSslConfig();
1392
+ break;
1393
+ case deviceParameters.REPORTING_DATA_CONFIG:
1394
+ data = this.getParameterReportingDataConfig();
1395
+ break;
1396
+ case deviceParameters.EVENTS_CONFIG:
1397
+ data = this.getParameterEventsConfig();
1398
+ break;
1399
+ case deviceParameters.MQTT_SESSION_CONFIG:
1400
+ case deviceParameters.NBIOT_SSL_CACERT_WRITE:
1401
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_WRITE:
1402
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_WRITE:
1403
+ case deviceParameters.NBIOT_SSL_CACERT_SET:
1404
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_SET:
1405
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_SET:
1406
+ case deviceParameters.NBIOT_DEVICE_SOFTWARE_UPDATE:
1407
+ case deviceParameters.NBIOT_MODULE_FIRMWARE_UPDATE:
1408
+ data = null;
1409
+ break;
920
1410
  default:
1411
+ throw new Error(`parameter ${id} is not supported`);
1412
+ }
1413
+ return { id, data };
1414
+ }
1415
+ setResponseParameter(parameter) {
1416
+ const { id, data } = parameter;
1417
+ this.setUint8(id);
1418
+ switch (id) {
1419
+ case deviceParameters.REPORTING_DATA_INTERVAL:
1420
+ this.setParameterReportingDataInterval(data);
1421
+ break;
1422
+ case deviceParameters.REPORTING_DATA_TYPE:
1423
+ this.setParameterReportingDataType(data);
1424
+ break;
1425
+ case deviceParameters.DAY_CHECKOUT_HOUR:
1426
+ this.setParameterDayCheckoutHour(data);
1427
+ break;
1428
+ case deviceParameters.PRIORITY_DATA_DELIVERY_TYPE:
1429
+ this.setParameterDeliveryTypeOfPriorityData(data);
1430
+ break;
1431
+ case deviceParameters.ACTIVATION_METHOD:
1432
+ this.setParameterActivationMethod(data);
1433
+ break;
1434
+ case deviceParameters.BATTERY_DEPASSIVATION_INFO:
1435
+ this.setParameterBatteryDepassivationInfo(data);
1436
+ break;
1437
+ case deviceParameters.BATTERY_MINIMAL_LOAD_TIME:
1438
+ this.setParameterBatteryMinimalLoadTime(data);
1439
+ break;
1440
+ case deviceParameters.CHANNELS_CONFIG:
1441
+ this.setParameterChannelsConfig(data);
1442
+ break;
1443
+ case deviceParameters.RX2_CONFIG:
1444
+ this.setParameterRx2Config(data);
1445
+ break;
1446
+ case deviceParameters.ABSOLUTE_DATA:
1447
+ this.setParameterAbsoluteData(data);
921
1448
  break;
1449
+ case deviceParameters.ABSOLUTE_DATA_ENABLE:
1450
+ this.setParameterAbsoluteDataEnable(data);
1451
+ break;
1452
+ case deviceParameters.SERIAL_NUMBER:
1453
+ this.setParameterSerialNumber(data);
1454
+ break;
1455
+ case deviceParameters.GEOLOCATION:
1456
+ this.setParameterGeolocation(data);
1457
+ break;
1458
+ case deviceParameters.EXTRA_FRAME_INTERVAL:
1459
+ this.setParameterExtraFrameInterval(data);
1460
+ break;
1461
+ case deviceParameters.ABSOLUTE_DATA_MULTI_CHANNEL:
1462
+ this.setParameterAbsoluteDataMC(data);
1463
+ break;
1464
+ case deviceParameters.ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL:
1465
+ this.setParameterAbsoluteDataEnableMC(data);
1466
+ break;
1467
+ case deviceParameters.PULSE_CHANNELS_SCAN_CONFIG:
1468
+ this.setParameterPulseChannelsScanConfig(data);
1469
+ break;
1470
+ case deviceParameters.PULSE_CHANNELS_SET_CONFIG:
1471
+ this.setParameterPulseChannelsEnableConfig(data);
1472
+ break;
1473
+ case deviceParameters.BATTERY_DEPASSIVATION_CONFIG:
1474
+ this.setParameterBatteryDepassivationConfig(data);
1475
+ break;
1476
+ case deviceParameters.MQTT_BROKER_ADDRESS:
1477
+ this.setParameterMqttBrokerAddress(data);
1478
+ break;
1479
+ case deviceParameters.MQTT_SSL_ENABLE:
1480
+ this.setParameterMqttSslEnable(data);
1481
+ break;
1482
+ case deviceParameters.MQTT_TOPIC_PREFIX:
1483
+ this.setParameterMqttTopicPrefix(data);
1484
+ break;
1485
+ case deviceParameters.MQTT_DATA_RECEIVE_CONFIG:
1486
+ this.setParameterMqttDataReceiveConfig(data);
1487
+ break;
1488
+ case deviceParameters.MQTT_DATA_SEND_CONFIG:
1489
+ this.setParameterMqttDataSendConfig(data);
1490
+ break;
1491
+ case deviceParameters.NBIOT_SSL_CONFIG:
1492
+ this.setParameterNbiotSslConfig(data);
1493
+ break;
1494
+ case deviceParameters.REPORTING_DATA_CONFIG:
1495
+ this.setParameterReportingDataConfig(data);
1496
+ break;
1497
+ case deviceParameters.EVENTS_CONFIG:
1498
+ this.setParameterEventsConfig(data);
1499
+ break;
1500
+ case deviceParameters.MQTT_SESSION_CONFIG:
1501
+ case deviceParameters.NBIOT_SSL_CACERT_WRITE:
1502
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_WRITE:
1503
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_WRITE:
1504
+ case deviceParameters.NBIOT_SSL_CACERT_SET:
1505
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_SET:
1506
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_SET:
1507
+ case deviceParameters.NBIOT_DEVICE_SOFTWARE_UPDATE:
1508
+ case deviceParameters.NBIOT_MODULE_FIRMWARE_UPDATE:
1509
+ break;
1510
+ default:
1511
+ throw new Error(`parameter ${id} is not supported`);
922
1512
  }
923
1513
  }
924
1514
  getLegacyCounterValue() {