@zimo-elektronik/zcan 1.0.51 → 1.0.53

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.
Files changed (42) hide show
  1. package/.prettierrc.json +3 -1
  2. package/__tests__/accessoriesGroup.test.ts +26 -26
  3. package/__tests__/connection.test.ts +52 -52
  4. package/__tests__/dataGroup.test.ts +82 -92
  5. package/__tests__/infoGroup.test.ts +18 -18
  6. package/__tests__/lanDataGroup.test.ts +54 -66
  7. package/__tests__/lanInfoGroup.test.ts +34 -34
  8. package/__tests__/lanLocoStateGroup.test.ts +17 -17
  9. package/__tests__/systemControlGroup.test.ts +36 -36
  10. package/__tests__/trackCfgGroup.test.ts +38 -38
  11. package/__tests__/vehicleGroup.test.ts +109 -110
  12. package/dist/common/enums.d.ts +4 -4
  13. package/dist/common/enums.js +12 -12
  14. package/dist/common/enums.js.map +1 -1
  15. package/dist/common/models.d.ts +2 -18
  16. package/dist/data/lanDataGroup.d.ts +0 -2
  17. package/dist/data/lanDataGroup.js +0 -30
  18. package/dist/data/lanDataGroup.js.map +1 -1
  19. package/dist/data/lanDataMsg.d.ts +1 -0
  20. package/dist/data/lanDataMsg.js +20 -0
  21. package/dist/data/lanDataMsg.js.map +1 -1
  22. package/dist/info/infoGroup.d.ts +0 -4
  23. package/dist/info/infoGroup.js +1 -28
  24. package/dist/info/infoGroup.js.map +1 -1
  25. package/dist/info/infoMsg.d.ts +4 -0
  26. package/dist/info/infoMsg.js +12 -0
  27. package/dist/info/infoMsg.js.map +1 -1
  28. package/dist/loco/vehicleGroup.d.ts +7 -5
  29. package/dist/loco/vehicleGroup.js +41 -18
  30. package/dist/loco/vehicleGroup.js.map +1 -1
  31. package/dist/loco/vehicleMsg.d.ts +14 -1
  32. package/dist/loco/vehicleMsg.js +20 -0
  33. package/dist/loco/vehicleMsg.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/common/enums.ts +4 -4
  36. package/src/common/models.ts +14 -18
  37. package/src/data/lanDataGroup.ts +3 -92
  38. package/src/data/lanDataMsg.ts +23 -79
  39. package/src/info/infoGroup.ts +21 -33
  40. package/src/info/infoMsg.ts +20 -0
  41. package/src/loco/vehicleGroup.ts +62 -24
  42. package/src/loco/vehicleMsg.ts +27 -1
@@ -1,27 +1,27 @@
1
1
  import {createMX10, initConnection} from './util';
2
2
  import {afterAll, beforeAll, expect, it} from '@jest/globals';
3
3
  import {firstValueFrom} from 'rxjs';
4
- import {delay} from '../src/internal/utils';
4
+ import { delay } from '../src/common/utils';
5
5
 
6
6
  describe('LocoState group tests - 0x12', () => {
7
- const mx10 = createMX10();
8
- const testNID = 3;
7
+ const mx10 = createMX10();
8
+ const testNID = 3;
9
9
 
10
- beforeAll(async () => {
11
- await initConnection(mx10);
12
- });
10
+ beforeAll(async () => {
11
+ await initConnection(mx10);
12
+ });
13
13
 
14
- afterAll(() => {
15
- delay(1000).then(() => {
16
- mx10.closeSocket();
17
- });
18
- });
14
+ afterAll(() => {
15
+ delay(1000).then(() => {
16
+ mx10.closeSocket();
17
+ });
18
+ });
19
19
 
20
- it('0x00 - retrieve loco state', async () => {
21
- const data = await firstValueFrom(mx10.lanLocoState.onLocoStateExtended);
20
+ it('0x00 - retrieve loco state', async () => {
21
+ const data = await firstValueFrom(mx10.lanLocoState.onLocoStateExtended);
22
22
 
23
- expect(data.nid).toBe(testNID);
24
- // testing on device ZimoApp
25
- expect(data.ownerNid).toBe(mx10.myNID);
26
- });
23
+ expect(data.nid).toBe(testNID);
24
+ // testing on device ZimoApp
25
+ expect(data.ownerNid).toBe(mx10.myNID);
26
+ });
27
27
  });
