jooby-codec 1.6.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Command.d.ts +1 -0
- package/dist/Command.js +3 -2
- package/dist/Command.js.map +1 -1
- package/dist/CommandBinaryBuffer.d.ts +190 -32
- package/dist/CommandBinaryBuffer.js +301 -2
- package/dist/CommandBinaryBuffer.js.map +1 -1
- package/dist/commands/downlink/CorrectTime2000.d.ts +1 -6
- package/dist/commands/downlink/CorrectTime2000.js +2 -8
- package/dist/commands/downlink/CorrectTime2000.js.map +1 -1
- package/dist/commands/downlink/ExAbsArchiveDaysMC.d.ts +5 -10
- package/dist/commands/downlink/ExAbsArchiveDaysMC.js +3 -9
- package/dist/commands/downlink/ExAbsArchiveDaysMC.js.map +1 -1
- package/dist/commands/downlink/ExAbsArchiveHoursMC.d.ts +5 -10
- package/dist/commands/downlink/ExAbsArchiveHoursMC.js +3 -9
- package/dist/commands/downlink/ExAbsArchiveHoursMC.js.map +1 -1
- package/dist/commands/downlink/ExAbsCurrentMC.d.ts +1 -6
- package/dist/commands/downlink/ExAbsCurrentMC.js +3 -8
- package/dist/commands/downlink/ExAbsCurrentMC.js.map +1 -1
- package/dist/commands/downlink/GetArchiveDaysMC.d.ts +5 -5
- package/dist/commands/downlink/GetArchiveDaysMC.js +3 -4
- package/dist/commands/downlink/GetArchiveDaysMC.js.map +1 -1
- package/dist/commands/downlink/GetArchiveEvents.d.ts +39 -0
- package/dist/commands/downlink/GetArchiveEvents.js +58 -0
- package/dist/commands/downlink/GetArchiveEvents.js.map +1 -0
- package/dist/commands/downlink/GetArchiveHoursMC.d.ts +5 -10
- package/dist/commands/downlink/GetArchiveHoursMC.js +3 -9
- package/dist/commands/downlink/GetArchiveHoursMC.js.map +1 -1
- package/dist/commands/downlink/GetCurrentMC.d.ts +1 -1
- package/dist/commands/downlink/GetCurrentMC.js +3 -3
- package/dist/commands/downlink/GetCurrentMC.js.map +1 -1
- package/dist/commands/downlink/GetLmicVersion.d.ts +25 -0
- package/dist/commands/downlink/GetLmicVersion.js +41 -0
- package/dist/commands/downlink/GetLmicVersion.js.map +1 -0
- package/dist/commands/downlink/GetParameter.d.ts +37 -0
- package/dist/commands/downlink/GetParameter.js +64 -0
- package/dist/commands/downlink/GetParameter.js.map +1 -0
- package/dist/commands/downlink/GetStatus.d.ts +26 -0
- package/dist/commands/downlink/GetStatus.js +45 -0
- package/dist/commands/downlink/GetStatus.js.map +1 -0
- package/dist/commands/downlink/SetParameter.d.ts +6 -56
- package/dist/commands/downlink/SetParameter.js +45 -105
- package/dist/commands/downlink/SetParameter.js.map +1 -1
- package/dist/commands/downlink/SetTime2000.d.ts +1 -6
- package/dist/commands/downlink/SetTime2000.js +2 -8
- package/dist/commands/downlink/SetTime2000.js.map +1 -1
- package/dist/commands/downlink/SoftRestart.d.ts +1 -1
- package/dist/commands/downlink/SoftRestart.js +3 -3
- package/dist/commands/downlink/SoftRestart.js.map +1 -1
- package/dist/commands/downlink/index.d.ts +4 -1
- package/dist/commands/downlink/index.js +4 -1
- package/dist/commands/downlink/index.js.map +1 -1
- package/dist/commands/uplink/CorrectTime2000.d.ts +1 -1
- package/dist/commands/uplink/CorrectTime2000.js +3 -3
- package/dist/commands/uplink/CorrectTime2000.js.map +1 -1
- package/dist/commands/uplink/DataDayMC.d.ts +3 -5
- package/dist/commands/uplink/DataDayMC.js +4 -3
- package/dist/commands/uplink/DataDayMC.js.map +1 -1
- package/dist/commands/uplink/DataHourMC.d.ts +3 -2
- package/dist/commands/uplink/DataHourMC.js +4 -3
- package/dist/commands/uplink/DataHourMC.js.map +1 -1
- package/dist/commands/uplink/ExAbsArchiveDaysMC.d.ts +3 -2
- package/dist/commands/uplink/ExAbsArchiveDaysMC.js +4 -3
- package/dist/commands/uplink/ExAbsArchiveDaysMC.js.map +1 -1
- package/dist/commands/uplink/ExAbsArchiveHoursMC.d.ts +3 -2
- package/dist/commands/uplink/ExAbsArchiveHoursMC.js +4 -3
- package/dist/commands/uplink/ExAbsArchiveHoursMC.js.map +1 -1
- package/dist/commands/uplink/ExAbsCurrentMC.d.ts +1 -1
- package/dist/commands/uplink/ExAbsCurrentMC.js +4 -3
- package/dist/commands/uplink/ExAbsCurrentMC.js.map +1 -1
- package/dist/commands/uplink/ExAbsDayMC.d.ts +3 -2
- package/dist/commands/uplink/ExAbsDayMC.js +4 -3
- package/dist/commands/uplink/ExAbsDayMC.js.map +1 -1
- package/dist/commands/uplink/ExAbsHourMC.d.ts +3 -2
- package/dist/commands/uplink/ExAbsHourMC.js +4 -3
- package/dist/commands/uplink/ExAbsHourMC.js.map +1 -1
- package/dist/commands/uplink/GetArchiveDaysMC.d.ts +3 -2
- package/dist/commands/uplink/GetArchiveDaysMC.js +4 -3
- package/dist/commands/uplink/GetArchiveDaysMC.js.map +1 -1
- package/dist/commands/uplink/GetArchiveEvents.d.ts +48 -0
- package/dist/commands/uplink/GetArchiveEvents.js +105 -0
- package/dist/commands/uplink/GetArchiveEvents.js.map +1 -0
- package/dist/commands/uplink/GetArchiveHoursMC.d.ts +3 -2
- package/dist/commands/uplink/GetArchiveHoursMC.js +4 -3
- package/dist/commands/uplink/GetArchiveHoursMC.js.map +1 -1
- package/dist/commands/uplink/GetCurrentMC.d.ts +1 -1
- package/dist/commands/uplink/GetCurrentMC.js +4 -3
- package/dist/commands/uplink/GetCurrentMC.js.map +1 -1
- package/dist/commands/uplink/GetLmicVersion.d.ts +46 -0
- package/dist/commands/uplink/GetLmicVersion.js +90 -0
- package/dist/commands/uplink/GetLmicVersion.js.map +1 -0
- package/dist/commands/uplink/GetParameter.d.ts +30 -0
- package/dist/commands/uplink/GetParameter.js +91 -0
- package/dist/commands/uplink/GetParameter.js.map +1 -0
- package/dist/commands/uplink/GetStatus.d.ts +57 -0
- package/dist/commands/uplink/{NewStatus.js → GetStatus.js} +56 -37
- package/dist/commands/uplink/GetStatus.js.map +1 -0
- package/dist/commands/uplink/LastEvent.d.ts +5 -76
- package/dist/commands/uplink/LastEvent.js +67 -115
- package/dist/commands/uplink/LastEvent.js.map +1 -1
- package/dist/commands/uplink/NewEvent.d.ts +35 -7
- package/dist/commands/uplink/NewEvent.js +96 -20
- package/dist/commands/uplink/NewEvent.js.map +1 -1
- package/dist/commands/uplink/SetTime2000.d.ts +1 -1
- package/dist/commands/uplink/SetTime2000.js +3 -3
- package/dist/commands/uplink/SetTime2000.js.map +1 -1
- package/dist/commands/uplink/SoftRestart.d.ts +1 -1
- package/dist/commands/uplink/SoftRestart.js +3 -3
- package/dist/commands/uplink/SoftRestart.js.map +1 -1
- package/dist/commands/uplink/Time2000.d.ts +5 -5
- package/dist/commands/uplink/Time2000.js +6 -7
- package/dist/commands/uplink/Time2000.js.map +1 -1
- package/dist/commands/uplink/index.d.ts +5 -2
- package/dist/commands/uplink/index.js +5 -2
- package/dist/commands/uplink/index.js.map +1 -1
- package/dist/constants/deviceParameters.d.ts +12 -12
- package/dist/constants/deviceParameters.js +12 -12
- package/dist/constants/deviceParameters.js.map +1 -1
- package/dist/constants/{directionTypes.js → directions.js} +1 -1
- package/dist/constants/directions.js.map +1 -0
- package/dist/constants/events.d.ts +30 -4
- package/dist/constants/events.js +30 -4
- package/dist/constants/events.js.map +1 -1
- package/dist/constants/hardwareTypes.d.ts +2 -2
- package/dist/constants/hardwareTypes.js +2 -2
- package/dist/constants/index.d.ts +1 -1
- package/dist/constants/index.js +1 -1
- package/dist/constants/index.js.map +1 -1
- package/dist/utils/message.js +2 -2
- package/dist/utils/message.js.map +1 -1
- package/dist/utils/time.d.ts +20 -3
- package/dist/utils/time.js +2 -2
- package/dist/utils/time.js.map +1 -1
- package/package.json +2 -1
- package/readme.md +33 -16
- package/dist/commands/downlink/NewStatus.d.ts +0 -25
- package/dist/commands/downlink/NewStatus.js +0 -37
- package/dist/commands/downlink/NewStatus.js.map +0 -1
- package/dist/commands/uplink/NewStatus.d.ts +0 -56
- package/dist/commands/uplink/NewStatus.js.map +0 -1
- package/dist/constants/directionTypes.js.map +0 -1
- package/dist/constants/general.d.ts +0 -1
- package/dist/constants/general.js +0 -2
- package/dist/constants/general.js.map +0 -1
- package/dist/utils/getBitArrayFromNumber.d.ts +0 -14
- package/dist/utils/getBitArrayFromNumber.js +0 -15
- package/dist/utils/getBitArrayFromNumber.js.map +0 -1
- package/dist/utils/getIntFromBitString.d.ts +0 -6
- package/dist/utils/getIntFromBitString.js +0 -6
- package/dist/utils/getIntFromBitString.js.map +0 -1
- /package/dist/constants/{directionTypes.d.ts → directions.d.ts} +0 -0
package/dist/Command.d.ts
CHANGED
package/dist/Command.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as header from './utils/header.js';
|
|
2
2
|
import getHexFromBytes from './utils/getHexFromBytes.js';
|
|
3
|
-
import { UPLINK } from './constants/
|
|
3
|
+
import { UPLINK } from './constants/directions.js';
|
|
4
4
|
/**
|
|
5
5
|
* private
|
|
6
6
|
*/
|
|
@@ -12,7 +12,7 @@ class Command {
|
|
|
12
12
|
/** Get command ID and title. */
|
|
13
13
|
static getName() {
|
|
14
14
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
15
|
-
return `${this.directionType === UPLINK ? 'uplink' : 'downlink'} command ${this.getId()}:${this.
|
|
15
|
+
return `${this.directionType === UPLINK ? 'uplink' : 'downlink'} command ${this.getId()}:${this.name}`;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Parse body without header.
|
|
@@ -84,5 +84,6 @@ class Command {
|
|
|
84
84
|
return JSON.stringify(this.getParameters());
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
+
Command.hasParameters = false;
|
|
87
88
|
export default Command;
|
|
88
89
|
//# sourceMappingURL=Command.js.map
|
package/dist/Command.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Command.js","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,eAAoC,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAC,MAAM,EAAC,MAAM
|
|
1
|
+
{"version":3,"file":"Command.js","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,eAAoC,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAiBjD;;GAEG;AACH,MAAe,OAAO;IAelB,oCAAoC;IACpC,MAAM,CAAC,KAAK;QACR,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACxD,CAAC;IAED,gCAAgC;IAChC,MAAM,CAAC,OAAO;QACV,uEAAuE;QACvE,OAAO,GAAG,IAAI,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,YAAY,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3G,CAAC;IAED;;;;;;OAMG;IACH,mDAAmD;IACnD,2CAA2C;IAC3C,IAAI;IAEJ,6CAA6C;IAC7C,oDAAoD;IACpD,IAAI;IAEJ,kEAAkE;IAClE,iDAAiD;IAEjD,4EAA4E;IAC5E,2BAA2B;IAC3B,2IAA2I;IAC3I,aAAa;IACb,QAAQ;IAER,0DAA0D;IAE1D,wBAAwB;IACxB,2BAA2B;IAC3B,sEAAsE;IACtE,aAAa;IACb,QAAQ;IAER,oEAAoE;IACpE,gCAAgC;IAChC,4FAA4F;IAC5F,SAAS;IACT,IAAI;IAEJ;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAG,EAAU,EAAE,WAAwB;QACjD,MAAM,aAAa,GAAG,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAErD,IAAK,WAAW,IAAI,aAAa,EAAG;YAChC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;YAErE,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAE/C,OAAO,UAAU,CAAC;SACrB;QAED,8BAA8B;QAC9B,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,8BAA8B;IAC9B,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,kDAAkD;IAClD,OAAO;QACH,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAG,UAA6B,EAAE;QACnC,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,MAAM;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAChD,CAAC;;AApGM,qBAAa,GAAG,KAAK,CAAC;AAwGjC,eAAe,OAAO,CAAC"}
|
|
@@ -1,67 +1,203 @@
|
|
|
1
1
|
import BinaryBuffer from './BinaryBuffer.js';
|
|
2
|
+
import { TTime2000 } from './utils/time.js';
|
|
2
3
|
export interface IBatteryVoltage {
|
|
3
4
|
/**
|
|
4
|
-
* battery voltage value at low consumption, in mV
|
|
5
|
+
* battery voltage value at low consumption, in mV
|
|
5
6
|
*
|
|
6
|
-
* 4095
|
|
7
|
+
* `4095` - unknown value and becomes `undefined`
|
|
7
8
|
*/
|
|
8
9
|
low: number | undefined;
|
|
9
10
|
/**
|
|
10
|
-
* battery voltage value at hight consumption, in mV
|
|
11
|
+
* battery voltage value at hight consumption, in mV
|
|
11
12
|
*
|
|
12
|
-
* 4095
|
|
13
|
+
* `4095` - unknown value and becomes `undefined`
|
|
13
14
|
*/
|
|
14
15
|
high: number | undefined;
|
|
15
16
|
}
|
|
16
17
|
export interface IChannel {
|
|
17
|
-
/**
|
|
18
|
-
* Channel number.
|
|
19
|
-
*/
|
|
18
|
+
/** channel number */
|
|
20
19
|
index: number;
|
|
21
20
|
}
|
|
22
21
|
export interface IChannelValue extends IChannel {
|
|
23
|
-
/**
|
|
24
|
-
* Pulse counter or absolute value of device channel.
|
|
25
|
-
*/
|
|
22
|
+
/** pulse counter or absolute value of device channel */
|
|
26
23
|
value: number;
|
|
27
24
|
}
|
|
28
25
|
export interface IChannelHours extends IChannelValue {
|
|
29
|
-
/**
|
|
30
|
-
* values differences between hours
|
|
31
|
-
*/
|
|
26
|
+
/** values differences between hours */
|
|
32
27
|
diff: Array<number>;
|
|
33
28
|
}
|
|
34
29
|
export interface IChannelHourAbsoluteValue extends IChannelHours {
|
|
35
|
-
/**
|
|
36
|
-
* Channel pulse coefficient - IPK in bytes.
|
|
37
|
-
*/
|
|
30
|
+
/** channel pulse coefficient - IPK in bytes */
|
|
38
31
|
pulseCoefficient: number;
|
|
39
32
|
}
|
|
40
33
|
export interface IChannelDays extends IChannel {
|
|
41
34
|
dayList: Array<number>;
|
|
42
35
|
}
|
|
43
36
|
export interface IChannelAbsoluteValue extends IChannelValue {
|
|
44
|
-
/**
|
|
45
|
-
* Channel pulse coefficient - IPK in bytes.
|
|
46
|
-
*/
|
|
37
|
+
/** channel pulse coefficient - IPK in bytes */
|
|
47
38
|
pulseCoefficient: number;
|
|
48
39
|
}
|
|
49
40
|
export interface IChannelArchiveDaysAbsolute extends IChannel {
|
|
41
|
+
/** values by days */
|
|
42
|
+
dayList: Array<number>;
|
|
43
|
+
/** Channel pulse coefficient - IPK in bytes */
|
|
44
|
+
pulseCoefficient: number;
|
|
45
|
+
}
|
|
46
|
+
export interface IChannelArchiveDays extends IChannel {
|
|
47
|
+
/** values by days */
|
|
48
|
+
dayList: Array<number>;
|
|
49
|
+
}
|
|
50
|
+
export interface IEventGasStatus {
|
|
51
|
+
/** the battery voltage has dropped below the set threshold */
|
|
52
|
+
isBatteryLow?: boolean;
|
|
53
|
+
/** there is a magnetic field influence */
|
|
54
|
+
isMagneticInfluence?: boolean;
|
|
55
|
+
/** button is release (device is unmounted) */
|
|
56
|
+
isButtonReleased?: boolean;
|
|
57
|
+
/** the device has detected a loss of connection to the server */
|
|
58
|
+
isConnectionLost?: boolean;
|
|
59
|
+
}
|
|
60
|
+
export interface IEvent2ChannelStatus {
|
|
61
|
+
/** the battery voltage has dropped below the set threshold */
|
|
62
|
+
isBatteryLow?: boolean;
|
|
63
|
+
/** the device has detected a loss of connection to the server */
|
|
64
|
+
isConnectionLost?: boolean;
|
|
65
|
+
/** the first channel is not active */
|
|
66
|
+
isFirstChannelInactive?: boolean;
|
|
67
|
+
/** the second channel is not active */
|
|
68
|
+
isSecondChannelInactive?: boolean;
|
|
69
|
+
}
|
|
70
|
+
export interface IEventElimpStatus {
|
|
71
|
+
/** the device has detected a loss of connection to the server */
|
|
72
|
+
isConnectionLost?: boolean;
|
|
73
|
+
}
|
|
74
|
+
export interface IEventWaterStatus {
|
|
75
|
+
/** the battery voltage has dropped below the set threshold */
|
|
76
|
+
isBatteryLow?: boolean;
|
|
77
|
+
/** the device has detected a loss of connection to the server */
|
|
78
|
+
isConnectionLost?: boolean;
|
|
79
|
+
}
|
|
80
|
+
export interface IEvent4ChannelStatus {
|
|
81
|
+
/** the battery voltage has dropped below the set threshold */
|
|
82
|
+
isBatteryLow?: boolean;
|
|
83
|
+
/** the device has detected a loss of connection to the server */
|
|
84
|
+
isConnectionLost?: boolean;
|
|
85
|
+
/** the first channel is not active */
|
|
86
|
+
isFirstChannelInactive?: boolean;
|
|
87
|
+
/** the second channel is not active */
|
|
88
|
+
isSecondChannelInactive?: boolean;
|
|
89
|
+
/** the third channel is not active */
|
|
90
|
+
isThirdChannelInactive?: boolean;
|
|
91
|
+
/** the forth channel is not active */
|
|
92
|
+
isForthChannelInactive?: boolean;
|
|
93
|
+
}
|
|
94
|
+
export interface IEventMtxStatus {
|
|
95
|
+
/** meter case is open */
|
|
96
|
+
isMeterCaseOpen?: boolean;
|
|
97
|
+
/** there is a magnetic field influence */
|
|
98
|
+
isMagneticInfluence?: boolean;
|
|
99
|
+
/** parameters set remotely */
|
|
100
|
+
isParametersSetRemotely?: boolean;
|
|
101
|
+
/** parameters set locally */
|
|
102
|
+
isParametersSetLocally?: boolean;
|
|
103
|
+
/** meter program restart */
|
|
104
|
+
isMeterProgramRestarted?: boolean;
|
|
105
|
+
/** incorrect password and lockout */
|
|
106
|
+
isLockedOut?: boolean;
|
|
107
|
+
/** time set */
|
|
108
|
+
isTimeSet?: boolean;
|
|
109
|
+
/** time correction */
|
|
110
|
+
isTimeCorrected?: boolean;
|
|
111
|
+
/** meter failure */
|
|
112
|
+
isMeterFailure?: boolean;
|
|
113
|
+
/** meter terminal box is open */
|
|
114
|
+
isMeterTerminalBoxOpen?: boolean;
|
|
115
|
+
/** meter module compartment is open */
|
|
116
|
+
isModuleCompartmentOpen?: boolean;
|
|
117
|
+
/** tariff plan changed */
|
|
118
|
+
isTariffPlanChanged?: boolean;
|
|
119
|
+
/** new tariff plan received */
|
|
120
|
+
isNewTariffPlanReceived?: boolean;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Device send data periodically using this interval.
|
|
124
|
+
* TODO:
|
|
125
|
+
*/
|
|
126
|
+
/**
|
|
127
|
+
* The parameter defines the hour of the day by which the daily consumption is calculated.
|
|
128
|
+
* deviceParameters.DAY_CHECKOUT_HOUR = `4`.
|
|
129
|
+
*/
|
|
130
|
+
interface IParameterDayCheckoutHour {
|
|
131
|
+
value: number;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Type of data from device.
|
|
135
|
+
* deviceParameters.OUTPUT_DATA_TYPE = `5`.
|
|
136
|
+
*/
|
|
137
|
+
interface IParameterOutputDataType {
|
|
50
138
|
/**
|
|
51
|
-
*
|
|
139
|
+
* `0` - hour, by default
|
|
140
|
+
* `1` - day
|
|
141
|
+
* `2` - current
|
|
142
|
+
* `3` - hour + day
|
|
52
143
|
*/
|
|
53
|
-
|
|
144
|
+
type: number;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Device activation method in LoRaWAN network.
|
|
148
|
+
* deviceParameters.ACTIVATION_METHOD = `9`.
|
|
149
|
+
*/
|
|
150
|
+
interface IParameterActivationMethod {
|
|
54
151
|
/**
|
|
55
|
-
*
|
|
152
|
+
* `0` - OTAA, by default
|
|
153
|
+
* `1` - ABP
|
|
56
154
|
*/
|
|
155
|
+
type: number;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Initial values for pulse devices.
|
|
159
|
+
* deviceParameters.INITIAL_DATA = `23`.
|
|
160
|
+
*/
|
|
161
|
+
interface IParameterInitialData {
|
|
162
|
+
/** 4 byte int BE */
|
|
163
|
+
value: number;
|
|
164
|
+
/** 4 byte int BE */
|
|
165
|
+
meterValue: number;
|
|
57
166
|
pulseCoefficient: number;
|
|
58
167
|
}
|
|
59
|
-
|
|
168
|
+
/**
|
|
169
|
+
* Data type sending from device - absolute or not.
|
|
170
|
+
* deviceParameters.ABSOLUTE_DATA_STATUS = `24`
|
|
171
|
+
*/
|
|
172
|
+
interface IParameterAbsoluteDataStatus {
|
|
60
173
|
/**
|
|
61
|
-
*
|
|
174
|
+
* `1` - absolute data sending enabled
|
|
175
|
+
* `0` - disabled, device send pulse counter
|
|
62
176
|
*/
|
|
63
|
-
|
|
177
|
+
status: number;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Initial values for multi-channel devices.
|
|
181
|
+
* deviceParameters.INITIAL_DATA_MULTI_CHANNEL = `29`.
|
|
182
|
+
*/
|
|
183
|
+
interface IParameterInitialDataMC extends IParameterInitialData {
|
|
184
|
+
/** channel that accept initial values */
|
|
185
|
+
channel: number;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Data type sending from device - absolute or not, multi-channel devices.
|
|
189
|
+
* deviceParameters.ABSOLUTE_DATA_STATUS_MULTI_CHANNEL = `30`
|
|
190
|
+
*/
|
|
191
|
+
interface IParameterAbsoluteDataStatusMC extends IParameterAbsoluteDataStatus {
|
|
192
|
+
/** channel that accept status changing */
|
|
193
|
+
channel: number;
|
|
194
|
+
}
|
|
195
|
+
export interface IParameter {
|
|
196
|
+
id: number;
|
|
197
|
+
data: TParameterData;
|
|
64
198
|
}
|
|
199
|
+
export type TEventStatus = IEventGasStatus | IEvent2ChannelStatus | IEventElimpStatus | IEventWaterStatus | IEvent4ChannelStatus | IEventMtxStatus;
|
|
200
|
+
type TParameterData = IParameterOutputDataType | IParameterDayCheckoutHour | IParameterActivationMethod | IParameterInitialData | IParameterAbsoluteDataStatus | IParameterInitialDataMC | IParameterAbsoluteDataStatusMC;
|
|
65
201
|
/**
|
|
66
202
|
* Command specific byte array manipulation.
|
|
67
203
|
*/
|
|
@@ -79,6 +215,7 @@ declare class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
79
215
|
* ```
|
|
80
216
|
*/
|
|
81
217
|
static getExtendedValueSize(bits: number): number;
|
|
218
|
+
static getParameterSize(parameter: IParameter): number;
|
|
82
219
|
getExtendedValue(): number;
|
|
83
220
|
setExtendedValue(value: number): void;
|
|
84
221
|
/**
|
|
@@ -102,7 +239,7 @@ declare class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
102
239
|
* Convert date or seconds to bytes.
|
|
103
240
|
* '2023-12-23' will be 0010111-1100-10111, so bytes: ['00101111', '10010111'] -> [47, 151]
|
|
104
241
|
*/
|
|
105
|
-
setDate(dateOrTime: Date |
|
|
242
|
+
setDate(dateOrTime: Date | TTime2000): void;
|
|
106
243
|
/**
|
|
107
244
|
* Retrieve device time from byte array.
|
|
108
245
|
*
|
|
@@ -114,17 +251,38 @@ declare class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
114
251
|
hour: number;
|
|
115
252
|
};
|
|
116
253
|
setHours(hour: number, hours: number): void;
|
|
117
|
-
getTime():
|
|
118
|
-
setTime(value:
|
|
119
|
-
|
|
120
|
-
|
|
254
|
+
getTime(): TTime2000;
|
|
255
|
+
setTime(value: TTime2000): void;
|
|
256
|
+
getBatteryVoltage(): IBatteryVoltage;
|
|
257
|
+
setBatteryVoltage(batteryVoltage: IBatteryVoltage): void;
|
|
121
258
|
getChannelsValuesWithHourDiff(): {
|
|
122
259
|
hours: number;
|
|
123
|
-
startTime:
|
|
260
|
+
startTime: TTime2000;
|
|
124
261
|
channelList: Array<IChannelHours>;
|
|
125
262
|
};
|
|
126
|
-
setChannelsValuesWithHourDiff(hours: number, startTime:
|
|
263
|
+
setChannelsValuesWithHourDiff(hours: number, startTime: TTime2000, channelList: Array<IChannelHours>): void;
|
|
127
264
|
getChannelsWithAbsoluteValues(): Array<IChannelAbsoluteValue>;
|
|
128
265
|
setChannelsWithAbsoluteValues(channelList: Array<IChannelAbsoluteValue>): void;
|
|
266
|
+
static getEventStatusSize(hardwareType: number): number;
|
|
267
|
+
getEventStatus(hardwareType: number): TEventStatus;
|
|
268
|
+
setEventStatus(hardwareType: number, status: TEventStatus): void;
|
|
269
|
+
private getPulseCoefficient;
|
|
270
|
+
private setPulseCoefficient;
|
|
271
|
+
private getParameterInitialData;
|
|
272
|
+
private setParameterInitialData;
|
|
273
|
+
private getParameterInitialDataMC;
|
|
274
|
+
private setParameterInitialDataMC;
|
|
275
|
+
private getParameterAbsoluteDataStatus;
|
|
276
|
+
private setParameterAbsoluteDataStatus;
|
|
277
|
+
private getParameterAbsoluteDataStatusMC;
|
|
278
|
+
private setParameterAbsoluteDataStatusMC;
|
|
279
|
+
private getParameterActivationMethod;
|
|
280
|
+
private setParameterActivationMethod;
|
|
281
|
+
private getOutputDataType;
|
|
282
|
+
private setOutputDataType;
|
|
283
|
+
private getParameterDayCheckoutHour;
|
|
284
|
+
private setParameterDayCheckoutHour;
|
|
285
|
+
getParameter(): IParameter;
|
|
286
|
+
setParameter(parameter: IParameter): void;
|
|
129
287
|
}
|
|
130
288
|
export default CommandBinaryBuffer;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import BinaryBuffer from './BinaryBuffer.js';
|
|
2
|
+
import * as bitSet from './utils/bitSet.js';
|
|
2
3
|
import { getDateFromSeconds, getSecondsFromDate } from './utils/time.js';
|
|
4
|
+
import * as hardwareTypes from './constants/hardwareTypes.js';
|
|
5
|
+
import * as deviceParameters from './constants/deviceParameters.js';
|
|
3
6
|
const INITIAL_YEAR = 2000;
|
|
4
7
|
const MONTH_BIT_SIZE = 4;
|
|
5
8
|
const DATE_BIT_SIZE = 5;
|
|
@@ -7,6 +10,94 @@ const YEAR_START_INDEX = 1;
|
|
|
7
10
|
const UNKNOWN_BATTERY_VOLTAGE = 4095;
|
|
8
11
|
const EXTEND_BIT_MASK = 0x80;
|
|
9
12
|
const LAST_BIT_INDEX = 7;
|
|
13
|
+
const GAS_HARDWARE_TYPES = [
|
|
14
|
+
hardwareTypes.GAZM0,
|
|
15
|
+
hardwareTypes.GAZM0NEW,
|
|
16
|
+
hardwareTypes.GAZM3,
|
|
17
|
+
hardwareTypes.GAZWLE
|
|
18
|
+
];
|
|
19
|
+
const TWO_CHANNELS_HARDWARE_TYPES = [
|
|
20
|
+
hardwareTypes.IMP2AS,
|
|
21
|
+
hardwareTypes.IMP2EU,
|
|
22
|
+
hardwareTypes.IMP2IN,
|
|
23
|
+
hardwareTypes.NOVATOR
|
|
24
|
+
];
|
|
25
|
+
const ELIMP_HARDWARE_TYPES = [
|
|
26
|
+
hardwareTypes.ELIMP
|
|
27
|
+
];
|
|
28
|
+
const WATER_HARDWARE_TYPES = [
|
|
29
|
+
hardwareTypes.WATER
|
|
30
|
+
];
|
|
31
|
+
const FOUR_CHANNELS_HARDWARE_TYPES = [
|
|
32
|
+
hardwareTypes.IMP4EU,
|
|
33
|
+
hardwareTypes.IMP4IN
|
|
34
|
+
];
|
|
35
|
+
const MTX_HARDWARE_TYPES = [
|
|
36
|
+
hardwareTypes.MTXLORA
|
|
37
|
+
];
|
|
38
|
+
const TWO_BYTES_HARDWARE_TYPES = [...FOUR_CHANNELS_HARDWARE_TYPES, ...MTX_HARDWARE_TYPES];
|
|
39
|
+
const gasBitMask = {
|
|
40
|
+
isBatteryLow: 2 ** 0,
|
|
41
|
+
isMagneticInfluence: 2 ** 1,
|
|
42
|
+
isButtonReleased: 2 ** 2,
|
|
43
|
+
isConnectionLost: 2 ** 3
|
|
44
|
+
};
|
|
45
|
+
const twoChannelBitMask = {
|
|
46
|
+
isBatteryLow: 2 ** 0,
|
|
47
|
+
isConnectionLost: 2 ** 3,
|
|
48
|
+
isFirstChannelInactive: 2 ** 4,
|
|
49
|
+
isSecondChannelInactive: 2 ** 5
|
|
50
|
+
};
|
|
51
|
+
const elimpBitMask = {
|
|
52
|
+
isConnectionLost: 2 ** 3
|
|
53
|
+
};
|
|
54
|
+
const waterBitMask = {
|
|
55
|
+
isBatteryLow: 2 ** 0,
|
|
56
|
+
isConnectionLost: 2 ** 3
|
|
57
|
+
};
|
|
58
|
+
const fourChannelBitMask = {
|
|
59
|
+
isBatteryLow: 2 ** 0,
|
|
60
|
+
isConnectionLost: 2 ** 3,
|
|
61
|
+
isFirstChannelInactive: 2 ** 4,
|
|
62
|
+
isSecondChannelInactive: 2 ** 5,
|
|
63
|
+
isThirdChannelInactive: 2 ** 6,
|
|
64
|
+
isForthChannelInactive: 2 ** 7
|
|
65
|
+
};
|
|
66
|
+
const mtxBitMask = {
|
|
67
|
+
isMeterCaseOpen: 2 ** 0,
|
|
68
|
+
isMagneticInfluence: 2 ** 1,
|
|
69
|
+
isParametersSetRemotely: 2 ** 2,
|
|
70
|
+
isParametersSetLocally: 2 ** 3,
|
|
71
|
+
isMeterProgramRestarted: 2 ** 4,
|
|
72
|
+
isLockedOut: 2 ** 5,
|
|
73
|
+
isTimeSet: 2 ** 6,
|
|
74
|
+
isTimeCorrected: 2 ** 7,
|
|
75
|
+
isMeterFailure: 2 ** 8,
|
|
76
|
+
isMeterTerminalBoxOpen: 2 ** 9,
|
|
77
|
+
isModuleCompartmentOpen: 2 ** 10,
|
|
78
|
+
isTariffPlanChanged: 2 ** 11,
|
|
79
|
+
isNewTariffPlanReceived: 2 ** 12
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* device parameter data size + byte for parameter id
|
|
83
|
+
*/
|
|
84
|
+
const parametersSizeMap = new Map([
|
|
85
|
+
[deviceParameters.INITIAL_DATA, 9 + 1],
|
|
86
|
+
[deviceParameters.ABSOLUTE_DATA_STATUS, 1 + 1],
|
|
87
|
+
[deviceParameters.INITIAL_DATA_MULTI_CHANNEL, 10 + 1],
|
|
88
|
+
[deviceParameters.ABSOLUTE_DATA_STATUS_MULTI_CHANNEL, 2 + 1]
|
|
89
|
+
]);
|
|
90
|
+
const byteToPulseCoefficientMap = new Map([
|
|
91
|
+
[0x80, 1000],
|
|
92
|
+
[0x81, 5000],
|
|
93
|
+
[0x82, 100],
|
|
94
|
+
[0x83, 10],
|
|
95
|
+
[0x84, 1],
|
|
96
|
+
[0x85, 0.1],
|
|
97
|
+
[0x86, 0.01]
|
|
98
|
+
]);
|
|
99
|
+
const pulseCoefficientToByteMap = new Map([...byteToPulseCoefficientMap.entries()].map(([key, value]) => [value, key]));
|
|
100
|
+
const isMSBSet = (value) => !!(value & 0x80);
|
|
10
101
|
/**
|
|
11
102
|
* Command specific byte array manipulation.
|
|
12
103
|
*/
|
|
@@ -29,6 +120,13 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
29
120
|
const extBytes = Math.ceil(totalBits / 8);
|
|
30
121
|
return extBytes;
|
|
31
122
|
}
|
|
123
|
+
static getParameterSize(parameter) {
|
|
124
|
+
const size = parametersSizeMap.get(parameter.id);
|
|
125
|
+
if (size === undefined) {
|
|
126
|
+
throw new Error('unknown parameter id');
|
|
127
|
+
}
|
|
128
|
+
return size;
|
|
129
|
+
}
|
|
32
130
|
getExtendedValue() {
|
|
33
131
|
let value = 0;
|
|
34
132
|
let isByteExtended = true;
|
|
@@ -186,7 +284,7 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
186
284
|
setTime(value) {
|
|
187
285
|
return this.setUint32(value, false);
|
|
188
286
|
}
|
|
189
|
-
|
|
287
|
+
getBatteryVoltage() {
|
|
190
288
|
let high;
|
|
191
289
|
let low;
|
|
192
290
|
const lowVoltageByte = this.getUint8();
|
|
@@ -203,7 +301,7 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
203
301
|
}
|
|
204
302
|
return { low, high };
|
|
205
303
|
}
|
|
206
|
-
|
|
304
|
+
setBatteryVoltage(batteryVoltage) {
|
|
207
305
|
let { low, high } = batteryVoltage;
|
|
208
306
|
if (low === undefined) {
|
|
209
307
|
low = UNKNOWN_BATTERY_VOLTAGE;
|
|
@@ -269,6 +367,207 @@ class CommandBinaryBuffer extends BinaryBuffer {
|
|
|
269
367
|
this.setExtendedValue(value);
|
|
270
368
|
}
|
|
271
369
|
}
|
|
370
|
+
static getEventStatusSize(hardwareType) {
|
|
371
|
+
return TWO_BYTES_HARDWARE_TYPES.includes(hardwareType) ? 2 : 1;
|
|
372
|
+
}
|
|
373
|
+
getEventStatus(hardwareType) {
|
|
374
|
+
let status;
|
|
375
|
+
if (GAS_HARDWARE_TYPES.includes(hardwareType)) {
|
|
376
|
+
status = bitSet.toObject(gasBitMask, this.getUint8());
|
|
377
|
+
}
|
|
378
|
+
else if (TWO_CHANNELS_HARDWARE_TYPES.includes(hardwareType)) {
|
|
379
|
+
status = bitSet.toObject(twoChannelBitMask, this.getUint8());
|
|
380
|
+
}
|
|
381
|
+
else if (ELIMP_HARDWARE_TYPES.includes(hardwareType)) {
|
|
382
|
+
status = bitSet.toObject(elimpBitMask, this.getUint8());
|
|
383
|
+
}
|
|
384
|
+
else if (WATER_HARDWARE_TYPES.includes(hardwareType)) {
|
|
385
|
+
status = bitSet.toObject(waterBitMask, this.getUint8());
|
|
386
|
+
}
|
|
387
|
+
else if (FOUR_CHANNELS_HARDWARE_TYPES.includes(hardwareType)) {
|
|
388
|
+
status = bitSet.toObject(fourChannelBitMask, this.getExtendedValue());
|
|
389
|
+
}
|
|
390
|
+
else if (MTX_HARDWARE_TYPES.includes(hardwareType)) {
|
|
391
|
+
status = bitSet.toObject(mtxBitMask, this.getUint16());
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
throw new Error('wrong hardwareType');
|
|
395
|
+
}
|
|
396
|
+
return status;
|
|
397
|
+
}
|
|
398
|
+
setEventStatus(hardwareType, status) {
|
|
399
|
+
if (GAS_HARDWARE_TYPES.includes(hardwareType)) {
|
|
400
|
+
this.setUint8(bitSet.fromObject(gasBitMask, status));
|
|
401
|
+
}
|
|
402
|
+
else if (TWO_CHANNELS_HARDWARE_TYPES.includes(hardwareType)) {
|
|
403
|
+
this.setUint8(bitSet.fromObject(twoChannelBitMask, status));
|
|
404
|
+
}
|
|
405
|
+
else if (ELIMP_HARDWARE_TYPES.includes(hardwareType)) {
|
|
406
|
+
this.setUint8(bitSet.fromObject(elimpBitMask, status));
|
|
407
|
+
}
|
|
408
|
+
else if (WATER_HARDWARE_TYPES.includes(hardwareType)) {
|
|
409
|
+
this.setUint8(bitSet.fromObject(waterBitMask, status));
|
|
410
|
+
}
|
|
411
|
+
else if (FOUR_CHANNELS_HARDWARE_TYPES.includes(hardwareType)) {
|
|
412
|
+
this.setExtendedValue(bitSet.fromObject(fourChannelBitMask, status));
|
|
413
|
+
}
|
|
414
|
+
else if (MTX_HARDWARE_TYPES.includes(hardwareType)) {
|
|
415
|
+
this.setUint16(bitSet.fromObject(mtxBitMask, status));
|
|
416
|
+
}
|
|
417
|
+
else {
|
|
418
|
+
throw new Error('wrong hardwareType');
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
getPulseCoefficient() {
|
|
422
|
+
const pulseCoefficient = this.getUint8();
|
|
423
|
+
if (isMSBSet(pulseCoefficient)) {
|
|
424
|
+
const value = byteToPulseCoefficientMap.get(pulseCoefficient);
|
|
425
|
+
if (value) {
|
|
426
|
+
return value;
|
|
427
|
+
}
|
|
428
|
+
throw new Error('pulseCoefficient MSB is set, but value unknown');
|
|
429
|
+
}
|
|
430
|
+
return pulseCoefficient;
|
|
431
|
+
}
|
|
432
|
+
setPulseCoefficient(value) {
|
|
433
|
+
if (pulseCoefficientToByteMap.has(value)) {
|
|
434
|
+
const byte = pulseCoefficientToByteMap.get(value);
|
|
435
|
+
if (byte) {
|
|
436
|
+
this.setUint8(byte);
|
|
437
|
+
}
|
|
438
|
+
else {
|
|
439
|
+
throw new Error('pulseCoefficient MSB is set, but value unknown');
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
else {
|
|
443
|
+
this.setUint8(value);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
getParameterInitialData() {
|
|
447
|
+
return {
|
|
448
|
+
meterValue: this.getUint32(false),
|
|
449
|
+
pulseCoefficient: this.getPulseCoefficient(),
|
|
450
|
+
value: this.getUint32(false)
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
setParameterInitialData(parameter) {
|
|
454
|
+
this.setUint32(parameter.meterValue, false);
|
|
455
|
+
this.setPulseCoefficient(parameter.pulseCoefficient);
|
|
456
|
+
this.setUint32(parameter.value, false);
|
|
457
|
+
}
|
|
458
|
+
getParameterInitialDataMC() {
|
|
459
|
+
return {
|
|
460
|
+
channel: this.getUint8(),
|
|
461
|
+
meterValue: this.getUint32(false),
|
|
462
|
+
pulseCoefficient: this.getPulseCoefficient(),
|
|
463
|
+
value: this.getUint32(false)
|
|
464
|
+
};
|
|
465
|
+
}
|
|
466
|
+
setParameterInitialDataMC(parameter) {
|
|
467
|
+
this.setUint8(parameter.channel);
|
|
468
|
+
this.setUint32(parameter.meterValue, false);
|
|
469
|
+
this.setPulseCoefficient(parameter.pulseCoefficient);
|
|
470
|
+
this.setUint32(parameter.value, false);
|
|
471
|
+
}
|
|
472
|
+
getParameterAbsoluteDataStatus() {
|
|
473
|
+
return { status: this.getUint8() };
|
|
474
|
+
}
|
|
475
|
+
setParameterAbsoluteDataStatus(parameter) {
|
|
476
|
+
this.setUint8(parameter.status);
|
|
477
|
+
}
|
|
478
|
+
getParameterAbsoluteDataStatusMC() {
|
|
479
|
+
return {
|
|
480
|
+
channel: this.getUint8(),
|
|
481
|
+
status: this.getUint8()
|
|
482
|
+
};
|
|
483
|
+
}
|
|
484
|
+
setParameterAbsoluteDataStatusMC(parameter) {
|
|
485
|
+
this.setUint8(parameter.channel);
|
|
486
|
+
this.setUint8(parameter.status);
|
|
487
|
+
}
|
|
488
|
+
getParameterActivationMethod() {
|
|
489
|
+
return {
|
|
490
|
+
type: this.getUint8()
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
setParameterActivationMethod(parameter) {
|
|
494
|
+
this.setUint8(parameter.type);
|
|
495
|
+
}
|
|
496
|
+
getOutputDataType() {
|
|
497
|
+
return {
|
|
498
|
+
type: this.getUint8()
|
|
499
|
+
};
|
|
500
|
+
}
|
|
501
|
+
setOutputDataType(parameter) {
|
|
502
|
+
this.setUint8(parameter.type);
|
|
503
|
+
}
|
|
504
|
+
getParameterDayCheckoutHour() {
|
|
505
|
+
return {
|
|
506
|
+
value: this.getUint8()
|
|
507
|
+
};
|
|
508
|
+
}
|
|
509
|
+
setParameterDayCheckoutHour(parameter) {
|
|
510
|
+
this.setUint8(parameter.value);
|
|
511
|
+
}
|
|
512
|
+
getParameter() {
|
|
513
|
+
const id = this.getUint8();
|
|
514
|
+
let data;
|
|
515
|
+
switch (id) {
|
|
516
|
+
case deviceParameters.OUTPUT_DATA_TYPE:
|
|
517
|
+
data = this.getOutputDataType();
|
|
518
|
+
break;
|
|
519
|
+
case deviceParameters.DAY_CHECKOUT_HOUR:
|
|
520
|
+
data = this.getParameterDayCheckoutHour();
|
|
521
|
+
break;
|
|
522
|
+
case deviceParameters.ACTIVATION_METHOD:
|
|
523
|
+
data = this.getParameterActivationMethod();
|
|
524
|
+
break;
|
|
525
|
+
case deviceParameters.INITIAL_DATA:
|
|
526
|
+
data = this.getParameterInitialData();
|
|
527
|
+
break;
|
|
528
|
+
case deviceParameters.INITIAL_DATA_MULTI_CHANNEL:
|
|
529
|
+
data = this.getParameterInitialDataMC();
|
|
530
|
+
break;
|
|
531
|
+
case deviceParameters.ABSOLUTE_DATA_STATUS:
|
|
532
|
+
data = this.getParameterAbsoluteDataStatus();
|
|
533
|
+
break;
|
|
534
|
+
case deviceParameters.ABSOLUTE_DATA_STATUS_MULTI_CHANNEL:
|
|
535
|
+
data = this.getParameterAbsoluteDataStatusMC();
|
|
536
|
+
break;
|
|
537
|
+
default:
|
|
538
|
+
throw new Error(`parameter ${id} is not supported`);
|
|
539
|
+
}
|
|
540
|
+
return { id, data };
|
|
541
|
+
}
|
|
542
|
+
setParameter(parameter) {
|
|
543
|
+
const { id, data } = parameter;
|
|
544
|
+
this.setUint8(id);
|
|
545
|
+
switch (id) {
|
|
546
|
+
case deviceParameters.OUTPUT_DATA_TYPE:
|
|
547
|
+
this.setOutputDataType(data);
|
|
548
|
+
break;
|
|
549
|
+
case deviceParameters.DAY_CHECKOUT_HOUR:
|
|
550
|
+
this.setParameterDayCheckoutHour(data);
|
|
551
|
+
break;
|
|
552
|
+
case deviceParameters.ACTIVATION_METHOD:
|
|
553
|
+
this.setParameterActivationMethod(data);
|
|
554
|
+
break;
|
|
555
|
+
case deviceParameters.INITIAL_DATA:
|
|
556
|
+
this.setParameterInitialData(data);
|
|
557
|
+
break;
|
|
558
|
+
case deviceParameters.INITIAL_DATA_MULTI_CHANNEL:
|
|
559
|
+
this.setParameterInitialDataMC(data);
|
|
560
|
+
break;
|
|
561
|
+
case deviceParameters.ABSOLUTE_DATA_STATUS:
|
|
562
|
+
this.setParameterAbsoluteDataStatus(data);
|
|
563
|
+
break;
|
|
564
|
+
case deviceParameters.ABSOLUTE_DATA_STATUS_MULTI_CHANNEL:
|
|
565
|
+
this.setParameterAbsoluteDataStatusMC(data);
|
|
566
|
+
break;
|
|
567
|
+
default:
|
|
568
|
+
throw new Error(`parameter ${id} is not supported`);
|
|
569
|
+
}
|
|
570
|
+
}
|
|
272
571
|
}
|
|
273
572
|
export default CommandBinaryBuffer;
|
|
274
573
|
//# sourceMappingURL=CommandBinaryBuffer.js.map
|