jooby-codec 3.7.0 → 3.9.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/analog/CommandBinaryBuffer.d.ts +20 -2
- package/dist/analog/CommandBinaryBuffer.js +37 -1
- package/dist/analog/CommandBinaryBuffer.js.map +1 -1
- package/dist/analog/DataSegmentsCollector.d.ts +7 -0
- package/dist/analog/DataSegmentsCollector.js +61 -0
- package/dist/analog/DataSegmentsCollector.js.map +1 -0
- package/dist/analog/commands/DataSegmentBase.d.ts +11 -0
- package/dist/analog/commands/DataSegmentBase.js +41 -0
- package/dist/analog/commands/DataSegmentBase.js.map +1 -0
- package/dist/analog/commands/downlink/DataSegment.d.ts +4 -0
- package/dist/analog/commands/downlink/DataSegment.js +7 -0
- package/dist/analog/commands/downlink/DataSegment.js.map +1 -0
- package/dist/analog/commands/downlink/SetParameter.js +11 -0
- package/dist/analog/commands/downlink/SetParameter.js.map +1 -1
- package/dist/analog/commands/downlink/index.d.ts +1 -0
- package/dist/analog/commands/downlink/index.js +1 -0
- package/dist/analog/commands/downlink/index.js.map +1 -1
- package/dist/analog/commands/uplink/DataSegment.d.ts +4 -0
- package/dist/analog/commands/uplink/DataSegment.js +7 -0
- package/dist/analog/commands/uplink/DataSegment.js.map +1 -0
- package/dist/analog/commands/uplink/SetParameterResponse.js +8 -0
- package/dist/analog/commands/uplink/SetParameterResponse.js.map +1 -1
- package/dist/analog/commands/uplink/Status.js +54 -0
- package/dist/analog/commands/uplink/Status.js.map +1 -1
- package/dist/analog/commands/uplink/index.d.ts +1 -0
- package/dist/analog/commands/uplink/index.js +1 -0
- package/dist/analog/commands/uplink/index.js.map +1 -1
- package/dist/analog/constants/commandRelations.d.ts +2 -2
- package/dist/analog/constants/commandRelations.js +1 -0
- package/dist/analog/constants/commandRelations.js.map +1 -1
- package/dist/analog/constants/deviceParameters.d.ts +1 -0
- package/dist/analog/constants/deviceParameters.js +1 -0
- package/dist/analog/constants/deviceParameters.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mtx/message.d.ts +2 -1
- package/dist/mtx/message.js +8 -6
- package/dist/mtx/message.js.map +1 -1
- package/dist/mtxLora/Command.d.ts +1 -1
- package/dist/mtxLora/Command.js +0 -3
- package/dist/mtxLora/Command.js.map +1 -1
- package/dist/mtxLora/CommandBinaryBuffer.d.ts +44 -8
- package/dist/mtxLora/CommandBinaryBuffer.js +260 -16
- package/dist/mtxLora/CommandBinaryBuffer.js.map +1 -1
- package/dist/mtxLora/UnknownCommand.d.ts +12 -0
- package/dist/mtxLora/UnknownCommand.js +17 -0
- package/dist/mtxLora/UnknownCommand.js.map +1 -0
- package/dist/mtxLora/commands/downlink/GetHalfhoursEnergies.d.ts +20 -0
- package/dist/mtxLora/commands/downlink/GetHalfhoursEnergies.js +61 -0
- package/dist/mtxLora/commands/downlink/GetHalfhoursEnergies.js.map +1 -0
- package/dist/mtxLora/commands/downlink/index.d.ts +1 -1
- package/dist/mtxLora/commands/downlink/index.js +1 -1
- package/dist/mtxLora/commands/downlink/index.js.map +1 -1
- package/dist/mtxLora/commands/uplink/GetDayEnergies.d.ts +17 -0
- package/dist/mtxLora/commands/uplink/GetDayEnergies.js +59 -0
- package/dist/mtxLora/commands/uplink/GetDayEnergies.js.map +1 -0
- package/dist/mtxLora/commands/uplink/GetDayMaxPower.d.ts +17 -0
- package/dist/mtxLora/commands/uplink/GetDayMaxPower.js +67 -0
- package/dist/mtxLora/commands/uplink/GetDayMaxPower.js.map +1 -0
- package/dist/mtxLora/commands/uplink/GetHalfhoursEnergies.d.ts +19 -0
- package/dist/mtxLora/commands/uplink/GetHalfhoursEnergies.js +68 -0
- package/dist/mtxLora/commands/uplink/GetHalfhoursEnergies.js.map +1 -0
- package/dist/mtxLora/commands/uplink/index.d.ts +3 -1
- package/dist/mtxLora/commands/uplink/index.js +3 -1
- package/dist/mtxLora/commands/uplink/index.js.map +1 -1
- package/dist/mtxLora/constants/commandRelations.d.ts +2 -2
- package/dist/mtxLora/constants/commandRelations.js +1 -1
- package/dist/mtxLora/constants/commandRelations.js.map +1 -1
- package/dist/mtxLora/index.d.ts +1 -0
- package/dist/mtxLora/index.js +1 -0
- package/dist/mtxLora/index.js.map +1 -1
- package/dist/mtxLora/message.d.ts +24 -0
- package/dist/mtxLora/message.js +81 -0
- package/dist/mtxLora/message.js.map +1 -0
- package/dist/utils/frame.d.ts +7 -6
- package/dist/utils/frame.js.map +1 -1
- package/dist/utils/frameCollector.d.ts +3 -1
- package/dist/utils/frameCollector.js +6 -2
- package/dist/utils/frameCollector.js.map +1 -1
- package/dist/utils/permutations.d.ts +2 -0
- package/dist/utils/permutations.js +15 -0
- package/dist/utils/permutations.js.map +1 -0
- package/package.json +1 -1
- package/dist/mtxLora/commands/MtxCommandBase.d.ts +0 -11
- package/dist/mtxLora/commands/MtxCommandBase.js +0 -44
- package/dist/mtxLora/commands/MtxCommandBase.js.map +0 -1
- package/dist/mtxLora/commands/downlink/MtxCommand.d.ts +0 -4
- package/dist/mtxLora/commands/downlink/MtxCommand.js +0 -7
- package/dist/mtxLora/commands/downlink/MtxCommand.js.map +0 -1
- package/dist/mtxLora/commands/uplink/MtxCommand.d.ts +0 -4
- package/dist/mtxLora/commands/uplink/MtxCommand.js +0 -7
- package/dist/mtxLora/commands/uplink/MtxCommand.js.map +0 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Command from './Command.js';
|
|
2
|
+
interface IUnknownCommandParameters {
|
|
3
|
+
id: number;
|
|
4
|
+
data: Uint8Array;
|
|
5
|
+
}
|
|
6
|
+
declare class UnknownCommand extends Command {
|
|
7
|
+
parameters: IUnknownCommandParameters;
|
|
8
|
+
constructor(parameters: IUnknownCommandParameters);
|
|
9
|
+
static fromBytes(id: number, data: Uint8Array): UnknownCommand;
|
|
10
|
+
toBytes(): Uint8Array;
|
|
11
|
+
}
|
|
12
|
+
export default UnknownCommand;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import Command from './Command.js';
|
|
2
|
+
class UnknownCommand extends Command {
|
|
3
|
+
constructor(parameters) {
|
|
4
|
+
super();
|
|
5
|
+
this.parameters = parameters;
|
|
6
|
+
}
|
|
7
|
+
static fromBytes(id, data) {
|
|
8
|
+
const parameters = { id, data };
|
|
9
|
+
return new UnknownCommand(parameters);
|
|
10
|
+
}
|
|
11
|
+
toBytes() {
|
|
12
|
+
const { id, data } = this.parameters;
|
|
13
|
+
return new Uint8Array([id, ...data]);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export default UnknownCommand;
|
|
17
|
+
//# sourceMappingURL=UnknownCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnknownCommand.js","sourceRoot":"","sources":["../../src/mtxLora/UnknownCommand.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAiBnC,MAAM,cAAe,SAAQ,OAAO;IAChC,YAAqB,UAAqC;QACtD,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAA2B;IAE1D,CAAC;IAGD,MAAM,CAAC,SAAS,CAAG,EAAU,EAAE,IAAgB;QAC3C,MAAM,UAAU,GAA8B,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC;QAEzD,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAGD,OAAO;QACH,MAAM,EAAC,EAAE,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAEnC,OAAO,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;CACJ;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import Command, { TCommandExampleList } from '../../Command.js';
|
|
2
|
+
import { IDate, TEnergiesFlags } from '../../CommandBinaryBuffer.js';
|
|
3
|
+
interface IGetHalfhoursEnergies {
|
|
4
|
+
date: IDate;
|
|
5
|
+
energies: TEnergiesFlags;
|
|
6
|
+
firstHalfhour: number;
|
|
7
|
+
halfhoursNumber: number;
|
|
8
|
+
}
|
|
9
|
+
declare class GetHalfhoursEnergies extends Command {
|
|
10
|
+
parameters: IGetHalfhoursEnergies;
|
|
11
|
+
constructor(parameters: IGetHalfhoursEnergies);
|
|
12
|
+
static readonly id = 105;
|
|
13
|
+
static readonly directionType = 1;
|
|
14
|
+
static readonly examples: TCommandExampleList;
|
|
15
|
+
static readonly hasParameters = true;
|
|
16
|
+
static readonly maxSize = 5;
|
|
17
|
+
static fromBytes(data: Uint8Array): GetHalfhoursEnergies;
|
|
18
|
+
toBytes(): Uint8Array;
|
|
19
|
+
}
|
|
20
|
+
export default GetHalfhoursEnergies;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import Command, { COMMAND_HEADER_SIZE } from '../../Command.js';
|
|
2
|
+
import { DOWNLINK } from '../../../constants/directions.js';
|
|
3
|
+
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
4
|
+
const COMMAND_ID = 0x69;
|
|
5
|
+
const COMMAND_SIZE = 5;
|
|
6
|
+
const examples = [
|
|
7
|
+
{
|
|
8
|
+
name: 'request for halfhours energies',
|
|
9
|
+
parameters: {
|
|
10
|
+
date: {
|
|
11
|
+
year: 21,
|
|
12
|
+
month: 2,
|
|
13
|
+
day: 3
|
|
14
|
+
},
|
|
15
|
+
firstHalfhour: 5,
|
|
16
|
+
halfhoursNumber: 4,
|
|
17
|
+
energies: {
|
|
18
|
+
aPlus: true,
|
|
19
|
+
aPlusRPlus: true,
|
|
20
|
+
aPlusRMinus: false,
|
|
21
|
+
aMinus: false,
|
|
22
|
+
aMinusRPlus: false,
|
|
23
|
+
aMinusRMinus: false
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
hex: { header: '69 05', body: '2a 43 03 05 04' }
|
|
27
|
+
}
|
|
28
|
+
];
|
|
29
|
+
class GetHalfhoursEnergies extends Command {
|
|
30
|
+
constructor(parameters) {
|
|
31
|
+
super();
|
|
32
|
+
this.parameters = parameters;
|
|
33
|
+
}
|
|
34
|
+
static fromBytes(data) {
|
|
35
|
+
const buffer = new CommandBinaryBuffer(data);
|
|
36
|
+
return new GetHalfhoursEnergies({
|
|
37
|
+
date: buffer.getDate(),
|
|
38
|
+
energies: buffer.getEnergiesFlags(),
|
|
39
|
+
firstHalfhour: buffer.getUint8(),
|
|
40
|
+
halfhoursNumber: buffer.getUint8()
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
toBytes() {
|
|
44
|
+
const buffer = new CommandBinaryBuffer(COMMAND_HEADER_SIZE + COMMAND_SIZE);
|
|
45
|
+
const { parameters } = this;
|
|
46
|
+
buffer.setUint8(COMMAND_ID);
|
|
47
|
+
buffer.setUint8(COMMAND_SIZE);
|
|
48
|
+
buffer.setDate(parameters.date);
|
|
49
|
+
buffer.setEnergiesFlags(parameters.energies);
|
|
50
|
+
buffer.setUint8(parameters.firstHalfhour);
|
|
51
|
+
buffer.setUint8(parameters.halfhoursNumber);
|
|
52
|
+
return buffer.toUint8Array();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
GetHalfhoursEnergies.id = COMMAND_ID;
|
|
56
|
+
GetHalfhoursEnergies.directionType = DOWNLINK;
|
|
57
|
+
GetHalfhoursEnergies.examples = examples;
|
|
58
|
+
GetHalfhoursEnergies.hasParameters = true;
|
|
59
|
+
GetHalfhoursEnergies.maxSize = COMMAND_SIZE;
|
|
60
|
+
export default GetHalfhoursEnergies;
|
|
61
|
+
//# sourceMappingURL=GetHalfhoursEnergies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetHalfhoursEnergies.js","sourceRoot":"","sources":["../../../../src/mtxLora/commands/downlink/GetHalfhoursEnergies.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAsB,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAC,QAAQ,EAAC,MAAM,kCAAkC,CAAC;AAC1D,OAAO,mBAA4C,MAAM,8BAA8B,CAAC;AAWxF,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,QAAQ,GAAwB;IAClC;QACI,IAAI,EAAE,gCAAgC;QACtC,UAAU,EAAE;YACR,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,CAAC;gBACR,GAAG,EAAE,CAAC;aACT;YACD,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,CAAC;YAClB,QAAQ,EAAE;gBACN,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,KAAK;gBAClB,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,KAAK;aACtB;SACJ;QACD,GAAG,EAAE,EAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAC;KACjD;CACJ,CAAC;AA+BF,MAAM,oBAAqB,SAAQ,OAAO;IACtC,YAAqB,UAAiC;QAClD,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAuB;IAEtD,CAAC;IAeD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,OAAO,IAAI,oBAAoB,CAAC;YAC5B,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE;YACtB,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EAAE;YACnC,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE;YAChC,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE;SACrC,CAAC,CAAC;IACP,CAAC;IAGD,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,mBAAmB,GAAG,YAAY,CAAC,CAAC;QAC3E,MAAM,EAAC,UAAU,EAAC,GAAG,IAAI,CAAC;QAE1B,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5B,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAE9B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAE5C,OAAO,MAAM,CAAC,YAAY,EAAE,CAAC;IACjC,CAAC;;AArCe,uBAAE,GAAG,UAAU,CAAC;AAEhB,kCAAa,GAAG,QAAQ,CAAC;AAEzB,6BAAQ,GAAG,QAAQ,CAAC;AAEpB,kCAAa,GAAG,IAAI,CAAC;AAErB,4BAAO,GAAG,YAAY,CAAC;AAiC3C,eAAe,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as
|
|
1
|
+
export { default as GetHalfhoursEnergies } from './GetHalfhoursEnergies.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { default as
|
|
1
|
+
export { default as GetHalfhoursEnergies } from './GetHalfhoursEnergies.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mtxLora/commands/downlink/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mtxLora/commands/downlink/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,OAAO,IAAI,oBAAoB,EAAC,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import Command, { TCommandExampleList } from '../../Command.js';
|
|
2
|
+
import { IDate, TTariffsEnergies } from '../../CommandBinaryBuffer.js';
|
|
3
|
+
interface IGetDayEnergies {
|
|
4
|
+
date: IDate;
|
|
5
|
+
energies: TTariffsEnergies;
|
|
6
|
+
}
|
|
7
|
+
declare class GetDayEnergies extends Command {
|
|
8
|
+
parameters: IGetDayEnergies;
|
|
9
|
+
constructor(parameters: IGetDayEnergies);
|
|
10
|
+
static readonly id = 120;
|
|
11
|
+
static readonly directionType = 2;
|
|
12
|
+
static readonly examples: TCommandExampleList;
|
|
13
|
+
static readonly hasParameters = true;
|
|
14
|
+
static fromBytes(data: Uint8Array): GetDayEnergies;
|
|
15
|
+
toBytes(): Uint8Array;
|
|
16
|
+
}
|
|
17
|
+
export default GetDayEnergies;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import Command, { COMMAND_HEADER_SIZE } from '../../Command.js';
|
|
2
|
+
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
3
|
+
import { UPLINK } from '../../../constants/directions.js';
|
|
4
|
+
const COMMAND_ID = 0x78;
|
|
5
|
+
const DATE_SIZE = 3;
|
|
6
|
+
const MAX_TARIFFS_ENERGIES_SIZE = 5 * 4 * 4;
|
|
7
|
+
const COMMAND_MAX_SIZE = DATE_SIZE + MAX_TARIFFS_ENERGIES_SIZE;
|
|
8
|
+
const examples = [
|
|
9
|
+
{
|
|
10
|
+
name: 'get day energies',
|
|
11
|
+
parameters: {
|
|
12
|
+
date: {
|
|
13
|
+
year: 21,
|
|
14
|
+
month: 2,
|
|
15
|
+
day: 3
|
|
16
|
+
},
|
|
17
|
+
energies: [
|
|
18
|
+
{
|
|
19
|
+
aPlus: 0x1000,
|
|
20
|
+
aMinusRPlus: 0x2000
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
hex: {
|
|
25
|
+
header: '78 0c',
|
|
26
|
+
body: '2a 43 11 11 00 00 10 00 00 00 20 00'
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
];
|
|
30
|
+
class GetDayEnergies extends Command {
|
|
31
|
+
constructor(parameters) {
|
|
32
|
+
super();
|
|
33
|
+
this.parameters = parameters;
|
|
34
|
+
}
|
|
35
|
+
static fromBytes(data) {
|
|
36
|
+
const buffer = new CommandBinaryBuffer(data);
|
|
37
|
+
return new GetDayEnergies({
|
|
38
|
+
date: buffer.getDate(),
|
|
39
|
+
energies: buffer.getTariffsEnergies()
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
toBytes() {
|
|
43
|
+
const { parameters: { date, energies } } = this;
|
|
44
|
+
const buffer = new CommandBinaryBuffer(COMMAND_HEADER_SIZE + COMMAND_MAX_SIZE);
|
|
45
|
+
buffer.setDate(date);
|
|
46
|
+
buffer.setTariffsEnergies(energies);
|
|
47
|
+
return new Uint8Array([
|
|
48
|
+
COMMAND_ID,
|
|
49
|
+
buffer.position,
|
|
50
|
+
...buffer.getBytesToOffset()
|
|
51
|
+
]);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
GetDayEnergies.id = COMMAND_ID;
|
|
55
|
+
GetDayEnergies.directionType = UPLINK;
|
|
56
|
+
GetDayEnergies.examples = examples;
|
|
57
|
+
GetDayEnergies.hasParameters = true;
|
|
58
|
+
export default GetDayEnergies;
|
|
59
|
+
//# sourceMappingURL=GetDayEnergies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetDayEnergies.js","sourceRoot":"","sources":["../../../../src/mtxLora/commands/uplink/GetDayEnergies.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAsB,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AACnF,OAAO,mBAA8C,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAC,MAAM,EAAC,MAAM,kCAAkC,CAAC;AASxD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,yBAAyB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5C,MAAM,gBAAgB,GAAG,SAAS,GAAG,yBAAyB,CAAC;AAE/D,MAAM,QAAQ,GAAwB;IAClC;QACI,IAAI,EAAE,kBAAkB;QACxB,UAAU,EAAE;YACR,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,CAAC;gBACR,GAAG,EAAE,CAAC;aACT;YACD,QAAQ,EAAE;gBACN;oBACI,KAAK,EAAE,MAAM;oBACb,WAAW,EAAE,MAAM;iBACtB;aACJ;SACJ;QACD,GAAG,EAAE;YACD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,qCAAqC;SAC9C;KACJ;CACJ,CAAC;AA8BF,MAAM,cAAe,SAAQ,OAAO;IAChC,YAAqB,UAA2B;QAC5C,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAiB;IAEhD,CAAC;IAaD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,OAAO,IAAI,cAAc,CAAC;YACtB,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE;YACtB,QAAQ,EAAE,MAAM,CAAC,kBAAkB,EAAE;SACxC,CAAC,CAAC;IACP,CAAC;IAGD,OAAO;QACH,MAAM,EAAC,UAAU,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAC,GAAG,IAAI,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;QAG/E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAEpC,OAAO,IAAI,UAAU,CAAC;YAClB,UAAU;YACV,MAAM,CAAC,QAAQ;YACf,GAAG,MAAM,CAAC,gBAAgB,EAAE;SAC/B,CAAC,CAAC;IACP,CAAC;;AAjCe,iBAAE,GAAG,UAAU,CAAC;AAEhB,4BAAa,GAAG,MAAM,CAAC;AAEvB,uBAAQ,GAAG,QAAQ,CAAC;AAEpB,4BAAa,GAAG,IAAI,CAAC;AA+BzC,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import Command, { TCommandExampleList } from '../../Command.js';
|
|
2
|
+
import { IDate, TTariffsPowerMax } from '../../CommandBinaryBuffer.js';
|
|
3
|
+
interface IGetDayMaxPower {
|
|
4
|
+
date: IDate;
|
|
5
|
+
tariffs: TTariffsPowerMax;
|
|
6
|
+
}
|
|
7
|
+
declare class GetDayMaxPower extends Command {
|
|
8
|
+
parameters: IGetDayMaxPower;
|
|
9
|
+
constructor(parameters: IGetDayMaxPower);
|
|
10
|
+
static readonly id = 121;
|
|
11
|
+
static readonly directionType = 2;
|
|
12
|
+
static readonly examples: TCommandExampleList;
|
|
13
|
+
static readonly hasParameters = true;
|
|
14
|
+
static fromBytes(data: Uint8Array): GetDayMaxPower;
|
|
15
|
+
toBytes(): Uint8Array;
|
|
16
|
+
}
|
|
17
|
+
export default GetDayMaxPower;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import Command, { COMMAND_HEADER_SIZE } from '../../Command.js';
|
|
2
|
+
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
3
|
+
import { UPLINK } from '../../../constants/directions.js';
|
|
4
|
+
const COMMAND_ID = 0x79;
|
|
5
|
+
const DATE_SIZE = 3;
|
|
6
|
+
const MAX_TARIFFS_ENERGIES_SIZE = 5 * 4 * (1 + 1 + 4);
|
|
7
|
+
const COMMAND_MAX_SIZE = DATE_SIZE + MAX_TARIFFS_ENERGIES_SIZE;
|
|
8
|
+
const examples = [
|
|
9
|
+
{
|
|
10
|
+
name: 'get day max power',
|
|
11
|
+
parameters: {
|
|
12
|
+
date: {
|
|
13
|
+
year: 21,
|
|
14
|
+
month: 2,
|
|
15
|
+
day: 3
|
|
16
|
+
},
|
|
17
|
+
tariffs: [
|
|
18
|
+
{
|
|
19
|
+
aPlus: {
|
|
20
|
+
hours: 2,
|
|
21
|
+
minutes: 3,
|
|
22
|
+
power: 0x1000
|
|
23
|
+
},
|
|
24
|
+
aMinusRPlus: {
|
|
25
|
+
hours: 4,
|
|
26
|
+
minutes: 5,
|
|
27
|
+
power: 0x2000
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
hex: {
|
|
33
|
+
header: '79 10',
|
|
34
|
+
body: '2a 43 11 11 02 03 00 00 10 00 04 05 00 00 20 00'
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
];
|
|
38
|
+
class GetDayMaxPower extends Command {
|
|
39
|
+
constructor(parameters) {
|
|
40
|
+
super();
|
|
41
|
+
this.parameters = parameters;
|
|
42
|
+
}
|
|
43
|
+
static fromBytes(data) {
|
|
44
|
+
const buffer = new CommandBinaryBuffer(data);
|
|
45
|
+
return new GetDayMaxPower({
|
|
46
|
+
date: buffer.getDate(),
|
|
47
|
+
tariffs: buffer.getTariffsPowerMax()
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
toBytes() {
|
|
51
|
+
const { parameters: { date, tariffs: powers } } = this;
|
|
52
|
+
const buffer = new CommandBinaryBuffer(COMMAND_HEADER_SIZE + COMMAND_MAX_SIZE);
|
|
53
|
+
buffer.setDate(date);
|
|
54
|
+
buffer.setTariffsPowerMax(powers);
|
|
55
|
+
return new Uint8Array([
|
|
56
|
+
COMMAND_ID,
|
|
57
|
+
buffer.position,
|
|
58
|
+
...buffer.getBytesToOffset()
|
|
59
|
+
]);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
GetDayMaxPower.id = COMMAND_ID;
|
|
63
|
+
GetDayMaxPower.directionType = UPLINK;
|
|
64
|
+
GetDayMaxPower.examples = examples;
|
|
65
|
+
GetDayMaxPower.hasParameters = true;
|
|
66
|
+
export default GetDayMaxPower;
|
|
67
|
+
//# sourceMappingURL=GetDayMaxPower.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetDayMaxPower.js","sourceRoot":"","sources":["../../../../src/mtxLora/commands/uplink/GetDayMaxPower.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAsB,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AACnF,OAAO,mBAA8C,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAC,MAAM,EAAC,MAAM,kCAAkC,CAAC;AASxD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,yBAAyB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,MAAM,gBAAgB,GAAG,SAAS,GAAG,yBAAyB,CAAC;AAE/D,MAAM,QAAQ,GAAwB;IAClC;QACI,IAAI,EAAE,mBAAmB;QACzB,UAAU,EAAE;YACR,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,CAAC;gBACR,GAAG,EAAE,CAAC;aACT;YACD,OAAO,EAAE;gBACL;oBACI,KAAK,EAAE;wBACH,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,CAAC;wBACV,KAAK,EAAE,MAAM;qBAChB;oBACD,WAAW,EAAE;wBACT,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,CAAC;wBACV,KAAK,EAAE,MAAM;qBAChB;iBACJ;aACJ;SACJ;QACD,GAAG,EAAE;YACD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,iDAAiD;SAC1D;KACJ;CACJ,CAAC;AA8BF,MAAM,cAAe,SAAQ,OAAO;IAChC,YAAqB,UAA2B;QAC5C,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAiB;IAEhD,CAAC;IAaD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,OAAO,IAAI,cAAc,CAAC;YACtB,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE;YACtB,OAAO,EAAE,MAAM,CAAC,kBAAkB,EAAE;SACvC,CAAC,CAAC;IACP,CAAC;IAGD,OAAO;QACH,MAAM,EAAC,UAAU,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAC,EAAC,GAAG,IAAI,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;QAG/E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAElC,OAAO,IAAI,UAAU,CAAC;YAClB,UAAU;YACV,MAAM,CAAC,QAAQ;YACf,GAAG,MAAM,CAAC,gBAAgB,EAAE;SAC/B,CAAC,CAAC;IACP,CAAC;;AAjCe,iBAAE,GAAG,UAAU,CAAC;AAEhB,4BAAa,GAAG,MAAM,CAAC;AAEvB,uBAAQ,GAAG,QAAQ,CAAC;AAEpB,4BAAa,GAAG,IAAI,CAAC;AA8BzC,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import Command, { TCommandExampleList } from '../../Command.js';
|
|
2
|
+
import { IDate, THalfhoursEnergies } from '../../CommandBinaryBuffer.js';
|
|
3
|
+
interface IGetHalfhoursEnergies {
|
|
4
|
+
date: IDate;
|
|
5
|
+
firstHalfhour: number;
|
|
6
|
+
halfhoursNumber: number;
|
|
7
|
+
energies: THalfhoursEnergies;
|
|
8
|
+
}
|
|
9
|
+
declare class GetHalfhoursEnergies extends Command {
|
|
10
|
+
parameters: IGetHalfhoursEnergies;
|
|
11
|
+
constructor(parameters: IGetHalfhoursEnergies);
|
|
12
|
+
static readonly id = 105;
|
|
13
|
+
static readonly directionType = 2;
|
|
14
|
+
static readonly examples: TCommandExampleList;
|
|
15
|
+
static readonly hasParameters = true;
|
|
16
|
+
static fromBytes(data: Uint8Array): GetHalfhoursEnergies;
|
|
17
|
+
toBytes(): Uint8Array;
|
|
18
|
+
}
|
|
19
|
+
export default GetHalfhoursEnergies;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import Command, { COMMAND_HEADER_SIZE } from '../../Command.js';
|
|
2
|
+
import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
|
|
3
|
+
import { UPLINK } from '../../../constants/directions.js';
|
|
4
|
+
const COMMAND_ID = 0x69;
|
|
5
|
+
const DATE_SIZE = 3;
|
|
6
|
+
const MAX_HALFHOURS_ENERGY_SIZE = 5 * 3 * 4;
|
|
7
|
+
const COMMAND_MAX_SIZE = DATE_SIZE + MAX_HALFHOURS_ENERGY_SIZE;
|
|
8
|
+
const examples = [
|
|
9
|
+
{
|
|
10
|
+
name: 'get halfhours energies',
|
|
11
|
+
parameters: {
|
|
12
|
+
date: {
|
|
13
|
+
year: 21,
|
|
14
|
+
month: 2,
|
|
15
|
+
day: 3
|
|
16
|
+
},
|
|
17
|
+
firstHalfhour: 1,
|
|
18
|
+
halfhoursNumber: 2,
|
|
19
|
+
energies: {
|
|
20
|
+
aPlus: [0x1000, 0x2000],
|
|
21
|
+
aMinusRPlus: [0x3000, 0x4000]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
hex: {
|
|
25
|
+
header: '69 15',
|
|
26
|
+
body: '2a 43 11 01 02 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00'
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
];
|
|
30
|
+
class GetHalfhoursEnergies extends Command {
|
|
31
|
+
constructor(parameters) {
|
|
32
|
+
super();
|
|
33
|
+
this.parameters = parameters;
|
|
34
|
+
}
|
|
35
|
+
static fromBytes(data) {
|
|
36
|
+
const buffer = new CommandBinaryBuffer(data);
|
|
37
|
+
const date = buffer.getDate();
|
|
38
|
+
const energiesFlags = buffer.getEnergiesFlags();
|
|
39
|
+
const firstHalfhour = buffer.getUint8();
|
|
40
|
+
const halfhoursNumber = buffer.getUint8();
|
|
41
|
+
return new GetHalfhoursEnergies({
|
|
42
|
+
date,
|
|
43
|
+
firstHalfhour,
|
|
44
|
+
halfhoursNumber,
|
|
45
|
+
energies: buffer.getHalfhoursEnergies(energiesFlags, halfhoursNumber)
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
toBytes() {
|
|
49
|
+
const { parameters: { date, firstHalfhour, halfhoursNumber, energies } } = this;
|
|
50
|
+
const buffer = new CommandBinaryBuffer(COMMAND_HEADER_SIZE + COMMAND_MAX_SIZE);
|
|
51
|
+
buffer.setDate(date);
|
|
52
|
+
buffer.setEnergiesFlags(energies);
|
|
53
|
+
buffer.setUint8(firstHalfhour);
|
|
54
|
+
buffer.setUint8(halfhoursNumber);
|
|
55
|
+
buffer.setHalfhoursEnergies(energies);
|
|
56
|
+
return new Uint8Array([
|
|
57
|
+
COMMAND_ID,
|
|
58
|
+
buffer.position,
|
|
59
|
+
...buffer.getBytesToOffset()
|
|
60
|
+
]);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
GetHalfhoursEnergies.id = COMMAND_ID;
|
|
64
|
+
GetHalfhoursEnergies.directionType = UPLINK;
|
|
65
|
+
GetHalfhoursEnergies.examples = examples;
|
|
66
|
+
GetHalfhoursEnergies.hasParameters = true;
|
|
67
|
+
export default GetHalfhoursEnergies;
|
|
68
|
+
//# sourceMappingURL=GetHalfhoursEnergies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetHalfhoursEnergies.js","sourceRoot":"","sources":["../../../../src/mtxLora/commands/uplink/GetHalfhoursEnergies.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAsB,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AACnF,OAAO,mBAAgD,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAC,MAAM,EAAC,MAAM,kCAAkC,CAAC;AAWxD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,yBAAyB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5C,MAAM,gBAAgB,GAAG,SAAS,GAAG,yBAAyB,CAAC;AAE/D,MAAM,QAAQ,GAAwB;IAClC;QACI,IAAI,EAAE,wBAAwB;QAC9B,UAAU,EAAE;YACR,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,CAAC;gBACR,GAAG,EAAE,CAAC;aACT;YACD,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,CAAC;YAClB,QAAQ,EAAE;gBACN,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACvB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;aAChC;SACJ;QACD,GAAG,EAAE;YACD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,gEAAgE;SACzE;KACJ;CACJ,CAAC;AA8BF,MAAM,oBAAqB,SAAQ,OAAO;IACtC,YAAqB,UAAiC;QAClD,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAuB;IAEtD,CAAC;IAaD,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,aAAa,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAE1C,OAAO,IAAI,oBAAoB,CAAC;YAC5B,IAAI;YACJ,aAAa;YACb,eAAe;YACf,QAAQ,EAAE,MAAM,CAAC,oBAAoB,CAAC,aAAa,EAAE,eAAe,CAAC;SACxE,CAAC,CAAC;IACP,CAAC;IAGD,OAAO;QACH,MAAM,EAAC,UAAU,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAC,EAAC,GAAG,IAAI,CAAC;QAC5E,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;QAG/E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACjC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAEtC,OAAO,IAAI,UAAU,CAAC;YAClB,UAAU;YACV,MAAM,CAAC,QAAQ;YACf,GAAG,MAAM,CAAC,gBAAgB,EAAE;SAC/B,CAAC,CAAC;IACP,CAAC;;AA1Ce,uBAAE,GAAG,UAAU,CAAC;AAEhB,kCAAa,GAAG,MAAM,CAAC;AAEvB,6BAAQ,GAAG,QAAQ,CAAC;AAEpB,kCAAa,GAAG,IAAI,CAAC;AAwCzC,eAAe,oBAAoB,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export { default as
|
|
1
|
+
export { default as GetHalfhoursEnergies } from './GetHalfhoursEnergies.js';
|
|
2
|
+
export { default as GetDayEnergies } from './GetDayEnergies.js';
|
|
3
|
+
export { default as GetDayMaxPower } from './GetDayMaxPower.js';
|
|
2
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mtxLora/commands/uplink/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mtxLora/commands/uplink/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,OAAO,IAAI,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,qBAAqB,CAAC"}
|
|
@@ -2,5 +2,5 @@ import * as downlinkCommands from '../commands/downlink/index.js';
|
|
|
2
2
|
import * as uplinkCommands from '../commands/uplink/index.js';
|
|
3
3
|
export declare const requestByResponse: Map<any, any>;
|
|
4
4
|
export declare const responseByRequest: Map<any, any>;
|
|
5
|
-
export declare const requestById: Map<number, typeof downlinkCommands.
|
|
6
|
-
export declare const responseById: Map<number, typeof uplinkCommands.
|
|
5
|
+
export declare const requestById: Map<number, typeof downlinkCommands.GetHalfhoursEnergies>;
|
|
6
|
+
export declare const responseById: Map<number, typeof uplinkCommands.GetHalfhoursEnergies | typeof uplinkCommands.GetDayEnergies | typeof uplinkCommands.GetDayMaxPower>;
|
|
@@ -4,7 +4,7 @@ export const requestByResponse = new Map();
|
|
|
4
4
|
export const responseByRequest = new Map();
|
|
5
5
|
export const requestById = new Map(Object.values(downlinkCommands).map(command => [command.id, command]));
|
|
6
6
|
export const responseById = new Map(Object.values(uplinkCommands).map(command => [command.id, command]));
|
|
7
|
-
requestByResponse.set(uplinkCommands.
|
|
7
|
+
requestByResponse.set(uplinkCommands.GetHalfhoursEnergies, downlinkCommands.GetHalfhoursEnergies);
|
|
8
8
|
for (const [response, request] of requestByResponse.entries()) {
|
|
9
9
|
responseByRequest.set(request, response);
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandRelations.js","sourceRoot":"","sources":["../../../src/mtxLora/constants/commandRelations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAC;AAI9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;AAC3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;AAG3C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1G,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAGzG,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"commandRelations.js","sourceRoot":"","sources":["../../../src/mtxLora/constants/commandRelations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAC;AAI9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;AAC3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;AAG3C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1G,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAGzG,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;AAElG,KAAM,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAG,CAAC;IAE9D,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC"}
|
package/dist/mtxLora/index.d.ts
CHANGED
package/dist/mtxLora/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mtxLora/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mtxLora/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import Command from './Command.js';
|
|
2
|
+
import { IHexFormatOptions } from '../config.js';
|
|
3
|
+
interface IMessageCommand {
|
|
4
|
+
data: {
|
|
5
|
+
header: Uint8Array;
|
|
6
|
+
body: Uint8Array;
|
|
7
|
+
};
|
|
8
|
+
command: Command;
|
|
9
|
+
}
|
|
10
|
+
export interface IMessage {
|
|
11
|
+
messageId: number;
|
|
12
|
+
accessLevel: number;
|
|
13
|
+
commands?: Array<IMessageCommand>;
|
|
14
|
+
}
|
|
15
|
+
export interface IMessageConfig {
|
|
16
|
+
direction?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare const fromBytes: (bytes: Uint8Array, config?: IMessageConfig) => IMessage;
|
|
19
|
+
export declare const fromHex: (data: string, config?: IMessageConfig) => IMessage;
|
|
20
|
+
export declare const fromBase64: (data: string, config?: IMessageConfig) => IMessage;
|
|
21
|
+
export declare const toBytes: (messageId: number, accessLevel: number, commands: Array<Command>) => Uint8Array;
|
|
22
|
+
export declare const toHex: (messageId: number, accessLevel: number, commands: Array<Command>, hexOptions?: IHexFormatOptions) => string;
|
|
23
|
+
export declare const toBase64: (messageId: number, accessLevel: number, commands: Array<Command>) => string;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import UnknownCommand from './UnknownCommand.js';
|
|
2
|
+
import { requestById, responseById } from './constants/commandRelations.js';
|
|
3
|
+
import { accessLevels } from '../mtx/constants/index.js';
|
|
4
|
+
import getBytesFromHex from '../utils/getBytesFromHex.js';
|
|
5
|
+
import getBytesFromBase64 from '../utils/getBytesFromBase64.js';
|
|
6
|
+
import getHexFromBytes from '../utils/getHexFromBytes.js';
|
|
7
|
+
import getBase64FromBytes from '../utils/getBase64FromBytes.js';
|
|
8
|
+
import mergeUint8Arrays from '../utils/mergeUint8Arrays.js';
|
|
9
|
+
import * as directionTypes from '../constants/directions.js';
|
|
10
|
+
import { AUTO, DOWNLINK, UPLINK } from '../constants/directions.js';
|
|
11
|
+
const MESSAGE_HEADER_SIZE = 3;
|
|
12
|
+
const COMMAND_HEADER_SIZE = 2;
|
|
13
|
+
const PROTOCOL_VERSION = 0x10;
|
|
14
|
+
const directionTypeIds = new Set(Object.values(directionTypes));
|
|
15
|
+
const getCommand = (id, data, direction = AUTO) => {
|
|
16
|
+
if (!directionTypeIds.has(direction)) {
|
|
17
|
+
throw new Error('wrong direction type');
|
|
18
|
+
}
|
|
19
|
+
const downlinkCommand = requestById.get(id);
|
|
20
|
+
const uplinkCommand = responseById.get(id);
|
|
21
|
+
if ((!downlinkCommand && !uplinkCommand)
|
|
22
|
+
|| (direction === DOWNLINK && !downlinkCommand)
|
|
23
|
+
|| (direction === UPLINK && !uplinkCommand)) {
|
|
24
|
+
return UnknownCommand.fromBytes(id, data);
|
|
25
|
+
}
|
|
26
|
+
if (direction === DOWNLINK || direction === UPLINK) {
|
|
27
|
+
const command = direction === UPLINK ? uplinkCommand : downlinkCommand;
|
|
28
|
+
return command.fromBytes(data);
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
return uplinkCommand.fromBytes(data);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return downlinkCommand.fromBytes(data);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
export const fromBytes = (bytes, config) => {
|
|
38
|
+
const direction = config?.direction ?? AUTO;
|
|
39
|
+
const commands = [];
|
|
40
|
+
const [messageId, accessLevel1, accessLevel2] = bytes;
|
|
41
|
+
const result = {
|
|
42
|
+
messageId,
|
|
43
|
+
accessLevel: (accessLevel1 & accessLevels.MASK)
|
|
44
|
+
};
|
|
45
|
+
if (result.accessLevel !== accessLevels.UNENCRYPTED) {
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
if (accessLevel1 !== accessLevel2) {
|
|
49
|
+
throw new Error('wrong access level');
|
|
50
|
+
}
|
|
51
|
+
result.commands = commands;
|
|
52
|
+
const messageBody = bytes.slice(MESSAGE_HEADER_SIZE);
|
|
53
|
+
let position = 0;
|
|
54
|
+
do {
|
|
55
|
+
const commandId = messageBody[position];
|
|
56
|
+
const commandBodySize = messageBody[position + 1];
|
|
57
|
+
const commandSize = COMMAND_HEADER_SIZE + commandBodySize;
|
|
58
|
+
const commandBody = messageBody.slice(position + COMMAND_HEADER_SIZE, position + commandSize);
|
|
59
|
+
if (!commandId) {
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
const command = getCommand(commandId, commandBody, direction);
|
|
63
|
+
commands.push({
|
|
64
|
+
data: { header: new Uint8Array([commandId]), body: commandBody },
|
|
65
|
+
command
|
|
66
|
+
});
|
|
67
|
+
position += commandSize;
|
|
68
|
+
} while (position <= messageBody.length);
|
|
69
|
+
return result;
|
|
70
|
+
};
|
|
71
|
+
export const fromHex = (data, config) => (fromBytes(getBytesFromHex(data), config));
|
|
72
|
+
export const fromBase64 = (data, config) => (fromBytes(getBytesFromBase64(data), config));
|
|
73
|
+
export const toBytes = (messageId, accessLevel, commands) => {
|
|
74
|
+
const commandBytes = commands.map(command => command.toBytes());
|
|
75
|
+
const maskedAccessLevel = accessLevel | PROTOCOL_VERSION;
|
|
76
|
+
const header = new Uint8Array([messageId, maskedAccessLevel, maskedAccessLevel]);
|
|
77
|
+
return mergeUint8Arrays(header, ...commandBytes);
|
|
78
|
+
};
|
|
79
|
+
export const toHex = (messageId, accessLevel, commands, hexOptions = {}) => (getHexFromBytes(toBytes(messageId, accessLevel, commands), hexOptions));
|
|
80
|
+
export const toBase64 = (messageId, accessLevel, commands) => (getBase64FromBytes(toBytes(messageId, accessLevel, commands)));
|
|
81
|
+
//# sourceMappingURL=message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/mtxLora/message.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/frame.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export
|
|
2
|
-
export declare const
|
|
1
|
+
export type TDataBits = 7 | 8;
|
|
2
|
+
export declare const arrayStuff: (data: Uint8Array | Array<number>, dataBits?: TDataBits) => Uint8Array;
|
|
3
|
+
export declare const arrayUnstuff: (data: Uint8Array | Array<number>, dataBits?: TDataBits) => Uint8Array;
|
|
3
4
|
export interface IFrame {
|
|
4
5
|
content: Uint8Array;
|
|
5
6
|
bytes: Uint8Array;
|
|
@@ -9,7 +10,7 @@ export interface IFrame {
|
|
|
9
10
|
};
|
|
10
11
|
isValid: boolean;
|
|
11
12
|
}
|
|
12
|
-
export declare const toFrame: (content: Uint8Array, dataBits?:
|
|
13
|
-
export declare const fromBytes: (bytes: Uint8Array, dataBits?:
|
|
14
|
-
export declare const fromHex: (data: string, dataBits?:
|
|
15
|
-
export declare const fromBase64: (data: string, dataBits?:
|
|
13
|
+
export declare const toFrame: (content: Uint8Array, dataBits?: TDataBits) => IFrame;
|
|
14
|
+
export declare const fromBytes: (bytes: Uint8Array, dataBits?: TDataBits) => IFrame;
|
|
15
|
+
export declare const fromHex: (data: string, dataBits?: TDataBits) => IFrame;
|
|
16
|
+
export declare const fromBase64: (data: string, dataBits?: TDataBits) => IFrame;
|
package/dist/utils/frame.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/utils/frame.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,iCAAiC,CAAC;AACtE,OAAO,YAAY,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/utils/frame.ts"],"names":[],"mappings":"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"}
|