jooby-codec 1.1.0 → 1.3.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 -1
- package/dist/Command.js +3 -4
- package/dist/Command.js.map +1 -1
- package/dist/CommandBinaryBuffer.d.ts +37 -0
- package/dist/CommandBinaryBuffer.js +51 -2
- package/dist/CommandBinaryBuffer.js.map +1 -1
- package/dist/UnknownCommand.d.ts +20 -0
- package/dist/UnknownCommand.js +22 -0
- package/dist/UnknownCommand.js.map +1 -0
- package/dist/commands/downlink/CorrectTime2000.d.ts +5 -5
- package/dist/commands/downlink/CorrectTime2000.js +6 -5
- package/dist/commands/downlink/CorrectTime2000.js.map +1 -1
- package/dist/commands/downlink/ExAbsArchiveDaysMul.d.ts +47 -0
- package/dist/commands/downlink/ExAbsArchiveDaysMul.js +65 -0
- package/dist/commands/downlink/ExAbsArchiveDaysMul.js.map +1 -0
- package/dist/commands/downlink/ExAbsArchiveHoursMul.d.ts +47 -0
- package/dist/commands/downlink/ExAbsArchiveHoursMul.js +67 -0
- package/dist/commands/downlink/ExAbsArchiveHoursMul.js.map +1 -0
- package/dist/commands/downlink/GetArchiveDaysMul.d.ts +47 -0
- package/dist/commands/downlink/GetArchiveDaysMul.js +64 -0
- package/dist/commands/downlink/GetArchiveDaysMul.js.map +1 -0
- package/dist/commands/downlink/GetArchiveHoursMul.d.ts +47 -0
- package/dist/commands/downlink/GetArchiveHoursMul.js +66 -0
- package/dist/commands/downlink/GetArchiveHoursMul.js.map +1 -0
- package/dist/commands/downlink/NewStatus.d.ts +1 -1
- package/dist/commands/downlink/NewStatus.js +2 -1
- package/dist/commands/downlink/NewStatus.js.map +1 -1
- package/dist/commands/downlink/SetParameter.d.ts +73 -0
- package/dist/commands/downlink/SetParameter.js +136 -0
- package/dist/commands/downlink/SetParameter.js.map +1 -0
- package/dist/commands/downlink/SetTime2000.d.ts +5 -5
- package/dist/commands/downlink/SetTime2000.js +6 -5
- package/dist/commands/downlink/SetTime2000.js.map +1 -1
- package/dist/commands/downlink/SoftRestart.d.ts +1 -1
- package/dist/commands/downlink/SoftRestart.js +2 -1
- package/dist/commands/downlink/SoftRestart.js.map +1 -1
- package/dist/commands/downlink/index.d.ts +5 -0
- package/dist/commands/downlink/index.js +5 -0
- package/dist/commands/downlink/index.js.map +1 -1
- package/dist/commands/uplink/CorrectTime2000.d.ts +1 -1
- package/dist/commands/uplink/CorrectTime2000.js +2 -1
- package/dist/commands/uplink/CorrectTime2000.js.map +1 -1
- package/dist/commands/uplink/DataDayMul.d.ts +2 -2
- package/dist/commands/uplink/DataDayMul.js +6 -5
- package/dist/commands/uplink/DataDayMul.js.map +1 -1
- package/dist/commands/uplink/DataHourMul.d.ts +1 -1
- package/dist/commands/uplink/DataHourMul.js +9 -9
- package/dist/commands/uplink/DataHourMul.js.map +1 -1
- package/dist/commands/uplink/ExAbsArchiveDaysMul.d.ts +46 -0
- package/dist/commands/uplink/ExAbsArchiveDaysMul.js +72 -0
- package/dist/commands/uplink/ExAbsArchiveDaysMul.js.map +1 -0
- package/dist/commands/uplink/ExAbsArchiveHoursMul.d.ts +11 -0
- package/dist/commands/uplink/ExAbsArchiveHoursMul.js +93 -0
- package/dist/commands/uplink/ExAbsArchiveHoursMul.js.map +1 -0
- package/dist/commands/uplink/ExAbsDayMul.d.ts +1 -1
- package/dist/commands/uplink/ExAbsDayMul.js +5 -5
- package/dist/commands/uplink/ExAbsDayMul.js.map +1 -1
- package/dist/commands/uplink/ExAbsHourMul.d.ts +1 -1
- package/dist/commands/uplink/ExAbsHourMul.js +7 -7
- package/dist/commands/uplink/ExAbsHourMul.js.map +1 -1
- package/dist/commands/uplink/GetArchiveDaysMul.d.ts +73 -0
- package/dist/commands/uplink/GetArchiveDaysMul.js +97 -0
- package/dist/commands/uplink/GetArchiveDaysMul.js.map +1 -0
- package/dist/commands/uplink/GetArchiveHoursMul.d.ts +28 -0
- package/dist/commands/uplink/GetArchiveHoursMul.js +51 -0
- package/dist/commands/uplink/GetArchiveHoursMul.js.map +1 -0
- package/dist/commands/uplink/GetCurrentMul.d.ts +1 -1
- package/dist/commands/uplink/GetCurrentMul.js +2 -1
- package/dist/commands/uplink/GetCurrentMul.js.map +1 -1
- package/dist/commands/uplink/LastEvent.d.ts +116 -0
- package/dist/commands/uplink/LastEvent.js +164 -0
- package/dist/commands/uplink/LastEvent.js.map +1 -0
- package/dist/commands/uplink/NewEvent.d.ts +3 -3
- package/dist/commands/uplink/NewEvent.js +8 -7
- package/dist/commands/uplink/NewEvent.js.map +1 -1
- package/dist/commands/uplink/NewStatus.d.ts +1 -1
- package/dist/commands/uplink/NewStatus.js +3 -2
- package/dist/commands/uplink/NewStatus.js.map +1 -1
- package/dist/commands/uplink/SetTime2000.d.ts +1 -1
- package/dist/commands/uplink/SetTime2000.js +2 -1
- package/dist/commands/uplink/SetTime2000.js.map +1 -1
- package/dist/commands/uplink/SoftRestart.d.ts +1 -1
- package/dist/commands/uplink/SoftRestart.js +2 -1
- 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 -5
- package/dist/commands/uplink/Time2000.js.map +1 -1
- package/dist/commands/uplink/index.d.ts +5 -0
- package/dist/commands/uplink/index.js +5 -0
- package/dist/commands/uplink/index.js.map +1 -1
- package/dist/constants/deviceParameters.d.ts +15 -0
- package/dist/constants/deviceParameters.js +16 -0
- package/dist/constants/deviceParameters.js.map +1 -0
- package/dist/constants/directionTypes.d.ts +3 -0
- package/dist/constants/directionTypes.js +4 -0
- package/dist/constants/directionTypes.js.map +1 -0
- package/dist/constants/hardwareTypes.d.ts +56 -0
- package/dist/constants/hardwareTypes.js +56 -14
- package/dist/constants/hardwareTypes.js.map +1 -1
- package/dist/constants/index.d.ts +2 -0
- package/dist/constants/index.js +2 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/utils/bitSet.d.ts +40 -0
- package/dist/utils/bitSet.js +53 -0
- package/dist/utils/bitSet.js.map +1 -0
- package/dist/utils/message.d.ts +2 -5
- package/dist/utils/message.js +30 -30
- package/dist/utils/message.js.map +1 -1
- package/dist/utils/time.d.ts +2 -2
- package/dist/utils/time.js +2 -2
- package/dist/utils/time.js.map +1 -1
- package/package.json +2 -2
- package/readme.md +3 -3
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import Command from '../../Command.js';
|
|
2
|
+
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
3
|
+
import { UPLINK } from '../../constants/directionTypes.js';
|
|
4
|
+
import { getDateFromSeconds, getSecondsFromDate } from '../../utils/time.js';
|
|
5
|
+
const COMMAND_ID = 0x1b;
|
|
6
|
+
const COMMAND_TITLE = 'GET_ARCHIVE_DAYS_MUL';
|
|
7
|
+
// date 2 bytes, channels 1 byte (max channels: 4), days 1 byte (max days - 255)
|
|
8
|
+
// 4 + (4 channels * 5 bytes of day values * 255 max days)
|
|
9
|
+
const COMMAND_BODY_MAX_SIZE = 5104;
|
|
10
|
+
/**
|
|
11
|
+
* Uplink command
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```js
|
|
15
|
+
* import GetArchiveDaysMul from 'jooby-codec/commands/uplink/GetArchiveDaysMul';
|
|
16
|
+
*
|
|
17
|
+
* const parameters = {
|
|
18
|
+
* channels: [{index: 0, days: [{value: 234, day: 0}, {value: 332, day: 1}]}],
|
|
19
|
+
* date: '2001-03-10T12:00:00.000Z',
|
|
20
|
+
* dayAmount: 2
|
|
21
|
+
* };
|
|
22
|
+
*
|
|
23
|
+
* const command = new GetArchiveDaysMul(parameters);
|
|
24
|
+
*
|
|
25
|
+
* // output command binary in hex representation
|
|
26
|
+
* console.log(command.toHex());
|
|
27
|
+
* // 1b 04 2f 97 0c 01
|
|
28
|
+
* ```
|
|
29
|
+
* [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetArchiveDaysMul.md#response)
|
|
30
|
+
*/
|
|
31
|
+
class GetArchiveDaysMul extends Command {
|
|
32
|
+
constructor(parameters) {
|
|
33
|
+
super();
|
|
34
|
+
this.parameters = parameters;
|
|
35
|
+
this.parameters.channels = this.parameters.channels.sort((a, b) => a.index - b.index);
|
|
36
|
+
const { date, dayAmount, channels } = this.parameters;
|
|
37
|
+
if (date === undefined) {
|
|
38
|
+
const [{ seconds }] = channels;
|
|
39
|
+
if (seconds) {
|
|
40
|
+
this.parameters.date = getDateFromSeconds(seconds);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
throw new Error(`${GetArchiveDaysMul.getName()} can't recognize time`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else if (typeof date === 'string') {
|
|
47
|
+
this.parameters.date = new Date(date);
|
|
48
|
+
}
|
|
49
|
+
if (dayAmount === undefined) {
|
|
50
|
+
this.parameters.dayAmount = channels[0].days.length;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
static fromBytes(data) {
|
|
54
|
+
const buffer = new CommandBinaryBuffer(data);
|
|
55
|
+
const date = buffer.getDate();
|
|
56
|
+
const channelArray = buffer.getChannels(true);
|
|
57
|
+
const dayAmount = buffer.getUint8();
|
|
58
|
+
const maxChannel = Math.max.apply(null, channelArray);
|
|
59
|
+
const channels = [];
|
|
60
|
+
const counterDate = new Date(date);
|
|
61
|
+
let value;
|
|
62
|
+
for (let channelIndex = 0; channelIndex <= maxChannel; ++channelIndex) {
|
|
63
|
+
const days = [];
|
|
64
|
+
counterDate.setTime(date.getTime());
|
|
65
|
+
channels.push({
|
|
66
|
+
days,
|
|
67
|
+
index: channelIndex,
|
|
68
|
+
seconds: getSecondsFromDate(counterDate),
|
|
69
|
+
date: new Date(counterDate)
|
|
70
|
+
});
|
|
71
|
+
for (let day = 0; day < dayAmount; ++day) {
|
|
72
|
+
value = buffer.getExtendedValue();
|
|
73
|
+
counterDate.setTime(date.getTime());
|
|
74
|
+
counterDate.setUTCHours(counterDate.getUTCHours() + (day * 24));
|
|
75
|
+
days.push({ value, day, date: new Date(counterDate), seconds: getSecondsFromDate(counterDate) });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return new GetArchiveDaysMul({ channels, date, dayAmount });
|
|
79
|
+
}
|
|
80
|
+
toBytes() {
|
|
81
|
+
const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
|
|
82
|
+
const { dayAmount, date, channels } = this.parameters;
|
|
83
|
+
buffer.setDate(date);
|
|
84
|
+
buffer.setChannels(channels);
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
86
|
+
buffer.setUint8(dayAmount);
|
|
87
|
+
channels.forEach(({ days }) => {
|
|
88
|
+
days.forEach(({ value }) => buffer.setExtendedValue(value));
|
|
89
|
+
});
|
|
90
|
+
return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
GetArchiveDaysMul.id = COMMAND_ID;
|
|
94
|
+
GetArchiveDaysMul.directionType = UPLINK;
|
|
95
|
+
GetArchiveDaysMul.title = COMMAND_TITLE;
|
|
96
|
+
export default GetArchiveDaysMul;
|
|
97
|
+
//# sourceMappingURL=GetArchiveDaysMul.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetArchiveDaysMul.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetArchiveDaysMul.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import Command from '../../Command.js';
|
|
2
|
+
import { IChannel } from '../../CommandBinaryBuffer.js';
|
|
3
|
+
/**
|
|
4
|
+
* GetArchiveHoursMul command parameters
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* // archive hours values from 001-03-10T12:00:00.000Z with 1-hour diff
|
|
8
|
+
* {
|
|
9
|
+
* channels: [{value: 101, index: 0, diff: [value: 1]}],
|
|
10
|
+
* date: '2001-03-10T12:00:00.000Z',
|
|
11
|
+
* hourAmount: 1
|
|
12
|
+
* }
|
|
13
|
+
*/
|
|
14
|
+
interface IUplinkGetArchiveHoursMulParameters {
|
|
15
|
+
channels: Array<IChannel>;
|
|
16
|
+
date: Date | undefined | string;
|
|
17
|
+
hourAmount: number | undefined;
|
|
18
|
+
}
|
|
19
|
+
declare class GetArchiveHoursMul extends Command {
|
|
20
|
+
parameters: IUplinkGetArchiveHoursMulParameters;
|
|
21
|
+
constructor(parameters: IUplinkGetArchiveHoursMulParameters);
|
|
22
|
+
static readonly id = 26;
|
|
23
|
+
static readonly directionType = 2;
|
|
24
|
+
static readonly title = "GET_ARCHIVE_HOURS_MUL";
|
|
25
|
+
static fromBytes(data: Uint8Array): GetArchiveHoursMul;
|
|
26
|
+
toBytes(): Uint8Array;
|
|
27
|
+
}
|
|
28
|
+
export default GetArchiveHoursMul;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import Command from '../../Command.js';
|
|
2
|
+
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
3
|
+
import { UPLINK } from '../../constants/directionTypes.js';
|
|
4
|
+
import { getDateFromSeconds } from '../../utils/time.js';
|
|
5
|
+
const COMMAND_ID = 0x1a;
|
|
6
|
+
const COMMAND_TITLE = 'GET_ARCHIVE_HOURS_MUL';
|
|
7
|
+
// date 2 bytes, hour 1 byte, channels - 1 byte, so max channels = 4
|
|
8
|
+
// max hours diff - 7 (3 bit value)
|
|
9
|
+
// 4 + (4 channels * 5 bytes of hour values) + (4 * 5 bytes of diff * 7 max hours diff)
|
|
10
|
+
const COMMAND_BODY_MAX_SIZE = 164;
|
|
11
|
+
class GetArchiveHoursMul extends Command {
|
|
12
|
+
constructor(parameters) {
|
|
13
|
+
super();
|
|
14
|
+
this.parameters = parameters;
|
|
15
|
+
const { date, hourAmount, channels } = this.parameters;
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
17
|
+
if (date === undefined) {
|
|
18
|
+
const [{ seconds }] = channels;
|
|
19
|
+
if (seconds) {
|
|
20
|
+
this.parameters.date = getDateFromSeconds(seconds);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
throw new Error(`${GetArchiveHoursMul.getName()} can't recognize time`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else if (typeof date === 'string') {
|
|
27
|
+
this.parameters.date = new Date(date);
|
|
28
|
+
}
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
30
|
+
if (hourAmount === undefined) {
|
|
31
|
+
this.parameters.hourAmount = channels[0].diff.length;
|
|
32
|
+
}
|
|
33
|
+
this.parameters.channels = this.parameters.channels.sort((a, b) => a.index - b.index);
|
|
34
|
+
}
|
|
35
|
+
static fromBytes(data) {
|
|
36
|
+
const buffer = new CommandBinaryBuffer(data);
|
|
37
|
+
return new GetArchiveHoursMul(buffer.getChannelsValuesWithHourDiff());
|
|
38
|
+
}
|
|
39
|
+
toBytes() {
|
|
40
|
+
const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
|
|
41
|
+
const { hourAmount, date, channels } = this.parameters;
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
43
|
+
buffer.setChannelsValuesWithHourDiff(hourAmount, date, channels);
|
|
44
|
+
return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
GetArchiveHoursMul.id = COMMAND_ID;
|
|
48
|
+
GetArchiveHoursMul.directionType = UPLINK;
|
|
49
|
+
GetArchiveHoursMul.title = COMMAND_TITLE;
|
|
50
|
+
export default GetArchiveHoursMul;
|
|
51
|
+
//# sourceMappingURL=GetArchiveHoursMul.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetArchiveHoursMul.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetArchiveHoursMul.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAA+B,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAqBvD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAE9C,oEAAoE;AACpE,mCAAmC;AACnC,uFAAuF;AACvF,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAGlC,MAAM,kBAAmB,SAAQ,OAAO;IACpC,YAAqB,UAA+C;QAChE,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAqC;QAGhE,MAAM,EAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAErD,uEAAuE;QACvE,IAAK,IAAI,KAAK,SAAS,EAAG;YACtB,MAAM,CAAC,EAAC,OAAO,EAAC,CAAC,GAAG,QAAQ,CAAC;YAE7B,IAAK,OAAO,EAAG;gBACX,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;aACtD;iBAAM;gBACH,MAAM,IAAI,KAAK,CAAC,GAAG,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;aAC3E;SACJ;aAAM,IAAK,OAAO,IAAI,KAAK,QAAQ,EAAG;YACnC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;SACzC;QAED,uEAAuE;QACvE,IAAK,UAAU,KAAK,SAAS,EAAG;YAC5B,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;SACxD;QAED,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1F,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAErD,oEAAoE;QACpE,MAAM,CAAC,6BAA6B,CAAC,UAAW,EAAE,IAAY,EAAE,QAAQ,CAAC,CAAC;QAE1E,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AApBe,qBAAE,GAAG,UAAU,CAAC;AAEhB,gCAAa,GAAG,MAAM,CAAC;AAEvB,wBAAK,GAAG,aAAa,CAAC;AAoB1C,eAAe,kBAAkB,CAAC"}
|
|
@@ -16,7 +16,7 @@ declare class GetCurrentMul extends Command {
|
|
|
16
16
|
parameters: IGetCurrentMulParameters;
|
|
17
17
|
constructor(parameters: IGetCurrentMulParameters);
|
|
18
18
|
static id: number;
|
|
19
|
-
static readonly
|
|
19
|
+
static readonly directionType = 2;
|
|
20
20
|
static title: string;
|
|
21
21
|
static fromBytes(data: Uint8Array): GetCurrentMul;
|
|
22
22
|
toBytes(): Uint8Array;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Command from '../../Command.js';
|
|
2
2
|
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
3
|
+
import { UPLINK } from '../../constants/directionTypes.js';
|
|
3
4
|
const COMMAND_ID = 0x18;
|
|
4
5
|
const COMMAND_TITLE = 'GET_CURRENT_MUL';
|
|
5
6
|
// 2 bytes for 7 channels + (7 channels * 5 byte for current value of channel)
|
|
@@ -29,7 +30,7 @@ class GetCurrentMul extends Command {
|
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
32
|
GetCurrentMul.id = COMMAND_ID;
|
|
32
|
-
GetCurrentMul.
|
|
33
|
+
GetCurrentMul.directionType = UPLINK;
|
|
33
34
|
GetCurrentMul.title = COMMAND_TITLE;
|
|
34
35
|
export default GetCurrentMul;
|
|
35
36
|
//# sourceMappingURL=GetCurrentMul.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetCurrentMul.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetCurrentMul.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"GetCurrentMul.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetCurrentMul.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAmBzD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAExC,8EAA8E;AAC9E,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAGjC,MAAM,aAAc,SAAQ,OAAO;IAC/B,YAAqB,UAAoC;QACrD,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAA0B;QAGrD,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1F,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,UAAU,GAA6B,EAAC,QAAQ,EAAE,EAAE,EAAC,CAAC;QAE5D,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE3C,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAChD,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE;YAChC,KAAK,EAAE,YAAY;SACtB,CAAC,CAAC,CAAC;QAEJ,OAAO,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAEnC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9D,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AA7BM,gBAAE,GAAG,UAAU,CAAC;AAEP,2BAAa,GAAG,MAAM,CAAC;AAEhC,mBAAK,GAAG,aAAa,CAAC;AA6BjC,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import Command from '../../Command.js';
|
|
2
|
+
interface ILastEventGasStatus {
|
|
3
|
+
/** the battery voltage has dropped below the set threshold */
|
|
4
|
+
isBatteryLow?: boolean;
|
|
5
|
+
/** there is a magnetic field influence */
|
|
6
|
+
isMagneticInfluence?: boolean;
|
|
7
|
+
/** button is release (device is unmounted) */
|
|
8
|
+
isButtonReleased?: boolean;
|
|
9
|
+
/** the device has detected a loss of connection to the server */
|
|
10
|
+
isConnectionLost?: boolean;
|
|
11
|
+
}
|
|
12
|
+
interface ILastEvent2ChannelStatus {
|
|
13
|
+
/** the battery voltage has dropped below the set threshold */
|
|
14
|
+
isBatteryLow?: boolean;
|
|
15
|
+
/** the device has detected a loss of connection to the server */
|
|
16
|
+
isConnectionLost?: boolean;
|
|
17
|
+
/** the first channel is not active */
|
|
18
|
+
isFirstChannelInactive?: boolean;
|
|
19
|
+
/** the second channel is not active */
|
|
20
|
+
isSecondChannelInactive?: boolean;
|
|
21
|
+
}
|
|
22
|
+
interface ILastEventElimpStatus {
|
|
23
|
+
/** the device has detected a loss of connection to the server */
|
|
24
|
+
isConnectionLost?: boolean;
|
|
25
|
+
}
|
|
26
|
+
interface ILastEventWaterStatus {
|
|
27
|
+
/** the battery voltage has dropped below the set threshold */
|
|
28
|
+
isBatteryLow?: boolean;
|
|
29
|
+
/** the device has detected a loss of connection to the server */
|
|
30
|
+
isConnectionLost?: boolean;
|
|
31
|
+
}
|
|
32
|
+
interface ILastEvent4ChannelStatus {
|
|
33
|
+
/** the battery voltage has dropped below the set threshold */
|
|
34
|
+
isBatteryLow?: boolean;
|
|
35
|
+
/** the device has detected a loss of connection to the server */
|
|
36
|
+
isConnectionLost?: boolean;
|
|
37
|
+
/** the first channel is not active */
|
|
38
|
+
isFirstChannelInactive?: boolean;
|
|
39
|
+
/** the second channel is not active */
|
|
40
|
+
isSecondChannelInactive?: boolean;
|
|
41
|
+
/** the third channel is not active */
|
|
42
|
+
isThirdChannelInactive?: boolean;
|
|
43
|
+
/** the forth channel is not active */
|
|
44
|
+
isForthChannelInactive?: boolean;
|
|
45
|
+
}
|
|
46
|
+
interface ILastEventMtxStatus {
|
|
47
|
+
/** meter case is open */
|
|
48
|
+
isMeterCaseOpen?: boolean;
|
|
49
|
+
/** there is a magnetic field influence */
|
|
50
|
+
isMagneticInfluence?: boolean;
|
|
51
|
+
/** parameters set remotely */
|
|
52
|
+
isParametersSetRemotely?: boolean;
|
|
53
|
+
/** parameters set locally */
|
|
54
|
+
isParametersSetLocally?: boolean;
|
|
55
|
+
/** meter program restart */
|
|
56
|
+
isMeterProgramRestarted?: boolean;
|
|
57
|
+
/** incorrect password and lockout */
|
|
58
|
+
isLockedOut?: boolean;
|
|
59
|
+
/** time set */
|
|
60
|
+
isTimeSet?: boolean;
|
|
61
|
+
/** time correction */
|
|
62
|
+
isTimeCorrected?: boolean;
|
|
63
|
+
/** meter failure */
|
|
64
|
+
isMeterFailure?: boolean;
|
|
65
|
+
/** meter terminal box is open */
|
|
66
|
+
isMeterTerminalBoxOpen?: boolean;
|
|
67
|
+
/** meter module compartment is open */
|
|
68
|
+
isModuleCompartmentOpen?: boolean;
|
|
69
|
+
/** tariff plan changed */
|
|
70
|
+
isTariffPlanChanged?: boolean;
|
|
71
|
+
/** new tariff plan received */
|
|
72
|
+
isNewTariffPlanReceived?: boolean;
|
|
73
|
+
}
|
|
74
|
+
type TLastEventStatus = ILastEventGasStatus | ILastEvent2ChannelStatus | ILastEventElimpStatus | ILastEventWaterStatus | ILastEvent4ChannelStatus | ILastEventMtxStatus;
|
|
75
|
+
/**
|
|
76
|
+
* LastEvent command parameters
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* {sequenceNumber: 3, status: {isBatteryLow: true}}
|
|
80
|
+
*/
|
|
81
|
+
interface ILastEventParameters {
|
|
82
|
+
/** unique event number */
|
|
83
|
+
sequenceNumber: number;
|
|
84
|
+
/** object with boolean values depending on the device hardware type */
|
|
85
|
+
status: TLastEventStatus;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Uplink command.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```js
|
|
92
|
+
* import LastEvent from 'jooby-codec/commands/downlink/LastEvent';
|
|
93
|
+
* import hardwareTypes from 'jooby-codec/constants/hardwareTypes';
|
|
94
|
+
*
|
|
95
|
+
* const command = new LastEvent(
|
|
96
|
+
* {sequenceNumber: 8, status: {isBatteryLow: true}},
|
|
97
|
+
* hardwareTypes.IMP2EU
|
|
98
|
+
* );
|
|
99
|
+
*
|
|
100
|
+
* // output command binary in hex representation
|
|
101
|
+
* console.log(command.toHex());
|
|
102
|
+
* // 62 08 01
|
|
103
|
+
* ```
|
|
104
|
+
* [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/uplink/LastEvent.md)
|
|
105
|
+
*/
|
|
106
|
+
declare class LastEvent extends Command {
|
|
107
|
+
parameters: ILastEventParameters;
|
|
108
|
+
hardwareType: number;
|
|
109
|
+
constructor(parameters: ILastEventParameters, hardwareType: number);
|
|
110
|
+
static readonly id = 96;
|
|
111
|
+
static readonly directionType = 2;
|
|
112
|
+
static readonly title = "LAST_EVENT";
|
|
113
|
+
static fromBytes(data: Uint8Array, hardwareType?: number): LastEvent;
|
|
114
|
+
toBytes(): Uint8Array;
|
|
115
|
+
}
|
|
116
|
+
export default LastEvent;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import Command from '../../Command.js';
|
|
2
|
+
import * as hardwareTypes from '../../constants/hardwareTypes.js';
|
|
3
|
+
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
4
|
+
import * as bitSet from '../../utils/bitSet.js';
|
|
5
|
+
import { UPLINK } from '../../constants/directionTypes.js';
|
|
6
|
+
const COMMAND_ID = 0x60;
|
|
7
|
+
const COMMAND_TITLE = 'LAST_EVENT';
|
|
8
|
+
const GAS_HARDWARE_TYPES = [
|
|
9
|
+
hardwareTypes.GAZM0,
|
|
10
|
+
hardwareTypes.GAZM0NEW,
|
|
11
|
+
hardwareTypes.GAZM3,
|
|
12
|
+
hardwareTypes.GAZWLE
|
|
13
|
+
];
|
|
14
|
+
const TWO_CHANNELS_HARDWARE_TYPES = [
|
|
15
|
+
hardwareTypes.IMP2AS,
|
|
16
|
+
hardwareTypes.IMP2EU,
|
|
17
|
+
hardwareTypes.IMP2IN,
|
|
18
|
+
hardwareTypes.NOVATOR
|
|
19
|
+
];
|
|
20
|
+
const ELIMP_HARDWARE_TYPES = [
|
|
21
|
+
hardwareTypes.ELIMP
|
|
22
|
+
];
|
|
23
|
+
const WATER_HARDWARE_TYPES = [
|
|
24
|
+
hardwareTypes.WATER
|
|
25
|
+
];
|
|
26
|
+
const FOUR_CHANNELS_HARDWARE_TYPES = [
|
|
27
|
+
hardwareTypes.IMP4EU,
|
|
28
|
+
hardwareTypes.IMP4IN
|
|
29
|
+
];
|
|
30
|
+
const MTX_HARDWARE_TYPES = [
|
|
31
|
+
hardwareTypes.MTXLORA
|
|
32
|
+
];
|
|
33
|
+
const gasBitMask = {
|
|
34
|
+
isBatteryLow: 2 ** 0,
|
|
35
|
+
isMagneticInfluence: 2 ** 1,
|
|
36
|
+
isButtonReleased: 2 ** 2,
|
|
37
|
+
isConnectionLost: 2 ** 3
|
|
38
|
+
};
|
|
39
|
+
const twoChannelBitMask = {
|
|
40
|
+
isBatteryLow: 2 ** 0,
|
|
41
|
+
isConnectionLost: 2 ** 3,
|
|
42
|
+
isFirstChannelInactive: 2 ** 4,
|
|
43
|
+
isSecondChannelInactive: 2 ** 5
|
|
44
|
+
};
|
|
45
|
+
const elimpBitMask = {
|
|
46
|
+
isConnectionLost: 2 ** 3
|
|
47
|
+
};
|
|
48
|
+
const waterBitMask = {
|
|
49
|
+
isBatteryLow: 2 ** 0,
|
|
50
|
+
isConnectionLost: 2 ** 3
|
|
51
|
+
};
|
|
52
|
+
const fourChannelBitMask = {
|
|
53
|
+
isBatteryLow: 2 ** 0,
|
|
54
|
+
isConnectionLost: 2 ** 3,
|
|
55
|
+
isFirstChannelInactive: 2 ** 4,
|
|
56
|
+
isSecondChannelInactive: 2 ** 5,
|
|
57
|
+
isThirdChannelInactive: 2 ** 6,
|
|
58
|
+
isForthChannelInactive: 2 ** 7
|
|
59
|
+
};
|
|
60
|
+
const mtxBitMask = {
|
|
61
|
+
isMeterCaseOpen: 2 ** 0,
|
|
62
|
+
isMagneticInfluence: 2 ** 1,
|
|
63
|
+
isParametersSetRemotely: 2 ** 2,
|
|
64
|
+
isParametersSetLocally: 2 ** 3,
|
|
65
|
+
isMeterProgramRestarted: 2 ** 4,
|
|
66
|
+
isLockedOut: 2 ** 5,
|
|
67
|
+
isTimeSet: 2 ** 6,
|
|
68
|
+
isTimeCorrected: 2 ** 7,
|
|
69
|
+
isMeterFailure: 2 ** 8,
|
|
70
|
+
isMeterTerminalBoxOpen: 2 ** 9,
|
|
71
|
+
isModuleCompartmentOpen: 2 ** 10,
|
|
72
|
+
isTariffPlanChanged: 2 ** 11,
|
|
73
|
+
isNewTariffPlanReceived: 2 ** 12
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Uplink command.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```js
|
|
80
|
+
* import LastEvent from 'jooby-codec/commands/downlink/LastEvent';
|
|
81
|
+
* import hardwareTypes from 'jooby-codec/constants/hardwareTypes';
|
|
82
|
+
*
|
|
83
|
+
* const command = new LastEvent(
|
|
84
|
+
* {sequenceNumber: 8, status: {isBatteryLow: true}},
|
|
85
|
+
* hardwareTypes.IMP2EU
|
|
86
|
+
* );
|
|
87
|
+
*
|
|
88
|
+
* // output command binary in hex representation
|
|
89
|
+
* console.log(command.toHex());
|
|
90
|
+
* // 62 08 01
|
|
91
|
+
* ```
|
|
92
|
+
* [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/uplink/LastEvent.md)
|
|
93
|
+
*/
|
|
94
|
+
class LastEvent extends Command {
|
|
95
|
+
constructor(parameters, hardwareType) {
|
|
96
|
+
super();
|
|
97
|
+
this.parameters = parameters;
|
|
98
|
+
this.hardwareType = hardwareType;
|
|
99
|
+
}
|
|
100
|
+
// data - only body (without header)
|
|
101
|
+
static fromBytes(data, hardwareType) {
|
|
102
|
+
if (!hardwareType) {
|
|
103
|
+
throw new Error('hardwareType argument is mandatory');
|
|
104
|
+
}
|
|
105
|
+
const buffer = new CommandBinaryBuffer(data);
|
|
106
|
+
const sequenceNumber = buffer.getUint8();
|
|
107
|
+
let status;
|
|
108
|
+
if (GAS_HARDWARE_TYPES.includes(hardwareType)) {
|
|
109
|
+
status = bitSet.toObject(gasBitMask, buffer.getUint8());
|
|
110
|
+
}
|
|
111
|
+
else if (TWO_CHANNELS_HARDWARE_TYPES.includes(hardwareType)) {
|
|
112
|
+
status = bitSet.toObject(twoChannelBitMask, buffer.getUint8());
|
|
113
|
+
}
|
|
114
|
+
else if (ELIMP_HARDWARE_TYPES.includes(hardwareType)) {
|
|
115
|
+
status = bitSet.toObject(elimpBitMask, buffer.getUint8());
|
|
116
|
+
}
|
|
117
|
+
else if (WATER_HARDWARE_TYPES.includes(hardwareType)) {
|
|
118
|
+
status = bitSet.toObject(waterBitMask, buffer.getUint8());
|
|
119
|
+
}
|
|
120
|
+
else if (FOUR_CHANNELS_HARDWARE_TYPES.includes(hardwareType)) {
|
|
121
|
+
status = bitSet.toObject(fourChannelBitMask, buffer.getExtendedValue());
|
|
122
|
+
}
|
|
123
|
+
else if (MTX_HARDWARE_TYPES.includes(hardwareType)) {
|
|
124
|
+
status = bitSet.toObject(mtxBitMask, buffer.getUint16());
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
throw new Error('wrong hardwareType');
|
|
128
|
+
}
|
|
129
|
+
return new LastEvent({ sequenceNumber, status }, hardwareType);
|
|
130
|
+
}
|
|
131
|
+
// returns full message - header with body
|
|
132
|
+
toBytes() {
|
|
133
|
+
const { sequenceNumber, status } = this.parameters;
|
|
134
|
+
const buffer = new CommandBinaryBuffer([...FOUR_CHANNELS_HARDWARE_TYPES, ...MTX_HARDWARE_TYPES].includes(this.hardwareType) ? 3 : 2);
|
|
135
|
+
buffer.setUint8(sequenceNumber);
|
|
136
|
+
if (GAS_HARDWARE_TYPES.includes(this.hardwareType)) {
|
|
137
|
+
buffer.setUint8(bitSet.fromObject(gasBitMask, status));
|
|
138
|
+
}
|
|
139
|
+
else if (TWO_CHANNELS_HARDWARE_TYPES.includes(this.hardwareType)) {
|
|
140
|
+
buffer.setUint8(bitSet.fromObject(twoChannelBitMask, status));
|
|
141
|
+
}
|
|
142
|
+
else if (ELIMP_HARDWARE_TYPES.includes(this.hardwareType)) {
|
|
143
|
+
buffer.setUint8(bitSet.fromObject(elimpBitMask, status));
|
|
144
|
+
}
|
|
145
|
+
else if (WATER_HARDWARE_TYPES.includes(this.hardwareType)) {
|
|
146
|
+
buffer.setUint8(bitSet.fromObject(waterBitMask, status));
|
|
147
|
+
}
|
|
148
|
+
else if (FOUR_CHANNELS_HARDWARE_TYPES.includes(this.hardwareType)) {
|
|
149
|
+
buffer.setExtendedValue(bitSet.fromObject(fourChannelBitMask, status));
|
|
150
|
+
}
|
|
151
|
+
else if (MTX_HARDWARE_TYPES.includes(this.hardwareType)) {
|
|
152
|
+
buffer.setUint16(bitSet.fromObject(mtxBitMask, status));
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
throw new Error('wrong hardwareType');
|
|
156
|
+
}
|
|
157
|
+
return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
LastEvent.id = COMMAND_ID;
|
|
161
|
+
LastEvent.directionType = UPLINK;
|
|
162
|
+
LastEvent.title = COMMAND_TITLE;
|
|
163
|
+
export default LastEvent;
|
|
164
|
+
//# sourceMappingURL=LastEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LastEvent.js","sourceRoot":"","sources":["../../../src/commands/uplink/LastEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ interface IEventBase {
|
|
|
9
9
|
* import {constants} from 'jooby-codec'
|
|
10
10
|
*
|
|
11
11
|
* // `Magnet On` event at 2023-04-05 13:17:20 GMT
|
|
12
|
-
* {id: constants.events.MAGNET_ON, sequenceNumber: 1, data: {
|
|
12
|
+
* {id: constants.events.MAGNET_ON, sequenceNumber: 1, data: {seconds: 734015840}}
|
|
13
13
|
*/
|
|
14
14
|
interface INewEventParameters {
|
|
15
15
|
id: number;
|
|
@@ -25,7 +25,7 @@ interface INewEventParameters {
|
|
|
25
25
|
* import NewEvent from 'jooby-codec/commands/uplink/NewEvent';
|
|
26
26
|
*
|
|
27
27
|
* // `Magnet On` event at 2023-04-05 13:17:20 GMT
|
|
28
|
-
* const parameters = {id: constants.events.MAGNET_ON, sequenceNumber: 3, data: {
|
|
28
|
+
* const parameters = {id: constants.events.MAGNET_ON, sequenceNumber: 3, data: {seconds: 734015840}}
|
|
29
29
|
* const command = new NewEvent(parameters);
|
|
30
30
|
*
|
|
31
31
|
* // output command binary in hex representation
|
|
@@ -39,7 +39,7 @@ declare class NewEvent extends Command {
|
|
|
39
39
|
parameters: INewEventParameters;
|
|
40
40
|
constructor(parameters: INewEventParameters);
|
|
41
41
|
static readonly id = 21;
|
|
42
|
-
static readonly
|
|
42
|
+
static readonly directionType = 2;
|
|
43
43
|
static readonly title = "NEW_EVENT";
|
|
44
44
|
static fromBytes(data: Uint8Array): NewEvent;
|
|
45
45
|
toBytes(): Uint8Array;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import Command from '../../Command.js';
|
|
2
2
|
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
3
|
-
import * as events from '../../constants/events.js';
|
|
4
3
|
import getHexFromBytes from '../../utils/getHexFromBytes.js';
|
|
5
4
|
import getBytesFromHex from '../../utils/getBytesFromHex.js';
|
|
5
|
+
import * as events from '../../constants/events.js';
|
|
6
|
+
import { UPLINK } from '../../constants/directionTypes.js';
|
|
6
7
|
const COMMAND_ID = 0x15;
|
|
7
8
|
const COMMAND_TITLE = 'NEW_EVENT';
|
|
8
9
|
// ACTIVATE_MTX are biggest,1 byte event id, 1 byte sequence number, 4 bytes time, 8 bytes mtx address
|
|
@@ -30,7 +31,7 @@ const setDeviceId = (buffer, value) => {
|
|
|
30
31
|
* import NewEvent from 'jooby-codec/commands/uplink/NewEvent';
|
|
31
32
|
*
|
|
32
33
|
* // `Magnet On` event at 2023-04-05 13:17:20 GMT
|
|
33
|
-
* const parameters = {id: constants.events.MAGNET_ON, sequenceNumber: 3, data: {
|
|
34
|
+
* const parameters = {id: constants.events.MAGNET_ON, sequenceNumber: 3, data: {seconds: 734015840}}
|
|
34
35
|
* const command = new NewEvent(parameters);
|
|
35
36
|
*
|
|
36
37
|
* // output command binary in hex representation
|
|
@@ -62,13 +63,13 @@ class NewEvent extends Command {
|
|
|
62
63
|
case events.EV_OPTOLOW:
|
|
63
64
|
case events.EV_OPTOFLASH:
|
|
64
65
|
case events.EV_REJOIN:
|
|
65
|
-
eventData = {
|
|
66
|
+
eventData = { seconds: buffer.getTime() };
|
|
66
67
|
break;
|
|
67
68
|
case events.BATTERY_ALARM:
|
|
68
69
|
eventData = { voltage: getVoltage(buffer) };
|
|
69
70
|
break;
|
|
70
71
|
case events.ACTIVATE_MTX:
|
|
71
|
-
eventData = {
|
|
72
|
+
eventData = { seconds: buffer.getTime(), deviceId: getDeviceId(buffer) };
|
|
72
73
|
break;
|
|
73
74
|
case events.CONNECT:
|
|
74
75
|
case events.DISCONNECT:
|
|
@@ -101,7 +102,7 @@ class NewEvent extends Command {
|
|
|
101
102
|
case events.EV_OPTOFLASH:
|
|
102
103
|
case events.EV_REJOIN:
|
|
103
104
|
eventData = data;
|
|
104
|
-
buffer.setTime(eventData.
|
|
105
|
+
buffer.setTime(eventData.seconds);
|
|
105
106
|
break;
|
|
106
107
|
case events.BATTERY_ALARM:
|
|
107
108
|
eventData = data;
|
|
@@ -109,7 +110,7 @@ class NewEvent extends Command {
|
|
|
109
110
|
break;
|
|
110
111
|
case events.ACTIVATE_MTX:
|
|
111
112
|
eventData = data;
|
|
112
|
-
buffer.setTime(eventData.
|
|
113
|
+
buffer.setTime(eventData.seconds);
|
|
113
114
|
setDeviceId(buffer, eventData.deviceId);
|
|
114
115
|
break;
|
|
115
116
|
case events.CONNECT:
|
|
@@ -130,7 +131,7 @@ class NewEvent extends Command {
|
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
133
|
NewEvent.id = COMMAND_ID;
|
|
133
|
-
NewEvent.
|
|
134
|
+
NewEvent.directionType = UPLINK;
|
|
134
135
|
NewEvent.title = COMMAND_TITLE;
|
|
135
136
|
export default NewEvent;
|
|
136
137
|
//# sourceMappingURL=NewEvent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewEvent.js","sourceRoot":"","sources":["../../../src/commands/uplink/NewEvent.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"NewEvent.js","sourceRoot":"","sources":["../../../src/commands/uplink/NewEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,7 +48,7 @@ declare class NewStatus extends Command {
|
|
|
48
48
|
parameters: INewStatusParameters;
|
|
49
49
|
constructor(parameters: INewStatusParameters);
|
|
50
50
|
static readonly id = 20;
|
|
51
|
-
static readonly
|
|
51
|
+
static readonly directionType = 2;
|
|
52
52
|
static readonly title = "NEW_STATUS";
|
|
53
53
|
static fromBytes(data: Uint8Array): NewStatus;
|
|
54
54
|
toBytes(): Uint8Array;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import Command from '../../Command.js';
|
|
2
2
|
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
3
|
-
import * as hardwareTypes from '../../constants/hardwareTypes.js';
|
|
4
3
|
import roundNumber from '../../utils/roundNumber.js';
|
|
4
|
+
import * as hardwareTypes from '../../constants/hardwareTypes.js';
|
|
5
|
+
import { UPLINK } from '../../constants/directionTypes.js';
|
|
5
6
|
const COMMAND_ID = 0x14;
|
|
6
7
|
const COMMAND_TITLE = 'NEW_STATUS';
|
|
7
8
|
const COMMAND_BODY_MAX_SIZE = 20;
|
|
@@ -133,7 +134,7 @@ class NewStatus extends Command {
|
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
136
|
NewStatus.id = COMMAND_ID;
|
|
136
|
-
NewStatus.
|
|
137
|
+
NewStatus.directionType = UPLINK;
|
|
137
138
|
NewStatus.title = COMMAND_TITLE;
|
|
138
139
|
export default NewStatus;
|
|
139
140
|
//# sourceMappingURL=NewStatus.js.map
|