@@ -1,42 +1,42 @@
1
1
  import {afterAll, beforeAll, describe, expect, jest} from '@jest/globals';
2
2
  import {createMX10, initConnection} from './util';
3
3
  import {SystemStateData, SystemStateMode} from '../src';
4
- import {delay} from '../src/internal/utils';
4
+ import { delay } from '../src/common/utils';
5
5
 
6
6
  describe('System Control Group group tests - 0x00', () => {
7
- const mx10 = createMX10();
8
-
9
- beforeAll(async () => {
10
- await initConnection(mx10);
11
- });
12
-
13
- afterAll(() => {
14
- mx10.systemControl.systemState(SystemStateMode.NORMAL);
15
-
16
- delay(1000).then(() => {
17
- mx10.closeSocket();
18
- });
19
- });
20
-
21
- test.each<{mode: number}>([
22
- {mode: SystemStateMode.SSPe},
23
- {mode: SystemStateMode.OFF},
24
- {mode: SystemStateMode.SSP0},
25
- ])('0x00 - System state test', ({mode}, done) => {
26
- mx10.systemControl.systemState(mode);
27
-
28
- const callback = jest.fn((data: SystemStateData) => {
29
- if (data.nid === mx10.mx10NID) {
30
- expect(data.port).toBeDefined();
31
- expect(data.mode).toBe(mode);
32
-
33
- if (callback.mock.calls.length === 3) {
34
- sub.unsubscribe();
35
- done();
36
- }
37
- }
38
- });
39
-
40
- const sub = mx10.systemControl.onSystemStateChange.subscribe(callback);
41
- });
7
+ const mx10 = createMX10();
8
+
9
+ beforeAll(async () => {
10
+ await initConnection(mx10);
11
+ });
12
+
13
+ afterAll(() => {
14
+ mx10.systemControl.systemState(SystemStateMode.NORMAL);
15
+
16
+ delay(1000).then(() => {
17
+ mx10.closeSocket();
18
+ });
19
+ });
20
+
21
+ test.each<{mode: number}>([
22
+ {mode: SystemStateMode.SSPe},
23
+ {mode: SystemStateMode.OFF},
24
+ {mode: SystemStateMode.SSP0},
25
+ ])('0x00 - System state test', ({mode}, done) => {
26
+ mx10.systemControl.systemState(mode);
27
+
28
+ const callback = jest.fn((data: SystemStateData) => {
29
+ if (data.nid === mx10.mx10NID) {
30
+ expect(data.port).toBeDefined();
31
+ expect(data.mode).toBe(mode);
32
+
33
+ if (callback.mock.calls.length === 3) {
34
+ sub.unsubscribe();
35
+ done();
36
+ }
37
+ }
38
+ });
39
+
40
+ const sub = mx10.systemControl.onSystemStateChange.subscribe(callback);
41
+ });
42
42
  });
@@ -2,42 +2,42 @@ import {createMX10, initConnection} from './util';
2
2
  import {afterAll, beforeAll, describe, it, expect} from '@jest/globals';
3
3
 
