jooby-codec 1.12.0 → 1.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.
- package/dist/BinaryBuffer.js +1 -1
- package/dist/BinaryBuffer.js.map +1 -1
- package/dist/CommandBinaryBuffer.d.ts +68 -37
- package/dist/CommandBinaryBuffer.js +119 -49
- package/dist/CommandBinaryBuffer.js.map +1 -1
- package/dist/commands/downlink/CorrectTime2000.d.ts +2 -1
- package/dist/commands/downlink/CorrectTime2000.js +8 -0
- package/dist/commands/downlink/CorrectTime2000.js.map +1 -1
- package/dist/commands/downlink/GetArchiveDaysMC.d.ts +1 -1
- package/dist/commands/downlink/GetArchiveDaysMC.js +1 -4
- package/dist/commands/downlink/GetArchiveDaysMC.js.map +1 -1
- package/dist/commands/downlink/GetArchiveHoursMC.d.ts +1 -1
- package/dist/commands/downlink/GetArchiveHoursMC.js +1 -4
- package/dist/commands/downlink/GetArchiveHoursMC.js.map +1 -1
- package/dist/commands/downlink/GetExAbsArchiveDaysMC.d.ts +1 -1
- package/dist/commands/downlink/GetExAbsArchiveDaysMC.js +1 -4
- package/dist/commands/downlink/GetExAbsArchiveDaysMC.js.map +1 -1
- package/dist/commands/downlink/GetExAbsArchiveHoursMC.d.ts +1 -1
- package/dist/commands/downlink/GetExAbsArchiveHoursMC.js +2 -5
- package/dist/commands/downlink/GetExAbsArchiveHoursMC.js.map +1 -1
- package/dist/commands/downlink/GetExAbsCurrentMC.d.ts +2 -1
- package/dist/commands/downlink/GetExAbsCurrentMC.js +7 -0
- package/dist/commands/downlink/GetExAbsCurrentMC.js.map +1 -1
- package/dist/commands/downlink/GetLmicInfo.js.map +1 -1
- package/dist/commands/downlink/GetParameter.d.ts +1 -1
- package/dist/commands/downlink/GetParameter.js +4 -4
- package/dist/commands/downlink/GetParameter.js.map +1 -1
- package/dist/commands/downlink/SetParameter.d.ts +2 -2
- package/dist/commands/downlink/SetParameter.js +41 -17
- package/dist/commands/downlink/SetParameter.js.map +1 -1
- package/dist/commands/downlink/SetTime2000.d.ts +2 -1
- package/dist/commands/downlink/SetTime2000.js +8 -0
- package/dist/commands/downlink/SetTime2000.js.map +1 -1
- package/dist/commands/downlink/SoftRestart.d.ts +2 -1
- package/dist/commands/downlink/SoftRestart.js +7 -0
- package/dist/commands/downlink/SoftRestart.js.map +1 -1
- package/dist/commands/uplink/ExAbsCurrentMC.js +3 -10
- package/dist/commands/uplink/ExAbsCurrentMC.js.map +1 -1
- package/dist/commands/uplink/ExAbsDayMC.js +2 -9
- package/dist/commands/uplink/ExAbsDayMC.js.map +1 -1
- package/dist/commands/uplink/GetArchiveDaysMCResponse.js +1 -1
- package/dist/commands/uplink/GetParameterResponse.d.ts +1 -1
- package/dist/commands/uplink/GetParameterResponse.js +10 -10
- package/dist/commands/uplink/GetParameterResponse.js.map +1 -1
- package/dist/commands/uplink/Time2000.js +1 -2
- package/dist/commands/uplink/Time2000.js.map +1 -1
- package/dist/constants/deviceParameters.d.ts +29 -9
- package/dist/constants/deviceParameters.js +29 -9
- package/dist/constants/deviceParameters.js.map +1 -1
- package/dist/constants/hardwareTypes.d.ts +10 -0
- package/dist/constants/hardwareTypes.js +10 -0
- package/dist/constants/hardwareTypes.js.map +1 -1
- package/dist/utils/message.d.ts +1 -1
- package/dist/utils/message.js +22 -6
- package/dist/utils/message.js.map +1 -1
- package/package.json +1 -1
package/dist/BinaryBuffer.js
CHANGED
package/dist/BinaryBuffer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinaryBuffer.js","sourceRoot":"","sources":["../src/BinaryBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,4BAA4B,CAAC;AACzD,OAAO,eAAoC,MAAM,4BAA4B,CAAC;AAG9E,
|
|
1
|
+
{"version":3,"file":"BinaryBuffer.js","sourceRoot":"","sources":["../src/BinaryBuffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -115,9 +115,9 @@ export interface IEventMtxStatus {
|
|
|
115
115
|
}
|
|
116
116
|
/**
|
|
117
117
|
* Device send data periodically using this interval.
|
|
118
|
-
* deviceParameters.
|
|
118
|
+
* deviceParameters.REPORTING_DATA_INTERVAL = `1`.
|
|
119
119
|
*/
|
|
120
|
-
interface
|
|
120
|
+
interface IParameterReportingDataInterval {
|
|
121
121
|
/**
|
|
122
122
|
* Minimal interval for data sending from device (in seconds).
|
|
123
123
|
* Real value = value + pseudo-random value which is not more than `255` * `4`.
|
|
@@ -133,9 +133,9 @@ interface IParameterDayCheckoutHour {
|
|
|
133
133
|
}
|
|
134
134
|
/**
|
|
135
135
|
* Type of data from device.
|
|
136
|
-
* deviceParameters.
|
|
136
|
+
* deviceParameters.REPORTING_DATA_TYPE = `5`.
|
|
137
137
|
*/
|
|
138
|
-
interface
|
|
138
|
+
interface IParameterReportingDataType {
|
|
139
139
|
/**
|
|
140
140
|
* `0` - hour, by default
|
|
141
141
|
* `1` - day
|
|
@@ -147,7 +147,7 @@ interface IParameterOutputDataType {
|
|
|
147
147
|
/**
|
|
148
148
|
* Delivery type of priority data, with or without acknowledgment.
|
|
149
149
|
* Priority data - frames from uplink/NewEvent command.
|
|
150
|
-
* deviceParameters.
|
|
150
|
+
* deviceParameters.PRIORITY_DATA_DELIVERY_TYPE = `8`.
|
|
151
151
|
*/
|
|
152
152
|
interface IParameterDeliveryTypeOfPriorityData {
|
|
153
153
|
/**
|
|
@@ -169,6 +169,16 @@ interface IParameterActivationMethod {
|
|
|
169
169
|
*/
|
|
170
170
|
type: number;
|
|
171
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Channels config, only for universal 4-channels devices
|
|
174
|
+
* deviceParameters.CHANNELS_CONFIG = `13`.
|
|
175
|
+
*/
|
|
176
|
+
interface IParameterChannelsConfig {
|
|
177
|
+
/**
|
|
178
|
+
* value from 0 to 18, [values description](https://github.com/jooby-dev/jooby-docs/blob/main/docs/parameter-types.md#channels-config)
|
|
179
|
+
*/
|
|
180
|
+
value: number;
|
|
181
|
+
}
|
|
172
182
|
/**
|
|
173
183
|
* RX2 configuration.
|
|
174
184
|
* deviceParameters.RX2_CONFIG = `18`.
|
|
@@ -181,9 +191,6 @@ interface IParameterRx2Config {
|
|
|
181
191
|
* Making the spreading factor `1` step lower (from `SF10` to `SF9`) allows you to roughly send the same amount of data use half the time on air.
|
|
182
192
|
* Lowering the spreading factor makes it more difficult for the gateway to receive a transmission, as it will be more sensitive to noise.
|
|
183
193
|
*
|
|
184
|
-
* `0` - delivery with confirmation
|
|
185
|
-
* `1` - delivery without confirmation
|
|
186
|
-
*
|
|
187
194
|
* @see https://www.thethingsnetwork.org/docs/lorawan/spreading-factors/
|
|
188
195
|
*/
|
|
189
196
|
spreadFactor: number;
|
|
@@ -215,10 +222,10 @@ interface IParameterBatteryMinimalLoadTime {
|
|
|
215
222
|
value: number;
|
|
216
223
|
}
|
|
217
224
|
/**
|
|
218
|
-
*
|
|
219
|
-
* deviceParameters.
|
|
225
|
+
* Absolute data for pulse devices.
|
|
226
|
+
* deviceParameters.ABSOLUTE_DATA = `23`.
|
|
220
227
|
*/
|
|
221
|
-
interface
|
|
228
|
+
interface IParameterAbsoluteData {
|
|
222
229
|
/** 4 byte int BE */
|
|
223
230
|
value: number;
|
|
224
231
|
/** 4 byte int BE */
|
|
@@ -227,14 +234,14 @@ interface IParameterInitialData {
|
|
|
227
234
|
}
|
|
228
235
|
/**
|
|
229
236
|
* Data type sending from device - absolute or not.
|
|
230
|
-
* deviceParameters.
|
|
237
|
+
* deviceParameters.ABSOLUTE_DATA_ENABLE = `24`
|
|
231
238
|
*/
|
|
232
|
-
interface
|
|
239
|
+
interface IParameterAbsoluteDataEnable {
|
|
233
240
|
/**
|
|
234
|
-
* `1` - absolute data
|
|
235
|
-
* `0` - disabled, device send pulse counter
|
|
241
|
+
* `1` - absolute data enabled
|
|
242
|
+
* `0` - absolute data disabled, device send pulse counter
|
|
236
243
|
*/
|
|
237
|
-
|
|
244
|
+
state: number;
|
|
238
245
|
}
|
|
239
246
|
/**
|
|
240
247
|
* Device serial number.
|
|
@@ -253,38 +260,56 @@ interface IParameterSerialNumber {
|
|
|
253
260
|
interface IParameterGeolocation {
|
|
254
261
|
latitude: number;
|
|
255
262
|
longitude: number;
|
|
256
|
-
|
|
263
|
+
altitude: number;
|
|
257
264
|
}
|
|
258
265
|
/**
|
|
259
|
-
*
|
|
260
|
-
* deviceParameters.
|
|
266
|
+
* Absolute data for multi-channel devices.
|
|
267
|
+
* deviceParameters.ABSOLUTE_DATA_MULTI_CHANNEL = `29`.
|
|
261
268
|
*/
|
|
262
|
-
interface
|
|
263
|
-
/**
|
|
269
|
+
interface IParameterAbsoluteDataMC extends IParameterAbsoluteData {
|
|
270
|
+
/** set data for specific channel */
|
|
264
271
|
channel: number;
|
|
265
272
|
}
|
|
266
273
|
/**
|
|
267
274
|
* Data type sending from device - absolute or not, multi-channel devices.
|
|
268
275
|
* deviceParameters.ABSOLUTE_DATA_STATUS_MULTI_CHANNEL = `30`
|
|
269
276
|
*/
|
|
270
|
-
interface
|
|
277
|
+
interface IParameterAbsoluteDataEnableMC extends IParameterAbsoluteDataEnable {
|
|
271
278
|
/** channel that accept status changing */
|
|
272
279
|
channel: number;
|
|
273
280
|
}
|
|
281
|
+
/**
|
|
282
|
+
* Scan config for pulse devices.
|
|
283
|
+
* deviceParameters.PULSE_CHANNELS_SCAN_CONFIG = `31`
|
|
284
|
+
*/
|
|
285
|
+
interface IParameterPulseChannelsScanConfig {
|
|
286
|
+
pullUpTime: number;
|
|
287
|
+
scanTime: number;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Set channels for pulse devices.
|
|
291
|
+
* deviceParameters.PULSE_CHANNELS_SET_CONFIG = `32`
|
|
292
|
+
*/
|
|
293
|
+
interface IParameterPulseChannelsSetConfig {
|
|
294
|
+
channel1: boolean;
|
|
295
|
+
channel2: boolean;
|
|
296
|
+
channel3: boolean;
|
|
297
|
+
channel4: boolean;
|
|
298
|
+
}
|
|
274
299
|
export interface IParameter {
|
|
275
300
|
id: number;
|
|
276
301
|
data: TParameterData;
|
|
277
302
|
}
|
|
278
303
|
export type TEventStatus = IEventGasStatus | IEvent2ChannelStatus | IEventElimpStatus | IEvent4ChannelStatus | IEventMtxStatus;
|
|
279
|
-
type TParameterData =
|
|
304
|
+
type TParameterData = IParameterReportingDataInterval | IParameterReportingDataType | IParameterDayCheckoutHour | IParameterDeliveryTypeOfPriorityData | IParameterActivationMethod | IParameterBatteryDepassivationInfo | IParameterBatteryMinimalLoadTime | IParameterChannelsConfig | IParameterRx2Config | IParameterAbsoluteData | IParameterAbsoluteDataEnable | IParameterSerialNumber | IParameterGeolocation | IParameterAbsoluteDataMC | IParameterAbsoluteDataEnableMC | IParameterPulseChannelsScanConfig | IParameterPulseChannelsSetConfig;
|
|
280
305
|
/**
|
|
281
306
|
* Command specific byte array manipulation.
|
|
282
307
|
*/
|
|
283
308
|
declare class CommandBinaryBuffer extends BinaryBuffer {
|
|
284
309
|
/**
|
|
285
|
-
* Get
|
|
310
|
+
* Get the number of bytes necessary to store an extended value.
|
|
286
311
|
*
|
|
287
|
-
* @param bits -
|
|
312
|
+
* @param bits - the number of bits of original value
|
|
288
313
|
*
|
|
289
314
|
* @example
|
|
290
315
|
* ```js
|
|
@@ -351,26 +376,28 @@ declare class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
351
376
|
setEventStatus(hardwareType: number, status: TEventStatus): void;
|
|
352
377
|
getPulseCoefficient(): number;
|
|
353
378
|
setPulseCoefficient(value: number): void;
|
|
354
|
-
private
|
|
355
|
-
private
|
|
379
|
+
private getParameterAbsoluteData;
|
|
380
|
+
private setParameterAbsoluteData;
|
|
356
381
|
getChannelValue(): number;
|
|
357
382
|
setChannelValue(value: number): void;
|
|
358
|
-
private
|
|
359
|
-
private
|
|
360
|
-
private
|
|
361
|
-
private
|
|
362
|
-
private
|
|
363
|
-
private
|
|
383
|
+
private getParameterAbsoluteDataMC;
|
|
384
|
+
private setParameterAbsoluteDataMC;
|
|
385
|
+
private getParameterAbsoluteDataEnable;
|
|
386
|
+
private setParameterAbsoluteDataEnable;
|
|
387
|
+
private getParameterAbsoluteDataEnableMC;
|
|
388
|
+
private setParameterAbsoluteDataEnableMC;
|
|
364
389
|
private getParameterActivationMethod;
|
|
365
390
|
private setParameterActivationMethod;
|
|
366
|
-
private
|
|
367
|
-
private
|
|
391
|
+
private getParameterReportingDataType;
|
|
392
|
+
private setParameterReportingDataType;
|
|
368
393
|
private getParameterDayCheckoutHour;
|
|
369
394
|
private setParameterDayCheckoutHour;
|
|
370
|
-
private
|
|
371
|
-
private
|
|
395
|
+
private getParameterReportingDataInterval;
|
|
396
|
+
private setParameterReportingDataInterval;
|
|
372
397
|
private getParameterDeliveryTypeOfPriorityData;
|
|
373
398
|
private setParameterDeliveryTypeOfPriorityData;
|
|
399
|
+
private getParameterChannelsConfig;
|
|
400
|
+
private setParameterChannelsConfig;
|
|
374
401
|
private getParameterRx2Config;
|
|
375
402
|
private setParameterRx2Config;
|
|
376
403
|
private getParameterExtraFrameInterval;
|
|
@@ -383,6 +410,10 @@ declare class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
383
410
|
private setParameterSerialNumber;
|
|
384
411
|
private getParameterGeolocation;
|
|
385
412
|
private setParameterGeolocation;
|
|
413
|
+
private getParameterPulseChannelsScanConfig;
|
|
414
|
+
private setParameterPulseChannelsScanConfig;
|
|
415
|
+
private getParameterPulseChannelsEnableConfig;
|
|
416
|
+
private setParameterPulseChannelsEnableConfig;
|
|
386
417
|
getParameter(): IParameter;
|
|
387
418
|
setParameter(parameter: IParameter): void;
|
|
388
419
|
}
|
|
@@ -92,22 +92,31 @@ const mtxBitMask = {
|
|
|
92
92
|
*/
|
|
93
93
|
const parametersSizeMap = new Map([
|
|
94
94
|
/* size: 1 byte of parameter id + parameter data*/
|
|
95
|
-
[deviceParameters.
|
|
95
|
+
[deviceParameters.REPORTING_DATA_INTERVAL, 1 + 4],
|
|
96
96
|
[deviceParameters.DAY_CHECKOUT_HOUR, 1 + 1],
|
|
97
|
-
[deviceParameters.
|
|
98
|
-
[deviceParameters.
|
|
97
|
+
[deviceParameters.REPORTING_DATA_TYPE, 1 + 1],
|
|
98
|
+
[deviceParameters.PRIORITY_DATA_DELIVERY_TYPE, 1 + 1],
|
|
99
99
|
[deviceParameters.ACTIVATION_METHOD, 1 + 1],
|
|
100
100
|
[deviceParameters.BATTERY_DEPASSIVATION_INFO, 1 + 6],
|
|
101
101
|
[deviceParameters.BATTERY_MINIMAL_LOAD_TIME, 1 + 4],
|
|
102
|
+
[deviceParameters.CHANNELS_CONFIG, 1 + 1],
|
|
102
103
|
[deviceParameters.RX2_CONFIG, 1 + 4],
|
|
103
|
-
[deviceParameters.
|
|
104
|
+
[deviceParameters.ABSOLUTE_DATA, 1 + 9],
|
|
104
105
|
[deviceParameters.ABSOLUTE_DATA_ENABLE, 1 + 1],
|
|
105
106
|
[deviceParameters.SERIAL_NUMBER, 1 + 6],
|
|
106
107
|
[deviceParameters.GEOLOCATION, 1 + 10],
|
|
107
108
|
[deviceParameters.EXTRA_FRAME_INTERVAL, 1 + 2],
|
|
108
|
-
[deviceParameters.
|
|
109
|
-
[deviceParameters.ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL, 1 + 2]
|
|
109
|
+
[deviceParameters.ABSOLUTE_DATA_MULTI_CHANNEL, 1 + 10],
|
|
110
|
+
[deviceParameters.ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL, 1 + 2],
|
|
111
|
+
[deviceParameters.PULSE_CHANNELS_SCAN_CONFIG, 1 + 3],
|
|
112
|
+
[deviceParameters.PULSE_CHANNELS_SET_CONFIG, 1 + 1]
|
|
110
113
|
]);
|
|
114
|
+
const fourChannelsBitMask = {
|
|
115
|
+
channel1: 2 ** 0,
|
|
116
|
+
channel2: 2 ** 1,
|
|
117
|
+
channel3: 2 ** 2,
|
|
118
|
+
channel4: 2 ** 3
|
|
119
|
+
};
|
|
111
120
|
const byteToPulseCoefficientMap = new Map([
|
|
112
121
|
[0x80, 1],
|
|
113
122
|
[0x81, 5],
|
|
@@ -124,9 +133,9 @@ const isMSBSet = (value) => !!(value & 0x80);
|
|
|
124
133
|
*/
|
|
125
134
|
class CommandBinaryBuffer extends BinaryBuffer {
|
|
126
135
|
/**
|
|
127
|
-
* Get
|
|
136
|
+
* Get the number of bytes necessary to store an extended value.
|
|
128
137
|
*
|
|
129
|
-
* @param bits -
|
|
138
|
+
* @param bits - the number of bits of original value
|
|
130
139
|
*
|
|
131
140
|
* @example
|
|
132
141
|
* ```js
|
|
@@ -277,7 +286,7 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
277
286
|
setChannels(channelList) {
|
|
278
287
|
// sort channels by index
|
|
279
288
|
channelList.sort((a, b) => a.index - b.index);
|
|
280
|
-
// find max channel index from 0 to detect
|
|
289
|
+
// find max channel index from 0 to detect the number of bytes
|
|
281
290
|
const maxChannel = Math.max(...channelList.map(({ index }) => index));
|
|
282
291
|
const size = (maxChannel - (maxChannel % 8)) / 8;
|
|
283
292
|
const data = new Array(size + 1).fill(0);
|
|
@@ -524,14 +533,14 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
524
533
|
this.setUint8(value);
|
|
525
534
|
}
|
|
526
535
|
}
|
|
527
|
-
|
|
536
|
+
getParameterAbsoluteData() {
|
|
528
537
|
return {
|
|
529
538
|
meterValue: this.getUint32(false),
|
|
530
539
|
pulseCoefficient: this.getPulseCoefficient(),
|
|
531
540
|
value: this.getUint32(false)
|
|
532
541
|
};
|
|
533
542
|
}
|
|
534
|
-
|
|
543
|
+
setParameterAbsoluteData(parameter) {
|
|
535
544
|
this.setUint32(parameter.meterValue, false);
|
|
536
545
|
this.setPulseCoefficient(parameter.pulseCoefficient);
|
|
537
546
|
this.setUint32(parameter.value, false);
|
|
@@ -545,7 +554,7 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
545
554
|
}
|
|
546
555
|
this.setUint8(value - 1);
|
|
547
556
|
}
|
|
548
|
-
|
|
557
|
+
getParameterAbsoluteDataMC() {
|
|
549
558
|
return {
|
|
550
559
|
channel: this.getChannelValue(),
|
|
551
560
|
meterValue: this.getUint32(false),
|
|
@@ -553,27 +562,27 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
553
562
|
value: this.getUint32(false)
|
|
554
563
|
};
|
|
555
564
|
}
|
|
556
|
-
|
|
565
|
+
setParameterAbsoluteDataMC(parameter) {
|
|
557
566
|
this.setChannelValue(parameter.channel);
|
|
558
567
|
this.setUint32(parameter.meterValue, false);
|
|
559
568
|
this.setPulseCoefficient(parameter.pulseCoefficient);
|
|
560
569
|
this.setUint32(parameter.value, false);
|
|
561
570
|
}
|
|
562
|
-
|
|
563
|
-
return {
|
|
571
|
+
getParameterAbsoluteDataEnable() {
|
|
572
|
+
return { state: this.getUint8() };
|
|
564
573
|
}
|
|
565
|
-
|
|
566
|
-
this.setUint8(parameter.
|
|
574
|
+
setParameterAbsoluteDataEnable(parameter) {
|
|
575
|
+
this.setUint8(parameter.state);
|
|
567
576
|
}
|
|
568
|
-
|
|
577
|
+
getParameterAbsoluteDataEnableMC() {
|
|
569
578
|
return {
|
|
570
579
|
channel: this.getChannelValue(),
|
|
571
|
-
|
|
580
|
+
state: this.getUint8()
|
|
572
581
|
};
|
|
573
582
|
}
|
|
574
|
-
|
|
583
|
+
setParameterAbsoluteDataEnableMC(parameter) {
|
|
575
584
|
this.setChannelValue(parameter.channel);
|
|
576
|
-
this.setUint8(parameter.
|
|
585
|
+
this.setUint8(parameter.state);
|
|
577
586
|
}
|
|
578
587
|
getParameterActivationMethod() {
|
|
579
588
|
return {
|
|
@@ -583,12 +592,12 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
583
592
|
setParameterActivationMethod(parameter) {
|
|
584
593
|
this.setUint8(parameter.type);
|
|
585
594
|
}
|
|
586
|
-
|
|
595
|
+
getParameterReportingDataType() {
|
|
587
596
|
return {
|
|
588
597
|
type: this.getUint8()
|
|
589
598
|
};
|
|
590
599
|
}
|
|
591
|
-
|
|
600
|
+
setParameterReportingDataType(parameter) {
|
|
592
601
|
this.setUint8(parameter.type);
|
|
593
602
|
}
|
|
594
603
|
getParameterDayCheckoutHour() {
|
|
@@ -599,13 +608,13 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
599
608
|
setParameterDayCheckoutHour(parameter) {
|
|
600
609
|
this.setUint8(parameter.value);
|
|
601
610
|
}
|
|
602
|
-
|
|
611
|
+
getParameterReportingDataInterval() {
|
|
603
612
|
this.seek(this.offset + DATA_SENDING_INTERVAL_RESERVED_BYTES);
|
|
604
613
|
return {
|
|
605
614
|
value: this.getUint8() * DATA_SENDING_INTERVAL_SECONDS_COEFFICIENT
|
|
606
615
|
};
|
|
607
616
|
}
|
|
608
|
-
|
|
617
|
+
setParameterReportingDataInterval(parameter) {
|
|
609
618
|
this.seek(this.offset + DATA_SENDING_INTERVAL_RESERVED_BYTES);
|
|
610
619
|
this.setUint8(parameter.value / DATA_SENDING_INTERVAL_SECONDS_COEFFICIENT);
|
|
611
620
|
}
|
|
@@ -615,6 +624,15 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
615
624
|
setParameterDeliveryTypeOfPriorityData(parameter) {
|
|
616
625
|
this.setUint8(parameter.value);
|
|
617
626
|
}
|
|
627
|
+
getParameterChannelsConfig() {
|
|
628
|
+
return { value: this.getUint8() };
|
|
629
|
+
}
|
|
630
|
+
setParameterChannelsConfig(parameter) {
|
|
631
|
+
if (parameter.value < 0 || parameter.value > 18) {
|
|
632
|
+
throw new Error('channels config must be between 0-18');
|
|
633
|
+
}
|
|
634
|
+
this.setUint8(parameter.value);
|
|
635
|
+
}
|
|
618
636
|
getParameterRx2Config() {
|
|
619
637
|
return {
|
|
620
638
|
spreadFactor: this.getUint8(),
|
|
@@ -665,28 +683,62 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
665
683
|
return {
|
|
666
684
|
latitude: roundNumber(this.getFloat32()),
|
|
667
685
|
longitude: roundNumber(this.getFloat32()),
|
|
668
|
-
|
|
686
|
+
altitude: roundNumber(this.getUint16())
|
|
669
687
|
};
|
|
670
688
|
}
|
|
671
689
|
setParameterGeolocation(parameter) {
|
|
672
690
|
this.setFloat32(roundNumber(parameter.latitude));
|
|
673
691
|
this.setFloat32(roundNumber(parameter.longitude));
|
|
674
|
-
this.setUint16(roundNumber(parameter.
|
|
692
|
+
this.setUint16(roundNumber(parameter.altitude));
|
|
693
|
+
}
|
|
694
|
+
getParameterPulseChannelsScanConfig() {
|
|
695
|
+
return {
|
|
696
|
+
pullUpTime: this.getUint8(),
|
|
697
|
+
scanTime: this.getUint8()
|
|
698
|
+
};
|
|
699
|
+
}
|
|
700
|
+
setParameterPulseChannelsScanConfig(parameter) {
|
|
701
|
+
if (parameter.pullUpTime < 17) {
|
|
702
|
+
throw new Error('minimal value for pullUpTime - 17');
|
|
703
|
+
}
|
|
704
|
+
if (parameter.scanTime < 15) {
|
|
705
|
+
throw new Error('minimal value for scanTime - 15');
|
|
706
|
+
}
|
|
707
|
+
this.setUint8(parameter.pullUpTime);
|
|
708
|
+
this.setUint8(parameter.scanTime);
|
|
709
|
+
}
|
|
710
|
+
getParameterPulseChannelsEnableConfig() {
|
|
711
|
+
const object = bitSet.toObject(fourChannelsBitMask, this.getUint8());
|
|
712
|
+
return {
|
|
713
|
+
channel1: object.channel1,
|
|
714
|
+
channel2: object.channel2,
|
|
715
|
+
channel3: object.channel3,
|
|
716
|
+
channel4: object.channel4
|
|
717
|
+
};
|
|
718
|
+
}
|
|
719
|
+
setParameterPulseChannelsEnableConfig(parameter) {
|
|
720
|
+
const { channel1, channel2, channel3, channel4 } = parameter;
|
|
721
|
+
this.setUint8(bitSet.fromObject(fourChannelsBitMask, {
|
|
722
|
+
channel1,
|
|
723
|
+
channel2,
|
|
724
|
+
channel3,
|
|
725
|
+
channel4
|
|
726
|
+
}));
|
|
675
727
|
}
|
|
676
728
|
getParameter() {
|
|
677
729
|
const id = this.getUint8();
|
|
678
730
|
let data;
|
|
679
731
|
switch (id) {
|
|
680
|
-
case deviceParameters.
|
|
681
|
-
data = this.
|
|
732
|
+
case deviceParameters.REPORTING_DATA_INTERVAL:
|
|
733
|
+
data = this.getParameterReportingDataInterval();
|
|
682
734
|
break;
|
|
683
|
-
case deviceParameters.
|
|
684
|
-
data = this.
|
|
735
|
+
case deviceParameters.REPORTING_DATA_TYPE:
|
|
736
|
+
data = this.getParameterReportingDataType();
|
|
685
737
|
break;
|
|
686
738
|
case deviceParameters.DAY_CHECKOUT_HOUR:
|
|
687
739
|
data = this.getParameterDayCheckoutHour();
|
|
688
740
|
break;
|
|
689
|
-
case deviceParameters.
|
|
741
|
+
case deviceParameters.PRIORITY_DATA_DELIVERY_TYPE:
|
|
690
742
|
data = this.getParameterDeliveryTypeOfPriorityData();
|
|
691
743
|
break;
|
|
692
744
|
case deviceParameters.ACTIVATION_METHOD:
|
|
@@ -698,14 +750,17 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
698
750
|
case deviceParameters.BATTERY_MINIMAL_LOAD_TIME:
|
|
699
751
|
data = this.getParameterBatteryMinimalLoadTime();
|
|
700
752
|
break;
|
|
753
|
+
case deviceParameters.CHANNELS_CONFIG:
|
|
754
|
+
data = this.getParameterChannelsConfig();
|
|
755
|
+
break;
|
|
701
756
|
case deviceParameters.RX2_CONFIG:
|
|
702
757
|
data = this.getParameterRx2Config();
|
|
703
758
|
break;
|
|
704
|
-
case deviceParameters.
|
|
705
|
-
data = this.
|
|
759
|
+
case deviceParameters.ABSOLUTE_DATA:
|
|
760
|
+
data = this.getParameterAbsoluteData();
|
|
706
761
|
break;
|
|
707
762
|
case deviceParameters.ABSOLUTE_DATA_ENABLE:
|
|
708
|
-
data = this.
|
|
763
|
+
data = this.getParameterAbsoluteDataEnable();
|
|
709
764
|
break;
|
|
710
765
|
case deviceParameters.SERIAL_NUMBER:
|
|
711
766
|
data = this.getParameterSerialNumber();
|
|
@@ -716,11 +771,17 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
716
771
|
case deviceParameters.EXTRA_FRAME_INTERVAL:
|
|
717
772
|
data = this.getParameterExtraFrameInterval();
|
|
718
773
|
break;
|
|
719
|
-
case deviceParameters.
|
|
720
|
-
data = this.
|
|
774
|
+
case deviceParameters.ABSOLUTE_DATA_MULTI_CHANNEL:
|
|
775
|
+
data = this.getParameterAbsoluteDataMC();
|
|
721
776
|
break;
|
|
722
777
|
case deviceParameters.ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL:
|
|
723
|
-
data = this.
|
|
778
|
+
data = this.getParameterAbsoluteDataEnableMC();
|
|
779
|
+
break;
|
|
780
|
+
case deviceParameters.PULSE_CHANNELS_SCAN_CONFIG:
|
|
781
|
+
data = this.getParameterPulseChannelsScanConfig();
|
|
782
|
+
break;
|
|
783
|
+
case deviceParameters.PULSE_CHANNELS_SET_CONFIG:
|
|
784
|
+
data = this.getParameterPulseChannelsEnableConfig();
|
|
724
785
|
break;
|
|
725
786
|
default:
|
|
726
787
|
throw new Error(`parameter ${id} is not supported`);
|
|
@@ -731,16 +792,16 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
731
792
|
const { id, data } = parameter;
|
|
732
793
|
this.setUint8(id);
|
|
733
794
|
switch (id) {
|
|
734
|
-
case deviceParameters.
|
|
735
|
-
this.
|
|
795
|
+
case deviceParameters.REPORTING_DATA_INTERVAL:
|
|
796
|
+
this.setParameterReportingDataInterval(data);
|
|
736
797
|
break;
|
|
737
|
-
case deviceParameters.
|
|
738
|
-
this.
|
|
798
|
+
case deviceParameters.REPORTING_DATA_TYPE:
|
|
799
|
+
this.setParameterReportingDataType(data);
|
|
739
800
|
break;
|
|
740
801
|
case deviceParameters.DAY_CHECKOUT_HOUR:
|
|
741
802
|
this.setParameterDayCheckoutHour(data);
|
|
742
803
|
break;
|
|
743
|
-
case deviceParameters.
|
|
804
|
+
case deviceParameters.PRIORITY_DATA_DELIVERY_TYPE:
|
|
744
805
|
this.setParameterDeliveryTypeOfPriorityData(data);
|
|
745
806
|
break;
|
|
746
807
|
case deviceParameters.ACTIVATION_METHOD:
|
|
@@ -752,14 +813,17 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
752
813
|
case deviceParameters.BATTERY_MINIMAL_LOAD_TIME:
|
|
753
814
|
this.setParameterBatteryMinimalLoadTime(data);
|
|
754
815
|
break;
|
|
816
|
+
case deviceParameters.CHANNELS_CONFIG:
|
|
817
|
+
this.setParameterChannelsConfig(data);
|
|
818
|
+
break;
|
|
755
819
|
case deviceParameters.RX2_CONFIG:
|
|
756
820
|
this.setParameterRx2Config(data);
|
|
757
821
|
break;
|
|
758
|
-
case deviceParameters.
|
|
759
|
-
this.
|
|
822
|
+
case deviceParameters.ABSOLUTE_DATA:
|
|
823
|
+
this.setParameterAbsoluteData(data);
|
|
760
824
|
break;
|
|
761
825
|
case deviceParameters.ABSOLUTE_DATA_ENABLE:
|
|
762
|
-
this.
|
|
826
|
+
this.setParameterAbsoluteDataEnable(data);
|
|
763
827
|
break;
|
|
764
828
|
case deviceParameters.SERIAL_NUMBER:
|
|
765
829
|
this.setParameterSerialNumber(data);
|
|
@@ -770,11 +834,17 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
770
834
|
case deviceParameters.EXTRA_FRAME_INTERVAL:
|
|
771
835
|
this.setParameterExtraFrameInterval(data);
|
|
772
836
|
break;
|
|
773
|
-
case deviceParameters.
|
|
774
|
-
this.
|
|
837
|
+
case deviceParameters.ABSOLUTE_DATA_MULTI_CHANNEL:
|
|
838
|
+
this.setParameterAbsoluteDataMC(data);
|
|
775
839
|
break;
|
|
776
840
|
case deviceParameters.ABSOLUTE_DATA_ENABLE_MULTI_CHANNEL:
|
|
777
|
-
this.
|
|
841
|
+
this.setParameterAbsoluteDataEnableMC(data);
|
|
842
|
+
break;
|
|
843
|
+
case deviceParameters.PULSE_CHANNELS_SCAN_CONFIG:
|
|
844
|
+
this.setParameterPulseChannelsScanConfig(data);
|
|
845
|
+
break;
|
|
846
|
+
case deviceParameters.PULSE_CHANNELS_SET_CONFIG:
|
|
847
|
+
this.setParameterPulseChannelsEnableConfig(data);
|
|
778
848
|
break;
|
|
779
849
|
default:
|
|
780
850
|
throw new Error(`parameter ${id} is not supported`);
|