jooby-codec 3.12.0 → 3.14.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 (121) hide show
  1. package/dist/analog/CommandBinaryBuffer.d.ts +124 -5
  2. package/dist/analog/CommandBinaryBuffer.js +667 -6
  3. package/dist/analog/CommandBinaryBuffer.js.map +1 -1
  4. package/dist/analog/commands/downlink/GetArchiveHoursMCEx.d.ts +20 -0
  5. package/dist/analog/commands/downlink/GetArchiveHoursMCEx.js +51 -0
  6. package/dist/analog/commands/downlink/GetArchiveHoursMCEx.js.map +1 -0
  7. package/dist/analog/commands/downlink/GetParameter.js +16 -0
  8. package/dist/analog/commands/downlink/GetParameter.js.map +1 -1
  9. package/dist/analog/commands/downlink/SetParameter.js +202 -0
  10. package/dist/analog/commands/downlink/SetParameter.js.map +1 -1
  11. package/dist/analog/commands/downlink/index.d.ts +1 -0
  12. package/dist/analog/commands/downlink/index.js +1 -0
  13. package/dist/analog/commands/downlink/index.js.map +1 -1
  14. package/dist/analog/commands/uplink/GetArchiveHoursMCExResponse.d.ts +21 -0
  15. package/dist/analog/commands/uplink/GetArchiveHoursMCExResponse.js +55 -0
  16. package/dist/analog/commands/uplink/GetArchiveHoursMCExResponse.js.map +1 -0
  17. package/dist/analog/commands/uplink/GetParameterResponse.js +206 -3
  18. package/dist/analog/commands/uplink/GetParameterResponse.js.map +1 -1
  19. package/dist/analog/commands/uplink/HourMCEx.d.ts +22 -0
  20. package/dist/analog/commands/uplink/HourMCEx.js +42 -0
  21. package/dist/analog/commands/uplink/HourMCEx.js.map +1 -0
  22. package/dist/analog/commands/uplink/Status.js +1 -0
  23. package/dist/analog/commands/uplink/Status.js.map +1 -1
  24. package/dist/analog/commands/uplink/index.d.ts +2 -0
  25. package/dist/analog/commands/uplink/index.js +2 -0
  26. package/dist/analog/commands/uplink/index.js.map +1 -1
  27. package/dist/analog/constants/commandRelations.d.ts +2 -2
  28. package/dist/analog/constants/commandRelations.js +1 -0
  29. package/dist/analog/constants/commandRelations.js.map +1 -1
  30. package/dist/analog/constants/deviceParameters.d.ts +19 -0
  31. package/dist/analog/constants/deviceParameters.js +19 -0
  32. package/dist/analog/constants/deviceParameters.js.map +1 -1
  33. package/dist/analog/constants/hardwareTypes.d.ts +1 -0
  34. package/dist/analog/constants/hardwareTypes.js +1 -0
  35. package/dist/analog/constants/hardwareTypes.js.map +1 -1
  36. package/dist/analog/splitBytesToDataSegments.js +1 -1
  37. package/dist/mtx/Command.d.ts +9 -1
  38. package/dist/mtx/Command.js +5 -1
  39. package/dist/mtx/Command.js.map +1 -1
  40. package/dist/mtx/CommandBinaryBuffer.d.ts +33 -1
  41. package/dist/mtx/CommandBinaryBuffer.js +117 -0
  42. package/dist/mtx/CommandBinaryBuffer.js.map +1 -1
  43. package/dist/mtx/commands/downlink/GetCurrentValues.d.ts +13 -0
  44. package/dist/mtx/commands/downlink/GetCurrentValues.js +31 -0
  45. package/dist/mtx/commands/downlink/GetCurrentValues.js.map +1 -0
  46. package/dist/mtx/commands/downlink/GetEnergyCurrent.d.ts +18 -0
  47. package/dist/mtx/commands/downlink/GetEnergyCurrent.js +49 -0
  48. package/dist/mtx/commands/downlink/GetEnergyCurrent.js.map +1 -0
  49. package/dist/mtx/commands/downlink/GetEnergyDay.d.ts +20 -0
  50. package/dist/mtx/commands/downlink/GetEnergyDay.js +67 -0
  51. package/dist/mtx/commands/downlink/GetEnergyDay.js.map +1 -0
  52. package/dist/mtx/commands/downlink/GetEnergyDayPrevious.d.ts +13 -0
  53. package/dist/mtx/commands/downlink/GetEnergyDayPrevious.js +31 -0
  54. package/dist/mtx/commands/downlink/GetEnergyDayPrevious.js.map +1 -0
  55. package/dist/mtx/commands/downlink/GetExtendedCurrentValues.d.ts +13 -0
  56. package/dist/mtx/commands/downlink/GetExtendedCurrentValues.js +31 -0
  57. package/dist/mtx/commands/downlink/GetExtendedCurrentValues.js.map +1 -0
  58. package/dist/mtx/commands/downlink/GetHalfHours.d.ts +15 -0
  59. package/dist/mtx/commands/downlink/GetHalfHours.js +44 -0
  60. package/dist/mtx/commands/downlink/GetHalfHours.js.map +1 -0
  61. package/dist/mtx/commands/downlink/GetRatePlanInfo.js +3 -3
  62. package/dist/mtx/commands/downlink/GetRatePlanInfo.js.map +1 -1
  63. package/dist/mtx/commands/downlink/index.d.ts +6 -0
  64. package/dist/mtx/commands/downlink/index.js +6 -0
  65. package/dist/mtx/commands/downlink/index.js.map +1 -1
  66. package/dist/mtx/commands/uplink/GetBuildVersionResponse.d.ts +2 -4
  67. package/dist/mtx/commands/uplink/GetBuildVersionResponse.js +13 -9
  68. package/dist/mtx/commands/uplink/GetBuildVersionResponse.js.map +1 -1
  69. package/dist/mtx/commands/uplink/GetCurrentValuesResponse.d.ts +27 -0
  70. package/dist/mtx/commands/uplink/GetCurrentValuesResponse.js +88 -0
  71. package/dist/mtx/commands/uplink/GetCurrentValuesResponse.js.map +1 -0
  72. package/dist/mtx/commands/uplink/GetEnergyCurrentResponse.d.ts +16 -0
  73. package/dist/mtx/commands/uplink/GetEnergyCurrentResponse.js +83 -0
  74. package/dist/mtx/commands/uplink/GetEnergyCurrentResponse.js.map +1 -0
  75. package/dist/mtx/commands/uplink/GetEnergyDayPreviousResponse.d.ts +21 -0
  76. package/dist/mtx/commands/uplink/GetEnergyDayPreviousResponse.js +74 -0
  77. package/dist/mtx/commands/uplink/GetEnergyDayPreviousResponse.js.map +1 -0
  78. package/dist/mtx/commands/uplink/GetEnergyDayResponse.d.ts +20 -0
  79. package/dist/mtx/commands/uplink/GetEnergyDayResponse.js +95 -0
  80. package/dist/mtx/commands/uplink/GetEnergyDayResponse.js.map +1 -0
  81. package/dist/mtx/commands/uplink/GetExtendedCurrentValuesResponse.d.ts +20 -0
  82. package/dist/mtx/commands/uplink/GetExtendedCurrentValuesResponse.js +58 -0
  83. package/dist/mtx/commands/uplink/GetExtendedCurrentValuesResponse.js.map +1 -0
  84. package/dist/mtx/commands/uplink/GetHalfHoursResponse.d.ts +21 -0
  85. package/dist/mtx/commands/uplink/GetHalfHoursResponse.js +261 -0
  86. package/dist/mtx/commands/uplink/GetHalfHoursResponse.js.map +1 -0
  87. package/dist/mtx/commands/uplink/GetRatePlanInfoResponse.js +3 -3
  88. package/dist/mtx/commands/uplink/GetRatePlanInfoResponse.js.map +1 -1
  89. package/dist/mtx/commands/uplink/index.d.ts +6 -0
  90. package/dist/mtx/commands/uplink/index.js +6 -0
  91. package/dist/mtx/commands/uplink/index.js.map +1 -1
  92. package/dist/mtx/constants/commandRelations.d.ts +2 -2
  93. package/dist/mtx/constants/commandRelations.js +2 -0
  94. package/dist/mtx/constants/commandRelations.js.map +1 -1
  95. package/dist/mtx/message.d.ts +4 -3
  96. package/dist/mtx/message.js +7 -5
  97. package/dist/mtx/message.js.map +1 -1
  98. package/dist/mtxLora/Command.d.ts +1 -9
  99. package/dist/mtxLora/Command.js +1 -5
  100. package/dist/mtxLora/Command.js.map +1 -1
  101. package/dist/mtxLora/CommandBinaryBuffer.d.ts +2 -6
  102. package/dist/mtxLora/CommandBinaryBuffer.js +17 -17
  103. package/dist/mtxLora/CommandBinaryBuffer.js.map +1 -1
  104. package/dist/mtxLora/commands/downlink/GetHalfhoursEnergies.d.ts +2 -1
  105. package/dist/mtxLora/commands/downlink/GetHalfhoursEnergies.js +1 -1
  106. package/dist/mtxLora/commands/downlink/GetHalfhoursEnergies.js.map +1 -1
  107. package/dist/mtxLora/commands/uplink/GetDayEnergies.d.ts +2 -1
  108. package/dist/mtxLora/commands/uplink/GetDayEnergies.js +3 -3
  109. package/dist/mtxLora/commands/uplink/GetDayEnergies.js.map +1 -1
  110. package/dist/mtxLora/commands/uplink/GetDayMaxPower.d.ts +2 -1
  111. package/dist/mtxLora/commands/uplink/GetDayMaxPower.js +1 -1
  112. package/dist/mtxLora/commands/uplink/GetDayMaxPower.js.map +1 -1
  113. package/dist/mtxLora/commands/uplink/GetHalfhoursEnergies.d.ts +2 -1
  114. package/dist/mtxLora/commands/uplink/GetHalfhoursEnergies.js +3 -3
  115. package/dist/mtxLora/commands/uplink/GetHalfhoursEnergies.js.map +1 -1
  116. package/dist/mtxLora/message.d.ts +5 -27
  117. package/dist/mtxLora/message.js +5 -110
  118. package/dist/mtxLora/message.js.map +1 -1
  119. package/dist/types.d.ts +5 -0
  120. package/dist/utils/permutations.d.ts +1 -1
  121. 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,79 @@ 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