4
4
  describe('LAN Data group tests - 0x16', () => {
5
- const mx10 = createMX10();
6
-
7
- beforeAll(async () => {
8
- await initConnection(mx10);
9
- });
10
-
11
- afterAll(() => {
12
- mx10.closeSocket();
13
- });
14
-
15
- it('0x08 - Tse Prog Read Extended', (done) => {
16
- mx10.trackCfg.tseProgRead(211, 8);
17
-
18
- const prog = mx10.trackCfg.onTseProgReadExtended.subscribe((data) => {
19
- expect(data.cfgNum).toBeDefined();
20
- expect(data.cfgNum).toBe(8);
21
- expect(data.cvValue).toBeDefined();
22
- expect(data.cvValue).toBe(145);
23
-
24
- prog.unsubscribe();
25
- done();
26
- });
27
- });
28
-
29
- it('0x09 - Tse Prog Write Extended', (done) => {
30
- // Please be sure if you want to CV write HU value on test
31
- // mx10.trackCfg.tseProgWrite(211, 51, 20);
32
-
33
- const prog = mx10.trackCfg.onTseProgWriteExtended.subscribe((data) => {
34
- expect(data.cfgNum).toBeDefined();
35
- expect(data.cfgNum).toBe(51);
36
- expect(data.cvValue).toBeDefined();
37
- expect(data.cvValue).toBe(20);
38
-
39
- prog.unsubscribe();
40
- done();
41
- });
42
- });
5
+ const mx10 = createMX10();
6
+
7
+ beforeAll(async () => {
8
+ await initConnection(mx10);
9
+ });
10
+
11
+ afterAll(() => {
12
+ mx10.closeSocket();
13
+ });
14
+
15
+ it('0x08 - Tse Prog Read Extended', (done) => {
16
+ mx10.trackCfg.tseProgRead(211, 8);
17
+
18
+ const prog = mx10.trackCfg.onTseProgReadExtended.subscribe((msg) => {
19
+ expect(msg.cvNum()).toBeDefined();
20
+ expect(msg.cvNum()).toBe(8);
21
+ expect(msg.cvVal()).toBeDefined();
22
+ expect(msg.cvVal()).toBe(145);
23
+
24
+ prog.unsubscribe();
25
+ done();
26
+ });
27
+ });
28
+
29
+ it('0x09 - Tse Prog Write Extended', (done) => {
30
+ // Please be sure if you want to CV write HU value on test
31
+ // mx10.trackCfg.tseProgWrite(211, 51, 20);
32
+
33
+ const prog = mx10.trackCfg.onTseProgWriteExtended.subscribe((msg) => {
34
+ expect(msg.cvNum()).toBeDefined();
35
+ expect(msg.cvNum()).toBe(51);
36
+ expect(msg.cvVal()).toBeDefined();
37
+ expect(msg.cvVal()).toBe(20);
38
+
39
+ prog.unsubscribe();
40
+ done();
41
+ });
42
+ });
43
43
  });
@@ -4,114 +4,113 @@ import {firstValueFrom} from 'rxjs';
4
4
  import {delay} from '../src/common/utils';
5
5
  import {Direction, Manual, OperatingMode, ShuntingFunction, SpecialFunctionMode} from '../src';
6
6
 
