@zimo-elektronik/zcan 1.0.46 → 1.0.48
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/data/dataGroup.d.ts +6 -4
- package/dist/data/dataGroup.js +50 -13
- package/dist/data/dataGroup.js.map +1 -1
- package/dist/data/dataMsg.d.ts +12 -1
- package/dist/data/dataMsg.js +67 -0
- package/dist/data/dataMsg.js.map +1 -1
- package/dist/data/lanDataGroup.js +0 -2
- package/dist/data/lanDataGroup.js.map +1 -1
- package/dist/loco/vehicleGroup.d.ts +13 -8
- package/dist/loco/vehicleGroup.js +66 -27
- package/dist/loco/vehicleGroup.js.map +1 -1
- package/dist/loco/vehicleMsg.d.ts +30 -0
- package/dist/loco/vehicleMsg.js +48 -2
- package/dist/loco/vehicleMsg.js.map +1 -1
- package/package.json +1 -1
- package/src/data/dataGroup.ts +71 -14
- package/src/data/dataMsg.ts +78 -1
- package/src/data/lanDataGroup.ts +2 -64
- package/src/loco/vehicleGroup.ts +88 -49
- package/src/loco/vehicleMsg.ts +62 -2
|
@@ -2,18 +2,62 @@ 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 { MsgVehicleMode, MsgVehicleSpeed } from './vehicleMsg';
|
|
5
|
+
import { MsgVehicleLastCtl, MsgVehicleMode, MsgVehicleSpeed, MsgVehicleState } from './vehicleMsg';
|
|
6
6
|
export default class VehicleGroup {
|
|
7
7
|
onVehicleState = new Subject();
|
|
8
|
+
onVehicleLastCtl = new Subject();
|
|
8
9
|
onVehicleMode = new Subject();
|
|
9
10
|
onVehicleSpeed = new Subject();
|
|
10
11
|
onCallFunction = new Subject();
|
|
11
12
|
onCallSpecialFunction = new Subject();
|
|
13
|
+
stateQ = undefined;
|
|
14
|
+
lastCtlQ = undefined;
|
|
12
15
|
modeQ = undefined;
|
|
13
16
|
speedQ = undefined;
|
|
14
17
|
mx10;
|
|
15
18
|
constructor(mx10) { this.mx10 = mx10; }
|
|
16
|
-
async
|
|
19
|
+
async getState(nid) {
|
|
20
|
+
if (this.stateQ !== undefined && !await this.stateQ.lock()) {
|
|
21
|
+
this.mx10.logInfo.next("mx10.getVehicleState: failed to acquire lock");
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
this.stateQ = new Query(MsgVehicleState.header(MsgMode.REQ, nid), this.onVehicleState);
|
|
25
|
+
this.stateQ.log = (msg) => { this.mx10.logInfo.next(msg); };
|
|
26
|
+
this.stateQ.tx = ((header) => {
|
|
27
|
+
const msg = new MsgVehicleState(header);
|
|
28
|
+
this.mx10.sendMsg(msg);
|
|
29
|
+
});
|
|
30
|
+
this.stateQ.match = ((msg) => {
|
|
31
|
+
return (msg.trainNid() === nid);
|
|
32
|
+
});
|
|
33
|
+
const rv = await this.stateQ.run();
|
|
34
|
+
this.stateQ.unlock();
|
|
35
|
+
this.stateQ = undefined;
|
|
36
|
+
return rv;
|
|
37
|
+
}
|
|
38
|
+
async getLastController(locoNid, type = 1) {
|
|
39
|
+
if (this.lastCtlQ !== undefined && !await this.lastCtlQ.lock()) {
|
|
40
|
+
this.mx10.logInfo.next("mx10.getVehicleLastCtl: failed to acquire lock");
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
this.lastCtlQ = new Query(MsgVehicleLastCtl.header(MsgMode.REQ, locoNid), this.onVehicleLastCtl);
|
|
44
|
+
this.lastCtlQ.log = (msg) => { this.mx10.logInfo.next(msg); };
|
|
45
|
+
this.lastCtlQ.tx = ((header) => {
|
|
46
|
+
const msg = new MsgVehicleLastCtl(header, type);
|
|
47
|
+
this.mx10.logInfo.next('lastCtl query tx: ' + JSON.stringify(msg));
|
|
48
|
+
this.mx10.sendMsg(msg);
|
|
49
|
+
});
|
|
50
|
+
this.lastCtlQ.match = ((msg) => {
|
|
51
|
+
this.mx10.logInfo.next('lastCtl query rx: ' + JSON.stringify(msg));
|
|
52
|
+
return (msg.trainNid() === locoNid);
|
|
53
|
+
});
|
|
54
|
+
const rv = await this.lastCtlQ.run();
|
|
55
|
+
this.mx10.logInfo.next("mx10.getVehicleLastCtl.rv: " + JSON.stringify(rv));
|
|
56
|
+
this.lastCtlQ.unlock();
|
|
57
|
+
this.lastCtlQ = undefined;
|
|
58
|
+
return rv;
|
|
59
|
+
}
|
|
60
|
+
async getMode(trainNid) {
|
|
17
61
|
if (this.modeQ !== undefined && !await this.modeQ.lock()) {
|
|
18
62
|
this.mx10.logInfo.next("mx10.getVehicleMode: failed to acquire lock");
|
|
19
63
|
return undefined;
|
|
@@ -28,12 +72,11 @@ export default class VehicleGroup {
|
|
|
28
72
|
return (msg.trainNid() === trainNid);
|
|
29
73
|
});
|
|
30
74
|
const rv = await this.modeQ.run();
|
|
31
|
-
this.mx10.logInfo.next("mx10.getVehicleMode.rv: " + JSON.stringify(rv));
|
|
32
75
|
this.modeQ.unlock();
|
|
33
76
|
this.modeQ = undefined;
|
|
34
77
|
return rv;
|
|
35
78
|
}
|
|
36
|
-
async
|
|
79
|
+
async setMode(trainNid, opMode, speedSteps) {
|
|
37
80
|
MsgVehicleMode.log = (msg) => { this.mx10.logInfo.next(msg); };
|
|
38
81
|
if (this.modeQ !== undefined && !await this.modeQ.lock()) {
|
|
39
82
|
this.mx10.logInfo.next("mx10.setVehicleMode: failed to acquire lock");
|
|
@@ -43,20 +86,17 @@ export default class VehicleGroup {
|
|
|
43
86
|
this.modeQ.log = (msg) => { this.mx10.logInfo.next(msg); };
|
|
44
87
|
this.modeQ.tx = ((header) => {
|
|
45
88
|
const msg = new MsgVehicleMode(header, { opMode, speedSteps });
|
|
46
|
-
this.mx10.logInfo.next('mode query tx: ' + JSON.stringify(msg));
|
|
47
89
|
this.mx10.sendMsg(msg);
|
|
48
90
|
});
|
|
49
91
|
this.modeQ.match = ((msg) => {
|
|
50
|
-
this.mx10.logInfo.next('mode query rx: ' + JSON.stringify(msg));
|
|
51
92
|
return (msg.trainNid() === trainNid);
|
|
52
93
|
});
|
|
53
94
|
const rv = await this.modeQ.run(MsgVehicleMode.rxDelay());
|
|
54
|
-
this.mx10.logInfo.next("mx10.setVehicleMode.rv: " + JSON.stringify(rv));
|
|
55
95
|
this.modeQ.unlock();
|
|
56
96
|
this.modeQ = undefined;
|
|
57
97
|
return rv;
|
|
58
98
|
}
|
|
59
|
-
async
|
|
99
|
+
async getSpeed(trainNid) {
|
|
60
100
|
if (this.speedQ !== undefined && !await this.speedQ.lock()) {
|
|
61
101
|
this.mx10.logInfo.next("mx10.getVehicleSpeed: failed to acquire lock");
|
|
62
102
|
return undefined;
|
|
@@ -71,12 +111,11 @@ export default class VehicleGroup {
|
|
|
71
111
|
return (msg.trainNid() === trainNid);
|
|
72
112
|
});
|
|
73
113
|
const rv = await this.speedQ.run();
|
|
74
|
-
this.mx10.logInfo.next("mx10.getVehicleSpeed.rv: " + JSON.stringify(rv));
|
|
75
114
|
this.speedQ.unlock();
|
|
76
115
|
this.speedQ = undefined;
|
|
77
116
|
return rv;
|
|
78
117
|
}
|
|
79
|
-
async
|
|
118
|
+
async setSpeed(trainNid, speedStep, divisor = 0, forward = true, emergencyStop = false, eastWest = Direction.UNDEFINED) {
|
|
80
119
|
MsgVehicleSpeed.log = (msg) => { this.mx10.logInfo.next(msg); };
|
|
81
120
|
if (this.speedQ !== undefined && !await this.speedQ.lock()) {
|
|
82
121
|
this.mx10.logInfo.next("mx10.setVehicleSpeed: failed to acquire lock");
|
|
@@ -87,15 +126,12 @@ export default class VehicleGroup {
|
|
|
87
126
|
this.speedQ.tx = ((header) => {
|
|
88
127
|
const speedAndDir = MsgVehicleSpeed.speedAndDir(speedStep, forward, emergencyStop, eastWest);
|
|
89
128
|
const msg = new MsgVehicleSpeed(header, speedAndDir, divisor);
|
|
90
|
-
this.mx10.logInfo.next('speed query tx: ' + JSON.stringify(msg));
|
|
91
129
|
this.mx10.sendMsg(msg);
|
|
92
130
|
});
|
|
93
131
|
this.speedQ.match = ((msg) => {
|
|
94
|
-
this.mx10.logInfo.next('speed query rx: ' + JSON.stringify(msg));
|
|
95
132
|
return (msg.trainNid() === trainNid);
|
|
96
133
|
});
|
|
97
134
|
const rv = await this.speedQ.run(MsgVehicleSpeed.rxDelay());
|
|
98
|
-
this.mx10.logInfo.next("mx10.setVehicleSpeed.rv: " + JSON.stringify(rv));
|
|
99
135
|
this.speedQ.unlock();
|
|
100
136
|
this.speedQ = undefined;
|
|
101
137
|
return rv;
|
|
@@ -122,9 +158,6 @@ export default class VehicleGroup {
|
|
|
122
158
|
{ value: specialFunctionStatus, length: 2 },
|
|
123
159
|
]);
|
|
124
160
|
}
|
|
125
|
-
vehicleState(vehicleAddress) {
|
|
126
|
-
return this.mx10.sendData(0x02, 0x00, [{ value: vehicleAddress, length: 2 }], 0b00);
|
|
127
|
-
}
|
|
128
161
|
activeModeTrain(vehicleAddress) {
|
|
129
162
|
return this.mx10.sendData(0x02, 0x10, [
|
|
130
163
|
{ value: vehicleAddress, length: 2 },
|
|
@@ -154,20 +187,16 @@ export default class VehicleGroup {
|
|
|
154
187
|
case 0x05:
|
|
155
188
|
this.parseVehicleSpecialFunction(size, mode, nid, buffer);
|
|
156
189
|
break;
|
|
190
|
+
case 0x12:
|
|
191
|
+
this.parseVehicleLastCtl(size, mode, nid, buffer);
|
|
192
|
+
break;
|
|
157
193
|
}
|
|
158
194
|
}
|
|
159
195
|
parseVehicleState(size, mode, nid, buffer) {
|
|
160
|
-
if (this.onVehicleState.observed)
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
const ctrlDevice = buffer.readUInt16LE(6);
|
|
165
|
-
this.onVehicleState.next({
|
|
166
|
-
nid: NID,
|
|
167
|
-
ctrlTick,
|
|
168
|
-
ctrlDevice,
|
|
169
|
-
});
|
|
170
|
-
}
|
|
196
|
+
if (!this.onVehicleState.observed)
|
|
197
|
+
return;
|
|
198
|
+
const msg = MsgVehicleState.fromBuffer(mode, buffer);
|
|
199
|
+
this.onVehicleState.next(msg);
|
|
171
200
|
}
|
|
172
201
|
parseVehicleMode(size, mode, nid, buffer) {
|
|
173
202
|
if (this.onVehicleMode.observed) {
|
|
@@ -207,5 +236,15 @@ export default class VehicleGroup {
|
|
|
207
236
|
});
|
|
208
237
|
}
|
|
209
238
|
}
|
|
239
|
+
parseVehicleLastCtl(size, mode, nid, buffer) {
|
|
240
|
+
if (!this.onVehicleLastCtl.observed)
|
|
241
|
+
return;
|
|
242
|
+
const NID = buffer.readUInt16LE(0);
|
|
243
|
+
const type = buffer.readUInt16LE(2);
|
|
244
|
+
const ctlNid = buffer.readUInt16LE(4);
|
|
245
|
+
const seconds = buffer.readUInt16LE(6);
|
|
246
|
+
const msg = new MsgVehicleLastCtl(MsgVehicleLastCtl.header(mode, NID), type, ctlNid, seconds);
|
|
247
|
+
this.onVehicleLastCtl.next(msg);
|
|
248
|
+
}
|
|
210
249
|
}
|
|
211
250
|
//# sourceMappingURL=vehicleGroup.js.map
|
|
@@ -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":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAC,SAAS,EAAyB,OAAO,GAChD,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,wBAAwB,EAAC,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAMnG,MAAM,CAAC,OAAO,OAAO,YAAY;IAEhB,cAAc,GAAG,IAAI,OAAO,EAAmB,CAAC;IAChD,gBAAgB,GAAG,IAAI,OAAO,EAAqB,CAAC;IACpD,aAAa,GAAG,IAAI,OAAO,EAAkB,CAAC;IAC9C,cAAc,GAAG,IAAI,OAAO,EAAmB,CAAC;IAChD,cAAc,GAAG,IAAI,OAAO,EAAoB,CAAC;IACjD,qBAAqB,GAAG,IAAI,OAAO,EAA2B,CAAC;IAEvE,MAAM,GAAuC,SAAS,CAAC;IACvD,QAAQ,GAAyC,SAAS,CAAC;IAC3D,KAAK,GAAsC,SAAS,CAAC;IACrD,MAAM,GAAuC,SAAS,CAAC;IAEvD,IAAI,CAAO;IAEnB,YAAY,IAAU,IAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA,CAAA,CAAC;IAG1C,KAAK,CAAC,QAAQ,CAAC,GAAW;QAEzB,IAAG,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACvE,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACvF,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,GAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;YAExC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAE5B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAA;QACF,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAEnC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,OAAO,EAAE,CAAC;IACX,CAAC;IAGD,KAAK,CAAC,iBAAiB,CAAC,OAAe,EAAE,OAAe,CAAC;QAExD,IAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YACzE,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjG,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,GAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC;QACrC,CAAC,CAAC,CAAA;QACF,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,OAAO,EAAE,CAAC;IACX,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB;QAE7B,IAAG,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACzD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACtE,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACzF,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,GAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3B,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;YAEvC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAE3B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,CAAA;QACF,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAElC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,MAAqB,EAAE,UAAyB;QAE/E,cAAc,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,GAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC,CAAC;QAC5D,IAAG,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACzD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACtE,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACzF,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,GAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3B,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,UAAU,EAAC,CAAC,CAAC;YAE7D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAE3B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,CAAA;QACF,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;QAE1D,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAE9B,IAAG,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACvE,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5F,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,GAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;YAExC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAE5B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,CAAA;QACF,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAEnC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,SAAiB,EAAE,UAAkB,CAAC,EAAE,UAAmB,IAAI,EAC/F,gBAAyB,KAAK,EAAE,WAAsB,SAAS,CAAC,SAAS;QAEzE,eAAe,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,GAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC,CAAC;QAC7D,IAAG,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACvE,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5F,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,GAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5B,MAAM,WAAW,GAAE,eAAe,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;YAC5F,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAE9D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAE5B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,CAAA;QACF,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,WAAW,CAAC,cAAsB,EAAE,SAAiB,EAAE,OAAgB,EAAE,QAAoB,EAAE,aAAuB;QAErH,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAChG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;YAC9B,EAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAC;YAClC,EAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,EAAC;YACrC,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAC;SAC1B,CAAC,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,cAAsB,EAAE,UAAkB,EAAE,cAAuB;QAE/E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;YAC9B,EAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAC;YAClC,EAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAC;YAC9B,EAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC;SAC1C,CAAC,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,cAAsB,EAAE,mBAAwC,EACrF,qBAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;YAC9B,EAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAC;YAClC,EAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,EAAC;YACvC,EAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAC;SACzC,CAAC,CAAC;IACJ,CAAC;IAGD,eAAe,CAAC,cAAsB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;YACrC,EAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAC;YAClC,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAC;SACxB,EAAE,IAAI,CAAC,CAAC;IACV,CAAC;IAED,kBAAkB,CAAC,cAAsB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;YACrC,EAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAC;YAClC,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAC;SACxB,EAAE,IAAI,CAAC,CAAC;IACV,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,OAAe,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc;QAG7E,QAAQ,OAAO,EAAE,CAAC;YACjB,KAAK,IAAI;gBAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAAC,MAAM;YAClE,KAAK,IAAI;gBAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAAC,MAAM;YACjE,KAAK,IAAI;gBAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAAC,MAAM;YAClE,KAAK,IAAI;gBAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAAC,MAAM;YACrE,KAAK,IAAI;gBAAE,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAAC,MAAM;YAC5E,KAAK,IAAI;gBAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAAC,MAAM;QACrE,CAAC;IACF,CAAC;IAGO,iBAAiB,CAAE,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc;QAEjF,IAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ;YAC/B,OAAO;QACR,MAAM,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAErD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAGO,gBAAgB,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc;QAE/E,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAE9E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACtF,CAAC;IACF,CAAC;IAGO,iBAAiB,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc;QAEhF,IAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ;YAC/B,OAAO;QAER,MAAM,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAErD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAGO,oBAAoB,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc;QAEnF,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,cAAc,GAAG,aAAa,KAAK,IAAI,CAAC;YAE9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACxB,GAAG,EAAE,GAAG;gBACR,cAAc;gBACd,aAAa,EAAE,cAAc;aAC7B,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAGO,2BAA2B,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc;QAE1F,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,mBAAmB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,oBAAoB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAEpD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;gBAC/B,GAAG,EAAE,GAAG;gBACR,mBAAmB;gBACnB,oBAAoB;aACpB,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAGO,mBAAmB,CAAE,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc;QAEnF,IAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ;YACjC,OAAO;QAER,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;QAEvC,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9F,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACD"}
|
|
@@ -44,3 +44,33 @@ export declare class MsgVehicleSpeed extends Message {
|
|
|
44
44
|
static fromBuffer(mode: MsgMode, buffer: Buffer): MsgVehicleSpeed;
|
|
45
45
|
static speedAndDir(speed: number, forward?: boolean, emergencyStop?: boolean, eastWest?: Direction): number;
|
|
46
46
|
}
|
|
47
|
+
export declare class MsgVehicleState extends Message {
|
|
48
|
+
static header: (mode: MsgMode, nid: number) => {
|
|
49
|
+
group: number;
|
|
50
|
+
cmd: number;
|
|
51
|
+
mode: MsgMode;
|
|
52
|
+
nid: number;
|
|
53
|
+
};
|
|
54
|
+
static log: (msg: string) => void;
|
|
55
|
+
constructor(header: Header, flags?: number, lastTick?: number, lastNid?: number);
|
|
56
|
+
trainNid(): number;
|
|
57
|
+
stateFlags(): number;
|
|
58
|
+
lastCtlTick(): number;
|
|
59
|
+
lastCtlNid(): number;
|
|
60
|
+
static fromBuffer(mode: MsgMode, buffer: Buffer): MsgVehicleState;
|
|
61
|
+
}
|
|
62
|
+
export declare class MsgVehicleLastCtl extends Message {
|
|
63
|
+
static header: (mode: MsgMode, nid: number) => {
|
|
64
|
+
group: number;
|
|
65
|
+
cmd: number;
|
|
66
|
+
mode: MsgMode;
|
|
67
|
+
nid: number;
|
|
68
|
+
};
|
|
69
|
+
static log: (msg: string) => void;
|
|
70
|
+
constructor(header: Header, type: number, lastNid?: number, lastTick?: number);
|
|
71
|
+
trainNid(): number;
|
|
72
|
+
type(): number;
|
|
73
|
+
ctlNid(): number;
|
|
74
|
+
seconds(): number;
|
|
75
|
+
static fromBuffer(mode: MsgMode, buffer: Buffer): MsgVehicleLastCtl;
|
|
76
|
+
}
|
package/dist/loco/vehicleMsg.js
CHANGED
|
@@ -21,11 +21,9 @@ export class MsgVehicleMode extends Message {
|
|
|
21
21
|
super(header);
|
|
22
22
|
if (!mode)
|
|
23
23
|
return;
|
|
24
|
-
MsgVehicleMode.log("MsgVehicleMode.mode: " + mode);
|
|
25
24
|
if (Array.isArray(mode))
|
|
26
25
|
for (let byte of mode.slice(0, 2)) {
|
|
27
26
|
super.push({ value: byte, length: 1 });
|
|
28
|
-
MsgVehicleMode.log("MsgVehicleMode.push: " + byte);
|
|
29
27
|
}
|
|
30
28
|
else {
|
|
31
29
|
super.push({ value: MsgVehicleMode.modeByte1(mode.opMode, mode.speedSteps), length: 1 });
|
|
@@ -93,4 +91,52 @@ export class MsgVehicleSpeed extends Message {
|
|
|
93
91
|
}
|
|
94
92
|
;
|
|
95
93
|
}
|
|
94
|
+
export class MsgVehicleState extends Message {
|
|
95
|
+
static header = (mode, nid) => { return { group: 0x2, cmd: 0x0, mode, nid }; };
|
|
96
|
+
static log = () => { };
|
|
97
|
+
constructor(header, flags, lastTick, lastNid) {
|
|
98
|
+
super(header);
|
|
99
|
+
if (header.mode === MsgMode.REQ)
|
|
100
|
+
return;
|
|
101
|
+
super.push({ value: flags || 0, length: 2 });
|
|
102
|
+
super.push({ value: lastTick || 0, length: 2 });
|
|
103
|
+
super.push({ value: lastNid || 0, length: 2 });
|
|
104
|
+
}
|
|
105
|
+
trainNid() { return this.header.nid || 0; }
|
|
106
|
+
stateFlags() { return this.data[0].value; }
|
|
107
|
+
lastCtlTick() { return this.data[1].value; }
|
|
108
|
+
lastCtlNid() { return this.data[2].value; }
|
|
109
|
+
static fromBuffer(mode, buffer) {
|
|
110
|
+
const nid = buffer.readUInt16LE(0);
|
|
111
|
+
const flags = buffer.readUInt16LE(2);
|
|
112
|
+
const lastTick = buffer.readUint16LE(4);
|
|
113
|
+
const lastNid = buffer.readUint16LE(6);
|
|
114
|
+
const msg = new MsgVehicleState(MsgVehicleState.header(mode, nid), flags, lastTick, lastNid);
|
|
115
|
+
return msg;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
export class MsgVehicleLastCtl extends Message {
|
|
119
|
+
static header = (mode, nid) => { return { group: 0x2, cmd: 0x12, mode, nid }; };
|
|
120
|
+
static log = () => { };
|
|
121
|
+
constructor(header, type, lastNid, lastTick) {
|
|
122
|
+
super(header);
|
|
123
|
+
super.push({ value: type, length: 2 });
|
|
124
|
+
if (header.mode === MsgMode.REQ)
|
|
125
|
+
return;
|
|
126
|
+
super.push({ value: lastNid || 0, length: 2 });
|
|
127
|
+
super.push({ value: lastTick || 0, length: 2 });
|
|
128
|
+
}
|
|
129
|
+
trainNid() { return this.header.nid || 0; }
|
|
130
|
+
type() { return this.data[0].value; }
|
|
131
|
+
ctlNid() { return this.data[1].value; }
|
|
132
|
+
seconds() { return this.data[2].value; }
|
|
133
|
+
static fromBuffer(mode, buffer) {
|
|
134
|
+
const nid = buffer.readUInt16LE(0);
|
|
135
|
+
const type = buffer.readUInt16LE(2);
|
|
136
|
+
const ctlNid = buffer.readUint16LE(4);
|
|
137
|
+
const seconds = buffer.readUint16LE(6);
|
|
138
|
+
const msg = new MsgVehicleLastCtl(MsgVehicleLastCtl.header(mode, nid), type, ctlNid, seconds);
|
|
139
|
+
return msg;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
96
142
|
//# sourceMappingURL=vehicleMsg.js.map
|
|
@@ -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;AACnF,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;
|
|
1
|
+
{"version":3,"file":"vehicleMsg.js","sourceRoot":"","sources":["../../src/loco/vehicleMsg.ts"],"names":[],"mappings":"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"}
|
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.48",
|
|
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/data/dataGroup.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {RemoveLocomotiveData, DataNameExtended, DataNameValue1,
|
|
|
6
6
|
ItemFxMode, ItemFxConfig, ItemImageData, ItemListByIndexData, ItemListByNidData} from '../common/models';
|
|
7
7
|
import {FxConfigType, FxModeType, ImageType, MsgMode, NameType} from '../common/enums';
|
|
8
8
|
import ExtendedASCII from '../common/extendedAscii';
|
|
9
|
-
import { MsgGroupCount, MsgItemsByIndexReq, MsgItemsByIndexRsp } from './dataMsg';
|
|
9
|
+
import { MsgDataName, MsgGroupCount, MsgItemsByIndexReq, MsgItemsByIndexRsp } from './dataMsg';
|
|
10
10
|
import { Query } from '../docs_entrypoint';
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -22,8 +22,9 @@ export default class DataGroup
|
|
|
22
22
|
public readonly onItemImageConfig = new Subject<ItemImageData>();
|
|
23
23
|
public readonly onItemFxMode = new Subject<ItemFxMode>();
|
|
24
24
|
public readonly onItemFxConfig = new Subject<ItemFxConfig>();
|
|
25
|
-
public readonly onDataNameExtended = new Subject<
|
|
25
|
+
public readonly onDataNameExtended = new Subject<MsgDataName>();
|
|
26
26
|
|
|
27
|
+
private nameQ: Query<MsgDataName> | undefined = undefined;
|
|
27
28
|
private groupCountQ: Query<MsgGroupCount> | undefined = undefined;
|
|
28
29
|
private byIndexQ: Query<MsgItemsByIndexRsp> | undefined = undefined;
|
|
29
30
|
|
|
@@ -46,15 +47,15 @@ export default class DataGroup
|
|
|
46
47
|
});
|
|
47
48
|
this.groupCountQ.tx = ((header) => {
|
|
48
49
|
const msg = new MsgGroupCount(header, groupNid);
|
|
49
|
-
this.mx10.logInfo.next('groupCount query tx: ' + JSON.stringify(msg));
|
|
50
|
+
// this.mx10.logInfo.next('groupCount query tx: ' + JSON.stringify(msg));
|
|
50
51
|
this.mx10.sendMsg(msg);
|
|
51
52
|
});
|
|
52
53
|
this.groupCountQ.match = ((msg) => {
|
|
53
|
-
this.mx10.logInfo.next('groupCount query rx: ' + JSON.stringify(msg));
|
|
54
|
+
// this.mx10.logInfo.next('groupCount query rx: ' + JSON.stringify(msg));
|
|
54
55
|
return (msg.group() === groupNid);
|
|
55
56
|
})
|
|
56
57
|
const rv = await this.groupCountQ.run();
|
|
57
|
-
this.mx10.logInfo.next("mx10.groupCount.rv: " + JSON.stringify(rv));
|
|
58
|
+
// this.mx10.logInfo.next("mx10.groupCount.rv: " + JSON.stringify(rv));
|
|
58
59
|
this.groupCountQ.unlock();
|
|
59
60
|
this.groupCountQ = undefined;
|
|
60
61
|
return rv;
|
|
@@ -72,12 +73,12 @@ export default class DataGroup
|
|
|
72
73
|
});
|
|
73
74
|
this.byIndexQ.tx = ((header) => {
|
|
74
75
|
const msg = new MsgItemsByIndexReq(header, this.mx10.myNID, groupNid, index);
|
|
75
|
-
this.mx10.logInfo.next('listItemsByIndex query tx: ' + JSON.stringify(msg));
|
|
76
|
+
// this.mx10.logInfo.next('listItemsByIndex query tx: ' + JSON.stringify(msg));
|
|
76
77
|
this.mx10.sendMsg(msg);
|
|
77
78
|
});
|
|
78
79
|
this.byIndexQ.match = ((msg) => {
|
|
79
|
-
this.mx10.logInfo.next('listItemsByIndex query rx: ' + JSON.stringify(msg));
|
|
80
|
-
this.mx10.logInfo.next('listItemsByIndex query rx: ' + msg.itemNid());
|
|
80
|
+
// this.mx10.logInfo.next('listItemsByIndex query rx: ' + JSON.stringify(msg));
|
|
81
|
+
// this.mx10.logInfo.next('listItemsByIndex query rx: ' + msg.itemNid());
|
|
81
82
|
const nid = msg.itemNid();
|
|
82
83
|
switch(groupNid) {
|
|
83
84
|
case 0:
|
|
@@ -214,11 +215,61 @@ export default class DataGroup
|
|
|
214
215
|
]);
|
|
215
216
|
}
|
|
216
217
|
|
|
217
|
-
|
|
218
|
+
async getName(nid: number, subId: number)
|
|
218
219
|
{
|
|
220
|
+
if(this.nameQ !== undefined && !await this.nameQ.lock()) {
|
|
221
|
+
this.mx10.logInfo.next("mx10.getName: failed to acquire lock");
|
|
222
|
+
return undefined;
|
|
223
|
+
}
|
|
224
|
+
this.nameQ = new Query(MsgDataName.header(MsgMode.REQ, this.mx10.mx10NID), this.onDataNameExtended);
|
|
225
|
+
this.nameQ.log = ((msg) => {
|
|
226
|
+
this.mx10.logInfo.next(msg);
|
|
227
|
+
});
|
|
228
|
+
this.nameQ.tx = ((header) => {
|
|
229
|
+
const msg = new MsgDataName(header, subId);
|
|
230
|
+
// this.mx10.logInfo.next('getName query tx: ' + JSON.stringify(msg));
|
|
231
|
+
this.mx10.sendMsg(msg);
|
|
232
|
+
});
|
|
233
|
+
this.nameQ.match = ((msg) => {
|
|
234
|
+
// this.mx10.logInfo.next('getName query rx: ' + JSON.stringify(msg));
|
|
235
|
+
return (msg.itemNid() === nid && msg.subId() === subId);
|
|
236
|
+
})
|
|
237
|
+
const rv = await this.nameQ.run();
|
|
238
|
+
// this.mx10.logInfo.next("mx10.getName.rv: " + JSON.stringify(rv));
|
|
239
|
+
this.nameQ.unlock();
|
|
240
|
+
this.nameQ = undefined;
|
|
241
|
+
return rv;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
async setName(nid: number, subId: number, name: string)
|
|
245
|
+
{
|
|
246
|
+
if(this.nameQ !== undefined && !await this.nameQ.lock()) {
|
|
247
|
+
this.mx10.logInfo.next("mx10.setName: failed to acquire lock");
|
|
248
|
+
return undefined;
|
|
249
|
+
}
|
|
250
|
+
this.nameQ = new Query(MsgDataName.header(MsgMode.CMD, nid), this.onDataNameExtended);
|
|
251
|
+
this.nameQ.log = ((msg) => {
|
|
252
|
+
this.mx10.logInfo.next(msg);
|
|
253
|
+
});
|
|
254
|
+
this.nameQ.tx = ((header) => {
|
|
255
|
+
const msg = new MsgDataName(header, subId, name);
|
|
256
|
+
// this.mx10.logInfo.next('setName query tx: ' + JSON.stringify(msg));
|
|
257
|
+
this.mx10.sendMsg(msg);
|
|
258
|
+
});
|
|
259
|
+
this.nameQ.match = ((msg) => {
|
|
260
|
+
// this.mx10.logInfo.next('setName query rx: ' + JSON.stringify(msg));
|
|
261
|
+
return (msg.itemNid() === nid && msg.subId() === subId);
|
|
262
|
+
})
|
|
263
|
+
this.nameQ.subscribe(false);
|
|
264
|
+
const rv = await this.nameQ.run();
|
|
265
|
+
// this.mx10.logInfo.next("mx10.setName.rv: " + JSON.stringify(rv));
|
|
266
|
+
this.nameQ.unlock();
|
|
267
|
+
this.nameQ = undefined;
|
|
268
|
+
return rv;
|
|
269
|
+
|
|
219
270
|
this.mx10.sendData(0x07, 0x21, [
|
|
220
|
-
{value:
|
|
221
|
-
{value:
|
|
271
|
+
{value: nid, length: 2},
|
|
272
|
+
{value: subId, length: 2},
|
|
222
273
|
{value: 0, length: 4},
|
|
223
274
|
{value: 0, length: 4},
|
|
224
275
|
{value: name, length: name.length},
|
|
@@ -231,11 +282,11 @@ export default class DataGroup
|
|
|
231
282
|
switch (command)
|
|
232
283
|
{
|
|
233
284
|
case 0x00:
|
|
234
|
-
this.mx10.logInfo.next('parseGroupCount: ' + JSON.stringify(buffer));
|
|
285
|
+
// this.mx10.logInfo.next('parseGroupCount: ' + JSON.stringify(buffer));
|
|
235
286
|
this.parseGroupCount(size, mode, nid, buffer);
|
|
236
287
|
break;
|
|
237
288
|
case 0x01:
|
|
238
|
-
this.mx10.logInfo.next('parseItemListByIndex: ' + JSON.stringify(buffer));
|
|
289
|
+
// this.mx10.logInfo.next('parseItemListByIndex: ' + JSON.stringify(buffer));
|
|
239
290
|
this.parseItemListByIndex(size, mode, nid, buffer);
|
|
240
291
|
break;
|
|
241
292
|
case 0x02:
|
|
@@ -377,6 +428,11 @@ export default class DataGroup
|
|
|
377
428
|
{
|
|
378
429
|
if(!this.onDataNameExtended.observed)
|
|
379
430
|
return;
|
|
431
|
+
|
|
432
|
+
this.mx10.logInfo.next('parseDataNameExtended: ' + nid + ', ' + JSON.stringify(buffer));
|
|
433
|
+
const msg = MsgDataName.fromBuffer(mode, nid, buffer);
|
|
434
|
+
this.onDataNameExtended.next(msg);
|
|
435
|
+
return;
|
|
380
436
|
|
|
381
437
|
const NID = buffer.readUInt16LE(0);
|
|
382
438
|
const subID = buffer.readUInt16LE(2);
|
|
@@ -427,6 +483,7 @@ export default class DataGroup
|
|
|
427
483
|
else
|
|
428
484
|
type = NameType.CONNECTION;
|
|
429
485
|
}
|
|
430
|
-
|
|
486
|
+
|
|
487
|
+
// this.onDataNameExtended.next({nid: NID, type, subID, value1, value2, name});
|
|
431
488
|
}
|
|
432
489
|
}
|
package/src/data/dataMsg.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
|
|
2
|
+
import ExtendedASCII from "../common/extendedAscii";
|
|
2
3
|
import { Header, Message } from "../common/communication";
|
|
3
|
-
import { MsgMode } from "../common/enums";
|
|
4
|
+
import { MsgMode, NameType } from "../common/enums";
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
export class MsgGroupCount extends Message
|
|
@@ -87,4 +88,80 @@ export class MsgItemsByNidRsp extends Message
|
|
|
87
88
|
index(): number {return (this.data[2].value as number)}
|
|
88
89
|
itemState(): number {return (this.data[3].value as number)}
|
|
89
90
|
lastTick(): number {return (this.data[4].value as number)}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export class MsgDataName extends Message
|
|
94
|
+
{
|
|
95
|
+
public static header(mode: MsgMode, nid: number): Header
|
|
96
|
+
{return {group: 0x7, cmd: 0x21, mode: mode, nid: nid}}
|
|
97
|
+
|
|
98
|
+
constructor(header: Header, subId: number, name?: string, v1?: number, v2?: number)
|
|
99
|
+
{
|
|
100
|
+
super(header);
|
|
101
|
+
super.push({value: subId, length: 2});
|
|
102
|
+
super.push({value: v1 || 0, length: 4});
|
|
103
|
+
super.push({value: v2 || 0, length: 4});
|
|
104
|
+
if(header.mode === MsgMode.REQ || name === undefined)
|
|
105
|
+
return;
|
|
106
|
+
super.push({value: name, length: Math.min(name.length, 32)});
|
|
107
|
+
super.push({value: 0, length: 1});
|
|
108
|
+
}
|
|
109
|
+
itemNid(): number {return this.header.nid || 0;}
|
|
110
|
+
subId(): number {return (this.data[0].value as number)}
|
|
111
|
+
value1(): number {return (this.data[1].value as number)}
|
|
112
|
+
value2(): number {return (this.data[2].value as number)}
|
|
113
|
+
name(): string | undefined {return this.data.length < 4 ? undefined : (this.data[3].value as string)}
|
|
114
|
+
type(): NameType
|
|
115
|
+
{
|
|
116
|
+
switch (this.itemNid())
|
|
117
|
+
{
|
|
118
|
+
case 0x7f00:
|
|
119
|
+
return NameType.MANUFACTURER;
|
|
120
|
+
case 0x7f02:
|
|
121
|
+
return NameType.DECODER;
|
|
122
|
+
break;
|
|
123
|
+
case 0x7f04:
|
|
124
|
+
return NameType.DESIGNATION;
|
|
125
|
+
// value1 = {type: buffer.subarray(4).toString('ascii').trim(),
|
|
126
|
+
// cfgNum: parseInt(buffer.subarray(5, 7).toString('ascii'))};
|
|
127
|
+
case 0x7f06:
|
|
128
|
+
return NameType.CFGDB;
|
|
129
|
+
break;
|
|
130
|
+
case 0x7f10:
|
|
131
|
+
return NameType.ICON;
|
|
132
|
+
break;
|
|
133
|
+
case 0x7f11:
|
|
134
|
+
return NameType.ICON;
|
|
135
|
+
break;
|
|
136
|
+
case 0x7f18:
|
|
137
|
+
return NameType.ZIMO_PARTNER;
|
|
138
|
+
break;
|
|
139
|
+
case 0x7f20:
|
|
140
|
+
return NameType.LAND;
|
|
141
|
+
break;
|
|
142
|
+
case 0x7f21:
|
|
143
|
+
return NameType.COMPANY_CV;
|
|
144
|
+
break;
|
|
145
|
+
case 0xc2:
|
|
146
|
+
return NameType.CONNECTION;
|
|
147
|
+
break;
|
|
148
|
+
default:
|
|
149
|
+
if(this.subId() == 1)
|
|
150
|
+
return NameType.COMPANY_CV;
|
|
151
|
+
if(this.subId() == 0)
|
|
152
|
+
return NameType.VEHICLE;
|
|
153
|
+
return NameType.CONNECTION;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
public static fromBuffer(mode: MsgMode, mx10Nid: number, buffer: Buffer)
|
|
158
|
+
{
|
|
159
|
+
const nid = buffer.readUInt16LE(0);
|
|
160
|
+
const subId = buffer.readUInt16LE(2);
|
|
161
|
+
const v1 = buffer.readUint32LE(4);
|
|
162
|
+
const v2 = buffer.readUint32LE(8);
|
|
163
|
+
const name = ExtendedASCII.byte2str(buffer.subarray(12, 203));
|
|
164
|
+
const msg = new MsgDataName(MsgDataName.header(mode, nid), subId, name, v1, v2);
|
|
165
|
+
return msg;
|
|
166
|
+
}
|
|
90
167
|
}
|