+ case deviceParameters.NBIOT_BANDS:
199
+ if (parameter.data) {
200
+ data = parameter.data;
201
+ size = 1 + 1;
202
+ size += data.bands.length;
203
+ }
204
+ else {
205
+ size = 1;
206
+ }
207
+ break;
208
+ case deviceParameters.NBIOT_MODULE_INFO:
209
+ size = 1;
210
+ break;
211
+ default:
212
+ size = parametersSizeMap.get(parameter.id);
213
+ }
133
214
  if (size === undefined) {
134
215
  throw new Error('unknown parameter id');
135
216
  }
@@ -140,6 +221,8 @@ class CommandBinaryBuffer extends BinaryBuffer {
140
221
  switch (parameter.id) {
141
222
  case deviceParameters.ABSOLUTE_DATA_MULTI_CHANNEL:
142
223
  case deviceParameters.ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL:
224
+ case deviceParameters.REPORTING_DATA_CONFIG:
225
+ case deviceParameters.EVENTS_CONFIG:
143
226
  size = 2;
144
227
  break;
145
228
  default:
@@ -148,6 +231,49 @@ class CommandBinaryBuffer extends BinaryBuffer {
148
231
  }
149
232
  return size;
150
233
  }
234
+ static getResponseParameterSize(parameter) {
235
+ let size;
236
+ let data;
237
+ switch (parameter.id) {
238
+ case deviceParameters.MQTT_SESSION_CONFIG:
239
+ case deviceParameters.NBIOT_SSL_CACERT_WRITE:
240
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_WRITE:
241
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_WRITE:
242
+ case deviceParameters.NBIOT_SSL_CACERT_SET:
243
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_SET:
244
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_SET:
245
+ case deviceParameters.NBIOT_DEVICE_SOFTWARE_UPDATE:
246
+ case deviceParameters.NBIOT_MODULE_FIRMWARE_UPDATE:
247
+ size = 1;
248
+ break;
249
+ case deviceParameters.MQTT_BROKER_ADDRESS:
250
+ data = parameter.data;
251
+ size = 1 + 2;
252
+ size += data.hostName.length + 1;
253
+ break;
254
+ case deviceParameters.MQTT_TOPIC_PREFIX:
255
+ data = parameter.data;
256
+ size = 1;
257
+ size += data.topicPrefix.length + 1;
258
+ break;
259
+ case deviceParameters.NBIOT_MODULE_INFO:
260
+ data = parameter.data;
261
+ size = 1;
262
+ size += data.moduleInfo.length + 1;
263
+ break;
264
+ case deviceParameters.NBIOT_BANDS:
265
+ data = parameter.data;
266
+ size = 1 + 1;
267
+ size += data.bands.length;
268
+ break;
269
+ default:
270
+ size = parametersSizeMap.get(parameter.id);
271
+ }
272
+ if (size === undefined) {
273
+ throw new Error('unknown parameter id');
274
+ }
275
+ return size;
276
+ }
151
277
  static getMagneticInfluenceBit(byte) {
152
278
  return !!extractBits(byte, 1, MAGNETIC_INFLUENCE_BIT_INDEX);
153
279
  }
@@ -424,6 +550,38 @@ class CommandBinaryBuffer extends BinaryBuffer {
424
550
  diff.forEach(diffValue => this.setExtendedValue(diffValue));
425
551
  });
