jooby-codec 1.4.0 → 1.5.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/CommandBinaryBuffer.d.ts +40 -23
- package/dist/CommandBinaryBuffer.js +93 -58
- package/dist/CommandBinaryBuffer.js.map +1 -1
- package/dist/commands/downlink/ExAbsArchiveDaysMC.d.ts +2 -2
- package/dist/commands/downlink/ExAbsArchiveDaysMC.js +6 -6
- package/dist/commands/downlink/ExAbsArchiveDaysMC.js.map +1 -1
- package/dist/commands/downlink/ExAbsArchiveHoursMC.d.ts +2 -2
- package/dist/commands/downlink/ExAbsArchiveHoursMC.js +6 -6
- package/dist/commands/downlink/ExAbsArchiveHoursMC.js.map +1 -1
- package/dist/commands/downlink/ExAbsCurrentMC.d.ts +30 -0
- package/dist/commands/downlink/ExAbsCurrentMC.js +43 -0
- package/dist/commands/downlink/ExAbsCurrentMC.js.map +1 -0
- package/dist/commands/downlink/GetArchiveDaysMC.d.ts +2 -2
- package/dist/commands/downlink/GetArchiveDaysMC.js +6 -6
- package/dist/commands/downlink/GetArchiveDaysMC.js.map +1 -1
- package/dist/commands/downlink/GetArchiveHoursMC.d.ts +2 -2
- package/dist/commands/downlink/GetArchiveHoursMC.js +6 -6
- package/dist/commands/downlink/GetArchiveHoursMC.js.map +1 -1
- package/dist/commands/downlink/SetParameter.d.ts +7 -1
- package/dist/commands/downlink/SetParameter.js +11 -0
- package/dist/commands/downlink/SetParameter.js.map +1 -1
- package/dist/commands/downlink/index.d.ts +1 -0
- package/dist/commands/downlink/index.js +1 -0
- package/dist/commands/downlink/index.js.map +1 -1
- package/dist/commands/uplink/DataDayMC.d.ts +2 -2
- package/dist/commands/uplink/DataDayMC.js +8 -8
- package/dist/commands/uplink/DataDayMC.js.map +1 -1
- package/dist/commands/uplink/DataHourMC.d.ts +10 -4
- package/dist/commands/uplink/DataHourMC.js +13 -35
- package/dist/commands/uplink/DataHourMC.js.map +1 -1
- package/dist/commands/uplink/ExAbsArchiveDaysMC.d.ts +9 -38
- package/dist/commands/uplink/ExAbsArchiveDaysMC.js +16 -38
- package/dist/commands/uplink/ExAbsArchiveDaysMC.js.map +1 -1
- package/dist/commands/uplink/ExAbsArchiveHoursMC.d.ts +13 -7
- package/dist/commands/uplink/ExAbsArchiveHoursMC.js +24 -60
- package/dist/commands/uplink/ExAbsArchiveHoursMC.js.map +1 -1
- package/dist/commands/uplink/ExAbsCurrentMC.d.ts +15 -0
- package/dist/commands/uplink/ExAbsCurrentMC.js +30 -0
- package/dist/commands/uplink/ExAbsCurrentMC.js.map +1 -0
- package/dist/commands/uplink/ExAbsDayMC.d.ts +8 -3
- package/dist/commands/uplink/ExAbsDayMC.js +10 -36
- package/dist/commands/uplink/ExAbsDayMC.js.map +1 -1
- package/dist/commands/uplink/ExAbsHourMC.d.ts +58 -6
- package/dist/commands/uplink/ExAbsHourMC.js +45 -50
- package/dist/commands/uplink/ExAbsHourMC.js.map +1 -1
- package/dist/commands/uplink/GetArchiveDaysMC.d.ts +5 -29
- package/dist/commands/uplink/GetArchiveDaysMC.js +11 -37
- package/dist/commands/uplink/GetArchiveDaysMC.js.map +1 -1
- package/dist/commands/uplink/GetArchiveHoursMC.d.ts +47 -7
- package/dist/commands/uplink/GetArchiveHoursMC.js +43 -23
- package/dist/commands/uplink/GetArchiveHoursMC.js.map +1 -1
- package/dist/commands/uplink/GetCurrentMC.d.ts +2 -8
- package/dist/commands/uplink/GetCurrentMC.js +3 -3
- package/dist/commands/uplink/GetCurrentMC.js.map +1 -1
- package/dist/commands/uplink/index.d.ts +1 -0
- package/dist/commands/uplink/index.js +1 -0
- package/dist/commands/uplink/index.js.map +1 -1
- package/dist/constants/deviceParameters.d.ts +5 -1
- package/dist/constants/deviceParameters.js +5 -1
- package/dist/constants/deviceParameters.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,7 +8,7 @@ import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
|
8
8
|
import { DOWNLINK } from '../../constants/directionTypes.js';
|
|
9
9
|
import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
|
|
10
10
|
const COMMAND_ID = 0x1b;
|
|
11
|
-
const COMMAND_TITLE = '
|
|
11
|
+
const COMMAND_TITLE = 'GET_ARCHIVE_DAYS_MC';
|
|
12
12
|
const COMMAND_BODY_SIZE = 4;
|
|
13
13
|
/**
|
|
14
14
|
* Downlink command
|
|
@@ -39,20 +39,20 @@ class GetArchiveDaysMC extends Command {
|
|
|
39
39
|
}
|
|
40
40
|
const buffer = new CommandBinaryBuffer(data);
|
|
41
41
|
const date = buffer.getDate();
|
|
42
|
-
const channelList = buffer.getChannels(
|
|
42
|
+
const channelList = buffer.getChannels();
|
|
43
43
|
const days = buffer.getUint8();
|
|
44
44
|
if (!buffer.isEmpty) {
|
|
45
45
|
throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
|
|
46
46
|
}
|
|
47
|
-
return new GetArchiveDaysMC({ channelList, days,
|
|
47
|
+
return new GetArchiveDaysMC({ channelList, days, startTime: getSecondsFromDate(date) });
|
|
48
48
|
}
|
|
49
49
|
// returns full message - header with body
|
|
50
50
|
toBytes() {
|
|
51
|
-
const { channelList, days,
|
|
51
|
+
const { channelList, days, startTime } = this.parameters;
|
|
52
52
|
const buffer = new CommandBinaryBuffer(COMMAND_BODY_SIZE);
|
|
53
|
-
const date = getDateFromSeconds(
|
|
53
|
+
const date = getDateFromSeconds(startTime);
|
|
54
54
|
buffer.setDate(date);
|
|
55
|
-
buffer.setChannels(channelList);
|
|
55
|
+
buffer.setChannels(channelList.map(index => ({ index })));
|
|
56
56
|
buffer.setUint8(days);
|
|
57
57
|
return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
|
|
58
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetArchiveDaysMC.js","sourceRoot":"","sources":["../../../src/commands/downlink/GetArchiveDaysMC.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"GetArchiveDaysMC.js","sourceRoot":"","sources":["../../../src/commands/downlink/GetArchiveDaysMC.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAA+B,MAAM,8BAA8B,CAAC;AAC3E,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,qBAAqB,CAAC;AAC5C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAG5B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,gBAAiB,SAAQ,OAAO;IAClC,YAAqB,UAA+C;QAChE,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAqC;QAGhE,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,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,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAE/B,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,gBAAgB,CAAC,EAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC1F,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE3C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAC,KAAK,EAAc,CAAA,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEtB,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AArCe,mBAAE,GAAG,UAAU,CAAC;AAEhB,8BAAa,GAAG,QAAQ,CAAC;AAEzB,sBAAK,GAAG,aAAa,CAAC;AAqC1C,eAAe,gBAAgB,CAAC"}
|
|
@@ -15,7 +15,7 @@ interface IDownlinkGetArchiveHoursMCParameters {
|
|
|
15
15
|
/** amount of hours to retrieve */
|
|
16
16
|
hours: number;
|
|
17
17
|
/** time */
|
|
18
|
-
|
|
18
|
+
startTime: number;
|
|
19
19
|
/** array of channelList indexes */
|
|
20
20
|
channelList: Array<number>;
|
|
21
21
|
}
|
|
@@ -40,7 +40,7 @@ declare class GetArchiveHoursMC extends Command {
|
|
|
40
40
|
constructor(parameters: IDownlinkGetArchiveHoursMCParameters);
|
|
41
41
|
static readonly id = 26;
|
|
42
42
|
static readonly directionType = 1;
|
|
43
|
-
static readonly title = "
|
|
43
|
+
static readonly title = "GET_ARCHIVE_HOURS_MC";
|
|
44
44
|
static fromBytes(data: Uint8Array): GetArchiveHoursMC;
|
|
45
45
|
toBytes(): Uint8Array;
|
|
46
46
|
}
|
|
@@ -8,7 +8,7 @@ import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
|
8
8
|
import { DOWNLINK } from '../../constants/directionTypes.js';
|
|
9
9
|
import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
|
|
10
10
|
const COMMAND_ID = 0x1a;
|
|
11
|
-
const COMMAND_TITLE = '
|
|
11
|
+
const COMMAND_TITLE = 'GET_ARCHIVE_HOURS_MC';
|
|
12
12
|
const COMMAND_BODY_SIZE = 4;
|
|
13
13
|
/**
|
|
14
14
|
* Downlink command
|
|
@@ -40,22 +40,22 @@ class GetArchiveHoursMC extends Command {
|
|
|
40
40
|
const buffer = new CommandBinaryBuffer(data);
|
|
41
41
|
const date = buffer.getDate();
|
|
42
42
|
const { hour, hours } = buffer.getHours();
|
|
43
|
-
const channelList = buffer.getChannels(
|
|
43
|
+
const channelList = buffer.getChannels();
|
|
44
44
|
date.setUTCHours(hour);
|
|
45
45
|
if (!buffer.isEmpty) {
|
|
46
46
|
throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
|
|
47
47
|
}
|
|
48
|
-
return new GetArchiveHoursMC({ channelList, hours,
|
|
48
|
+
return new GetArchiveHoursMC({ channelList, hours, startTime: getSecondsFromDate(date) });
|
|
49
49
|
}
|
|
50
50
|
// returns full message - header with body
|
|
51
51
|
toBytes() {
|
|
52
|
-
const { channelList, hours,
|
|
52
|
+
const { channelList, hours, startTime } = this.parameters;
|
|
53
53
|
const buffer = new CommandBinaryBuffer(COMMAND_BODY_SIZE);
|
|
54
|
-
const date = getDateFromSeconds(
|
|
54
|
+
const date = getDateFromSeconds(startTime);
|
|
55
55
|
const hour = date.getUTCHours();
|
|
56
56
|
buffer.setDate(date);
|
|
57
57
|
buffer.setHours(hour, hours);
|
|
58
|
-
buffer.setChannels(channelList);
|
|
58
|
+
buffer.setChannels(channelList.map(index => ({ index })));
|
|
59
59
|
return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
|
|
60
60
|
}
|
|
61
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetArchiveHoursMC.js","sourceRoot":"","sources":["../../../src/commands/downlink/GetArchiveHoursMC.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"GetArchiveHoursMC.js","sourceRoot":"","sources":["../../../src/commands/downlink/GetArchiveHoursMC.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAA+B,MAAM,8BAA8B,CAAC;AAC3E,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,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,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,EAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAEzC,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,iBAAiB,CAAC,EAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC5F,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAC,KAAK,EAAc,CAAA,CAAC,CAAC,CAAC;QAEpE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAxCe,oBAAE,GAAG,UAAU,CAAC;AAEhB,+BAAa,GAAG,QAAQ,CAAC;AAEzB,uBAAK,GAAG,aAAa,CAAC;AAwC1C,eAAe,iBAAiB,CAAC"}
|
|
@@ -27,7 +27,13 @@ interface IParameterInitialDataMC extends IParameterInitialData {
|
|
|
27
27
|
interface IParameterAbsoluteDataStatus {
|
|
28
28
|
status: number;
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
interface IParameterAbsoluteDataStatusMC extends IParameterAbsoluteDataStatus {
|
|
31
|
+
/**
|
|
32
|
+
* Channel that accept status changing.
|
|
33
|
+
*/
|
|
34
|
+
channel: number;
|
|
35
|
+
}
|
|
36
|
+
type TParameter = IParameterInitialData | IParameterInitialDataMC | IParameterAbsoluteDataStatus | IParameterAbsoluteDataStatusMC;
|
|
31
37
|
/**
|
|
32
38
|
* SetParameter command parameters
|
|
33
39
|
*
|
|
@@ -94,6 +94,12 @@ class SetParameter extends Command {
|
|
|
94
94
|
status: buffer.getUint8()
|
|
95
95
|
};
|
|
96
96
|
break;
|
|
97
|
+
case deviceParameters.ABSOLUTE_DATA_STATUS_MULTI_CHANNEL:
|
|
98
|
+
parameterData = {
|
|
99
|
+
channel: buffer.getUint8(),
|
|
100
|
+
status: buffer.getUint8()
|
|
101
|
+
};
|
|
102
|
+
break;
|
|
97
103
|
default:
|
|
98
104
|
throw new Error(`${SetParameter.getId()}: parameter ${id} is not supported`);
|
|
99
105
|
}
|
|
@@ -123,6 +129,11 @@ class SetParameter extends Command {
|
|
|
123
129
|
parameterData = data;
|
|
124
130
|
buffer.setUint8(parameterData.status);
|
|
125
131
|
break;
|
|
132
|
+
case deviceParameters.ABSOLUTE_DATA_STATUS_MULTI_CHANNEL:
|
|
133
|
+
parameterData = data;
|
|
134
|
+
buffer.setUint8(parameterData.channel);
|
|
135
|
+
buffer.setUint8(parameterData.status);
|
|
136
|
+
break;
|
|
126
137
|
default:
|
|
127
138
|
throw new Error(`${SetParameter.getId()}: parameter ${id} is not supported`);
|
|
128
139
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetParameter.js","sourceRoot":"","sources":["../../../src/commands/downlink/SetParameter.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,KAAK,gBAAgB,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"SetParameter.js","sourceRoot":"","sources":["../../../src/commands/downlink/SetParameter.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
export { default as CorrectTime2000 } from './CorrectTime2000.js';
|
|
7
7
|
export { default as ExAbsArchiveDaysMC } from './ExAbsArchiveDaysMC.js';
|
|
8
8
|
export { default as ExAbsArchiveHoursMC } from './ExAbsArchiveHoursMC.js';
|
|
9
|
+
export { default as ExAbsCurrentMC } from './ExAbsCurrentMC.js';
|
|
9
10
|
export { default as GetArchiveDaysMC } from './GetArchiveDaysMC.js';
|
|
10
11
|
export { default as GetArchiveHoursMC } from './GetArchiveHoursMC.js';
|
|
11
12
|
export { default as NewStatus } from './NewStatus.js';
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
export { default as CorrectTime2000 } from './CorrectTime2000.js';
|
|
7
7
|
export { default as ExAbsArchiveDaysMC } from './ExAbsArchiveDaysMC.js';
|
|
8
8
|
export { default as ExAbsArchiveHoursMC } from './ExAbsArchiveHoursMC.js';
|
|
9
|
+
export { default as ExAbsCurrentMC } from './ExAbsCurrentMC.js';
|
|
9
10
|
export { default as GetArchiveDaysMC } from './GetArchiveDaysMC.js';
|
|
10
11
|
export { default as GetArchiveHoursMC } from './GetArchiveHoursMC.js';
|
|
11
12
|
export { default as NewStatus } from './NewStatus.js';
|
|
@@ -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,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACpE,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"}
|
|
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,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACpE,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"}
|
|
@@ -6,14 +6,14 @@ interface IDataDayMCParameters extends IGetCurrentMCParameters {
|
|
|
6
6
|
/**
|
|
7
7
|
* Seconds since year 2000, i.e. timestamp (in seconds) - 946684800
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
startTime: number;
|
|
10
10
|
}
|
|
11
11
|
declare class DataDayMC extends GetCurrentMC {
|
|
12
12
|
parameters: IDataDayMCParameters;
|
|
13
13
|
constructor(parameters: IDataDayMCParameters);
|
|
14
14
|
static readonly id = 22;
|
|
15
15
|
static readonly directionType = 2;
|
|
16
|
-
static readonly title = "
|
|
16
|
+
static readonly title = "DATA_DAY_MC";
|
|
17
17
|
static fromBytes(data: Uint8Array): DataDayMC;
|
|
18
18
|
toBytes(): Uint8Array;
|
|
19
19
|
}
|
|
@@ -5,7 +5,7 @@ import { getSecondsFromDate } from '../../utils/time.js';
|
|
|
5
5
|
import GetCurrentMC from './GetCurrentMC.js';
|
|
6
6
|
import { UPLINK } from '../../constants/directionTypes.js';
|
|
7
7
|
const COMMAND_ID = 0x16;
|
|
8
|
-
const COMMAND_TITLE = '
|
|
8
|
+
const COMMAND_TITLE = 'DATA_DAY_MC';
|
|
9
9
|
// 2 byte for date + 2 for channels (max channels: 7)
|
|
10
10
|
// 4 + (7 * 4)
|
|
11
11
|
const COMMAND_BODY_MAX_SIZE = 32;
|
|
@@ -15,22 +15,22 @@ class DataDayMC extends GetCurrentMC {
|
|
|
15
15
|
this.parameters = parameters;
|
|
16
16
|
}
|
|
17
17
|
static fromBytes(data) {
|
|
18
|
-
const parameters = { channelList: [],
|
|
18
|
+
const parameters = { channelList: [], startTime: 0 };
|
|
19
19
|
const buffer = new CommandBinaryBuffer(data);
|
|
20
20
|
const date = buffer.getDate();
|
|
21
|
-
const
|
|
22
|
-
parameters.channelList =
|
|
21
|
+
const channels = buffer.getChannels();
|
|
22
|
+
parameters.channelList = channels.map(channelIndex => ({
|
|
23
23
|
value: buffer.getExtendedValue(),
|
|
24
24
|
index: channelIndex
|
|
25
25
|
}));
|
|
26
|
-
parameters.
|
|
26
|
+
parameters.startTime = getSecondsFromDate(date);
|
|
27
27
|
return new DataDayMC(parameters);
|
|
28
28
|
}
|
|
29
29
|
toBytes() {
|
|
30
30
|
const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
|
|
31
|
-
const { channelList,
|
|
32
|
-
buffer.setDate(
|
|
33
|
-
buffer.setChannels(channelList
|
|
31
|
+
const { channelList, startTime } = this.parameters;
|
|
32
|
+
buffer.setDate(startTime);
|
|
33
|
+
buffer.setChannels(channelList);
|
|
34
34
|
channelList.forEach(({ value }) => buffer.setExtendedValue(value));
|
|
35
35
|
return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataDayMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/DataDayMC.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"DataDayMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/DataDayMC.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAoC,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,YAAuC,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAczD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,aAAa,CAAC;AAEpC,qDAAqD;AACrD,cAAc;AACd,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAGjC,MAAM,SAAU,SAAQ,YAAY;IAChC,YAAqB,UAAgC;QACjD,KAAK,CAAC,UAAU,CAAC,CAAC;QADD,eAAU,GAAV,UAAU,CAAsB;IAErD,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,UAAU,GAAyB,EAAC,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAC,CAAC;QAEzE,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,EAAE,CAAC;QAEtC,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACnD,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE;YAChC,KAAK,EAAE,YAAY;SACtB,CAAkB,CAAC,CAAC;QAErB,UAAU,CAAC,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAEhD,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,WAAW,EAAE,SAAS,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAEjD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1B,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAChC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEjE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAjCe,YAAE,GAAG,UAAU,CAAC;AAEhB,uBAAa,GAAG,MAAM,CAAC;AAEvB,eAAK,GAAG,aAAa,CAAC;AAiC1C,eAAe,SAAS,CAAC"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import GetCurrentMC from './GetCurrentMC.js';
|
|
2
|
+
import { IChannelHours } from '../../CommandBinaryBuffer.js';
|
|
3
|
+
interface IDataHourMCParameters {
|
|
4
|
+
channelList: Array<IChannelHours>;
|
|
5
|
+
startTime: number;
|
|
6
|
+
hours: number;
|
|
7
|
+
}
|
|
2
8
|
declare class DataHourMC extends GetCurrentMC {
|
|
3
|
-
parameters:
|
|
4
|
-
constructor(parameters:
|
|
9
|
+
parameters: IDataHourMCParameters;
|
|
10
|
+
constructor(parameters: IDataHourMCParameters);
|
|
5
11
|
static readonly id = 23;
|
|
6
12
|
static readonly directionType = 2;
|
|
7
|
-
static readonly title = "
|
|
8
|
-
static fromBytes(data: Uint8Array):
|
|
13
|
+
static readonly title = "DATA_HOUR_MC";
|
|
14
|
+
static fromBytes(data: Uint8Array): DataHourMC;
|
|
9
15
|
toBytes(): Uint8Array;
|
|
10
16
|
}
|
|
11
17
|
export default DataHourMC;
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
3
|
-
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
4
|
-
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
5
1
|
import Command from '../../Command.js';
|
|
6
2
|
import GetCurrentMC from './GetCurrentMC.js';
|
|
7
3
|
import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
|
|
8
4
|
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
9
5
|
import { UPLINK } from '../../constants/directionTypes.js';
|
|
10
6
|
const COMMAND_ID = 0x17;
|
|
11
|
-
const COMMAND_TITLE = '
|
|
7
|
+
const COMMAND_TITLE = 'DATA_HOUR_MC';
|
|
12
8
|
// date 2 bytes, hour 1 byte, channelList - 1 byte, so max channelList = 4
|
|
13
9
|
// max hours diff - 7 (3 bit value)
|
|
14
10
|
// 4 + (4 channelList * 5 bytes of hour values) + (4 * 5 bytes of diff * 7 max hours diff)
|
|
@@ -22,50 +18,32 @@ class DataHourMC extends GetCurrentMC {
|
|
|
22
18
|
const buffer = new CommandBinaryBuffer(data);
|
|
23
19
|
const date = buffer.getDate();
|
|
24
20
|
const { hour, hours } = buffer.getHours();
|
|
25
|
-
const
|
|
26
|
-
const maxChannel = Math.max.apply(null, channelArray);
|
|
21
|
+
const channels = buffer.getChannels();
|
|
27
22
|
date.setUTCHours(hour);
|
|
28
|
-
const counterDate = new Date(date);
|
|
29
|
-
let hourAmount = hours;
|
|
30
23
|
let value;
|
|
31
24
|
const channelList = [];
|
|
32
|
-
|
|
33
|
-
// one hour
|
|
34
|
-
hourAmount = 1;
|
|
35
|
-
}
|
|
36
|
-
for (let channelIndex = 0; channelIndex <= maxChannel; ++channelIndex) {
|
|
25
|
+
channels.forEach(channelIndex => {
|
|
37
26
|
// decode hour value for channel
|
|
38
27
|
value = buffer.getExtendedValue();
|
|
39
|
-
counterDate.setTime(date.getTime());
|
|
40
28
|
const diff = [];
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
for (let hourIndex = 0; hourIndex < hourAmount; ++hourIndex) {
|
|
44
|
-
value = buffer.getExtendedValue();
|
|
45
|
-
counterDate.setUTCHours(counterDate.getUTCHours() + hourIndex);
|
|
46
|
-
diff.push({ value, seconds: getSecondsFromDate(counterDate) });
|
|
29
|
+
for (let diffHour = 0; diffHour < hours; ++diffHour) {
|
|
30
|
+
diff.push(buffer.getExtendedValue());
|
|
47
31
|
}
|
|
48
|
-
|
|
49
|
-
|
|
32
|
+
channelList.push({ value, index: channelIndex, diff });
|
|
33
|
+
});
|
|
34
|
+
return new DataHourMC({ channelList, hours, startTime: getSecondsFromDate(date) });
|
|
50
35
|
}
|
|
51
36
|
toBytes() {
|
|
52
37
|
const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
|
|
53
|
-
const { channelList } = this.parameters;
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
let hours = channelList[0].diff.length;
|
|
58
|
-
if (hours === 1) {
|
|
59
|
-
hours = 0;
|
|
60
|
-
}
|
|
61
|
-
buffer.setDate(seconds);
|
|
38
|
+
const { channelList, startTime, hours } = this.parameters;
|
|
39
|
+
const date = getDateFromSeconds(startTime);
|
|
40
|
+
const hour = date.getUTCHours();
|
|
41
|
+
buffer.setDate(date);
|
|
62
42
|
buffer.setHours(hour, hours);
|
|
63
43
|
buffer.setChannels(channelList);
|
|
64
44
|
for (const { value, diff } of channelList) {
|
|
65
45
|
buffer.setExtendedValue(value);
|
|
66
|
-
|
|
67
|
-
buffer.setExtendedValue(diffValue);
|
|
68
|
-
}
|
|
46
|
+
diff.forEach(diffValue => buffer.setExtendedValue(diffValue));
|
|
69
47
|
}
|
|
70
48
|
return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
|
|
71
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataHourMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/DataHourMC.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"DataHourMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/DataHourMC.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAC3E,OAAO,mBAAoC,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAUzD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC,0EAA0E;AAC1E,mCAAmC;AACnC,0FAA0F;AAC1F,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAGlC,MAAM,UAAW,SAAQ,YAAY;IACjC,YAAqB,UAAiC;QAClD,KAAK,CAAC,UAAU,CAAC,CAAC;QADD,eAAU,GAAV,UAAU,CAAuB;IAEtD,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAEtC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEvB,IAAI,KAAK,CAAC;QAEV,MAAM,WAAW,GAAyB,EAAE,CAAC;QAE7C,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC5B,gCAAgC;YAChC,KAAK,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAElC,MAAM,IAAI,GAAkB,EAAE,CAAC;YAE/B,KAAM,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAG;gBACnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;aACxC;YAED,WAAW,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,UAAU,CAAC,EAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IACrF,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,WAAW,EAAE,SAAS,EAAE,KAAK,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAExD,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAEhC,KAAM,MAAM,EAAC,KAAK,EAAE,IAAI,EAAC,IAAI,WAAW,EAAG;YACvC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;SACjE;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AApDe,aAAE,GAAG,UAAU,CAAC;AAEhB,wBAAa,GAAG,MAAM,CAAC;AAEvB,gBAAK,GAAG,aAAa,CAAC;AAoD1C,eAAe,UAAU,CAAC"}
|
|
@@ -1,46 +1,17 @@
|
|
|
1
1
|
import Command from '../../Command.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
value: number;
|
|
7
|
-
meterValue: number;
|
|
8
|
-
day: number;
|
|
9
|
-
seconds: number;
|
|
10
|
-
date: Date;
|
|
11
|
-
}
|
|
12
|
-
interface IArchiveChannelDayAbsolute {
|
|
13
|
-
/**
|
|
14
|
-
* channel number
|
|
15
|
-
*/
|
|
16
|
-
index: number;
|
|
17
|
-
/**
|
|
18
|
-
* values by days
|
|
19
|
-
*/
|
|
20
|
-
dayList: Array<IArchiveChannelDayAbsoluteValue>;
|
|
21
|
-
/**
|
|
22
|
-
* Channel pulse coefficient - IPK in bytes.
|
|
23
|
-
*/
|
|
24
|
-
pulseCoefficient: number;
|
|
25
|
-
/** time */
|
|
26
|
-
seconds: number;
|
|
27
|
-
/**
|
|
28
|
-
* Normal date in UTC.
|
|
29
|
-
*/
|
|
30
|
-
date: Date;
|
|
31
|
-
}
|
|
32
|
-
interface IUplinkExAbsArchiveDayMCParameters {
|
|
33
|
-
channelList: Array<IArchiveChannelDayAbsolute>;
|
|
34
|
-
date: Date;
|
|
2
|
+
import { IChannelArchiveDays } from '../../CommandBinaryBuffer.js';
|
|
3
|
+
interface IUplinkExAbsArchiveDaysMCParameters {
|
|
4
|
+
channelList: Array<IChannelArchiveDays>;
|
|
5
|
+
startTime: number;
|
|
35
6
|
days: number;
|
|
36
7
|
}
|
|
37
|
-
declare class
|
|
38
|
-
parameters:
|
|
39
|
-
constructor(parameters:
|
|
8
|
+
declare class ExAbsArchiveDaysMC extends Command {
|
|
9
|
+
parameters: IUplinkExAbsArchiveDaysMCParameters;
|
|
10
|
+
constructor(parameters: IUplinkExAbsArchiveDaysMCParameters);
|
|
40
11
|
static id: number;
|
|
41
12
|
static readonly directionType = 2;
|
|
42
13
|
static title: string;
|
|
43
|
-
static fromBytes(data: Uint8Array):
|
|
14
|
+
static fromBytes(data: Uint8Array): ExAbsArchiveDaysMC;
|
|
44
15
|
toBytes(): Uint8Array;
|
|
45
16
|
}
|
|
46
|
-
export default
|
|
17
|
+
export default ExAbsArchiveDaysMC;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import Command from '../../Command.js';
|
|
2
2
|
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
3
|
-
import roundNumber from '../../utils/roundNumber.js';
|
|
4
3
|
import { getSecondsFromDate } from '../../utils/time.js';
|
|
5
4
|
import { UPLINK } from '../../constants/directionTypes.js';
|
|
6
5
|
const COMMAND_ID = 0x0d1f;
|
|
7
|
-
const COMMAND_TITLE = '
|
|
6
|
+
const COMMAND_TITLE = 'EX_ABS_ARCHIVE_DAYS_MC';
|
|
8
7
|
// date 2 bytes, channelList 1 byte (max channelList: 4), days 1 byte (max days - 255)
|
|
9
8
|
// 4 + (4 channelList * (1 byte pulse coefficient + 5 bytes of day values) * 255 max days)
|
|
10
9
|
const COMMAND_BODY_MAX_SIZE = 6124;
|
|
11
|
-
class
|
|
10
|
+
class ExAbsArchiveDaysMC extends Command {
|
|
12
11
|
constructor(parameters) {
|
|
13
12
|
super();
|
|
14
13
|
this.parameters = parameters;
|
|
@@ -17,56 +16,35 @@ class ExAbsArchiveDayMC extends Command {
|
|
|
17
16
|
static fromBytes(data) {
|
|
18
17
|
const buffer = new CommandBinaryBuffer(data);
|
|
19
18
|
const date = buffer.getDate();
|
|
20
|
-
const
|
|
19
|
+
const channels = buffer.getChannels();
|
|
21
20
|
const days = buffer.getUint8();
|
|
22
|
-
const maxChannel = Math.max.apply(null, channelArray);
|
|
23
|
-
const counterDate = new Date(date);
|
|
24
|
-
let value;
|
|
25
21
|
const channelList = [];
|
|
26
|
-
|
|
27
|
-
// IPK_${channelIndex}
|
|
28
|
-
const pulseCoefficient = buffer.getUint8();
|
|
22
|
+
channels.forEach(channelIndex => {
|
|
29
23
|
const dayList = [];
|
|
30
|
-
counterDate.setTime(date.getTime());
|
|
31
24
|
channelList.push({
|
|
32
25
|
dayList,
|
|
33
|
-
|
|
34
|
-
index: channelIndex,
|
|
35
|
-
seconds: getSecondsFromDate(counterDate),
|
|
36
|
-
date: new Date(counterDate)
|
|
26
|
+
index: channelIndex
|
|
37
27
|
});
|
|
38
28
|
for (let day = 0; day < days; ++day) {
|
|
39
|
-
|
|
40
|
-
counterDate.setTime(date.getTime());
|
|
41
|
-
counterDate.setUTCHours(counterDate.getUTCHours() + (day * 24));
|
|
42
|
-
dayList.push({
|
|
43
|
-
value,
|
|
44
|
-
day,
|
|
45
|
-
meterValue: roundNumber(value / pulseCoefficient),
|
|
46
|
-
date: new Date(counterDate),
|
|
47
|
-
seconds: getSecondsFromDate(counterDate)
|
|
48
|
-
});
|
|
29
|
+
dayList.push(buffer.getExtendedValue());
|
|
49
30
|
}
|
|
50
|
-
}
|
|
51
|
-
return new
|
|
31
|
+
});
|
|
32
|
+
return new ExAbsArchiveDaysMC({ channelList, days, startTime: getSecondsFromDate(date) });
|
|
52
33
|
}
|
|
53
34
|
toBytes() {
|
|
54
35
|
const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
|
|
55
|
-
const { channelList,
|
|
56
|
-
buffer.setDate(
|
|
36
|
+
const { channelList, startTime, days } = this.parameters;
|
|
37
|
+
buffer.setDate(startTime);
|
|
57
38
|
buffer.setChannels(channelList);
|
|
58
39
|
buffer.setUint8(days);
|
|
59
|
-
channelList.forEach(({ dayList
|
|
60
|
-
buffer.
|
|
61
|
-
dayList.forEach(({ value }) => {
|
|
62
|
-
buffer.setExtendedValue(value);
|
|
63
|
-
});
|
|
40
|
+
channelList.forEach(({ dayList }) => {
|
|
41
|
+
dayList.forEach(value => buffer.setExtendedValue(value));
|
|
64
42
|
});
|
|
65
43
|
return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
|
|
66
44
|
}
|
|
67
45
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
export default
|
|
46
|
+
ExAbsArchiveDaysMC.id = COMMAND_ID;
|
|
47
|
+
ExAbsArchiveDaysMC.directionType = UPLINK;
|
|
48
|
+
ExAbsArchiveDaysMC.title = COMMAND_TITLE;
|
|
49
|
+
export default ExAbsArchiveDaysMC;
|
|
72
50
|
//# sourceMappingURL=ExAbsArchiveDaysMC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExAbsArchiveDaysMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsArchiveDaysMC.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"ExAbsArchiveDaysMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsArchiveDaysMC.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAA0C,MAAM,8BAA8B,CAAC;AACtF,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAUzD,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAE/C,sFAAsF;AACtF,0FAA0F;AAC1F,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAGnC,MAAM,kBAAmB,SAAQ,OAAO;IACpC,YAAqB,UAA+C;QAChE,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAqC;QAGhE,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,WAAW,GAA+B,EAAE,CAAC;QAEnD,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC5B,MAAM,OAAO,GAAkB,EAAE,CAAC;YAElC,WAAW,CAAC,IAAI,CAAC;gBACb,OAAO;gBACP,KAAK,EAAE,YAAY;aACtB,CAAC,CAAC;YAEH,KAAM,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,EAAG;gBACnC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;aAC3C;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,kBAAkB,CAAC,EAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAEvD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1B,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEtB,WAAW,CAAC,OAAO,CAAC,CAAC,EAAC,OAAO,EAAC,EAAE,EAAE;YAC9B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AA1CM,qBAAE,GAAG,UAAU,CAAC;AAEP,gCAAa,GAAG,MAAM,CAAC;AAEhC,wBAAK,GAAG,aAAa,CAAC;AA0CjC,eAAe,kBAAkB,CAAC"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import Command from '../../Command.js';
|
|
2
|
+
import { IChannelHours } from '../../CommandBinaryBuffer.js';
|
|
3
|
+
interface IUplinkExAbsArchiveHoursMCParameters {
|
|
4
|
+
channelList: Array<IChannelHours>;
|
|
5
|
+
startTime: number;
|
|
6
|
+
hours: number;
|
|
7
|
+
}
|
|
8
|
+
declare class ExAbsArchiveHoursMC extends Command {
|
|
9
|
+
parameters: IUplinkExAbsArchiveHoursMCParameters;
|
|
10
|
+
constructor(parameters: IUplinkExAbsArchiveHoursMCParameters);
|
|
5
11
|
static readonly id = 3103;
|
|
6
12
|
static readonly directionType = 2;
|
|
7
|
-
static readonly title = "
|
|
8
|
-
static fromBytes(data: Uint8Array):
|
|
13
|
+
static readonly title = "EX_ABS_ARCHIVE_HOUR_MC";
|
|
14
|
+
static fromBytes(data: Uint8Array): ExAbsArchiveHoursMC;
|
|
9
15
|
toBytes(): Uint8Array;
|
|
10
16
|
}
|
|
11
|
-
export default
|
|
17
|
+
export default ExAbsArchiveHoursMC;
|