@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.
@@ -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 getVehicleMode(trainNid) {
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 setVehicleMode(trainNid, opMode, speedSteps) {
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 getVehicleSpeed(trainNid) {
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 setVehicleSpeed(trainNid, speedStep, divisor = 0, forward = true, emergencyStop = false, eastWest = Direction.UNDEFINED) {
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
- const NID = buffer.readUInt16LE(0);
162
- const stateFlags = buffer.readUInt16LE(2);
163
- const ctrlTick = buffer.readUInt16LE(4);
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":"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"}
@@ -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
+ }
@@ -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":"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"}
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.46",
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",
@@ -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<DataNameExtended>();
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
- dataNameExtended(NID: number, subID: number, name: string)
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: NID, length: 2},
221
- {value: subID, length: 2},
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
- this.onDataNameExtended.next({nid: NID, type, subID, value1, value2, name});
486
+
487
+ // this.onDataNameExtended.next({nid: NID, type, subID, value1, value2, name});
431
488
  }
432
489
  }
@@ -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
  }