426
552
  }
553
+ getChannelsValuesWithHourDiffExtended() {
554
+ const date = this.getDate();
555
+ const hour = this.getUint8();
556
+ const hours = this.getUint8();
557
+ const channels = this.getChannels();
558
+ const channelList = [];
559
+ date.setUTCHours(hour);
560
+ channels.forEach(channelIndex => {
561
+ const diff = [];
562
+ const value = this.getExtendedValue();
563
+ for (let diffHour = 0; diffHour < hours; ++diffHour) {
564
+ diff.push(this.getExtendedValue());
565
+ }
566
+ channelList.push({
567
+ value,
568
+ diff,
569
+ index: channelIndex
570
+ });
571
+ });
572
+ return { startTime2000: getTime2000FromDate(date), hour, hours, channelList };
573
+ }
574
+ setChannelsValuesWithHourDiffExtended(hour, hours, startTime2000, channelList) {
575
+ const date = getDateFromTime2000(startTime2000);
576
+ this.setDate(date);
577
+ this.setUint8(hour);
578
+ this.setUint8(hours);
579
+ this.setChannels(channelList);
580
+ channelList.forEach(({ value, diff }) => {
581
+ this.setExtendedValue(value);
582
+ diff.forEach(diffValue => this.setExtendedValue(diffValue));
583
+ });
584
+ }
427
585
  getChannelsWithAbsoluteValues() {
428
586
  const channels = this.getChannels();
429
587
  const channelList = [];
@@ -734,16 +892,182 @@ class CommandBinaryBuffer extends BinaryBuffer {
734
892
  channel4
735
893
  }));
736
894
  }
