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,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [[include:commands/downlink/GetArchiveDaysMul.md]]
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
import Command from '../../Command.js';
|
|
7
|
+
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
8
|
+
import { DOWNLINK } from '../../constants/directionTypes.js';
|
|
9
|
+
import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
|
|
10
|
+
const COMMAND_ID = 0x1b;
|
|
11
|
+
const COMMAND_TITLE = 'GET_ARCHIVE_DAYS_MUL';
|
|
12
|
+
const COMMAND_BODY_SIZE = 4;
|
|
13
|
+
/**
|
|
14
|
+
* Downlink command
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```js
|
|
18
|
+
* import GetArchiveDaysMul from 'jooby-codec/commands/downlink/GetArchiveDaysMul';
|
|
19
|
+
*
|
|
20
|
+
* const parameters = {channels: [0], dayAmount: 1, seconds: 756691200};
|
|
21
|
+
* const command = new GetArchiveDaysMul(parameters);
|
|
22
|
+
*
|
|
23
|
+
* // output command binary in hex representation
|
|
24
|
+
* console.log(command.toHex());
|
|
25
|
+
* // 1b 04 2f 98 01 01
|
|
26
|
+
* ```
|
|
27
|
+
* [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetArchiveDaysMul.md#request)
|
|
28
|
+
*/
|
|
29
|
+
class GetArchiveDaysMul extends Command {
|
|
30
|
+
constructor(parameters) {
|
|
31
|
+
super();
|
|
32
|
+
this.parameters = parameters;
|
|
33
|
+
this.parameters.channels = this.parameters.channels.sort((a, b) => a - b);
|
|
34
|
+
}
|
|
35
|
+
// data - only body (without header)
|
|
36
|
+
static fromBytes(data) {
|
|
37
|
+
if (data.byteLength !== COMMAND_BODY_SIZE) {
|
|
38
|
+
throw new Error(`${this.getName()}. Wrong buffer size: ${data.byteLength}.`);
|
|
39
|
+
}
|
|
40
|
+
const buffer = new CommandBinaryBuffer(data);
|
|
41
|
+
const date = buffer.getDate();
|
|
42
|
+
const channels = buffer.getChannels(true);
|
|
43
|
+
const dayAmount = buffer.getUint8();
|
|
44
|
+
if (!buffer.isEmpty) {
|
|
45
|
+
throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
|
|
46
|
+
}
|
|
47
|
+
return new GetArchiveDaysMul({ channels, dayAmount, seconds: getSecondsFromDate(date) });
|
|
48
|
+
}
|
|
49
|
+
// returns full message - header with body
|
|
50
|
+
toBytes() {
|
|
51
|
+
const { channels, dayAmount, seconds } = this.parameters;
|
|
52
|
+
const buffer = new CommandBinaryBuffer(COMMAND_BODY_SIZE);
|
|
53
|
+
const date = getDateFromSeconds(seconds);
|
|
54
|
+
buffer.setDate(date);
|
|
55
|
+
buffer.setChannels(channels);
|
|
56
|
+
buffer.setUint8(dayAmount);
|
|
57
|
+
return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
GetArchiveDaysMul.id = COMMAND_ID;
|
|
61
|
+
GetArchiveDaysMul.directionType = DOWNLINK;
|
|
62
|
+
GetArchiveDaysMul.title = COMMAND_TITLE;
|
|
63
|
+
export default GetArchiveDaysMul;
|
|
64
|
+
//# sourceMappingURL=GetArchiveDaysMul.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetArchiveDaysMul.js","sourceRoot":"","sources":["../../../src/commands/downlink/GetArchiveDaysMul.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAC,QAAQ,EAAC,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAsB3E,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAC7C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAG5B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,iBAAkB,SAAQ,OAAO;IACnC,YAAqB,UAAgD;QACjE,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAsC;QAGjE,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAQD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,IAAK,IAAI,CAAC,UAAU,KAAK,iBAAiB,EAAG;YACzC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,wBAAwB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SAChF;QAED,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEpC,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,iBAAiB,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC3F,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE3B,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AArCe,oBAAE,GAAG,UAAU,CAAC;AAEhB,+BAAa,GAAG,QAAQ,CAAC;AAEzB,uBAAK,GAAG,aAAa,CAAC;AAqC1C,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [[include:commands/downlink/GetArchiveHoursMul.md]]
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
import Command from '../../Command.js';
|
|
7
|
+
/**
|
|
8
|
+
* GetArchiveHoursMul command parameters
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* // request for 2 hours archive values from channel #1 from 2023-12-23T12:00:00.000Z or 756648000 seconds since 2000 year
|
|
12
|
+
* {channels: [0], hourAmount: 2, seconds: 756648000}
|
|
13
|
+
*/
|
|
14
|
+
interface IDownlinkGetArchiveHoursMulParameters {
|
|
15
|
+
/** amount of hours to retrieve */
|
|
16
|
+
hourAmount: number;
|
|
17
|
+
/** time */
|
|
18
|
+
seconds: number;
|
|
19
|
+
/** array of channels indexes */
|
|
20
|
+
channels: Array<number>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Downlink command
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```js
|
|
27
|
+
* import GetArchiveHoursMul from 'jooby-codec/commands/downlink/GetArchiveHoursMul';
|
|
28
|
+
*
|
|
29
|
+
* const parameters = {channels: [0], hourAmount: 0, seconds: 756648000};
|
|
30
|
+
* const command = new GetArchiveHoursMul(parameters);
|
|
31
|
+
*
|
|
32
|
+
* // output command binary in hex representation
|
|
33
|
+
* console.log(command.toHex());
|
|
34
|
+
* // 1a 04 2f 97 0c 01
|
|
35
|
+
* ```
|
|
36
|
+
* [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetArchiveHoursMul.md#request)
|
|
37
|
+
*/
|
|
38
|
+
declare class GetArchiveHoursMul extends Command {
|
|
39
|
+
parameters: IDownlinkGetArchiveHoursMulParameters;
|
|
40
|
+
constructor(parameters: IDownlinkGetArchiveHoursMulParameters);
|
|
41
|
+
static readonly id = 26;
|
|
42
|
+
static readonly directionType = 1;
|
|
43
|
+
static readonly title = "GET_ARCHIVE_HOURS_MUL";
|
|
44
|
+
static fromBytes(data: Uint8Array): GetArchiveHoursMul;
|
|
45
|
+
toBytes(): Uint8Array;
|
|
46
|
+
}
|
|
47
|
+
export default GetArchiveHoursMul;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [[include:commands/downlink/GetArchiveHoursMul.md]]
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
import Command from '../../Command.js';
|
|
7
|
+
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
8
|
+
import { DOWNLINK } from '../../constants/directionTypes.js';
|
|
9
|
+
import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
|
|
10
|
+
const COMMAND_ID = 0x1a;
|
|
11
|
+
const COMMAND_TITLE = 'GET_ARCHIVE_HOURS_MUL';
|
|
12
|
+
const COMMAND_BODY_SIZE = 4;
|
|
13
|
+
/**
|
|
14
|
+
* Downlink command
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```js
|
|
18
|
+
* import GetArchiveHoursMul from 'jooby-codec/commands/downlink/GetArchiveHoursMul';
|
|
19
|
+
*
|
|
20
|
+
* const parameters = {channels: [0], hourAmount: 0, seconds: 756648000};
|
|
21
|
+
* const command = new GetArchiveHoursMul(parameters);
|
|
22
|
+
*
|
|
23
|
+
* // output command binary in hex representation
|
|
24
|
+
* console.log(command.toHex());
|
|
25
|
+
* // 1a 04 2f 97 0c 01
|
|
26
|
+
* ```
|
|
27
|
+
* [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetArchiveHoursMul.md#request)
|
|
28
|
+
*/
|
|
29
|
+
class GetArchiveHoursMul extends Command {
|
|
30
|
+
constructor(parameters) {
|
|
31
|
+
super();
|
|
32
|
+
this.parameters = parameters;
|
|
33
|
+
this.parameters.channels = this.parameters.channels.sort((a, b) => a - b);
|
|
34
|
+
}
|
|
35
|
+
// data - only body (without header)
|
|
36
|
+
static fromBytes(data) {
|
|
37
|
+
if (data.byteLength !== COMMAND_BODY_SIZE) {
|
|
38
|
+
throw new Error(`${this.getName()}. Wrong buffer size: ${data.byteLength}.`);
|
|
39
|
+
}
|
|
40
|
+
const buffer = new CommandBinaryBuffer(data);
|
|
41
|
+
const date = buffer.getDate();
|
|
42
|
+
const { hour, hours: hourAmount } = buffer.getHours();
|
|
43
|
+
const channels = buffer.getChannels(true);
|
|
44
|
+
date.setUTCHours(hour);
|
|
45
|
+
if (!buffer.isEmpty) {
|
|
46
|
+
throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
|
|
47
|
+
}
|
|
48
|
+
return new GetArchiveHoursMul({ channels, hourAmount, seconds: getSecondsFromDate(date) });
|
|
49
|
+
}
|
|
50
|
+
// returns full message - header with body
|
|
51
|
+
toBytes() {
|
|
52
|
+
const { channels, hourAmount, seconds } = this.parameters;
|
|
53
|
+
const buffer = new CommandBinaryBuffer(COMMAND_BODY_SIZE);
|
|
54
|
+
const date = getDateFromSeconds(seconds);
|
|
55
|
+
const hour = date.getUTCHours();
|
|
56
|
+
buffer.setDate(date);
|
|
57
|
+
buffer.setHours(hour, hourAmount);
|
|
58
|
+
buffer.setChannels(channels);
|
|
59
|
+
return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
GetArchiveHoursMul.id = COMMAND_ID;
|
|
63
|
+
GetArchiveHoursMul.directionType = DOWNLINK;
|
|
64
|
+
GetArchiveHoursMul.title = COMMAND_TITLE;
|
|
65
|
+
export default GetArchiveHoursMul;
|
|
66
|
+
//# sourceMappingURL=GetArchiveHoursMul.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetArchiveHoursMul.js","sourceRoot":"","sources":["../../../src/commands/downlink/GetArchiveHoursMul.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAC,QAAQ,EAAC,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAsB3E,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAC9C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAG5B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,kBAAmB,SAAQ,OAAO;IACpC,YAAqB,UAAiD;QAClE,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAuC;QAGlE,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAQD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,IAAK,IAAI,CAAC,UAAU,KAAK,iBAAiB,EAAG;YACzC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,wBAAwB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SAChF;QAED,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEvB,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,kBAAkB,CAAC,EAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC7F,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE7B,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAxCe,qBAAE,GAAG,UAAU,CAAC;AAEhB,gCAAa,GAAG,QAAQ,CAAC;AAEzB,wBAAK,GAAG,aAAa,CAAC;AAwC1C,eAAe,kBAAkB,CAAC"}
|
|
@@ -17,7 +17,7 @@ import Command from '../../Command.js';
|
|
|
17
17
|
declare class NewStatus extends Command {
|
|
18
18
|
constructor();
|
|
19
19
|
static readonly id = 20;
|
|
20
|
-
static readonly
|
|
20
|
+
static readonly directionType = 1;
|
|
21
21
|
static readonly title = "NEW_STATUS";
|
|
22
22
|
static fromBytes(): NewStatus;
|
|
23
23
|
toBytes(): Uint8Array;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Command from '../../Command.js';
|
|
2
|
+
import { DOWNLINK } from '../../constants/directionTypes.js';
|
|
2
3
|
const COMMAND_ID = 0x14;
|
|
3
4
|
const COMMAND_TITLE = 'NEW_STATUS';
|
|
4
5
|
/**
|
|
@@ -30,7 +31,7 @@ class NewStatus extends Command {
|
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
NewStatus.id = COMMAND_ID;
|
|
33
|
-
NewStatus.
|
|
34
|
+
NewStatus.directionType = DOWNLINK;
|
|
34
35
|
NewStatus.title = COMMAND_TITLE;
|
|
35
36
|
export default NewStatus;
|
|
36
37
|
//# sourceMappingURL=NewStatus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewStatus.js","sourceRoot":"","sources":["../../../src/commands/downlink/NewStatus.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"NewStatus.js","sourceRoot":"","sources":["../../../src/commands/downlink/NewStatus.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,QAAQ,EAAC,MAAM,mCAAmC,CAAC;AAG3D,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,YAAY,CAAC;AAGnC;;;;;;;;;;;;;;GAcG;AACH,MAAM,SAAU,SAAQ,OAAO;IAC3B;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAQD,oCAAoC;IACpC,MAAM,CAAC,SAAS;QACZ,OAAO,IAAI,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED,kDAAkD;IAClD,OAAO;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;;AAde,YAAE,GAAG,UAAU,CAAC;AAEhB,uBAAa,GAAG,QAAQ,CAAC;AAEzB,eAAK,GAAG,aAAa,CAAC;AAc1C,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [[include:commands/downlink/SetParameter.md]]
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
import Command from '../../Command.js';
|
|
7
|
+
/**
|
|
8
|
+
* Initial values for pulse devices.
|
|
9
|
+
*/
|
|
10
|
+
interface IParameterInitialData {
|
|
11
|
+
/**
|
|
12
|
+
* 4 byte int BE
|
|
13
|
+
*/
|
|
14
|
+
value: number;
|
|
15
|
+
/**
|
|
16
|
+
* 4 byte int BE
|
|
17
|
+
*/
|
|
18
|
+
meterValue: number;
|
|
19
|
+
pulseCoefficient: number;
|
|
20
|
+
}
|
|
21
|
+
interface IParameterInitialDataMultiChannel extends IParameterInitialData {
|
|
22
|
+
/**
|
|
23
|
+
* Channel that accept initial values.
|
|
24
|
+
*/
|
|
25
|
+
channel: number;
|
|
26
|
+
}
|
|
27
|
+
interface IParameterAbsoluteDataStatus {
|
|
28
|
+
status: number;
|
|
29
|
+
}
|
|
30
|
+
type TParameter = IParameterInitialData | IParameterInitialDataMultiChannel | IParameterAbsoluteDataStatus;
|
|
31
|
+
/**
|
|
32
|
+
* SetParameter command parameters
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* import {constants} from 'jooby-codec';
|
|
36
|
+
* {id: constants.deviceParameters.INITIAL_DATA, data: {value: 2023, meterValue: 204, pulseCoefficient: 100}}
|
|
37
|
+
*/
|
|
38
|
+
interface ISetParameterParameters {
|
|
39
|
+
/**
|
|
40
|
+
* Parameter id - one of `constants/deviceParameters`.
|
|
41
|
+
*/
|
|
42
|
+
id: number;
|
|
43
|
+
/**
|
|
44
|
+
* Parameter data, different - depending on id.
|
|
45
|
+
*/
|
|
46
|
+
data: TParameter;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Downlink command.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```js
|
|
53
|
+
* import SetParameter from 'jooby-codec/commands/downlink/SetParameter';
|
|
54
|
+
*
|
|
55
|
+
* const parameters = {id: constants.deviceParameters.INITIAL_DATA, data: {value: 2023, meterValue: 204, pulseCoefficient: 100}};
|
|
56
|
+
* const command = new SetParameter(parameters);
|
|
57
|
+
*
|
|
58
|
+
* // output command binary in hex representation
|
|
59
|
+
* console.log(command.toHex());
|
|
60
|
+
* // 03 0a 17 00 00 00 cc 82 00 00 07 e7
|
|
61
|
+
* ```
|
|
62
|
+
* [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/downlink/SetParameter.md)
|
|
63
|
+
*/
|
|
64
|
+
declare class SetParameter extends Command {
|
|
65
|
+
parameters: ISetParameterParameters;
|
|
66
|
+
constructor(parameters: ISetParameterParameters);
|
|
67
|
+
static readonly id = 3;
|
|
68
|
+
static readonly directionType = 1;
|
|
69
|
+
static readonly title = "SET_PARAMETER";
|
|
70
|
+
static fromBytes(data: Uint8Array): SetParameter;
|
|
71
|
+
toBytes(): Uint8Array;
|
|
72
|
+
}
|
|
73
|
+
export default SetParameter;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [[include:commands/downlink/SetParameter.md]]
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
import Command from '../../Command.js';
|
|
7
|
+
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
8
|
+
import { DOWNLINK } from '../../constants/directionTypes.js';
|
|
9
|
+
import * as deviceParameters from '../../constants/deviceParameters.js';
|
|
10
|
+
const COMMAND_ID = 0x03;
|
|
11
|
+
const COMMAND_TITLE = 'SET_PARAMETER';
|
|
12
|
+
// max size for current implementation
|
|
13
|
+
const COMMAND_MAX_BODY_SIZE = 11;
|
|
14
|
+
const byteToPulseCoefficientMap = new Map([
|
|
15
|
+
[0x80, 1000],
|
|
16
|
+
[0x81, 5000],
|
|
17
|
+
[0x82, 100],
|
|
18
|
+
[0x83, 10],
|
|
19
|
+
[0x84, 1],
|
|
20
|
+
[0x85, 0.1],
|
|
21
|
+
[0x86, 0.01]
|
|
22
|
+
]);
|
|
23
|
+
const pulseCoefficientToByteMap = new Map([...byteToPulseCoefficientMap.entries()].map(([key, value]) => [value, key]));
|
|
24
|
+
const isMSBSet = (value) => !!(value & 0x80);
|
|
25
|
+
const getPulseCoefficient = (buffer) => {
|
|
26
|
+
const pulseCoefficient = buffer.getUint8();
|
|
27
|
+
if (isMSBSet(pulseCoefficient)) {
|
|
28
|
+
const value = byteToPulseCoefficientMap.get(pulseCoefficient);
|
|
29
|
+
if (value) {
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
throw new Error('pulseCoefficient MSB is set, but value unknown');
|
|
33
|
+
}
|
|
34
|
+
return pulseCoefficient;
|
|
35
|
+
};
|
|
36
|
+
const setPulseCoefficient = (buffer, value) => {
|
|
37
|
+
if (pulseCoefficientToByteMap.has(value)) {
|
|
38
|
+
const byte = pulseCoefficientToByteMap.get(value);
|
|
39
|
+
if (byte) {
|
|
40
|
+
buffer.setUint8(byte);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
throw new Error('pulseCoefficient MSB is set, but value unknown');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
buffer.setUint8(value);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Downlink command.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```js
|
|
55
|
+
* import SetParameter from 'jooby-codec/commands/downlink/SetParameter';
|
|
56
|
+
*
|
|
57
|
+
* const parameters = {id: constants.deviceParameters.INITIAL_DATA, data: {value: 2023, meterValue: 204, pulseCoefficient: 100}};
|
|
58
|
+
* const command = new SetParameter(parameters);
|
|
59
|
+
*
|
|
60
|
+
* // output command binary in hex representation
|
|
61
|
+
* console.log(command.toHex());
|
|
62
|
+
* // 03 0a 17 00 00 00 cc 82 00 00 07 e7
|
|
63
|
+
* ```
|
|
64
|
+
* [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/downlink/SetParameter.md)
|
|
65
|
+
*/
|
|
66
|
+
class SetParameter extends Command {
|
|
67
|
+
constructor(parameters) {
|
|
68
|
+
super();
|
|
69
|
+
this.parameters = parameters;
|
|
70
|
+
}
|
|
71
|
+
// data - only body (without header)
|
|
72
|
+
static fromBytes(data) {
|
|
73
|
+
const buffer = new CommandBinaryBuffer(data);
|
|
74
|
+
const id = buffer.getUint8();
|
|
75
|
+
let parameterData;
|
|
76
|
+
switch (id) {
|
|
77
|
+
case deviceParameters.INITIAL_DATA:
|
|
78
|
+
parameterData = {
|
|
79
|
+
meterValue: buffer.getUint32(false),
|
|
80
|
+
pulseCoefficient: getPulseCoefficient(buffer),
|
|
81
|
+
value: buffer.getUint32(false)
|
|
82
|
+
};
|
|
83
|
+
break;
|
|
84
|
+
case deviceParameters.INITIAL_DATA_MULTI_CHANNEL:
|
|
85
|
+
parameterData = {
|
|
86
|
+
channel: buffer.getUint8(),
|
|
87
|
+
meterValue: buffer.getUint32(false),
|
|
88
|
+
pulseCoefficient: getPulseCoefficient(buffer),
|
|
89
|
+
value: buffer.getUint32(false)
|
|
90
|
+
};
|
|
91
|
+
break;
|
|
92
|
+
case deviceParameters.ABSOLUTE_DATA_STATUS:
|
|
93
|
+
parameterData = {
|
|
94
|
+
status: buffer.getUint8()
|
|
95
|
+
};
|
|
96
|
+
break;
|
|
97
|
+
default:
|
|
98
|
+
throw new Error(`${SetParameter.getId()}: parameter ${id} is not supported`);
|
|
99
|
+
}
|
|
100
|
+
return new SetParameter({ id, data: parameterData });
|
|
101
|
+
}
|
|
102
|
+
// returns full message - header with body
|
|
103
|
+
toBytes() {
|
|
104
|
+
const { id, data } = this.parameters;
|
|
105
|
+
const buffer = new CommandBinaryBuffer(COMMAND_MAX_BODY_SIZE);
|
|
106
|
+
let parameterData;
|
|
107
|
+
buffer.setUint8(id);
|
|
108
|
+
switch (id) {
|
|
109
|
+
case deviceParameters.INITIAL_DATA:
|
|
110
|
+
parameterData = data;
|
|
111
|
+
buffer.setUint32(parameterData.meterValue, false);
|
|
112
|
+
setPulseCoefficient(buffer, parameterData.pulseCoefficient);
|
|
113
|
+
buffer.setUint32(parameterData.value, false);
|
|
114
|
+
break;
|
|
115
|
+
case deviceParameters.INITIAL_DATA_MULTI_CHANNEL:
|
|
116
|
+
parameterData = data;
|
|
117
|
+
buffer.setUint8(parameterData.channel);
|
|
118
|
+
buffer.setUint32(parameterData.meterValue, false);
|
|
119
|
+
setPulseCoefficient(buffer, parameterData.pulseCoefficient);
|
|
120
|
+
buffer.setUint32(parameterData.value, false);
|
|
121
|
+
break;
|
|
122
|
+
case deviceParameters.ABSOLUTE_DATA_STATUS:
|
|
123
|
+
parameterData = data;
|
|
124
|
+
buffer.setUint8(parameterData.status);
|
|
125
|
+
break;
|
|
126
|
+
default:
|
|
127
|
+
throw new Error(`${SetParameter.getId()}: parameter ${id} is not supported`);
|
|
128
|
+
}
|
|
129
|
+
return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
SetParameter.id = COMMAND_ID;
|
|
133
|
+
SetParameter.directionType = DOWNLINK;
|
|
134
|
+
SetParameter.title = COMMAND_TITLE;
|
|
135
|
+
export default SetParameter;
|
|
136
|
+
//# sourceMappingURL=SetParameter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetParameter.js","sourceRoot":"","sources":["../../../src/commands/downlink/SetParameter.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,13 +9,13 @@ import Command from '../../Command.js';
|
|
|
9
9
|
*
|
|
10
10
|
* @example
|
|
11
11
|
* // time: 2023-04-03T14:01:17.000Z
|
|
12
|
-
* {sequenceNumber: 77,
|
|
12
|
+
* {sequenceNumber: 77, seconds: 733845677}
|
|
13
13
|
*/
|
|
14
14
|
interface IDownlinkSetTime2000Parameters {
|
|
15
|
-
/**
|
|
15
|
+
/** unique time manipulation operation number */
|
|
16
16
|
sequenceNumber: number;
|
|
17
17
|
/** seconds */
|
|
18
|
-
|
|
18
|
+
seconds: number;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Downlink command.
|
|
@@ -24,7 +24,7 @@ interface IDownlinkSetTime2000Parameters {
|
|
|
24
24
|
* ```js
|
|
25
25
|
* import SetTime2000 from 'jooby-codec/commands/downlink/SetTime2000';
|
|
26
26
|
*
|
|
27
|
-
* const parameters = {sequenceNumber: 78,
|
|
27
|
+
* const parameters = {sequenceNumber: 78, seconds: 123456};
|
|
28
28
|
* const command = new SetTime2000(parameters);
|
|
29
29
|
*
|
|
30
30
|
* // output command binary in hex representation
|
|
@@ -37,7 +37,7 @@ declare class SetTime2000 extends Command {
|
|
|
37
37
|
parameters: IDownlinkSetTime2000Parameters;
|
|
38
38
|
constructor(parameters: IDownlinkSetTime2000Parameters);
|
|
39
39
|
static readonly id = 2;
|
|
40
|
-
static readonly
|
|
40
|
+
static readonly directionType = 1;
|
|
41
41
|
static readonly title = "SET_TIME_2000";
|
|
42
42
|
static fromBytes(data: Uint8Array): SetTime2000;
|
|
43
43
|
toBytes(): Uint8Array;
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import Command from '../../Command.js';
|
|
7
7
|
import BinaryBuffer from '../../BinaryBuffer.js';
|
|
8
|
+
import { DOWNLINK } from '../../constants/directionTypes.js';
|
|
8
9
|
const COMMAND_ID = 0x02;
|
|
9
10
|
const COMMAND_TITLE = 'SET_TIME_2000';
|
|
10
11
|
const COMMAND_BODY_SIZE = 5;
|
|
@@ -15,7 +16,7 @@ const COMMAND_BODY_SIZE = 5;
|
|
|
15
16
|
* ```js
|
|
16
17
|
* import SetTime2000 from 'jooby-codec/commands/downlink/SetTime2000';
|
|
17
18
|
*
|
|
18
|
-
* const parameters = {sequenceNumber: 78,
|
|
19
|
+
* const parameters = {sequenceNumber: 78, seconds: 123456};
|
|
19
20
|
* const command = new SetTime2000(parameters);
|
|
20
21
|
*
|
|
21
22
|
* // output command binary in hex representation
|
|
@@ -37,7 +38,7 @@ class SetTime2000 extends Command {
|
|
|
37
38
|
const buffer = new BinaryBuffer(data, false);
|
|
38
39
|
const parameters = {
|
|
39
40
|
sequenceNumber: buffer.getUint8(),
|
|
40
|
-
|
|
41
|
+
seconds: buffer.getInt32()
|
|
41
42
|
};
|
|
42
43
|
if (!buffer.isEmpty) {
|
|
43
44
|
throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
|
|
@@ -46,15 +47,15 @@ class SetTime2000 extends Command {
|
|
|
46
47
|
}
|
|
47
48
|
// returns full message - header with body
|
|
48
49
|
toBytes() {
|
|
49
|
-
const { sequenceNumber,
|
|
50
|
+
const { sequenceNumber, seconds } = this.parameters;
|
|
50
51
|
const buffer = new BinaryBuffer(COMMAND_BODY_SIZE, false);
|
|
51
52
|
buffer.setUint8(sequenceNumber);
|
|
52
|
-
buffer.setInt32(
|
|
53
|
+
buffer.setInt32(seconds);
|
|
53
54
|
return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
SetTime2000.id = COMMAND_ID;
|
|
57
|
-
SetTime2000.
|
|
58
|
+
SetTime2000.directionType = DOWNLINK;
|
|
58
59
|
SetTime2000.title = COMMAND_TITLE;
|
|
59
60
|
export default SetTime2000;
|
|
60
61
|
//# sourceMappingURL=SetTime2000.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetTime2000.js","sourceRoot":"","sources":["../../../src/commands/downlink/SetTime2000.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,YAAY,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"SetTime2000.js","sourceRoot":"","sources":["../../../src/commands/downlink/SetTime2000.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAC,MAAM,mCAAmC,CAAC;AAkB3D,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAG5B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAY,SAAQ,OAAO;IAC7B,YAAqB,UAA0C;QAC3D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAgC;IAE/D,CAAC;IAQD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,IAAK,IAAI,CAAC,UAAU,KAAK,iBAAiB,EAAG;YACzC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,wBAAwB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SAChF;QAED,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG;YACf,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE;YACjC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE;SAC7B,CAAC;QAEF,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,cAAc,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAE1D,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEzB,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAlCe,cAAE,GAAG,UAAU,CAAC;AAEhB,yBAAa,GAAG,QAAQ,CAAC;AAEzB,iBAAK,GAAG,aAAa,CAAC;AAkC1C,eAAe,WAAW,CAAC"}
|
|
@@ -16,7 +16,7 @@ import Command from '../../Command.js';
|
|
|
16
16
|
*/
|
|
17
17
|
declare class SoftRestart extends Command {
|
|
18
18
|
static readonly id = 25;
|
|
19
|
-
static readonly
|
|
19
|
+
static readonly directionType = 1;
|
|
20
20
|
static readonly title = "SOFT_RESTART";
|
|
21
21
|
static fromBytes(): SoftRestart;
|
|
22
22
|
toBytes(): Uint8Array;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Command from '../../Command.js';
|
|
2
|
+
import { DOWNLINK } from '../../constants/directionTypes.js';
|
|
2
3
|
const COMMAND_ID = 0x19;
|
|
3
4
|
const COMMAND_TITLE = 'SOFT_RESTART';
|
|
4
5
|
/**
|
|
@@ -27,7 +28,7 @@ class SoftRestart extends Command {
|
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
SoftRestart.id = COMMAND_ID;
|
|
30
|
-
SoftRestart.
|
|
31
|
+
SoftRestart.directionType = DOWNLINK;
|
|
31
32
|
SoftRestart.title = COMMAND_TITLE;
|
|
32
33
|
export default SoftRestart;
|
|
33
34
|
//# sourceMappingURL=SoftRestart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SoftRestart.js","sourceRoot":"","sources":["../../../src/commands/downlink/SoftRestart.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"SoftRestart.js","sourceRoot":"","sources":["../../../src/commands/downlink/SoftRestart.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,QAAQ,EAAC,MAAM,mCAAmC,CAAC;AAG3D,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,cAAc,CAAC;AAGrC;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAY,SAAQ,OAAO;IAO7B,oCAAoC;IACpC,MAAM,CAAC,SAAS;QACZ,OAAO,IAAI,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,kDAAkD;IAClD,OAAO;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;;AAde,cAAE,GAAG,UAAU,CAAC;AAEhB,yBAAa,GAAG,QAAQ,CAAC;AAEzB,iBAAK,GAAG,aAAa,CAAC;AAc1C,eAAe,WAAW,CAAC"}
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
* @packageDocumentation
|
|
5
5
|
*/
|
|
6
6
|
export { default as CorrectTime2000 } from './CorrectTime2000.js';
|
|
7
|
+
export { default as ExAbsArchiveDaysMul } from './ExAbsArchiveDaysMul.js';
|
|
8
|
+
export { default as ExAbsArchiveHoursMul } from './ExAbsArchiveHoursMul.js';
|
|
9
|
+
export { default as GetArchiveDaysMul } from './GetArchiveDaysMul.js';
|
|
10
|
+
export { default as GetArchiveHoursMul } from './GetArchiveHoursMul.js';
|
|
7
11
|
export { default as NewStatus } from './NewStatus.js';
|
|
12
|
+
export { default as SetParameter } from './SetParameter.js';
|
|
8
13
|
export { default as SetTime2000 } from './SetTime2000.js';
|
|
9
14
|
export { default as SoftRestart } from './SoftRestart.js';
|
|
@@ -4,7 +4,12 @@
|
|
|
4
4
|
* @packageDocumentation
|
|
5
5
|
*/
|
|
6
6
|
export { default as CorrectTime2000 } from './CorrectTime2000.js';
|
|
7
|
+
export { default as ExAbsArchiveDaysMul } from './ExAbsArchiveDaysMul.js';
|
|
8
|
+
export { default as ExAbsArchiveHoursMul } from './ExAbsArchiveHoursMul.js';
|
|
9
|
+
export { default as GetArchiveDaysMul } from './GetArchiveDaysMul.js';
|
|
10
|
+
export { default as GetArchiveHoursMul } from './GetArchiveHoursMul.js';
|
|
7
11
|
export { default as NewStatus } from './NewStatus.js';
|
|
12
|
+
export { default as SetParameter } from './SetParameter.js';
|
|
8
13
|
export { default as SetTime2000 } from './SetTime2000.js';
|
|
9
14
|
export { default as SoftRestart } from './SoftRestart.js';
|
|
10
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/downlink/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/downlink/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAC,OAAO,IAAI,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAC,OAAO,IAAI,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,kBAAkB,CAAC"}
|
|
@@ -29,7 +29,7 @@ declare class CorrectTime2000 extends Command {
|
|
|
29
29
|
parameters: IUplinkCorrectTime2000Parameters;
|
|
30
30
|
constructor(parameters: IUplinkCorrectTime2000Parameters);
|
|
31
31
|
static readonly id = 12;
|
|
32
|
-
static readonly
|
|
32
|
+
static readonly directionType = 2;
|
|
33
33
|
static readonly title = "CORRECT_TIME_2000";
|
|
34
34
|
static fromBytes(data: Uint8Array): CorrectTime2000;
|
|
35
35
|
toBytes(): Uint8Array;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Command from '../../Command.js';
|
|
2
2
|
import BinaryBuffer from '../../BinaryBuffer.js';
|
|
3
|
+
import { UPLINK } from '../../constants/directionTypes.js';
|
|
3
4
|
const COMMAND_ID = 0x0c;
|
|
4
5
|
const COMMAND_TITLE = 'CORRECT_TIME_2000';
|
|
5
6
|
const COMMAND_BODY_SIZE = 1;
|
|
@@ -47,7 +48,7 @@ class CorrectTime2000 extends Command {
|
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
50
|
CorrectTime2000.id = COMMAND_ID;
|
|
50
|
-
CorrectTime2000.
|
|
51
|
+
CorrectTime2000.directionType = UPLINK;
|
|
51
52
|
CorrectTime2000.title = COMMAND_TITLE;
|
|
52
53
|
export default CorrectTime2000;
|
|
53
54
|
//# sourceMappingURL=CorrectTime2000.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CorrectTime2000.js","sourceRoot":"","sources":["../../../src/commands/uplink/CorrectTime2000.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"CorrectTime2000.js","sourceRoot":"","sources":["../../../src/commands/uplink/CorrectTime2000.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAczD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAG5B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,eAAgB,SAAQ,OAAO;IACjC,YAAqB,UAA4C;QAC7D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAkC;IAEjE,CAAC;IAQD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,IAAK,IAAI,CAAC,UAAU,KAAK,iBAAiB,EAAG;YACzC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,wBAAwB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SAChF;QAED,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE7C,MAAM,UAAU,GAAG;YACf,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;SAC5B,CAAC;QAEF,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO;QACH,MAAM,EAAC,MAAM,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAE1D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAExB,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAhCe,kBAAE,GAAG,UAAU,CAAC;AAEhB,6BAAa,GAAG,MAAM,CAAC;AAEvB,qBAAK,GAAG,aAAa,CAAC;AAgC1C,eAAe,eAAe,CAAC"}
|
|
@@ -6,13 +6,13 @@ interface IDataDayMulParameters extends IGetCurrentMulParameters {
|
|
|
6
6
|
/**
|
|
7
7
|
* Seconds since year 2000, i.e. timestamp (in seconds) - 946684800
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
seconds: number;
|
|
10
10
|
}
|
|
11
11
|
declare class DataDayMul extends GetCurrentMul {
|
|
12
12
|
parameters: IDataDayMulParameters;
|
|
13
13
|
constructor(parameters: IDataDayMulParameters);
|
|
14
14
|
static readonly id = 22;
|
|
15
|
-
static readonly
|
|
15
|
+
static readonly directionType = 2;
|
|
16
16
|
static readonly title = "DATA_DAY_MUL";
|
|
17
17
|
static fromBytes(data: Uint8Array): DataDayMul;
|
|
18
18
|
toBytes(): Uint8Array;
|