7
- describe('Vehicle group tests - 0x02', () => {
8
- const mx10 = createMX10();
9
- const testNID = 211;
10
-
11
- beforeAll(async () => {
12
- await initConnection(mx10);
13
- });
14
-
15
- afterAll(() => {
16
- mx10.vehicle.changeSpeed(testNID, 0, true);
17
-
18
- delay(1000).then(() => {
19
- mx10.closeSocket();
20
- });
21
- });
22
-
23
- it('0x00 - retrieve operating state', async () => {
24
- const data = await firstValueFrom(mx10.vehicle.onVehicleState);
25
-
26
- expect(data.nid).toBe(211);
27
- // testing on device ZimoApp
28
- mx10.vehicle.changeSpeed(testNID, 15, true);
29
- expect(data.ctrlDevice).toBe(mx10.myNID);
30
- });
31
-
32
- it('0x01 - retrieve operating mode', async () => {
33
- mx10.vehicle.getVehicleMode(3);
34
- const msg = await firstValueFrom(mx10.vehicle.onVehicleMode);
35
-
36
- expect(msg.trainNid()).toBe(3);
37
- expect(msg.operatingMode()).toBe(OperatingMode.DCC);
38
- });
39
-
40
- test.each([
41
- {nid: testNID, speedStep: 10, forward: true, eastWest: Direction.UNDEFINED},
42
- {nid: testNID, speedStep: 30, forward: false, eastWest: Direction.EAST},
43
- {nid: testNID, speedStep: 40, forward: false, eastWest: Direction.WEST},
44
- {nid: testNID, speedStep: 35, forward: true, eastWest: Direction.WEST},
45
- ])(
46
- '0x02 - change speed and directions',
47
- async ({nid, speedStep, forward, eastWest}) => {
48
- mx10.vehicle.changeSpeed(nid, speedStep, forward, eastWest);
49
- const msg = await firstValueFrom(mx10.vehicle.onVehicleSpeed);
50
- expect(msg).toBeDefined();
51
- expect(msg.trainNid()).toBe(nid);
52
- expect(msg.divisor).toBe(0);
53
- expect(msg.speedStep).toBe(speedStep);
54
- expect(msg.forward).toBe(forward);
55
- expect(msg.eastWest).toBe(eastWest);
56
- expect(msg.emergencyStop).toBe(false);
57
- },
58
- );
59
-
60
- it('0x02 - change speed with bidi feedback', (done) => {
61
- const speedStep = 500,
62
- forward = true;
63
-
64
- const sub = mx10.info.onBidiInfoChange.subscribe((data) => {
65
- if (data.type === 0x0100) {
66
- expect(data).toBeDefined();
67
- expect(data.type).toBe(0x0100);
68
- expect(data.data).toBeGreaterThan(10);
69
-
70
- sub.unsubscribe();
71
- done();
72
- }
73
- });
74
-
75
- mx10.vehicle.changeSpeed(testNID, speedStep, forward);
76
- });
77
-
78
- it('0x04 - call function', async () => {
79
- const nid = testNID,
80
- buttonId = 1;
81
-
82
- mx10.vehicle.callFunction(nid, buttonId, true);
83
- const data = await firstValueFrom(mx10.vehicle.onCallFunction);
84
-
85
- expect(data).toBeDefined();
86
- expect(data.nid).toBe(nid);
87
- expect(data.functionNumber).toBe(buttonId);
88
- expect(data.functionState).toBe(true);
89
-
90
- await delay(500);
91
-
92
- mx10.vehicle.callFunction(nid, buttonId, false);
93
- const data2 = await firstValueFrom(mx10.vehicle.onCallFunction);
94
-
95
- expect(data2).toBeDefined();
96
- expect(data2.nid).toBe(nid);
97
- expect(data2.functionNumber).toBe(buttonId);
98
- expect(data2.functionState).toBe(false);
99
- });
100
-
101
- test.each([
102
- {mode: SpecialFunctionMode.MANUAL, state: Manual.OFF},
103
- {mode: SpecialFunctionMode.SHUNTING_FUNCTION, state: ShuntingFunction.AZBZ},
104
- {
105
- mode: SpecialFunctionMode.DIRECTION_DEFAULT,
106
- state: Direction.WEST,
107
- },
108
- ])('0x05 - special function mode', async ({mode, state}) => {
109
- mx10.vehicle.changeSpecialFunction(testNID, mode, state);
110
- const data = await firstValueFrom(mx10.vehicle.onCallSpecialFunction);
111
-
112
- expect(data).toBeDefined();
113
- expect(data.nid).toBe(testNID);
114
- expect(data.specialFunctionMode).toBe(mode);
115
- expect(data.specialFunctionState).toBe(state);
116
- });
7
+ describe('Vehicle group tests - 0x02', () =>
8
+ {
9
+ const mx10 = createMX10();
10
+ const testNID = 211;
11
+
12
+ beforeAll(async () => {
13
+ await initConnection(mx10);
14
+ });
15
+
16
+ afterAll(() => {
17
+ mx10.vehicle.changeSpeed(testNID, 0, true);
18
+
19
+ delay(1000).then(() => {
20
+ mx10.closeSocket();
21
+ });
22
+ });
23
+
24
+ it('0x00 - retrieve operating state', async () => {
25
+ const msg = await firstValueFrom(mx10.vehicle.onVehicleState);
26
+
27
+ expect(msg.trainNid()).toBe(211);
28
+ // testing on device ZimoApp
29
+ mx10.vehicle.changeSpeed(testNID, 15, true);
30
+ expect(msg.lastCtlNid()).toBe(mx10.myNID);
31
+ });
32
+
33
+ it('0x01 - retrieve operating mode', async () => {
34
+ const msg = await mx10.vehicle.getMode(3);
35
+
36
+ expect(msg?.trainNid()).toBe(3);
37
+ expect(msg?.mode()).toBe(OperatingMode.DCC);
38
+ });
39
+
40
+ test.each([
41
+ {nid: testNID, speedStep: 10, forward: true, eastWest: Direction.UNDEFINED},
42
+ {nid: testNID, speedStep: 30, forward: false, eastWest: Direction.EAST},
43
+ {nid: testNID, speedStep: 40, forward: false, eastWest: Direction.WEST},
44
+ {nid: testNID, speedStep: 35, forward: true, eastWest: Direction.WEST},
45
+ ])(
46
+ '0x02 - change speed and directions',
47
+ async ({nid, speedStep, forward, eastWest}) => {
48
+
49
+ const msg = await mx10.vehicle.setSpeed(nid, speedStep, 0, forward, false, eastWest);
50
+ expect(msg).toBeDefined();
51
+ expect(msg?.trainNid()).toBe(nid);
52
+ expect(msg?.divisor()).toBe(0);
53
+ expect(msg?.speedStep()).toBe(speedStep);
54
+ expect(msg?.forward()).toBe(forward);
55
+ expect(msg?.eastWest()).toBe(eastWest);
56
+ expect(msg?.emergencyStop()).toBe(false);
57
+ },
58
+ );
59
+
60
+ it('0x02 - change speed with bidi feedback', (done) => {
61
+ const speedStep = 500,
62
+ forward = true;
63
+
64
+ const sub = mx10.info.onBidiInfoChange.subscribe((msg) => {
65
+ if (msg.type() === 0x0100) {
66
+ expect(msg).toBeDefined();
67
+ expect(msg.type()).toBe(0x0100);
68
+ expect(msg.info()).toBeGreaterThan(10);
69
+ sub.unsubscribe();
70
+ done();
71
+ }
72
+ });
73
+
74
+ mx10.vehicle.changeSpeed(testNID, speedStep, forward);
75
+ });
76
+
77
+ it('0x04 - call function', async () => {
78
+ const nid = testNID,
79
+ buttonId = 1;
80
+
81
+ mx10.vehicle.callFunction(nid, buttonId, true);
82
+ const data = await firstValueFrom(mx10.vehicle.onCallFunction);
83
+
84
+ expect(data).toBeDefined();
85
+ expect(data.nid).toBe(nid);
86
+ expect(data.functionNumber).toBe(buttonId);
87
+ expect(data.functionState).toBe(true);
88
+
89
+ await delay(500);
90
+
91
+ mx10.vehicle.callFunction(nid, buttonId, false);
92
+ const data2 = await firstValueFrom(mx10.vehicle.onCallFunction);
93
+
94
+ expect(data2).toBeDefined();
95
+ expect(data2.nid).toBe(nid);
96
+ expect(data2.functionNumber).toBe(buttonId);
97
+ expect(data2.functionState).toBe(false);
98
+ });
99
+
100
+ test.each([
101
+ {mode: SpecialFunctionMode.MANUAL, state: Manual.OFF},
102
+ {mode: SpecialFunctionMode.SHUNTING_FUNCTION, state: ShuntingFunction.AZBZ},
103
+ {
104
+ mode: SpecialFunctionMode.DIRECTION_DEFAULT,
105
+ state: Direction.WEST,
106
+ },
107
+ ])('0x05 - special function mode', async ({mode, state}) => {
108
+ mx10.vehicle.changeSpecialFunction(testNID, mode, state);
109
+ const data = await firstValueFrom(mx10.vehicle.onCallSpecialFunction);
110
+
111
+ expect(data).toBeDefined();
112
+ expect(data.nid).toBe(testNID);
113
+ expect(data.specialFunctionMode).toBe(mode);
114
+ expect(data.specialFunctionState).toBe(state);
115
+ });
117
116
  });
@@ -95,16 +95,16 @@ export declare enum FxConfigType {
95
95
  SOUND = 17,
96
96
  ANY = 32
97
97
  }
98
- export declare enum SpecialFunctionMode {
98
+ export declare enum SpecialFxNr {
99
99
  MANUAL = 1,
100
- SHUNTING_FUNCTION = 2,
101
- DIRECTION_DEFAULT = 3
100
+ SHUNTING = 2,
101
+ DIR_DEFAULT = 3
102
102
  }
103
103
  export declare enum Manual {
104
104
  OFF = 0,
105
105
  ON = 1
106
106
  }
107
- export declare enum ShuntingFunction {
107
+ export declare enum Shunting {
108
108
  OFF = 0,
109
109
  AZBZ = 1,
110
110
  HALF = 2
@@ -114,23 +114,23 @@ export var FxConfigType;
114
114
  FxConfigType[FxConfigType["SOUND"] = 17] = "SOUND";
115
115
  FxConfigType[FxConfigType["ANY"] = 32] = "ANY";
116
116
  })(FxConfigType || (FxConfigType = {}));
117
- export var SpecialFunctionMode;
118
- (function (SpecialFunctionMode) {
119
- SpecialFunctionMode[SpecialFunctionMode["MANUAL"] = 1] = "MANUAL";
120
- SpecialFunctionMode[SpecialFunctionMode["SHUNTING_FUNCTION"] = 2] = "SHUNTING_FUNCTION";
121
- SpecialFunctionMode[SpecialFunctionMode["DIRECTION_DEFAULT"] = 3] = "DIRECTION_DEFAULT";
122
- })(SpecialFunctionMode || (SpecialFunctionMode = {}));
117
+ export var SpecialFxNr;
118
+ (function (SpecialFxNr) {
119
+ SpecialFxNr[SpecialFxNr["MANUAL"] = 1] = "MANUAL";
120
+ SpecialFxNr[SpecialFxNr["SHUNTING"] = 2] = "SHUNTING";
121
+ SpecialFxNr[SpecialFxNr["DIR_DEFAULT"] = 3] = "DIR_DEFAULT";
122
+ })(SpecialFxNr || (SpecialFxNr = {}));
123
123
  export var Manual;
124
124
  (function (Manual) {
125
125
  Manual[Manual["OFF"] = 0] = "OFF";
126
126
  Manual[Manual["ON"] = 1] = "ON";
127
127
  })(Manual || (Manual = {}));
128
- export var ShuntingFunction;
129
- (function (ShuntingFunction) {
130
- ShuntingFunction[ShuntingFunction["OFF"] = 0] = "OFF";
131
- ShuntingFunction[ShuntingFunction["AZBZ"] = 1] = "AZBZ";
132
- ShuntingFunction[ShuntingFunction["HALF"] = 2] = "HALF";
133
- })(ShuntingFunction || (ShuntingFunction = {}));
128
+ export var Shunting;
129
+ (function (Shunting) {
130
+ Shunting[Shunting["OFF"] = 0] = "OFF";
131
+ Shunting[Shunting["AZBZ"] = 1] = "AZBZ";
132
+ Shunting[Shunting["HALF"] = 2] = "HALF";
133
+ })(Shunting || (Shunting = {}));
134
134
  export var BidiType;
135
135
  (function (BidiType) {
136
136
  BidiType[BidiType["RAILCOM_STATISTICS"] = 0] = "RAILCOM_STATISTICS";
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/common/enums.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/common/enums.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,OAKX;AALD,WAAY,OAAO;IAClB,mCAAU,CAAA;IACV,mCAAU,CAAA;IACV,mCAAU,CAAA;IACV,mCAAU,CAAA;AACX,CAAC,EALW,OAAO,KAAP,OAAO,QAKlB;AAED,MAAM,CAAN,IAAY,aASX;AATD,WAAY,aAAa;IACxB,6BAAY,CAAA;IACZ,4BAAW,CAAA;IACX,4BAAW,CAAA;IACX,4BAAW,CAAA;IACX,0BAAS,CAAA;IACT,4BAAW,CAAA;IACX,oCAAmB,CAAA;IACnB,+BAAc,CAAA;AACf,CAAC,EATW,aAAa,KAAb,aAAa,QASxB;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE;IAE/C,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC;IACtB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC3C,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,aAAa,CAAC,OAAO,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACxB,uDAAO,CAAA;IACP,mDAAK,CAAA;IACL,mDAAK,CAAA;IACL,mDAAK,CAAA;IACL,qDAAM,CAAA;IACN,uDAAO,CAAA;AACR,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;AAED,MAAM,CAAN,IAAY,kBAWX;AAXD,WAAY,kBAAkB;IAE7B,+BAAS,CAAA;IAET,+BAAS,CAAA;IACT,+BAAS,CAAA;IACT,+BAAS,CAAA;IAET,mCAAa,CAAA;IAEb,mCAAa,CAAA;AACd,CAAC,EAXW,kBAAkB,KAAlB,kBAAkB,QAW7B;AAKD,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IAEvB,mDAAU,CAAA;IAEP,uDAAe,CAAA;AACnB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IAC1B,yDAAU,CAAA;IACV,qDAAQ,CAAA;IACR,qDAAQ,CAAA;IACR,mDAAO,CAAA;IACP,2DAAW,CAAA;IACX,sEAAiB,CAAA;AAClB,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B;AAED,MAAM,CAAN,IAAY,SAUX;AAVD,WAAY,SAAS;IACpB,wCAAQ,CAAA;IACR,6CAAU,CAAA;IACV,yCAAQ,CAAA;IACR,yCAAQ,CAAA;IACR,uCAAO,CAAA;IACP,6CAAU,CAAA;IACV,2CAAS,CAAA;IACT,2CAAS,CAAA;IACT,mDAAa,CAAA;AACd,CAAC,EAVW,SAAS,KAAT,SAAS,QAUpB;AAED,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACpB,mDAAa,CAAA;IACb,yCAAQ,CAAA;IACR,yCAAQ,CAAA;AACT,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAED,MAAM,CAAN,IAAY,QAYX;AAZD,WAAY,QAAQ;IACnB,6CAAO,CAAA;IACP,6CAAO,CAAA;IACP,mDAAU,CAAA;IACV,uDAAY,CAAA;IACZ,6CAAO,CAAA;IACP,qDAAW,CAAA;IACX,yCAAK,CAAA;IACL,uCAAI,CAAA;IACJ,uDAAY,CAAA;IACZ,uCAAI,CAAA;IACJ,oDAAU,CAAA;AACX,CAAC,EAZW,QAAQ,KAAR,QAAQ,QAYnB;AAED,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACpB,+CAAW,CAAA;IACX,2DAAiB,CAAA;IACjB,2CAAS,CAAA;IACT,0FAAiC,CAAA;IACjC,sEAAyB,CAAA;AAC1B,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB;AAED,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACrB,+CAAa,CAAA;IACb,+CAAa,CAAA;IACb,iDAAc,CAAA;IACd,mDAAe,CAAA;AAChB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED,MAAM,CAAN,IAAY,YASX;AATD,WAAY,YAAY;IACvB,iEAAoB,CAAA;IACpB,+CAAW,CAAA;IACX,+CAAW,CAAA;IACX,+DAAmB,CAAA;IACnB,+DAAmB,CAAA;IACnB,gDAAW,CAAA;IACX,kDAAY,CAAA;IACZ,8CAAU,CAAA;AACX,CAAC,EATW,YAAY,KAAZ,YAAY,QASvB;AAED,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACtB,iDAAU,CAAA;IACV,qDAAY,CAAA;IACZ,2DAAe,CAAA;AAChB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,MAAM,CAAN,IAAY,MAGX;AAHD,WAAY,MAAM;IACjB,iCAAO,CAAA;IACP,+BAAM,CAAA;AACP,CAAC,EAHW,MAAM,KAAN,MAAM,QAGjB;AAED,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IACnB,qCAAO,CAAA;IACP,uCAAQ,CAAA;IACR,uCAAQ,CAAA;AACT,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,MAAM,CAAN,IAAY,QAUX;AAVD,WAAY,QAAQ;IACnB,mEAA2B,CAAA;IAC3B,yDAAqB,CAAA;IACrB,6DAAuB,CAAA;IACvB,qCAAW,CAAA;IACX,uCAAY,CAAA;IACZ,sDAAmB,CAAA;IACnB,oDAAkB,CAAA;IAClB,4DAAsB,CAAA;IACtB,8CAAe,CAAA;AAChB,CAAC,EAVW,QAAQ,KAAR,QAAQ,QAUnB;AAED,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC3B,6DAAW,CAAA;IACX,6DAAW,CAAA;IACX,6DAAW,CAAA;AACZ,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,MAAM,CAAN,IAAY,WAgBX;AAhBD,WAAY,WAAW;IACtB,yDAAc,CAAA;IACd,yDAAc,CAAA;IACd,+DAAiB,CAAA;IACjB,+DAAiB,CAAA;IACjB,qDAAY,CAAA;IACZ,qDAAY,CAAA;IACZ,mEAAmB,CAAA;IACnB,mEAAmB,CAAA;IACnB,8DAAiB,CAAA;IACjB,0DAAe,CAAA;IACf,iFAA6B,CAAA;IAC7B,iFAA6B,CAAA;IAC7B,+EAA4B,CAAA;IAC5B,iFAA6B,CAAA;IAC7B,iFAA6B,CAAA;AAC9B,CAAC,EAhBW,WAAW,KAAX,WAAW,QAgBtB;AAED,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACxB,uDAAW,CAAA;IACX,qDAAU,CAAA;IACV,qDAAU,CAAA;AACX,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC7B,+BAAS,CAAA;IACT,iCAAW,CAAA;IACX,yCAAmB,CAAA;AACpB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B"}
@@ -1,4 +1,4 @@
1
- import { NameType, Direction, ExternalController, FunctionMode, OperatingMode, SystemStateMode, TrackMode, ImageType, FxConfigType, SpecialFunctionMode, Manual, ShuntingFunction, BidiType, ForwardOrReverse, AccessoryMode, FxModeType } from './enums';
1
+ import { NameType, Direction, ExternalController, FunctionMode, OperatingMode, SystemStateMode, TrackMode, ImageType, FxConfigType, Manual, AccessoryMode, FxModeType, Shunting } from './enums';
2
2
  import { ZcanDataArray } from './communication';
3
3
  export interface Train {
4
4
  nid: number;
@@ -39,7 +39,7 @@ export interface DataValueExtendedData {
39
39
  operatingMode: OperatingMode;
40
40
  functionsStates: boolean[];
41
41
  flags: TrainFlags;
42
- shuntingFunction: ShuntingFunction;
42
+ shuntingFunction: Shunting;
43
43
  manualMode: Manual;
44
44
  deleted: boolean;
45
45
  }
@@ -94,17 +94,6 @@ export interface ModulePowerInfoData {
94
94
  voltageTotal: number;
95
95
  temperature: number;
96
96
  }
97
- export interface BidiInfoData {
98
- nid: number;
99
- type: BidiType;
100
- data: BidiDirectionData | number;
101
- }
102
- export interface BidiDirectionData {
103
- direction?: Direction;
104
- forwardOrReverse?: ForwardOrReverse;
105
- directionChange?: boolean;
106
- directionConfirm?: boolean;
107
- }
108
97
  export interface VehicleStateData {
109
98
  nid: number;
110
99
  ctrlTick: number;
@@ -130,11 +119,6 @@ export interface CallFunctionData {
130
119
  functionNumber: number;
131
120
  functionState: boolean;
132
121
  }
133
- export interface CallSpecialFunctionData {
134
- nid: number;
135
- specialFunctionMode: SpecialFunctionMode;
136
- specialFunctionState: Manual | ShuntingFunction | Direction;
137
- }
138
122
  export interface SystemStateData {
139
123
  nid: number;
140
124
  port: number;
@@ -23,8 +23,6 @@ export default class LanDataGroup {
23
23
  private parseDataNameExtended;
24
24
  private parseLocoGuiExtended;
25
25
  private parseLocoSpeedTabExtended;
26
- private parseEra;
27
26
  private parseFlags;
28
27
  private parseDeleted;
29
- private destructureBuffer;
30
28
  }
@@ -215,41 +215,11 @@ export default class LanDataGroup {
215
215
  }
216
216
  this.onLocoSpeedTabExtended.next({ srcid: SrcID, nid: NID, dbat6: DBat6, speedTab: locoSpeedTab });
217
217
  }
218
- parseEra(eraString) {
219
- switch (eraString & 0xf0) {
220
- case 0x10:
221
- return 'I';
222
- case 0x20:
223
- return 'II';
224
- case 0x30:
225
- return 'III';
226
- case 0x40:
227
- return 'IV';
228
- case 0x50:
229
- return 'V';
230
- case 0x60:
231
- return 'VI';
232
- case 0x70:
233
- return 'VII';
234
- default:
235
- return '';
236
- }
237
- }
238
218
  parseFlags(flagsNumber) {
239
219
  return { deleted: flagsNumber >> 31 === 1 };
240
220
  }
241
221
  parseDeleted(parseDeletedFlag) {
242
222
  return parseDeletedFlag === 1;
243
223
  }
244
- destructureBuffer(buffer) {
245
- const values = [];
246
- for (let i = 0; i < buffer.length; i += 2) {
247
- values.push({
248
- value: buffer.readUInt16LE(i),
249
- length: 2,
250
- });
251
- }
252
- return values;
253
- }
254
224
  }
255
225
  //# sourceMappingURL=lanDataGroup.js.map