737
- getBatteryDepassivationConfig() {
895
+ getParameterBatteryDepassivationConfig() {
738
896
  return {
739
897
  resistanceStartThreshold: this.getUint16(false),
740
898
  resistanceStopThreshold: this.getUint16(false)
741
899
  };
742
900
  }
743
- setBatteryDepassivationConfig(parameter) {
901
+ setParameterBatteryDepassivationConfig(parameter) {
744
902
  this.setUint16(parameter.resistanceStartThreshold, false);
745
903
  this.setUint16(parameter.resistanceStopThreshold, false);
746
904
  }
905
+ getParameterMqttSessionConfig() {
906
+ return {
907
+ clientId: this.getString(),
908
+ username: this.getString(),
909
+ password: this.getString(),
910
+ cleanSession: this.getUint8()
911
+ };
912
+ }
913
+ setParameterMqttSessionConfig(parameter) {
914
+ this.setString(parameter.clientId);
915
+ this.setString(parameter.username);
916
+ this.setString(parameter.password);
917
+ this.setUint8(parameter.cleanSession);
918
+ }
919
+ getParameterMqttBrokerAddress() {
920
+ return {
921
+ hostName: this.getString(),
922
+ port: this.getUint16(false)
923
+ };
924
+ }
925
+ setParameterMqttBrokerAddress(parameter) {
926
+ this.setString(parameter.hostName);
927
+ this.setUint16(parameter.port, false);
928
+ }
929
+ getParameterMqttSslEnable() {
930
+ return {
931
+ enable: this.getUint8()
932
+ };
933
+ }
934
+ setParameterMqttSslEnable(parameter) {
935
+ this.setUint8(parameter.enable);
936
+ }
937
+ getParameterMqttTopicPrefix() {
938
+ return {
939
+ topicPrefix: this.getString()
940
+ };
941
+ }
942
+ setParameterMqttTopicPrefix(parameter) {
943
+ this.setString(parameter.topicPrefix);
944
+ }
945
+ getParameterMqttDataReceiveConfig() {
946
+ return {
947
+ qos: this.getUint8()
948
+ };
949
+ }
950
+ setParameterMqttDataReceiveConfig(parameter) {
951
+ this.setUint8(parameter.qos);
952
+ }
953
+ getParameterMqttDataSendConfig() {
954
+ return {
955
+ qos: this.getUint8(),
956
+ retain: this.getUint8(),
957
+ newestSendFirst: this.getUint8(),
958
+ sendCountAttempts: this.getUint8(),
959
+ sendTimeoutBetweenAttempts: this.getUint8()
960
+ };
961
+ }
962
+ setParameterMqttDataSendConfig(parameter) {
963
+ this.setUint8(parameter.qos);
964
+ this.setUint8(parameter.retain);
965
+ this.setUint8(parameter.newestSendFirst);
966
+ this.setUint8(parameter.sendCountAttempts);
967
+ this.setUint8(parameter.sendTimeoutBetweenAttempts);
968
+ }
969
+ getParameterNbiotSslConfig() {
970
+ return {
971
+ securityLevel: this.getUint8(),
972
+ version: this.getUint8()
973
+ };
974
+ }
975
+ setParameterNbiotSslConfig(parameter) {
976
+ this.setUint8(parameter.securityLevel);
977
+ this.setUint8(parameter.version);
978
+ }
979
+ getParameterNbiotSslWrite() {
980
+ return {
981
+ size: this.getUint16(false),
982
+ position: this.getUint16(false),
983
+ chunk: this.getBytes(this.size, this.offset)
984
+ };
985
+ }
986
+ setParameterNbiotSslWrite(parameter) {
987
+ if (parameter.size !== parameter.chunk.length) {
988
+ throw new Error('ssl chunk size parameter doesn\'t match actual ssl chunk size');
989
+ }
990
+ this.setUint16(parameter.size, false);
991
+ this.setUint16(parameter.position, false);
992
+ this.setBytes(parameter.chunk);
993
+ }
994
+ getParameterNbiotSslSet() {
995
+ return {
996
+ crc32: this.getUint32(false)
997
+ };
998
+ }
999
+ setParameterNbiotSslSet(parameter) {
1000
+ this.setUint32(parameter.crc32, false);
1001
+ }
1002
+ getParameterNbiotDeviceSoftwareUpdate() {
1003
+ return {
1004
+ softwareImageUrl: this.getString()
1005
+ };
1006
+ }
1007
+ setParameterNbiotDeviceSoftwareUpdate(parameter) {
1008
+ this.setString(parameter.softwareImageUrl);
1009
+ }
1010
+ getParameterNbiotModuleFirmwareUpdate() {
1011
+ return {
1012
+ moduleFirmwareImageUrl: this.getString()
1013
+ };
1014
+ }
1015
+ setParameterNbiotModuleFirmwareUpdate(parameter) {
1016
+ this.setString(parameter.moduleFirmwareImageUrl);
1017
+ }
1018
+ getParameterReportingDataConfig() {
1019
+ return {
1020
+ dataType: this.getUint8(),
1021
+ hour: this.getUint8(),
1022
+ minutes: this.getUint8(),
1023
+ countToSend: this.getUint8()
1024
+ };
1025
+ }
1026
+ setParameterReportingDataConfig(parameter) {
1027
+ this.setUint8(parameter.dataType);
1028
+ this.setUint8(parameter.hour);
1029
+ this.setUint8(parameter.minutes);
1030
+ this.setUint8(parameter.countToSend);
1031
+ }
1032
+ getParameterEventsConfig() {
1033
+ return {
1034
+ eventId: this.getUint8(),
1035
+ enableEvent: this.getUint8(),
1036
+ sendEvent: this.getUint8(),
1037
+ saveEvent: this.getUint8()
1038
+ };
1039
+ }
1040
+ setParameterEventsConfig(parameter) {
1041
+ this.setUint8(parameter.eventId);
1042
+ this.setUint8(parameter.enableEvent);
1043
+ this.setUint8(parameter.sendEvent);
1044
+ this.setUint8(parameter.saveEvent);
1045
+ }
1046
+ getParameterNbiotModuleInfo() {
1047
+ return {
1048
+ moduleInfo: this.getString()
1049
+ };
1050
+ }
1051
+ setParameterNbiotModuleInfo(parameter) {
1052
+ this.setString(parameter.moduleInfo);
1053
+ }
1054
+ getParameterNbiotBands() {
1055
+ const count = this.getUint8();
1056
+ const bands = [];
1057
+ for (let index = 0; index < count; index++) {
1058
+ bands.push(this.getUint8());
1059
+ }
1060
+ return { count, bands };
1061
+ }
1062
+ setParameterNbiotBands(parameter) {
1063
+ if (parameter.count !== parameter.bands.length) {
1064
+ throw new Error('bands count parameter doesn\'t match actual bands size');
1065
+ }
1066
+ this.setUint8(parameter.count);
1067
+ for (const band of parameter.bands) {
1068
+ this.setUint8(band);
1069
+ }
1070
+ }
747
1071
  getLegacyHourDiff() {
748
1072
  const stateWithValueByte = this.getUint8();
749
1073
  const valueLowerByte = this.getUint8();
@@ -816,7 +1140,56 @@ class CommandBinaryBuffer extends BinaryBuffer {
816
1140
  data = this.getParameterPulseChannelsEnableConfig();
817
1141
  break;
818
1142
  case deviceParameters.BATTERY_DEPASSIVATION_CONFIG:
819
- data = this.getBatteryDepassivationConfig();
1143
+ data = this.getParameterBatteryDepassivationConfig();
1144
+ break;
1145
+ case deviceParameters.MQTT_SESSION_CONFIG:
1146
+ data = this.getParameterMqttSessionConfig();
1147
+ break;
1148
+ case deviceParameters.MQTT_BROKER_ADDRESS:
1149
+ data = this.getParameterMqttBrokerAddress();
1150
+ break;
1151
+ case deviceParameters.MQTT_SSL_ENABLE:
1152
+ data = this.getParameterMqttSslEnable();
1153
+ break;
1154
+ case deviceParameters.MQTT_TOPIC_PREFIX:
1155
+ data = this.getParameterMqttTopicPrefix();
1156
+ break;
1157
+ case deviceParameters.MQTT_DATA_RECEIVE_CONFIG:
1158
+ data = this.getParameterMqttDataReceiveConfig();
1159
+ break;
1160
+ case deviceParameters.MQTT_DATA_SEND_CONFIG:
1161
+ data = this.getParameterMqttDataSendConfig();
1162
+ break;
1163
+ case deviceParameters.NBIOT_SSL_CONFIG:
1164
+ data = this.getParameterNbiotSslConfig();
1165
+ break;
1166
+ case deviceParameters.NBIOT_SSL_CACERT_WRITE:
1167
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_WRITE:
1168
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_WRITE:
1169
+ data = this.getParameterNbiotSslWrite();
1170
+ break;
1171
+ case deviceParameters.NBIOT_SSL_CACERT_SET:
1172
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_SET:
1173
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_SET:
1174
+ data = this.getParameterNbiotSslSet();
1175
+ break;
1176
+ case deviceParameters.NBIOT_DEVICE_SOFTWARE_UPDATE:
1177
+ data = this.getParameterNbiotDeviceSoftwareUpdate();
1178
+ break;
1179
+ case deviceParameters.NBIOT_MODULE_FIRMWARE_UPDATE:
1180
+ data = this.getParameterNbiotModuleFirmwareUpdate();
1181
+ break;
1182
+ case deviceParameters.REPORTING_DATA_CONFIG:
1183
+ data = this.getParameterReportingDataConfig();
1184
+ break;
1185
+ case deviceParameters.EVENTS_CONFIG:
1186
+ data = this.getParameterEventsConfig();
1187
+ break;
1188
+ case deviceParameters.NBIOT_BANDS:
1189
+ data = this.getParameterNbiotBands();
1190
+ break;
1191
+ case deviceParameters.NBIOT_MODULE_INFO:
1192
+ data = null;
820
1193
  break;
821
1194
  default:
822
1195
  throw new Error(`parameter ${id} is not supported`);
@@ -882,7 +1255,55 @@ class CommandBinaryBuffer extends BinaryBuffer {
882
1255
  this.setParameterPulseChannelsEnableConfig(data);
883
1256
  break;
884
1257
  case deviceParameters.BATTERY_DEPASSIVATION_CONFIG:
885
- this.setBatteryDepassivationConfig(data);
1258
+ this.setParameterBatteryDepassivationConfig(data);
1259
+ break;
1260
+ case deviceParameters.MQTT_SESSION_CONFIG:
1261
+ this.setParameterMqttSessionConfig(data);
1262
+ break;
1263
+ case deviceParameters.MQTT_BROKER_ADDRESS:
1264
+ this.setParameterMqttBrokerAddress(data);
1265
+ break;
1266
+ case deviceParameters.MQTT_SSL_ENABLE:
1267
+ this.setParameterMqttSslEnable(data);
1268
+ break;
1269
+ case deviceParameters.MQTT_TOPIC_PREFIX:
1270
+ this.setParameterMqttTopicPrefix(data);
1271
+ break;
1272
+ case deviceParameters.MQTT_DATA_RECEIVE_CONFIG:
1273
+ this.setParameterMqttDataReceiveConfig(data);
1274
+ break;
1275
+ case deviceParameters.MQTT_DATA_SEND_CONFIG:
1276
+ this.setParameterMqttDataSendConfig(data);
1277
+ break;
1278
+ case deviceParameters.NBIOT_SSL_CONFIG:
1279
+ this.setParameterNbiotSslConfig(data);
1280
+ break;
1281
+ case deviceParameters.NBIOT_SSL_CACERT_WRITE:
1282
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_WRITE:
1283
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_WRITE:
1284
+ this.setParameterNbiotSslWrite(data);
1285
+ break;
1286
+ case deviceParameters.NBIOT_SSL_CACERT_SET:
1287
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_SET:
1288
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_SET:
1289
+ this.setParameterNbiotSslSet(data);
1290
+ break;
1291
+ case deviceParameters.NBIOT_DEVICE_SOFTWARE_UPDATE:
1292
+ this.setParameterNbiotDeviceSoftwareUpdate(data);
1293
+ break;
1294
+ case deviceParameters.NBIOT_MODULE_FIRMWARE_UPDATE:
1295
+ this.setParameterNbiotModuleFirmwareUpdate(data);
1296
+ break;
1297
+ case deviceParameters.REPORTING_DATA_CONFIG:
1298
+ this.setParameterReportingDataConfig(data);
1299
+ break;
1300
+ case deviceParameters.EVENTS_CONFIG:
1301
+ this.setParameterEventsConfig(data);
1302
+ break;
1303
+ case deviceParameters.NBIOT_BANDS:
1304
+ this.setParameterNbiotBands(data);
1305
+ break;
1306
+ case deviceParameters.NBIOT_MODULE_INFO:
886
1307
  break;
887
1308
  default:
888
1309
  throw new Error(`parameter ${id} is not supported`);
@@ -896,6 +1317,22 @@ class CommandBinaryBuffer extends BinaryBuffer {
896
1317
  setRequestChannelParameter(parameter) {
897
1318
  this.setChannelValue(parameter.channel);
898
1319
  }
1320
+ getRequestDataTypeParameter() {
1321
+ return {
1322
+ dataType: this.getUint8()
1323
+ };
1324
+ }
1325
+ setRequestDataTypeParameter(parameter) {
1326
+ this.setUint8(parameter.dataType);
1327
+ }
1328
+ getRequestEventIdParameter() {
1329
+ return {
1330
+ eventId: this.getUint8()
1331
+ };
1332
+ }
1333
+ setRequestEventIdParameter(parameter) {
1334
+ this.setUint8(parameter.eventId);
1335
+ }
899
1336
  getRequestParameter() {
900
1337
  const id = this.getUint8();
901
1338
  let data = null;
@@ -904,6 +1341,12 @@ class CommandBinaryBuffer extends BinaryBuffer {
904
1341
  case deviceParameters.ABSOLUTE_DATA_MULTI_CHANNEL:
905
1342
  data = this.getRequestChannelParameter();
906
1343
  break;
1344
+ case deviceParameters.REPORTING_DATA_CONFIG:
1345
+ data = this.getRequestDataTypeParameter();
1346
+ break;
1347
+ case deviceParameters.EVENTS_CONFIG:
1348
+ data = this.getRequestEventIdParameter();
1349
+ break;
907
1350
  default:
908
1351
  break;
909
1352
  }
@@ -917,8 +1360,226 @@ class CommandBinaryBuffer extends BinaryBuffer {
917
1360
  case deviceParameters.ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL:
918
1361
  this.setRequestChannelParameter(data);
919
1362
  break;
1363
+ case deviceParameters.REPORTING_DATA_CONFIG:
1364
+ this.setRequestDataTypeParameter(data);
1365
+ break;
1366
+ case deviceParameters.EVENTS_CONFIG:
1367
+ this.setRequestEventIdParameter(data);
1368
+ break;
1369
+ default:
1370
+ break;
1371
+ }
1372
+ }
1373
+ getResponseParameter() {
1374
+ const id = this.getUint8();
1375
+ let data;
1376
+ switch (id) {
1377
+ case deviceParameters.REPORTING_DATA_INTERVAL:
1378
+ data = this.getParameterReportingDataInterval();
1379
+ break;
1380
+ case deviceParameters.REPORTING_DATA_TYPE:
1381
+ data = this.getParameterReportingDataType();
1382
+ break;
1383
+ case deviceParameters.DAY_CHECKOUT_HOUR:
1384
+ data = this.getParameterDayCheckoutHour();
1385
+ break;
1386
+ case deviceParameters.PRIORITY_DATA_DELIVERY_TYPE:
1387
+ data = this.getParameterDeliveryTypeOfPriorityData();
1388
+ break;
1389
+ case deviceParameters.ACTIVATION_METHOD:
1390
+ data = this.getParameterActivationMethod();
1391
+ break;
1392
+ case deviceParameters.BATTERY_DEPASSIVATION_INFO:
1393
+ data = this.getParameterBatteryDepassivationInfo();
1394
+ break;
1395
+ case deviceParameters.BATTERY_MINIMAL_LOAD_TIME:
1396
+ data = this.getParameterBatteryMinimalLoadTime();
1397
+ break;
1398
+ case deviceParameters.CHANNELS_CONFIG:
1399
+ data = this.getParameterChannelsConfig();
1400
+ break;
1401
+ case deviceParameters.RX2_CONFIG:
1402
+ data = this.getParameterRx2Config();
1403
+ break;
1404
+ case deviceParameters.ABSOLUTE_DATA:
1405
+ data = this.getParameterAbsoluteData();
1406
+ break;
1407
+ case deviceParameters.ABSOLUTE_DATA_ENABLE:
1408
+ data = this.getParameterAbsoluteDataEnable();
1409
+ break;
1410
+ case deviceParameters.SERIAL_NUMBER:
1411
+ data = this.getParameterSerialNumber();
1412
+ break;
1413
+ case deviceParameters.GEOLOCATION:
1414
+ data = this.getParameterGeolocation();
1415
+ break;
1416
+ case deviceParameters.EXTRA_FRAME_INTERVAL:
1417
+ data = this.getParameterExtraFrameInterval();
1418
+ break;
1419
+ case deviceParameters.ABSOLUTE_DATA_MULTI_CHANNEL:
1420
+ data = this.getParameterAbsoluteDataMC();
1421
+ break;
1422
+ case deviceParameters.ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL:
1423
+ data = this.getParameterAbsoluteDataEnableMC();
1424
+ break;
1425
+ case deviceParameters.PULSE_CHANNELS_SCAN_CONFIG:
1426
+ data = this.getParameterPulseChannelsScanConfig();
1427
+ break;
1428
+ case deviceParameters.PULSE_CHANNELS_SET_CONFIG:
1429
+ data = this.getParameterPulseChannelsEnableConfig();
1430
+ break;
1431
+ case deviceParameters.BATTERY_DEPASSIVATION_CONFIG:
1432
+ data = this.getParameterBatteryDepassivationConfig();
1433
+ break;
1434
+ case deviceParameters.MQTT_BROKER_ADDRESS:
1435
+ data = this.getParameterMqttBrokerAddress();
1436
+ break;
1437
+ case deviceParameters.MQTT_SSL_ENABLE:
1438
+ data = this.getParameterMqttSslEnable();
1439
+ break;
1440
+ case deviceParameters.MQTT_TOPIC_PREFIX:
1441
+ data = this.getParameterMqttTopicPrefix();
1442
+ break;
1443
+ case deviceParameters.MQTT_DATA_RECEIVE_CONFIG:
1444
+ data = this.getParameterMqttDataReceiveConfig();
1445
+ break;
1446
+ case deviceParameters.MQTT_DATA_SEND_CONFIG:
1447
+ data = this.getParameterMqttDataSendConfig();
1448
+ break;
1449
+ case deviceParameters.NBIOT_SSL_CONFIG:
1450
+ data = this.getParameterNbiotSslConfig();
1451
+ break;
1452
+ case deviceParameters.REPORTING_DATA_CONFIG:
1453
+ data = this.getParameterReportingDataConfig();
1454
+ break;
1455
+ case deviceParameters.EVENTS_CONFIG:
1456
+ data = this.getParameterEventsConfig();
1457
+ break;
1458
+ case deviceParameters.NBIOT_MODULE_INFO:
1459
+ data = this.getParameterNbiotModuleInfo();
1460
+ break;
1461
+ case deviceParameters.NBIOT_BANDS:
1462
+ data = this.getParameterNbiotBands();
1463
+ break;
1464
+ case deviceParameters.MQTT_SESSION_CONFIG:
1465
+ case deviceParameters.NBIOT_SSL_CACERT_WRITE:
1466
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_WRITE:
1467
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_WRITE:
1468
+ case deviceParameters.NBIOT_SSL_CACERT_SET:
1469
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_SET:
1470
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_SET:
1471
+ case deviceParameters.NBIOT_DEVICE_SOFTWARE_UPDATE:
1472
+ case deviceParameters.NBIOT_MODULE_FIRMWARE_UPDATE:
1473
+ data = null;
1474
+ break;
920
1475
  default:
1476
+ throw new Error(`parameter ${id} is not supported`);
1477
+ }
1478
+ return { id, data };
1479
+ }
1480
+ setResponseParameter(parameter) {
1481
+ const { id, data } = parameter;
1482
+ this.setUint8(id);
1483
+ switch (id) {
1484
+ case deviceParameters.REPORTING_DATA_INTERVAL:
1485
+ this.setParameterReportingDataInterval(data);
1486
+ break;
1487
+ case deviceParameters.REPORTING_DATA_TYPE:
1488
+ this.setParameterReportingDataType(data);
1489
+ break;
1490
+ case deviceParameters.DAY_CHECKOUT_HOUR:
1491
+ this.setParameterDayCheckoutHour(data);
921
1492
  break;
1493
+ case deviceParameters.PRIORITY_DATA_DELIVERY_TYPE:
1494
+ this.setParameterDeliveryTypeOfPriorityData(data);
1495
+ break;
1496
+ case deviceParameters.ACTIVATION_METHOD:
1497
+ this.setParameterActivationMethod(data);
1498
+ break;
1499
+ case deviceParameters.BATTERY_DEPASSIVATION_INFO:
1500
+ this.setParameterBatteryDepassivationInfo(data);
1501
+ break;
1502
+ case deviceParameters.BATTERY_MINIMAL_LOAD_TIME:
1503
+ this.setParameterBatteryMinimalLoadTime(data);
1504
+ break;
1505
+ case deviceParameters.CHANNELS_CONFIG:
1506
+ this.setParameterChannelsConfig(data);
1507
+ break;
1508
+ case deviceParameters.RX2_CONFIG:
1509
+ this.setParameterRx2Config(data);
1510
+ break;
1511
+ case deviceParameters.ABSOLUTE_DATA:
1512
+ this.setParameterAbsoluteData(data);
1513
+ break;
1514
+ case deviceParameters.ABSOLUTE_DATA_ENABLE:
1515
+ this.setParameterAbsoluteDataEnable(data);
1516
+ break;
1517
+ case deviceParameters.SERIAL_NUMBER:
1518
+ this.setParameterSerialNumber(data);
1519
+ break;
1520
+ case deviceParameters.GEOLOCATION:
1521
+ this.setParameterGeolocation(data);
1522
+ break;
1523
+ case deviceParameters.EXTRA_FRAME_INTERVAL:
1524
+ this.setParameterExtraFrameInterval(data);
1525
+ break;
1526
+ case deviceParameters.ABSOLUTE_DATA_MULTI_CHANNEL:
1527
+ this.setParameterAbsoluteDataMC(data);
1528
+ break;
1529
+ case deviceParameters.ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL:
1530
+ this.setParameterAbsoluteDataEnableMC(data);
1531
+ break;
1532
+ case deviceParameters.PULSE_CHANNELS_SCAN_CONFIG:
1533
+ this.setParameterPulseChannelsScanConfig(data);
1534
+ break;
1535
+ case deviceParameters.PULSE_CHANNELS_SET_CONFIG:
1536
+ this.setParameterPulseChannelsEnableConfig(data);
1537
+ break;
1538
+ case deviceParameters.BATTERY_DEPASSIVATION_CONFIG:
1539
+ this.setParameterBatteryDepassivationConfig(data);
1540
+ break;
1541
+ case deviceParameters.MQTT_BROKER_ADDRESS:
1542
+ this.setParameterMqttBrokerAddress(data);
1543
+ break;
1544
+ case deviceParameters.MQTT_SSL_ENABLE:
1545
+ this.setParameterMqttSslEnable(data);
1546
+ break;
1547
+ case deviceParameters.MQTT_TOPIC_PREFIX:
1548
+ this.setParameterMqttTopicPrefix(data);
1549
+ break;
1550
+ case deviceParameters.MQTT_DATA_RECEIVE_CONFIG:
1551
+ this.setParameterMqttDataReceiveConfig(data);
1552
+ break;
1553
+ case deviceParameters.MQTT_DATA_SEND_CONFIG:
1554
+ this.setParameterMqttDataSendConfig(data);
1555
+ break;
1556
+ case deviceParameters.NBIOT_SSL_CONFIG:
1557
+ this.setParameterNbiotSslConfig(data);
1558
+ break;
1559
+ case deviceParameters.REPORTING_DATA_CONFIG:
1560
+ this.setParameterReportingDataConfig(data);
1561
+ break;
1562
+ case deviceParameters.EVENTS_CONFIG:
1563
+ this.setParameterEventsConfig(data);
1564
+ break;
1565
+ case deviceParameters.NBIOT_MODULE_INFO:
1566
+ this.setParameterNbiotModuleInfo(data);
1567
+ break;
1568
+ case deviceParameters.NBIOT_BANDS:
1569
+ this.setParameterNbiotBands(data);
1570
+ break;
1571
+ case deviceParameters.MQTT_SESSION_CONFIG:
1572
+ case deviceParameters.NBIOT_SSL_CACERT_WRITE:
1573
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_WRITE:
1574
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_WRITE:
1575
+ case deviceParameters.NBIOT_SSL_CACERT_SET:
1576
+ case deviceParameters.NBIOT_SSL_CLIENT_CERT_SET:
1577
+ case deviceParameters.NBIOT_SSL_CLIENT_KEY_SET:
1578
+ case deviceParameters.NBIOT_DEVICE_SOFTWARE_UPDATE:
1579
+ case deviceParameters.NBIOT_MODULE_FIRMWARE_UPDATE:
1580
+ break;
1581
+ default:
1582
+ throw new Error(`parameter ${id} is not supported`);
922
1583
  }
923
1584
  }
924
1585
  getLegacyCounterValue() {