@zimo-elektronik/zcan 1.0.55 → 1.0.56
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/.github/workflows/docs.yml +5 -5
- package/.github/workflows/library.yml +7 -8
- package/dist/loco/vehicleGroup.d.ts +9 -4
- package/dist/loco/vehicleGroup.js +73 -18
- package/dist/loco/vehicleGroup.js.map +1 -1
- package/dist/loco/vehicleMsg.d.ts +26 -0
- package/dist/loco/vehicleMsg.js +41 -1
- package/dist/loco/vehicleMsg.js.map +1 -1
- package/package.json +1 -1
- package/src/loco/vehicleGroup.ts +99 -21
- package/src/loco/vehicleMsg.ts +52 -1
|
@@ -24,23 +24,23 @@ jobs:
|
|
|
24
24
|
url: ${{ steps.deployment.outputs.page_url }}
|
|
25
25
|
|
|
26
26
|
steps:
|
|
27
|
-
- uses: actions/checkout@
|
|
27
|
+
- uses: actions/checkout@v6
|
|
28
28
|
with:
|
|
29
29
|
fetch-depth: 0
|
|
30
30
|
- uses: actions/setup-node@v4
|
|
31
31
|
with:
|
|
32
|
-
node-version:
|
|
32
|
+
node-version: "20.11.0"
|
|
33
33
|
|
|
34
34
|
- run: npm ci --ignore-scripts
|
|
35
35
|
- run: cd protocol_docs && npm ci --ignore-scripts
|
|
36
36
|
- run: npm run docs
|
|
37
37
|
|
|
38
38
|
- name: Setup Pages
|
|
39
|
-
uses: actions/configure-pages@
|
|
39
|
+
uses: actions/configure-pages@v6
|
|
40
40
|
- name: Upload artifact
|
|
41
|
-
uses: actions/upload-pages-artifact@
|
|
41
|
+
uses: actions/upload-pages-artifact@v5
|
|
42
42
|
with:
|
|
43
43
|
path: protocol_docs/build
|
|
44
44
|
- name: Deploy to GitHub Pages
|
|
45
45
|
id: deployment
|
|
46
|
-
uses: actions/deploy-pages@
|
|
46
|
+
uses: actions/deploy-pages@v5
|
|
@@ -16,13 +16,13 @@ jobs:
|
|
|
16
16
|
outputs:
|
|
17
17
|
should_skip: ${{ steps.check.outputs.should_skip }}
|
|
18
18
|
steps:
|
|
19
|
-
- uses: actions/checkout@
|
|
19
|
+
- uses: actions/checkout@v6
|
|
20
20
|
with:
|
|
21
21
|
fetch-depth: 0
|
|
22
22
|
- uses: actions/setup-node@v4
|
|
23
23
|
with:
|
|
24
|
-
node-version:
|
|
25
|
-
registry-url:
|
|
24
|
+
node-version: "20.11.0"
|
|
25
|
+
registry-url: "https://registry.npmjs.org"
|
|
26
26
|
- id: check
|
|
27
27
|
run: |
|
|
28
28
|
PUBLISHED_VERSION=$(npm show @zimo-elektronik/zcan version)
|
|
@@ -36,24 +36,23 @@ jobs:
|
|
|
36
36
|
echo "should_skip=no" >> $GITHUB_OUTPUT
|
|
37
37
|
fi
|
|
38
38
|
|
|
39
|
-
|
|
40
39
|
build:
|
|
41
40
|
runs-on: ubuntu-latest
|
|
42
41
|
needs:
|
|
43
42
|
- check
|
|
44
|
-
if:
|
|
43
|
+
if: ${{needs.check.outputs.should_skip == 'no'}}
|
|
45
44
|
permissions:
|
|
46
45
|
contents: read
|
|
47
46
|
id-token: write
|
|
48
47
|
|
|
49
48
|
steps:
|
|
50
|
-
- uses: actions/checkout@
|
|
49
|
+
- uses: actions/checkout@v6
|
|
51
50
|
with:
|
|
52
51
|
fetch-depth: 0
|
|
53
52
|
- uses: actions/setup-node@v4
|
|
54
53
|
with:
|
|
55
|
-
node-version:
|
|
56
|
-
registry-url:
|
|
54
|
+
node-version: "20.11.0"
|
|
55
|
+
registry-url: "https://registry.npmjs.org"
|
|
57
56
|
|
|
58
57
|
- run: npm ci
|
|
59
58
|
- run: npm run build
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import MX10 from '../MX10';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
|
-
import { CallFunctionData } from '../common/models';
|
|
4
3
|
import { Direction, MaxSpeedSteps, OperatingMode, SpecialFxNr } from '../common/enums';
|
|
5
|
-
import { MsgSpecialFx, MsgVehicleLastCtl, MsgVehicleMode, MsgVehicleSpeed, MsgVehicleState } from './vehicleMsg';
|
|
4
|
+
import { MsgFx, MsgFxStates, MsgSpecialFx, MsgVehicleLastCtl, MsgVehicleMode, MsgVehicleSpeed, MsgVehicleState } from './vehicleMsg';
|
|
6
5
|
export default class VehicleGroup {
|
|
7
6
|
readonly onVehicleState: Subject<MsgVehicleState>;
|
|
8
7
|
readonly onVehicleLastCtl: Subject<MsgVehicleLastCtl>;
|
|
9
8
|
readonly onVehicleMode: Subject<MsgVehicleMode>;
|
|
10
9
|
readonly onVehicleSpeed: Subject<MsgVehicleSpeed>;
|
|
11
|
-
readonly onCallFunction: Subject<
|
|
10
|
+
readonly onCallFunction: Subject<MsgFx>;
|
|
11
|
+
readonly onFxStates: Subject<MsgFxStates>;
|
|
12
12
|
readonly onCallSpecialFunction: Subject<MsgSpecialFx>;
|
|
13
13
|
private stateQ;
|
|
14
14
|
private lastCtlQ;
|
|
15
15
|
private modeQ;
|
|
16
16
|
private speedQ;
|
|
17
|
+
private fxQ;
|
|
18
|
+
private fxStatesQ;
|
|
17
19
|
private sfxQ;
|
|
18
20
|
private mx10;
|
|
19
21
|
constructor(mx10: MX10);
|
|
@@ -24,7 +26,9 @@ export default class VehicleGroup {
|
|
|
24
26
|
getSpeed(trainNid: number): Promise<MsgVehicleSpeed | undefined>;
|
|
25
27
|
setSpeed(trainNid: number, speedStep: number, divisor?: number, forward?: boolean, emergencyStop?: boolean, eastWest?: Direction): Promise<MsgVehicleSpeed | undefined>;
|
|
26
28
|
changeSpeed(vehicleAddress: number, speedStep: number, forward: boolean, eastWest?: Direction, emergencyStop?: boolean): void;
|
|
27
|
-
|
|
29
|
+
getFx(nid: number, fxNr: number): Promise<MsgFx | undefined>;
|
|
30
|
+
setFx(nid: number, fxNr: number, state: number): Promise<MsgFx | undefined>;
|
|
31
|
+
getFxStates(nid: number): Promise<MsgFxStates | undefined>;
|
|
28
32
|
getSpecialFx(nid: number, sfxNr: SpecialFxNr): Promise<MsgSpecialFx | undefined>;
|
|
29
33
|
setSpecialFx(nid: number, sfxNr: SpecialFxNr, state: number): Promise<MsgSpecialFx | undefined>;
|
|
30
34
|
activeModeTrain(vehicleAddress: number): void;
|
|
@@ -33,6 +37,7 @@ export default class VehicleGroup {
|
|
|
33
37
|
private parseVehicleState;
|
|
34
38
|
private parseVehicleMode;
|
|
35
39
|
private parseVehicleSpeed;
|
|
40
|
+
private parseVehicleFxStates;
|
|
36
41
|
private parseVehicleFunction;
|
|
37
42
|
private parseVehicleSpecialFunction;
|
|
38
43
|
private parseVehicleLastCtl;
|
|
@@ -2,18 +2,21 @@ import { Subject } from 'rxjs';
|
|
|
2
2
|
import { Direction, MsgMode } from '../common/enums';
|
|
3
3
|
import { combineSpeedAndDirection } from '../common/speedUtils';
|
|
4
4
|
import { Query } from '../common/communication';
|
|
5
|
-
import { MsgSpecialFx, MsgVehicleLastCtl, MsgVehicleMode, MsgVehicleSpeed, MsgVehicleState } from './vehicleMsg';
|
|
5
|
+
import { MsgFx, MsgFxStates, MsgSpecialFx, MsgVehicleLastCtl, MsgVehicleMode, MsgVehicleSpeed, MsgVehicleState } from './vehicleMsg';
|
|
6
6
|
export default class VehicleGroup {
|
|
7
7
|
onVehicleState = new Subject();
|
|
8
8
|
onVehicleLastCtl = new Subject();
|
|
9
9
|
onVehicleMode = new Subject();
|
|
10
10
|
onVehicleSpeed = new Subject();
|
|
11
11
|
onCallFunction = new Subject();
|
|
12
|
+
onFxStates = new Subject();
|
|
12
13
|
onCallSpecialFunction = new Subject();
|
|
13
14
|
stateQ = undefined;
|
|
14
15
|
lastCtlQ = undefined;
|
|
15
16
|
modeQ = undefined;
|
|
16
17
|
speedQ = undefined;
|
|
18
|
+
fxQ = undefined;
|
|
19
|
+
fxStatesQ = undefined;
|
|
17
20
|
sfxQ = undefined;
|
|
18
21
|
mx10;
|
|
19
22
|
constructor(mx10) { this.mx10 = mx10; }
|
|
@@ -145,12 +148,62 @@ export default class VehicleGroup {
|
|
|
145
148
|
{ value: 0x0000, length: 2 },
|
|
146
149
|
]);
|
|
147
150
|
}
|
|
148
|
-
|
|
149
|
-
this.
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
151
|
+
async getFx(nid, fxNr) {
|
|
152
|
+
if (this.fxQ !== undefined && !await this.fxQ.lock()) {
|
|
153
|
+
this.mx10.logInfo.next("mx10.getFx: failed to acquire lock");
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
this.fxQ = new Query(MsgFx.header(MsgMode.REQ, nid), this.onCallFunction);
|
|
157
|
+
this.fxQ.tx = ((header) => {
|
|
158
|
+
const msg = new MsgFx(header, fxNr);
|
|
159
|
+
this.mx10.sendMsg(msg);
|
|
160
|
+
});
|
|
161
|
+
this.fxQ.match = ((msg) => {
|
|
162
|
+
return (msg.nid() === nid && msg.fxNr() === fxNr);
|
|
163
|
+
});
|
|
164
|
+
const rv = await this.fxQ.run();
|
|
165
|
+
this.mx10.logInfo.next("mx10.getFx.rv: " + JSON.stringify(rv));
|
|
166
|
+
this.fxQ.unlock();
|
|
167
|
+
this.fxQ = undefined;
|
|
168
|
+
return rv;
|
|
169
|
+
}
|
|
170
|
+
async setFx(nid, fxNr, state) {
|
|
171
|
+
if (this.fxQ !== undefined && !await this.fxQ.lock()) {
|
|
172
|
+
this.mx10.logInfo.next("mx10.setFx: failed to acquire lock");
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
this.fxQ = new Query(MsgFx.header(MsgMode.CMD, nid), this.onCallFunction);
|
|
176
|
+
this.fxQ.tx = ((header) => {
|
|
177
|
+
const msg = new MsgFx(header, fxNr, state);
|
|
178
|
+
this.mx10.sendMsg(msg);
|
|
179
|
+
});
|
|
180
|
+
this.fxQ.match = ((msg) => {
|
|
181
|
+
return (msg.nid() === nid && msg.fxNr() === fxNr);
|
|
182
|
+
});
|
|
183
|
+
const rv = await this.fxQ.run();
|
|
184
|
+
this.mx10.logInfo.next("mx10.setFx.rv: " + JSON.stringify(rv));
|
|
185
|
+
this.fxQ.unlock();
|
|
186
|
+
this.fxQ = undefined;
|
|
187
|
+
return rv;
|
|
188
|
+
}
|
|
189
|
+
async getFxStates(nid) {
|
|
190
|
+
if (this.fxStatesQ !== undefined && !await this.fxStatesQ.lock()) {
|
|
191
|
+
this.mx10.logInfo.next("mx10.getFxStates: failed to acquire lock");
|
|
192
|
+
return undefined;
|
|
193
|
+
}
|
|
194
|
+
this.fxStatesQ = new Query(MsgFxStates.header(MsgMode.REQ, nid), this.onFxStates);
|
|
195
|
+
this.fxStatesQ.tx = ((header) => {
|
|
196
|
+
const msg = new MsgFxStates(header);
|
|
197
|
+
this.mx10.sendMsg(msg);
|
|
198
|
+
});
|
|
199
|
+
this.fxStatesQ.match = ((msg) => {
|
|
200
|
+
return (msg.nid() === nid);
|
|
201
|
+
});
|
|
202
|
+
const rv = await this.fxStatesQ.run();
|
|
203
|
+
this.mx10.logInfo.next("mx10.getFxStates.rv: " + JSON.stringify(rv));
|
|
204
|
+
this.fxStatesQ.unlock();
|
|
205
|
+
this.fxStatesQ = undefined;
|
|
206
|
+
return rv;
|
|
154
207
|
}
|
|
155
208
|
async getSpecialFx(nid, sfxNr) {
|
|
156
209
|
if (this.sfxQ !== undefined && !await this.sfxQ.lock()) {
|
|
@@ -163,7 +216,7 @@ export default class VehicleGroup {
|
|
|
163
216
|
this.mx10.sendMsg(msg);
|
|
164
217
|
});
|
|
165
218
|
this.sfxQ.match = ((msg) => {
|
|
166
|
-
return (msg.nid() === nid);
|
|
219
|
+
return (msg.nid() === nid && msg.sfxNr() === sfxNr);
|
|
167
220
|
});
|
|
168
221
|
const rv = await this.sfxQ.run();
|
|
169
222
|
this.mx10.logInfo.next("mx10.getSpecialFx.rv: " + JSON.stringify(rv));
|
|
@@ -182,7 +235,7 @@ export default class VehicleGroup {
|
|
|
182
235
|
this.mx10.sendMsg(msg);
|
|
183
236
|
});
|
|
184
237
|
this.sfxQ.match = ((msg) => {
|
|
185
|
-
return (msg.nid() === nid);
|
|
238
|
+
return (msg.nid() === nid && msg.sfxNr() === sfxNr);
|
|
186
239
|
});
|
|
187
240
|
const rv = await this.sfxQ.run();
|
|
188
241
|
this.mx10.logInfo.next("mx10.setSpecialFx.rv: " + JSON.stringify(rv));
|
|
@@ -213,6 +266,9 @@ export default class VehicleGroup {
|
|
|
213
266
|
case 0x02:
|
|
214
267
|
this.parseVehicleSpeed(size, mode, nid, buffer);
|
|
215
268
|
break;
|
|
269
|
+
case 0x03:
|
|
270
|
+
this.parseVehicleFxStates(size, mode, nid, buffer);
|
|
271
|
+
break;
|
|
216
272
|
case 0x04:
|
|
217
273
|
this.parseVehicleFunction(size, mode, nid, buffer);
|
|
218
274
|
break;
|
|
@@ -243,17 +299,16 @@ export default class VehicleGroup {
|
|
|
243
299
|
const msg = MsgVehicleSpeed.fromBuffer(mode, buffer);
|
|
244
300
|
this.onVehicleSpeed.next(msg);
|
|
245
301
|
}
|
|
302
|
+
parseVehicleFxStates(size, mode, nid, buffer) {
|
|
303
|
+
if (this.onFxStates.observed) {
|
|
304
|
+
const msg = MsgFxStates.fromBuffer(mode, buffer);
|
|
305
|
+
this.onFxStates.next(msg);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
246
308
|
parseVehicleFunction(size, mode, nid, buffer) {
|
|
247
309
|
if (this.onCallFunction.observed) {
|
|
248
|
-
const
|
|
249
|
-
|
|
250
|
-
const functionState = buffer.readUInt16LE(4);
|
|
251
|
-
const functionActive = functionState !== 0x00;
|
|
252
|
-
this.onCallFunction.next({
|
|
253
|
-
nid: NID,
|
|
254
|
-
functionNumber,
|
|
255
|
-
functionState: functionActive,
|
|
256
|
-
});
|
|
310
|
+
const msg = MsgFx.fromBuffer(mode, buffer);
|
|
311
|
+
this.onCallFunction.next(msg);
|
|
257
312
|
}
|
|
258
313
|
}
|
|
259
314
|
parseVehicleSpecialFunction(size, mode, nid, buffer) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vehicleGroup.js","sourceRoot":"","sources":["../../src/loco/vehicleGroup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vehicleGroup.js","sourceRoot":"","sources":["../../src/loco/vehicleGroup.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,6 +74,32 @@ export declare class MsgVehicleLastCtl extends Message {
|
|
|
74
74
|
seconds(): number;
|
|
75
75
|
static fromBuffer(mode: MsgMode, buffer: Buffer): MsgVehicleLastCtl;
|
|
76
76
|
}
|
|
77
|
+
export declare class MsgFx extends Message {
|
|
78
|
+
static header: (mode: MsgMode, nid: number) => {
|
|
79
|
+
group: number;
|
|
80
|
+
cmd: number;
|
|
81
|
+
mode: MsgMode;
|
|
82
|
+
nid: number;
|
|
83
|
+
};
|
|
84
|
+
constructor(header: Header, fxNr: number, state?: number);
|
|
85
|
+
nid(): number;
|
|
86
|
+
fxNr(): number;
|
|
87
|
+
state(): number | undefined;
|
|
88
|
+
static fromBuffer(mode: MsgMode, buffer: Buffer): MsgFx;
|
|
89
|
+
}
|
|
90
|
+
export declare class MsgFxStates extends Message {
|
|
91
|
+
static header: (mode: MsgMode, nid: number) => {
|
|
92
|
+
group: number;
|
|
93
|
+
cmd: number;
|
|
94
|
+
mode: MsgMode;
|
|
95
|
+
nid: number;
|
|
96
|
+
};
|
|
97
|
+
constructor(header: Header, state?: number);
|
|
98
|
+
nid(): number;
|
|
99
|
+
fx(fxNr: number): boolean | undefined;
|
|
100
|
+
state(): number | undefined;
|
|
101
|
+
static fromBuffer(mode: MsgMode, buffer: Buffer): MsgFxStates;
|
|
102
|
+
}
|
|
77
103
|
export declare class MsgSpecialFx extends Message {
|
|
78
104
|
static header: (mode: MsgMode, nid: number) => {
|
|
79
105
|
group: number;
|
package/dist/loco/vehicleMsg.js
CHANGED
|
@@ -139,6 +139,46 @@ export class MsgVehicleLastCtl extends Message {
|
|
|
139
139
|
return msg;
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
+
export class MsgFx extends Message {
|
|
143
|
+
static header = (mode, nid) => { return { group: 0x2, cmd: 0x4, mode, nid }; };
|
|
144
|
+
constructor(header, fxNr, state) {
|
|
145
|
+
super(header);
|
|
146
|
+
super.push({ value: fxNr, length: 2 });
|
|
147
|
+
if (header.mode === MsgMode.REQ)
|
|
148
|
+
return;
|
|
149
|
+
super.push({ value: state || 0, length: 2 });
|
|
150
|
+
}
|
|
151
|
+
nid() { return this.header.nid || 0; }
|
|
152
|
+
fxNr() { return this.data[0].value; }
|
|
153
|
+
state() { return this.data.length < 2 ? undefined : this.data[1].value; }
|
|
154
|
+
static fromBuffer(mode, buffer) {
|
|
155
|
+
const nid = buffer.readUInt16LE(0);
|
|
156
|
+
const fxNr = buffer.readUInt16LE(2);
|
|
157
|
+
const state = buffer.readUint16LE(4);
|
|
158
|
+
const msg = new MsgFx(MsgFx.header(mode, nid), fxNr, state);
|
|
159
|
+
return msg;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
export class MsgFxStates extends Message {
|
|
163
|
+
static header = (mode, nid) => { return { group: 0x2, cmd: 0x3, mode, nid }; };
|
|
164
|
+
constructor(header, state) {
|
|
165
|
+
super(header);
|
|
166
|
+
if (header.mode === MsgMode.REQ)
|
|
167
|
+
return;
|
|
168
|
+
super.push({ value: state || 0, length: 2 });
|
|
169
|
+
}
|
|
170
|
+
nid() { return this.header.nid || 0; }
|
|
171
|
+
fx(fxNr) {
|
|
172
|
+
return this.data.length < 1 ? undefined : ((this.data[0].value >> fxNr) & 1) === 1;
|
|
173
|
+
}
|
|
174
|
+
state() { return this.data.length < 1 ? undefined : this.data[0].value; }
|
|
175
|
+
static fromBuffer(mode, buffer) {
|
|
176
|
+
const nid = buffer.readUInt16LE(0);
|
|
177
|
+
const state = buffer.readUint32LE(2);
|
|
178
|
+
const msg = new MsgFxStates(MsgFxStates.header(mode, nid), state);
|
|
179
|
+
return msg;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
142
182
|
export class MsgSpecialFx extends Message {
|
|
143
183
|
static header = (mode, nid) => { return { group: 0x2, cmd: 0x5, mode, nid }; };
|
|
144
184
|
constructor(header, sfxNr, state) {
|
|
@@ -155,7 +195,7 @@ export class MsgSpecialFx extends Message {
|
|
|
155
195
|
const nid = buffer.readUInt16LE(0);
|
|
156
196
|
const sfxNr = buffer.readUInt16LE(2);
|
|
157
197
|
const state = buffer.readUint16LE(4);
|
|
158
|
-
const msg = new MsgSpecialFx(
|
|
198
|
+
const msg = new MsgSpecialFx(MsgSpecialFx.header(mode, nid), sfxNr, state);
|
|
159
199
|
return msg;
|
|
160
200
|
}
|
|
161
201
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vehicleMsg.js","sourceRoot":"","sources":["../../src/loco/vehicleMsg.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAe,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjH,MAAM,OAAO,cAAe,SAAQ,OAAO;IAEnC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAa,EAAE,GAAW,EAAE,EAAE,GAAE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,CAAA,CAAA,CAAC,CAAA;IAC1F,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,GAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA,CAAA,CAAC,CAAA;IACnD,MAAM,CAAC,GAAG,GAA0B,GAAG,EAAE,GAAE,CAAC,CAAC;IAE5C,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,EAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;IAEzD,MAAM,CAAC,SAAS,CAAC,MAAqB,EAAE,UAAyB;QAEvE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAW,CAAC;QACrE,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,IAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAA,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAAC,MAAM;YAAA,CAAC;QACpF,OAAO,EAAE,CAAC;IACX,CAAC;IAED,YAAY,MAAc,EAAE,IAAoE;QAE/F,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAG,CAAC,IAAI;YAAE,OAAO;QAEjB,IAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,KAAI,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC1D,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;YAEtC,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;YACvF,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED,OAAO,CAAC,MAAc,IAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,CAAA,CAAC;IAC7D,QAAQ,KAAY,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA,CAAA,CAAC;IAEhD,IAAI;QAEH,IAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IACpD,CAAC;IACD,UAAU;QAET,IAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC1C,MAAM,KAAK,GAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,GAAG,GAAG,CAAC;QACnD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAkB,CAAC;QACxF,OAAO,aAAa,CAAC,OAAO,CAAC;IAC9B,CAAC;IACD,aAAa;QAEZ,IAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC1C,MAAM,IAAI,GAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,IAAI,CAAC,CAAC;QACjD,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,aAAa,CAAC,OAAO,CAAC;IAC9B,CAAC;;AAGF,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAEpC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAa,EAAE,GAAW,EAAE,EAAE,GAAE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,CAAA,CAAA,CAAC,CAAA;IAC1F,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,GAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA,CAAA,CAAC,CAAA;IACnD,MAAM,CAAC,GAAG,GAA0B,GAAG,EAAE,GAAE,CAAC,CAAC;IAC5C,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,EAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;IAEhE,YAAY,MAAc,EAAE,iBAA0B,EAAE,OAAgB;QAEvE,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG;YAAE,OAAO;QACvC,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,MAAc,IAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,CAAA,CAAC;IAC9D,QAAQ,KAAY,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA,CAAA,CAAC;IAChD,OAAO,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IACxD,SAAS,KAAY,OAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,GAAG,cAAc,CAAC,CAAA,CAAC;IAC7E,SAAS,KAAa,OAAO,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,GAAG,cAAc,CAAC,KAAK,cAAc,CAAC,CAAA,CAAC;IACnG,YAAY,KAAa,OAAO,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,GAAG,cAAc,CAAC,KAAK,cAAc,CAAC,CAAA,CAAC;IACtG,OAAO,KAAa,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA,CAAC;IACtE,QAAQ,KAAY,OAAO,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,CAAA,CAAC;IACpF,aAAa,KAAa,OAAO,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,GAAG,cAAc,CAAC,KAAK,cAAc,CAAC,CAAA,CAAC;IAEhG,MAAM,CAAC,UAAU,CAAC,IAAa,EAAE,MAAc;QAErD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACzF,OAAO,GAAG,CAAC;IACZ,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,KAAa,EAAE,UAAmB,IAAI,EAAE,gBAAyB,KAAK,EAC/F,WAAsB,SAAS,CAAC,SAAS;QAEzC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACnC,OAAO,KAAK,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAAA,CAAC;;AAGH,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAEpC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAa,EAAE,GAAW,EAAE,EAAE,GAAE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,CAAA,CAAA,CAAC,CAAA;IAC1F,MAAM,CAAC,GAAG,GAA0B,GAAG,EAAE,GAAE,CAAC,CAAC;IAEpD,YAAY,MAAc,EAAE,KAAc,EAAE,QAAiB,EAAE,OAAgB;QAE9E,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG;YAC7B,OAAO;QACR,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,QAAQ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;IAC9C,CAAC;IACD,QAAQ,KAAY,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA,CAAA,CAAC;IAChD,UAAU,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IAC3D,WAAW,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IAC5D,UAAU,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IAEpD,MAAM,CAAC,UAAU,CAAC,IAAa,EAAE,MAAc;QAErD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7F,OAAO,GAAG,CAAC;IACZ,CAAC;;AAGF,MAAM,OAAO,iBAAkB,SAAQ,OAAO;IAEtC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAa,EAAE,GAAW,EAAE,EAAE,GAAE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAC,CAAA,CAAA,CAAC,CAAA;IAC3F,MAAM,CAAC,GAAG,GAA0B,GAAG,EAAE,GAAE,CAAC,CAAC;IAEpD,YAAY,MAAc,EAAE,IAAY,EAAE,OAAgB,EAAE,QAAiB;QAE5E,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QACrC,IAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG;YAC7B,OAAO;QACR,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,QAAQ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;IAC/C,CAAC;IACD,QAAQ,KAAY,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA,CAAA,CAAC;IAChD,IAAI,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IACrD,MAAM,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IACvD,OAAO,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IAEjD,MAAM,CAAC,UAAU,CAAC,IAAa,EAAE,MAAc;QAErD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9F,OAAO,GAAG,CAAC;IACZ,CAAC;;AAGF,MAAM,OAAO,YAAa,SAAQ,OAAO;IAEjC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAa,EAAE,GAAW,EAAE,EAAE,GAAE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,CAAA,CAAA,CAAC,CAAA;IAEjG,YAAY,MAAc,EAAE,KAAkB,EAAE,KAAc;QAE7D,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QAC3C,IAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG;YAC7B,OAAO;QACR,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;IAC5C,CAAC;IACD,GAAG,KAAY,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA,CAAA,CAAC;IAC3C,KAAK,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IACtD,KAAK,KAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IAE9F,MAAM,CAAC,UAAU,CAAC,IAAa,EAAE,MAAc;QAErD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9E,OAAO,GAAG,CAAC;IACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"vehicleMsg.js","sourceRoot":"","sources":["../../src/loco/vehicleMsg.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAe,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjH,MAAM,OAAO,cAAe,SAAQ,OAAO;IAEnC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAa,EAAE,GAAW,EAAE,EAAE,GAAE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,CAAA,CAAA,CAAC,CAAA;IAC1F,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,GAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA,CAAA,CAAC,CAAA;IACnD,MAAM,CAAC,GAAG,GAA0B,GAAG,EAAE,GAAE,CAAC,CAAC;IAE5C,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,EAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;IAEzD,MAAM,CAAC,SAAS,CAAC,MAAqB,EAAE,UAAyB;QAEvE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAW,CAAC;QACrE,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,IAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAA,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAAC,MAAM;YAAA,CAAC;QACpF,OAAO,EAAE,CAAC;IACX,CAAC;IAED,YAAY,MAAc,EAAE,IAAoE;QAE/F,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAG,CAAC,IAAI;YAAE,OAAO;QAEjB,IAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,KAAI,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC1D,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;YAEtC,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;YACvF,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED,OAAO,CAAC,MAAc,IAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,CAAA,CAAC;IAC7D,QAAQ,KAAY,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA,CAAA,CAAC;IAEhD,IAAI;QAEH,IAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IACpD,CAAC;IACD,UAAU;QAET,IAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC1C,MAAM,KAAK,GAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,GAAG,GAAG,CAAC;QACnD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAkB,CAAC;QACxF,OAAO,aAAa,CAAC,OAAO,CAAC;IAC9B,CAAC;IACD,aAAa;QAEZ,IAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC1C,MAAM,IAAI,GAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,IAAI,CAAC,CAAC;QACjD,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,aAAa,CAAC,OAAO,CAAC;IAC9B,CAAC;;AAGF,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAEpC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAa,EAAE,GAAW,EAAE,EAAE,GAAE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,CAAA,CAAA,CAAC,CAAA;IAC1F,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,GAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA,CAAA,CAAC,CAAA;IACnD,MAAM,CAAC,GAAG,GAA0B,GAAG,EAAE,GAAE,CAAC,CAAC;IAC5C,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,EAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;IAEhE,YAAY,MAAc,EAAE,iBAA0B,EAAE,OAAgB;QAEvE,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG;YAAE,OAAO;QACvC,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,MAAc,IAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,CAAA,CAAC;IAC9D,QAAQ,KAAY,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA,CAAA,CAAC;IAChD,OAAO,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IACxD,SAAS,KAAY,OAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,GAAG,cAAc,CAAC,CAAA,CAAC;IAC7E,SAAS,KAAa,OAAO,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,GAAG,cAAc,CAAC,KAAK,cAAc,CAAC,CAAA,CAAC;IACnG,YAAY,KAAa,OAAO,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,GAAG,cAAc,CAAC,KAAK,cAAc,CAAC,CAAA,CAAC;IACtG,OAAO,KAAa,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA,CAAC;IACtE,QAAQ,KAAY,OAAO,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,CAAA,CAAC;IACpF,aAAa,KAAa,OAAO,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,GAAG,cAAc,CAAC,KAAK,cAAc,CAAC,CAAA,CAAC;IAEhG,MAAM,CAAC,UAAU,CAAC,IAAa,EAAE,MAAc;QAErD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACzF,OAAO,GAAG,CAAC;IACZ,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,KAAa,EAAE,UAAmB,IAAI,EAAE,gBAAyB,KAAK,EAC/F,WAAsB,SAAS,CAAC,SAAS;QAEzC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACnC,OAAO,KAAK,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAAA,CAAC;;AAGH,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAEpC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAa,EAAE,GAAW,EAAE,EAAE,GAAE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,CAAA,CAAA,CAAC,CAAA;IAC1F,MAAM,CAAC,GAAG,GAA0B,GAAG,EAAE,GAAE,CAAC,CAAC;IAEpD,YAAY,MAAc,EAAE,KAAc,EAAE,QAAiB,EAAE,OAAgB;QAE9E,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG;YAC7B,OAAO;QACR,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,QAAQ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;IAC9C,CAAC;IACD,QAAQ,KAAY,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA,CAAA,CAAC;IAChD,UAAU,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IAC3D,WAAW,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IAC5D,UAAU,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IAEpD,MAAM,CAAC,UAAU,CAAC,IAAa,EAAE,MAAc;QAErD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7F,OAAO,GAAG,CAAC;IACZ,CAAC;;AAGF,MAAM,OAAO,iBAAkB,SAAQ,OAAO;IAEtC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAa,EAAE,GAAW,EAAE,EAAE,GAAE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAC,CAAA,CAAA,CAAC,CAAA;IAC3F,MAAM,CAAC,GAAG,GAA0B,GAAG,EAAE,GAAE,CAAC,CAAC;IAEpD,YAAY,MAAc,EAAE,IAAY,EAAE,OAAgB,EAAE,QAAiB;QAE5E,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QACrC,IAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG;YAC7B,OAAO;QACR,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,QAAQ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;IAC/C,CAAC;IACD,QAAQ,KAAY,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA,CAAA,CAAC;IAChD,IAAI,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IACrD,MAAM,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IACvD,OAAO,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IAEjD,MAAM,CAAC,UAAU,CAAC,IAAa,EAAE,MAAc;QAErD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9F,OAAO,GAAG,CAAC;IACZ,CAAC;;AAGF,MAAM,OAAO,KAAM,SAAQ,OAAO;IAE1B,MAAM,CAAC,MAAM,GAAG,CAAC,IAAa,EAAE,GAAW,EAAE,EAAE,GAAE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,CAAA,CAAA,CAAC,CAAA;IAEjG,YAAY,MAAc,EAAE,IAAY,EAAE,KAAc;QAEvD,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QACrC,IAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG;YAC7B,OAAO;QACR,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;IAC5C,CAAC;IACD,GAAG,KAAY,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA,CAAA,CAAC;IAC3C,IAAI,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IACrD,KAAK,KAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IAE9F,MAAM,CAAC,UAAU,CAAC,IAAa,EAAE,MAAc;QAErD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,GAAG,CAAC;IACZ,CAAC;;AAGF,MAAM,OAAO,WAAY,SAAQ,OAAO;IAEhC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAa,EAAE,GAAW,EAAE,EAAE,GAAE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,CAAA,CAAA,CAAC,CAAA;IAEjG,YAAY,MAAc,EAAE,KAAc;QAEzC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG;YAC7B,OAAO;QACR,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;IAC5C,CAAC;IACD,GAAG,KAAY,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA,CAAA,CAAC;IAC3C,EAAE,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAAA,CAAC;IAC/F,KAAK,KAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IAE9F,MAAM,CAAC,UAAU,CAAC,IAAa,EAAE,MAAc;QAErD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAClE,OAAO,GAAG,CAAC;IACZ,CAAC;;AAGF,MAAM,OAAO,YAAa,SAAQ,OAAO;IAEjC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAa,EAAE,GAAW,EAAE,EAAE,GAAE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,CAAA,CAAA,CAAC,CAAA;IAEjG,YAAY,MAAc,EAAE,KAAkB,EAAE,KAAc;QAE7D,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;QAC3C,IAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG;YAC7B,OAAO;QACR,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;IAC5C,CAAC;IACD,GAAG,KAAY,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA,CAAA,CAAC;IAC3C,KAAK,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IACtD,KAAK,KAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAA,CAAC;IAE9F,MAAM,CAAC,UAAU,CAAC,IAAa,EAAE,MAAc;QAErD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3E,OAAO,GAAG,CAAC;IACZ,CAAC"}
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": "https://github.com/ZIMO-Elektronik/zcan",
|
|
8
|
-
"version": "1.0.
|
|
8
|
+
"version": "1.0.56",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"start": "node dist/main.js",
|
|
11
11
|
"start:dev": "nodemon --ext js,ts,json,env --exec \"node --experimental-specifier-resolution=node --loader ts-node/esm\" src/main.ts",
|
package/src/loco/vehicleGroup.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
2
|
import MX10 from '../MX10';
|
|
3
3
|
import {Subject} from 'rxjs';
|
|
4
|
-
import {CallFunctionData} from '../common/models';
|
|
5
4
|
import {Direction, Manual, MaxSpeedSteps, MsgMode, OperatingMode, SpecialFxNr} from '../common/enums';
|
|
6
5
|
import {combineSpeedAndDirection} from '../common/speedUtils';
|
|
7
6
|
import { Query } from '../common/communication';
|
|
8
|
-
import { MsgSpecialFx, MsgVehicleLastCtl, MsgVehicleMode, MsgVehicleSpeed, MsgVehicleState } from './vehicleMsg';
|
|
7
|
+
import { MsgFx, MsgFxStates, MsgSpecialFx, MsgVehicleLastCtl, MsgVehicleMode, MsgVehicleSpeed, MsgVehicleState } from './vehicleMsg';
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
*
|
|
@@ -17,13 +16,16 @@ export default class VehicleGroup
|
|
|
17
16
|
public readonly onVehicleLastCtl = new Subject<MsgVehicleLastCtl>();
|
|
18
17
|
public readonly onVehicleMode = new Subject<MsgVehicleMode>();
|
|
19
18
|
public readonly onVehicleSpeed = new Subject<MsgVehicleSpeed>();
|
|
20
|
-
public readonly onCallFunction = new Subject<
|
|
19
|
+
public readonly onCallFunction = new Subject<MsgFx>();
|
|
20
|
+
public readonly onFxStates = new Subject<MsgFxStates>();
|
|
21
21
|
public readonly onCallSpecialFunction = new Subject<MsgSpecialFx>();
|
|
22
22
|
|
|
23
23
|
private stateQ: Query<MsgVehicleState> | undefined = undefined;
|
|
24
24
|
private lastCtlQ: Query<MsgVehicleLastCtl> | undefined = undefined;
|
|
25
25
|
private modeQ: Query<MsgVehicleMode> | undefined = undefined;
|
|
26
26
|
private speedQ: Query<MsgVehicleSpeed> | undefined = undefined;
|
|
27
|
+
private fxQ: Query<MsgFx> | undefined = undefined;
|
|
28
|
+
private fxStatesQ: Query<MsgFxStates> | undefined = undefined;
|
|
27
29
|
private sfxQ: Query<MsgSpecialFx> | undefined = undefined;
|
|
28
30
|
|
|
29
31
|
private mx10: MX10;
|
|
@@ -190,13 +192,82 @@ export default class VehicleGroup
|
|
|
190
192
|
]);
|
|
191
193
|
}
|
|
192
194
|
|
|
193
|
-
callFunction(vehicleAddress: number, functionId: number, functionStatus: boolean)
|
|
195
|
+
// callFunction(vehicleAddress: number, functionId: number, functionStatus: boolean)
|
|
196
|
+
// {
|
|
197
|
+
// this.mx10.sendData(0x02, 0x04, [
|
|
198
|
+
// {value: vehicleAddress, length: 2},
|
|
199
|
+
// {value: functionId, length: 2},
|
|
200
|
+
// {value: Number(functionStatus), length: 2},
|
|
201
|
+
// ]);
|
|
202
|
+
// }
|
|
203
|
+
|
|
204
|
+
async getFx(nid: number, fxNr: number)
|
|
194
205
|
{
|
|
195
|
-
this.
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
206
|
+
if(this.fxQ !== undefined && !await this.fxQ.lock()) {
|
|
207
|
+
this.mx10.logInfo.next("mx10.getFx: failed to acquire lock");
|
|
208
|
+
return undefined;
|
|
209
|
+
}
|
|
210
|
+
this.fxQ = new Query(MsgFx.header(MsgMode.REQ, nid), this.onCallFunction);
|
|
211
|
+
this.fxQ.tx = ((header) => {
|
|
212
|
+
const msg = new MsgFx(header, fxNr);
|
|
213
|
+
// this.mx10.logInfo.next('fx query tx: ' + JSON.stringify(msg));
|
|
214
|
+
this.mx10.sendMsg(msg);
|
|
215
|
+
});
|
|
216
|
+
this.fxQ.match = ((msg) => {
|
|
217
|
+
// this.mx10.logInfo.next('fx query rx: ' + JSON.stringify(msg));
|
|
218
|
+
return (msg.nid() === nid && msg.fxNr() === fxNr);
|
|
219
|
+
})
|
|
220
|
+
const rv = await this.fxQ.run();
|
|
221
|
+
this.mx10.logInfo.next("mx10.getFx.rv: " + JSON.stringify(rv));
|
|
222
|
+
this.fxQ.unlock();
|
|
223
|
+
this.fxQ = undefined;
|
|
224
|
+
return rv;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
async setFx(nid: number, fxNr: number, state: number)
|
|
228
|
+
{
|
|
229
|
+
if(this.fxQ !== undefined && !await this.fxQ.lock()) {
|
|
230
|
+
this.mx10.logInfo.next("mx10.setFx: failed to acquire lock");
|
|
231
|
+
return undefined;
|
|
232
|
+
}
|
|
233
|
+
this.fxQ = new Query(MsgFx.header(MsgMode.CMD, nid), this.onCallFunction);
|
|
234
|
+
this.fxQ.tx = ((header) => {
|
|
235
|
+
const msg = new MsgFx(header, fxNr, state);
|
|
236
|
+
// this.mx10.logInfo.next('fx query tx: ' + JSON.stringify(msg));
|
|
237
|
+
this.mx10.sendMsg(msg);
|
|
238
|
+
});
|
|
239
|
+
this.fxQ.match = ((msg) => {
|
|
240
|
+
// this.mx10.logInfo.next('fx query rx: ' + JSON.stringify(msg));
|
|
241
|
+
return (msg.nid() === nid && msg.fxNr() === fxNr);
|
|
242
|
+
})
|
|
243
|
+
const rv = await this.fxQ.run();
|
|
244
|
+
this.mx10.logInfo.next("mx10.setFx.rv: " + JSON.stringify(rv));
|
|
245
|
+
this.fxQ.unlock();
|
|
246
|
+
this.fxQ = undefined;
|
|
247
|
+
return rv;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
async getFxStates(nid: number)
|
|
251
|
+
{
|
|
252
|
+
if(this.fxStatesQ !== undefined && !await this.fxStatesQ.lock()) {
|
|
253
|
+
this.mx10.logInfo.next("mx10.getFxStates: failed to acquire lock");
|
|
254
|
+
return undefined;
|
|
255
|
+
}
|
|
256
|
+
this.fxStatesQ = new Query(MsgFxStates.header(MsgMode.REQ, nid), this.onFxStates);
|
|
257
|
+
this.fxStatesQ.tx = ((header) => {
|
|
258
|
+
const msg = new MsgFxStates(header);
|
|
259
|
+
// this.mx10.logInfo.next('fxStates query tx: ' + JSON.stringify(msg));
|
|
260
|
+
this.mx10.sendMsg(msg);
|
|
261
|
+
});
|
|
262
|
+
this.fxStatesQ.match = ((msg) => {
|
|
263
|
+
// this.mx10.logInfo.next('fxStates query rx: ' + JSON.stringify(msg));
|
|
264
|
+
return (msg.nid() === nid);
|
|
265
|
+
})
|
|
266
|
+
const rv = await this.fxStatesQ.run();
|
|
267
|
+
this.mx10.logInfo.next("mx10.getFxStates.rv: " + JSON.stringify(rv));
|
|
268
|
+
this.fxStatesQ.unlock();
|
|
269
|
+
this.fxStatesQ = undefined;
|
|
270
|
+
return rv;
|
|
200
271
|
}
|
|
201
272
|
|
|
202
273
|
async getSpecialFx(nid: number, sfxNr: SpecialFxNr)
|
|
@@ -213,7 +284,7 @@ export default class VehicleGroup
|
|
|
213
284
|
});
|
|
214
285
|
this.sfxQ.match = ((msg) => {
|
|
215
286
|
// this.mx10.logInfo.next('sfx query rx: ' + JSON.stringify(msg));
|
|
216
|
-
return (msg.nid() === nid);
|
|
287
|
+
return (msg.nid() === nid && msg.sfxNr() === sfxNr);
|
|
217
288
|
})
|
|
218
289
|
const rv = await this.sfxQ.run();
|
|
219
290
|
this.mx10.logInfo.next("mx10.getSpecialFx.rv: " + JSON.stringify(rv));
|
|
@@ -236,7 +307,7 @@ export default class VehicleGroup
|
|
|
236
307
|
});
|
|
237
308
|
this.sfxQ.match = ((msg) => {
|
|
238
309
|
// this.mx10.logInfo.next('sfx query rx: ' + JSON.stringify(msg));
|
|
239
|
-
return (msg.nid() === nid);
|
|
310
|
+
return (msg.nid() === nid && msg.sfxNr() === sfxNr);
|
|
240
311
|
})
|
|
241
312
|
const rv = await this.sfxQ.run();
|
|
242
313
|
this.mx10.logInfo.next("mx10.setSpecialFx.rv: " + JSON.stringify(rv));
|
|
@@ -276,6 +347,7 @@ export default class VehicleGroup
|
|
|
276
347
|
case 0x00: this.parseVehicleState(size, mode, nid, buffer); break;
|
|
277
348
|
case 0x01: this.parseVehicleMode(size, mode, nid, buffer); break;
|
|
278
349
|
case 0x02: this.parseVehicleSpeed(size, mode, nid, buffer); break;
|
|
350
|
+
case 0x03: this.parseVehicleFxStates(size, mode, nid, buffer); break;
|
|
279
351
|
case 0x04: this.parseVehicleFunction(size, mode, nid, buffer); break;
|
|
280
352
|
case 0x05: this.parseVehicleSpecialFunction(size, mode, nid, buffer); break;
|
|
281
353
|
case 0x12: this.parseVehicleLastCtl(size, mode, nid, buffer); break;
|
|
@@ -314,20 +386,26 @@ export default class VehicleGroup
|
|
|
314
386
|
this.onVehicleSpeed.next(msg);
|
|
315
387
|
}
|
|
316
388
|
|
|
389
|
+
// 0x02.0x03
|
|
390
|
+
private parseVehicleFxStates(size: number, mode: number, nid: number, buffer: Buffer)
|
|
391
|
+
{
|
|
392
|
+
if (this.onFxStates.observed) {
|
|
393
|
+
const msg = MsgFxStates.fromBuffer(mode, buffer);
|
|
394
|
+
this.onFxStates.next(msg);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
|
|
317
398
|
// 0x02.0x04
|
|
318
399
|
private parseVehicleFunction(size: number, mode: number, nid: number, buffer: Buffer)
|
|
319
400
|
{
|
|
320
401
|
if (this.onCallFunction.observed) {
|
|
321
|
-
const NID = buffer.readUInt16LE(0);
|
|
322
|
-
const functionNumber = buffer.readUInt16LE(2);
|
|
323
|
-
const functionState = buffer.readUInt16LE(4);
|
|
324
|
-
const functionActive = functionState !== 0x00;
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
functionNumber,
|
|
329
|
-
functionState: functionActive,
|
|
330
|
-
});
|
|
402
|
+
// const NID = buffer.readUInt16LE(0);
|
|
403
|
+
// const functionNumber = buffer.readUInt16LE(2);
|
|
404
|
+
// const functionState = buffer.readUInt16LE(4);
|
|
405
|
+
// const functionActive = functionState !== 0x00;
|
|
406
|
+
|
|
407
|
+
const msg = MsgFx.fromBuffer(mode, buffer);
|
|
408
|
+
this.onCallFunction.next(msg);
|
|
331
409
|
}
|
|
332
410
|
}
|
|
333
411
|
|
package/src/loco/vehicleMsg.ts
CHANGED
|
@@ -164,6 +164,57 @@ export class MsgVehicleLastCtl extends Message
|
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
+
export class MsgFx extends Message
|
|
168
|
+
{
|
|
169
|
+
public static header = (mode: MsgMode, nid: number) => {return {group: 0x2, cmd: 0x4, mode, nid}}
|
|
170
|
+
|
|
171
|
+
constructor(header: Header, fxNr: number, state?: number)
|
|
172
|
+
{
|
|
173
|
+
super(header);
|
|
174
|
+
super.push({value: fxNr, length: 2});
|
|
175
|
+
if(header.mode === MsgMode.REQ)
|
|
176
|
+
return;
|
|
177
|
+
super.push({value: state || 0, length: 2});
|
|
178
|
+
}
|
|
179
|
+
nid(): number {return this.header.nid || 0}
|
|
180
|
+
fxNr(): number {return this.data[0].value as number;}
|
|
181
|
+
state(): number | undefined {return this.data.length < 2 ? undefined : this.data[1].value as number;}
|
|
182
|
+
|
|
183
|
+
public static fromBuffer(mode: MsgMode, buffer: Buffer)
|
|
184
|
+
{
|
|
185
|
+
const nid = buffer.readUInt16LE(0);
|
|
186
|
+
const fxNr = buffer.readUInt16LE(2);
|
|
187
|
+
const state = buffer.readUint16LE(4);
|
|
188
|
+
const msg = new MsgFx(MsgFx.header(mode, nid), fxNr, state);
|
|
189
|
+
return msg;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
export class MsgFxStates extends Message
|
|
194
|
+
{
|
|
195
|
+
public static header = (mode: MsgMode, nid: number) => {return {group: 0x2, cmd: 0x3, mode, nid}}
|
|
196
|
+
|
|
197
|
+
constructor(header: Header, state?: number)
|
|
198
|
+
{
|
|
199
|
+
super(header);
|
|
200
|
+
if(header.mode === MsgMode.REQ)
|
|
201
|
+
return;
|
|
202
|
+
super.push({value: state || 0, length: 2});
|
|
203
|
+
}
|
|
204
|
+
nid(): number {return this.header.nid || 0}
|
|
205
|
+
fx(fxNr: number): boolean | undefined {
|
|
206
|
+
return this.data.length < 1 ? undefined : ((this.data[0].value as number >> fxNr) & 1) === 1;}
|
|
207
|
+
state(): number | undefined {return this.data.length < 1 ? undefined : this.data[0].value as number;}
|
|
208
|
+
|
|
209
|
+
public static fromBuffer(mode: MsgMode, buffer: Buffer)
|
|
210
|
+
{
|
|
211
|
+
const nid = buffer.readUInt16LE(0);
|
|
212
|
+
const state = buffer.readUint32LE(2);
|
|
213
|
+
const msg = new MsgFxStates(MsgFxStates.header(mode, nid), state);
|
|
214
|
+
return msg;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
167
218
|
export class MsgSpecialFx extends Message
|
|
168
219
|
{
|
|
169
220
|
public static header = (mode: MsgMode, nid: number) => {return {group: 0x2, cmd: 0x5, mode, nid}}
|
|
@@ -185,7 +236,7 @@ export class MsgSpecialFx extends Message
|
|
|
185
236
|
const nid = buffer.readUInt16LE(0);
|
|
186
237
|
const sfxNr = buffer.readUInt16LE(2);
|
|
187
238
|
const state = buffer.readUint16LE(4);
|
|
188
|
-
const msg = new MsgSpecialFx(
|
|
239
|
+
const msg = new MsgSpecialFx(MsgSpecialFx.header(mode, nid), sfxNr, state);
|
|
189
240
|
return msg;
|
|
190
241
|
}
|
|
191
242
|
}
|