@zimo-elektronik/zcan 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dockerignore +7 -0
- package/.editorconfig +15 -0
- package/.eslintignore +7 -0
- package/.eslintrc.cjs +17 -0
- package/.gitattributes +1 -0
- package/.github/workflows/docs.yml +46 -0
- package/.github/workflows/library.yml +59 -0
- package/.nvmrc +1 -0
- package/.prettierignore +14 -0
- package/.prettierrc.json +8 -0
- package/LICENSE.md +21 -0
- package/README.md +8 -0
- package/__tests__/connection.test.ts +58 -0
- package/__tests__/dataGroup.test.ts +98 -0
- package/__tests__/infoGroup.test.ts +30 -0
- package/__tests__/lanDataGroup.test.ts +82 -0
- package/__tests__/lanInfoGroup.test.ts +41 -0
- package/__tests__/systemControlGroup.test.ts +42 -0
- package/__tests__/trackCfgGroup.test.ts +43 -0
- package/__tests__/util/index.ts +14 -0
- package/__tests__/vehicleGroup.test.ts +128 -0
- package/dist/@types/communication.d.ts +30 -0
- package/dist/@types/communication.js +2 -0
- package/dist/@types/communication.js.map +1 -0
- package/dist/@types/models.d.ts +172 -0
- package/dist/@types/models.js +2 -0
- package/dist/@types/models.js.map +1 -0
- package/dist/MX10.d.ts +45 -0
- package/dist/MX10.js +233 -0
- package/dist/MX10.js.map +1 -0
- package/dist/docs_entrypoint.d.ts +6 -0
- package/dist/docs_entrypoint.js +7 -0
- package/dist/docs_entrypoint.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/bites.d.ts +9 -0
- package/dist/internal/bites.js +10 -0
- package/dist/internal/bites.js.map +1 -0
- package/dist/internal/speedUtils.d.ts +9 -0
- package/dist/internal/speedUtils.js +29 -0
- package/dist/internal/speedUtils.js.map +1 -0
- package/dist/internal/utils.d.ts +1 -0
- package/dist/internal/utils.js +4 -0
- package/dist/internal/utils.js.map +1 -0
- package/dist/util/enums.d.ts +113 -0
- package/dist/util/enums.js +137 -0
- package/dist/util/enums.js.map +1 -0
- package/dist/util/extended-ascii.d.ts +7 -0
- package/dist/util/extended-ascii.js +162 -0
- package/dist/util/extended-ascii.js.map +1 -0
- package/dist/zcan/accessoryCommandGroup.d.ts +6 -0
- package/dist/zcan/accessoryCommandGroup.js +9 -0
- package/dist/zcan/accessoryCommandGroup.js.map +1 -0
- package/dist/zcan/dataGroup.d.ts +31 -0
- package/dist/zcan/dataGroup.js +233 -0
- package/dist/zcan/dataGroup.js.map +1 -0
- package/dist/zcan/fileControlGroup.d.ts +7 -0
- package/dist/zcan/fileControlGroup.js +9 -0
- package/dist/zcan/fileControlGroup.js.map +1 -0
- package/dist/zcan/fileTransferGroup.d.ts +7 -0
- package/dist/zcan/fileTransferGroup.js +9 -0
- package/dist/zcan/fileTransferGroup.js.map +1 -0
- package/dist/zcan/index.d.ts +18 -0
- package/dist/zcan/index.js +19 -0
- package/dist/zcan/index.js.map +1 -0
- package/dist/zcan/infoGroup.d.ts +15 -0
- package/dist/zcan/infoGroup.js +64 -0
- package/dist/zcan/infoGroup.js.map +1 -0
- package/dist/zcan/lanDataGroup.d.ts +23 -0
- package/dist/zcan/lanDataGroup.js +226 -0
- package/dist/zcan/lanDataGroup.js.map +1 -0
- package/dist/zcan/lanInfoGroup.d.ts +11 -0
- package/dist/zcan/lanInfoGroup.js +58 -0
- package/dist/zcan/lanInfoGroup.js.map +1 -0
- package/dist/zcan/lanNetworkGroup.d.ts +11 -0
- package/dist/zcan/lanNetworkGroup.js +37 -0
- package/dist/zcan/lanNetworkGroup.js.map +1 -0
- package/dist/zcan/lanZimoProgrammableScriptGroup.d.ts +7 -0
- package/dist/zcan/lanZimoProgrammableScriptGroup.js +9 -0
- package/dist/zcan/lanZimoProgrammableScriptGroup.js.map +1 -0
- package/dist/zcan/networkGroup.d.ts +10 -0
- package/dist/zcan/networkGroup.js +38 -0
- package/dist/zcan/networkGroup.js.map +1 -0
- package/dist/zcan/propertyConfigGroup.d.ts +7 -0
- package/dist/zcan/propertyConfigGroup.js +9 -0
- package/dist/zcan/propertyConfigGroup.js.map +1 -0
- package/dist/zcan/railwayControlGroup.d.ts +7 -0
- package/dist/zcan/railwayControlGroup.js +9 -0
- package/dist/zcan/railwayControlGroup.js.map +1 -0
- package/dist/zcan/systemControlGroup.d.ts +13 -0
- package/dist/zcan/systemControlGroup.js +35 -0
- package/dist/zcan/systemControlGroup.js.map +1 -0
- package/dist/zcan/trackCfgGroup.d.ts +16 -0
- package/dist/zcan/trackCfgGroup.js +77 -0
- package/dist/zcan/trackCfgGroup.js.map +1 -0
- package/dist/zcan/trainControlGroup.d.ts +8 -0
- package/dist/zcan/trainControlGroup.js +19 -0
- package/dist/zcan/trainControlGroup.js.map +1 -0
- package/dist/zcan/vehicleGroup.d.ts +26 -0
- package/dist/zcan/vehicleGroup.js +145 -0
- package/dist/zcan/vehicleGroup.js.map +1 -0
- package/dist/zcan/zimoProgrammableScriptGroup.d.ts +7 -0
- package/dist/zcan/zimoProgrammableScriptGroup.js +9 -0
- package/dist/zcan/zimoProgrammableScriptGroup.js.map +1 -0
- package/gulpfile.js +37 -0
- package/jest.config.js +26 -0
- package/package.json +50 -0
- package/protocol_docs/README.md +41 -0
- package/protocol_docs/babel.config.js +3 -0
- package/protocol_docs/docs/command-groups/_category_.json +4 -0
- package/protocol_docs/docs/command-groups/accessories/_category_.json +4 -0
- package/protocol_docs/docs/command-groups/accessories/accessory-state.md +7 -0
- package/protocol_docs/docs/command-groups/command-groups.md +50 -0
- package/protocol_docs/docs/command-groups/data/_category_.json +4 -0
- package/protocol_docs/docs/command-groups/data/data-name-extended.md +60 -0
- package/protocol_docs/docs/command-groups/data/group-count.md +52 -0
- package/protocol_docs/docs/command-groups/data/item-fx-info.md +27 -0
- package/protocol_docs/docs/command-groups/data/item-image-config.md +44 -0
- package/protocol_docs/docs/command-groups/data/item-list-by-index.md +45 -0
- package/protocol_docs/docs/command-groups/data/item-list-by-nid.md +43 -0
- package/protocol_docs/docs/command-groups/data/remove-train.md +33 -0
- package/protocol_docs/docs/command-groups/info/_category_.json +4 -0
- package/protocol_docs/docs/command-groups/info/bidi-info.md +34 -0
- package/protocol_docs/docs/command-groups/lan-data/_category_.json +4 -0
- package/protocol_docs/docs/command-groups/lan-data/data-value-extended.md +65 -0
- package/protocol_docs/docs/command-groups/lan-data/loco-gui-extended.md +48 -0
- package/protocol_docs/docs/command-groups/lan-info/_category_.json +4 -0
- package/protocol_docs/docs/command-groups/lan-info/module-power-info.md +26 -0
- package/protocol_docs/docs/command-groups/lan-network/_category_.json +4 -0
- package/protocol_docs/docs/command-groups/lan-network/open-port.md +47 -0
- package/protocol_docs/docs/command-groups/network/_category_.json +4 -0
- package/protocol_docs/docs/command-groups/network/ping.md +49 -0
- package/protocol_docs/docs/command-groups/system/_category_.json +4 -0
- package/protocol_docs/docs/command-groups/system/system-state.md +59 -0
- package/protocol_docs/docs/command-groups/track/_category_.json +4 -0
- package/protocol_docs/docs/command-groups/track/tse-prog-read.md +37 -0
- package/protocol_docs/docs/command-groups/track/tse-prog-write.md +35 -0
- package/protocol_docs/docs/command-groups/train/_category_.json +4 -0
- package/protocol_docs/docs/command-groups/train/train-part-find.md +33 -0
- package/protocol_docs/docs/command-groups/vehicles/_category_.json +4 -0
- package/protocol_docs/docs/command-groups/vehicles/vehicle-function.md +36 -0
- package/protocol_docs/docs/command-groups/vehicles/vehicle-mode.md +143 -0
- package/protocol_docs/docs/command-groups/vehicles/vehicle-special-function-switch.md +35 -0
- package/protocol_docs/docs/command-groups/vehicles/vehicle-speed.md +55 -0
- package/protocol_docs/docs/description.md +4 -0
- package/protocol_docs/docs/introduction/_category_.json +4 -0
- package/protocol_docs/docs/introduction/how-it-works.md +61 -0
- package/protocol_docs/docs/introduction/implementation.md +39 -0
- package/protocol_docs/docs/introduction/interface.md +62 -0
- package/protocol_docs/docs/introduction/introduction.md +82 -0
- package/protocol_docs/docusaurus.config.js +111 -0
- package/protocol_docs/package-lock.json +25611 -0
- package/protocol_docs/package.json +47 -0
- package/protocol_docs/sidebars.js +22 -0
- package/protocol_docs/src/components/CommandAndGroup/index.tsx +16 -0
- package/protocol_docs/src/components/CommandAndGroup/styles.module.css +12 -0
- package/protocol_docs/src/components/HomepageFeatures/index.tsx +70 -0
- package/protocol_docs/src/components/HomepageFeatures/styles.module.css +11 -0
- package/protocol_docs/src/css/custom.css +76 -0
- package/protocol_docs/src/pages/index.module.css +23 -0
- package/protocol_docs/src/pages/index.tsx +41 -0
- package/protocol_docs/src/pages/markdown-page.md +7 -0
- package/protocol_docs/static/.nojekyll +0 -0
- package/protocol_docs/static/img/docusaurus.png +0 -0
- package/protocol_docs/static/img/favicon.ico +0 -0
- package/protocol_docs/static/img/undraw_docusaurus_mountain.svg +171 -0
- package/protocol_docs/static/img/undraw_docusaurus_react.svg +170 -0
- package/protocol_docs/static/img/undraw_docusaurus_tree.svg +40 -0
- package/protocol_docs/static/typedoc/index.html +10 -0
- package/protocol_docs/tsconfig.json +7 -0
- package/src/@types/communication.ts +73 -0
- package/src/@types/models.ts +215 -0
- package/src/MX10.ts +351 -0
- package/src/docs_entrypoint.ts +34 -0
- package/src/index.ts +8 -0
- package/src/internal/bites.ts +11 -0
- package/src/internal/speedUtils.ts +36 -0
- package/src/internal/utils.ts +3 -0
- package/src/util/enums.ts +147 -0
- package/src/util/extended-ascii.ts +179 -0
- package/src/zcan/accessoryCommandGroup.ts +24 -0
- package/src/zcan/dataGroup.ts +342 -0
- package/src/zcan/fileControlGroup.ts +25 -0
- package/src/zcan/fileTransferGroup.ts +25 -0
- package/src/zcan/index.ts +37 -0
- package/src/zcan/infoGroup.ts +90 -0
- package/src/zcan/lanDataGroup.ts +361 -0
- package/src/zcan/lanInfoGroup.ts +86 -0
- package/src/zcan/lanNetworkGroup.ts +70 -0
- package/src/zcan/lanZimoProgrammableScriptGroup.ts +25 -0
- package/src/zcan/networkGroup.ts +71 -0
- package/src/zcan/propertyConfigGroup.ts +25 -0
- package/src/zcan/railwayControlGroup.ts +25 -0
- package/src/zcan/systemControlGroup.ts +62 -0
- package/src/zcan/trackCfgGroup.ts +109 -0
- package/src/zcan/trainControlGroup.ts +48 -0
- package/src/zcan/vehicleGroup.ts +267 -0
- package/src/zcan/zimoProgrammableScriptGroup.ts +25 -0
- package/tsconfig.build.json +12 -0
- package/tsconfig.json +49 -0
- package/tsconfig.test.json +9 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lanDataGroup.js","sourceRoot":"","sources":["../../src/zcan/lanDataGroup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import MX10 from '../MX10';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { ModulePowerInfoData } from '../@types/models';
|
|
4
|
+
export default class LanInfoGroup {
|
|
5
|
+
private mx10;
|
|
6
|
+
readonly onModulePowerInfo: Subject<ModulePowerInfoData>;
|
|
7
|
+
constructor(mx10: MX10);
|
|
8
|
+
parse(size: number, command: number, mode: number, nid: number, buffer: Buffer): void;
|
|
9
|
+
private parseModulePowerInfo;
|
|
10
|
+
private parsePortStatus;
|
|
11
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
import { TrackMode } from '../util/enums';
|
|
3
|
+
export default class LanInfoGroup {
|
|
4
|
+
mx10;
|
|
5
|
+
onModulePowerInfo = new Subject();
|
|
6
|
+
constructor(mx10) {
|
|
7
|
+
this.mx10 = mx10;
|
|
8
|
+
}
|
|
9
|
+
parse(size, command, mode, nid, buffer) {
|
|
10
|
+
switch (command) {
|
|
11
|
+
case 0x00:
|
|
12
|
+
this.parseModulePowerInfo(size, mode, nid, buffer);
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
parseModulePowerInfo(size, mode, nid, buffer) {
|
|
17
|
+
if (this.onModulePowerInfo.observed) {
|
|
18
|
+
const deviceNID = buffer.readUInt16LE(0);
|
|
19
|
+
const port1 = buffer.readUInt16LE(2);
|
|
20
|
+
const port1Voltage = buffer.readUInt16LE(4);
|
|
21
|
+
const port1Amperage = buffer.readUInt16LE(6);
|
|
22
|
+
const port2 = buffer.readUInt16LE(8);
|
|
23
|
+
const port2Voltage = buffer.readUInt16LE(10);
|
|
24
|
+
const port2Amperage = buffer.readUInt16LE(12);
|
|
25
|
+
const amperage32V = buffer.readUInt16LE(14);
|
|
26
|
+
const amperage12V = buffer.readUInt16LE(16);
|
|
27
|
+
const voltageTotal = buffer.readUInt16LE(18);
|
|
28
|
+
const temperature = buffer.readUInt16LE(20);
|
|
29
|
+
const port1Status = this.parsePortStatus(port1);
|
|
30
|
+
const port2Status = this.parsePortStatus(port2);
|
|
31
|
+
this.onModulePowerInfo.next({
|
|
32
|
+
deviceNID,
|
|
33
|
+
port1Status,
|
|
34
|
+
port1Voltage,
|
|
35
|
+
port1Amperage,
|
|
36
|
+
port2Status,
|
|
37
|
+
port2Voltage,
|
|
38
|
+
port2Amperage,
|
|
39
|
+
amperage32V,
|
|
40
|
+
amperage12V,
|
|
41
|
+
voltageTotal,
|
|
42
|
+
temperature,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
parsePortStatus(state) {
|
|
47
|
+
const offBites = 0b0000000000001;
|
|
48
|
+
const off = (state & offBites) === 1;
|
|
49
|
+
const tmp = (state >> 4) & 0x0f;
|
|
50
|
+
if (off) {
|
|
51
|
+
return TrackMode.OFF;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
return tmp;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=lanInfoGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lanInfoGroup.js","sourceRoot":"","sources":["../../src/zcan/lanInfoGroup.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAMxC,MAAM,CAAC,OAAO,OAAO,YAAY;IACvB,IAAI,CAAO;IAEH,iBAAiB,GAAG,IAAI,OAAO,EAAuB,CAAC;IAEvE,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CACH,IAAY,EACZ,OAAe,EACf,IAAY,EACZ,GAAW,EACX,MAAc;QAEd,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,IAAI;gBACP,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBACnD,MAAM;QACV,CAAC;IACH,CAAC;IAGO,oBAAoB,CAC1B,IAAY,EACZ,IAAY,EACZ,GAAW,EACX,MAAc;QAEd,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAE5C,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAEhD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAC1B,SAAS;gBACT,WAAW;gBACX,YAAY;gBACZ,aAAa;gBACb,WAAW;gBACX,YAAY;gBACZ,aAAa;gBACb,WAAW;gBACX,WAAW;gBACX,YAAY;gBACZ,WAAW;aACZ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,KAAa;QACnC,MAAM,QAAQ,GAAG,eAAe,CAAC;QAEjC,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAEhC,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,SAAS,CAAC,GAAG,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,GAAgB,CAAC;QAC1B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import MX10 from '../MX10';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
export default class LanNetworkGroup {
|
|
4
|
+
private mx10;
|
|
5
|
+
readonly onPortOpen: Subject<boolean>;
|
|
6
|
+
constructor(mx10: MX10);
|
|
7
|
+
portOpen(): void;
|
|
8
|
+
parse(size: number, command: number, mode: number, nid: number, buffer: Buffer): void;
|
|
9
|
+
parsePortOpen(size: number, mode: number, nid: number, buffer: Buffer): void;
|
|
10
|
+
parseUnknownCommand(size: number, mode: number, nid: number, buffer: Buffer): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
export default class LanNetworkGroup {
|
|
3
|
+
mx10;
|
|
4
|
+
onPortOpen = new Subject();
|
|
5
|
+
constructor(mx10) {
|
|
6
|
+
this.mx10 = mx10;
|
|
7
|
+
}
|
|
8
|
+
portOpen() {
|
|
9
|
+
this.mx10.sendData(0x1a, 0x06, [
|
|
10
|
+
{ value: 1, length: 4 },
|
|
11
|
+
{ value: 214748364, length: 4 },
|
|
12
|
+
{ value: 'ZIMO APP', length: 20 },
|
|
13
|
+
], 0b01, this.mx10.myNID, true);
|
|
14
|
+
}
|
|
15
|
+
parse(size, command, mode, nid, buffer) {
|
|
16
|
+
switch (command) {
|
|
17
|
+
case 0x06:
|
|
18
|
+
this.parsePortOpen(size, mode, nid, buffer);
|
|
19
|
+
break;
|
|
20
|
+
case 0x0e:
|
|
21
|
+
this.parseUnknownCommand(size, mode, nid, buffer);
|
|
22
|
+
break;
|
|
23
|
+
default:
|
|
24
|
+
console.warn('command not parsed: ' + command.toString());
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
parsePortOpen(size, mode, nid, buffer) {
|
|
28
|
+
if (this.onPortOpen.observed) {
|
|
29
|
+
this.mx10.mx10NID = nid;
|
|
30
|
+
this.mx10.connected = true;
|
|
31
|
+
this.onPortOpen.next(true);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
parseUnknownCommand(size, mode, nid, buffer) {
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=lanNetworkGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lanNetworkGroup.js","sourceRoot":"","sources":["../../src/zcan/lanNetworkGroup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAM7B,MAAM,CAAC,OAAO,OAAO,eAAe;IAC1B,IAAI,CAAO;IAEH,UAAU,GAAG,IAAI,OAAO,EAAW,CAAC;IAEpD,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,QAAQ,CAChB,IAAI,EACJ,IAAI,EACJ;YACE,EAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC;YACrB,EAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAC;YAC7B,EAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAC;SAChC,EACD,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,IAAI,CACL,CAAC;IACJ,CAAC;IAGD,KAAK,CACH,IAAY,EACZ,OAAe,EACf,IAAY,EACZ,GAAW,EACX,MAAc;QAEd,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,IAAI;gBACP,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC5C,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM;YACR;gBAEE,OAAO,CAAC,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc;QACnE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAE3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAGD,mBAAmB,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc;IAG3E,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lanZimoProgrammableScriptGroup.js","sourceRoot":"","sources":["../../src/zcan/lanZimoProgrammableScriptGroup.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,OAAO,8BAA8B;IACzC,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CACH,IAAY,EACZ,OAAe,EACf,IAAY,EACZ,GAAW,EACX,MAAc;IAGhB,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import MX10 from '../MX10';
|
|
2
|
+
import { Buffer } from 'buffer';
|
|
3
|
+
export default class NetworkGroup {
|
|
4
|
+
private mx10;
|
|
5
|
+
constructor(mx10: MX10);
|
|
6
|
+
ping(mode?: number): void;
|
|
7
|
+
portClose(): void;
|
|
8
|
+
parse(size: number, command: number, mode: number, nid: number, buffer: Buffer): void;
|
|
9
|
+
pingResponse(size: number, mode: number, nid: number, _buffer: Buffer): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export default class NetworkGroup {
|
|
2
|
+
mx10;
|
|
3
|
+
constructor(mx10) {
|
|
4
|
+
this.mx10 = mx10;
|
|
5
|
+
}
|
|
6
|
+
ping(mode = 0b10) {
|
|
7
|
+
this.mx10.sendData(0x0a, 0x00, [
|
|
8
|
+
{
|
|
9
|
+
value: this.mx10.mx10NID,
|
|
10
|
+
length: 2,
|
|
11
|
+
},
|
|
12
|
+
], mode);
|
|
13
|
+
}
|
|
14
|
+
portClose() {
|
|
15
|
+
this.mx10.sendData(0x0a, 0x07, [{ value: this.mx10.myNID, length: 2 }], 0b01);
|
|
16
|
+
}
|
|
17
|
+
parse(size, command, mode, nid, buffer) {
|
|
18
|
+
switch (command) {
|
|
19
|
+
case 0x00:
|
|
20
|
+
this.pingResponse(size, mode, nid, buffer);
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
pingResponse(size, mode, nid, _buffer) {
|
|
25
|
+
if (size === 8) {
|
|
26
|
+
if (!this.mx10.mx10NID) {
|
|
27
|
+
this.mx10.mx10NID = nid;
|
|
28
|
+
}
|
|
29
|
+
this.mx10.connected = true;
|
|
30
|
+
this.mx10.reconnectLogic();
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
throw new Error('LENGTH ERROR: readCmdGrp_0x0A-0x0A, read length as: ' +
|
|
34
|
+
size.toString());
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=networkGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"networkGroup.js","sourceRoot":"","sources":["../../src/zcan/networkGroup.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,OAAO,YAAY;IACvB,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,IAAI,GAAG,IAAI;QACd,IAAI,CAAC,IAAI,CAAC,QAAQ,CAChB,IAAI,EACJ,IAAI,EACJ;YACE;gBACE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;gBACxB,MAAM,EAAE,CAAC;aACV;SACF,EACD,IAAI,CACL,CAAC;IACJ,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CACH,IAAY,EACZ,OAAe,EACf,IAAY,EACZ,GAAW,EACX,MAAc;QAEd,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,IAAI;gBACP,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC3C,MAAM;QACV,CAAC;IACH,CAAC;IAGD,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,OAAe;QACnE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YAGf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YAC1B,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAK3B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7B,CAAC;aAAM,CAAC;YAGN,MAAM,IAAI,KAAK,CACb,sDAAsD;gBACpD,IAAI,CAAC,QAAQ,EAAE,CAClB,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"propertyConfigGroup.js","sourceRoot":"","sources":["../../src/zcan/propertyConfigGroup.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC9B,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CACH,IAAY,EACZ,OAAe,EACf,IAAY,EACZ,GAAW,EACX,MAAc;IAGhB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"railwayControlGroup.js","sourceRoot":"","sources":["../../src/zcan/railwayControlGroup.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC9B,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CACH,IAAY,EACZ,OAAe,EACf,IAAY,EACZ,GAAW,EACX,MAAc;IAGhB,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import MX10 from '../MX10';
|
|
2
|
+
import { SystemStateMode } from '../util/enums';
|
|
3
|
+
import { Buffer } from 'buffer';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import { SystemStateData } from '../@types/models';
|
|
6
|
+
export default class SystemControlGroup {
|
|
7
|
+
private mx10;
|
|
8
|
+
readonly onSystemStateChange: Subject<SystemStateData>;
|
|
9
|
+
constructor(mx10: MX10);
|
|
10
|
+
systemState(mode: SystemStateMode, port?: number, device?: number): void;
|
|
11
|
+
parse(size: number, command: number, mode: number, nid: number, buffer: Buffer): void;
|
|
12
|
+
private parseSystemState;
|
|
13
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
export default class SystemControlGroup {
|
|
3
|
+
mx10;
|
|
4
|
+
onSystemStateChange = new Subject();
|
|
5
|
+
constructor(mx10) {
|
|
6
|
+
this.mx10 = mx10;
|
|
7
|
+
}
|
|
8
|
+
systemState(mode, port = 0xff, device = this.mx10.mx10NID) {
|
|
9
|
+
this.mx10.sendData(0x00, 0x00, [
|
|
10
|
+
{ value: device, length: 2 },
|
|
11
|
+
{ value: port, length: 1 },
|
|
12
|
+
{ value: mode, length: 1 },
|
|
13
|
+
]);
|
|
14
|
+
}
|
|
15
|
+
parse(size, command, mode, nid, buffer) {
|
|
16
|
+
switch (command) {
|
|
17
|
+
case 0x00:
|
|
18
|
+
this.parseSystemState(size, mode, nid, buffer);
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
parseSystemState(size, mode, nid, buffer) {
|
|
23
|
+
if (this.onSystemStateChange.observed) {
|
|
24
|
+
const deviceNID = buffer.readUInt16LE(0);
|
|
25
|
+
const port = buffer.readUInt8(2);
|
|
26
|
+
const modeState = buffer.readUInt8(3);
|
|
27
|
+
this.onSystemStateChange.next({
|
|
28
|
+
nid: deviceNID,
|
|
29
|
+
port,
|
|
30
|
+
mode: modeState,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=systemControlGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"systemControlGroup.js","sourceRoot":"","sources":["../../src/zcan/systemControlGroup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAO7B,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAC7B,IAAI,CAAO;IAEH,mBAAmB,GAAG,IAAI,OAAO,EAAmB,CAAC;IAErE,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAGD,WAAW,CAAC,IAAqB,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;QACxE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;YAC7B,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAC;YAC1B,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAC;YACxB,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAC;SACzB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CACH,IAAY,EACZ,OAAe,EACf,IAAY,EACZ,GAAW,EACX,MAAc;QAEd,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,IAAI;gBACP,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC/C,MAAM;QACV,CAAC;IACH,CAAC;IAEO,gBAAgB,CACtB,IAAY,EACZ,IAAY,EACZ,GAAW,EACX,MAAc;QAEd,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAEtC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,GAAG,EAAE,SAAS;gBACd,IAAI;gBACJ,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TseInfoExtended, TseProgReadExtended, TseProgWriteExtended } from 'src/@types/models';
|
|
2
|
+
import MX10 from '../MX10';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
export default class TrackCfgGroup {
|
|
5
|
+
readonly onTseInfoExtended: Subject<TseInfoExtended>;
|
|
6
|
+
readonly onTseProgReadExtended: Subject<TseProgReadExtended>;
|
|
7
|
+
readonly onTseProgWriteExtended: Subject<TseProgWriteExtended>;
|
|
8
|
+
private mx10;
|
|
9
|
+
constructor(mx10: MX10);
|
|
10
|
+
tseProgRead(NID: number, CV: number): void;
|
|
11
|
+
tseProgWrite(NID: number, CV: number, value: number): void;
|
|
12
|
+
parse(size: number, command: number, mode: number, nid: number, buffer: Buffer): void;
|
|
13
|
+
parseTseInfo(size: number, mode: number, nid: number, buffer: Buffer): void;
|
|
14
|
+
parseTseProgRead(size: number, mode: number, nid: number, buffer: Buffer): void;
|
|
15
|
+
parseTseProgWrite(size: number, mode: number, nid: number, buffer: Buffer): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
export default class TrackCfgGroup {
|
|
3
|
+
onTseInfoExtended = new Subject();
|
|
4
|
+
onTseProgReadExtended = new Subject();
|
|
5
|
+
onTseProgWriteExtended = new Subject();
|
|
6
|
+
mx10;
|
|
7
|
+
constructor(mx10) {
|
|
8
|
+
this.mx10 = mx10;
|
|
9
|
+
}
|
|
10
|
+
tseProgRead(NID, CV) {
|
|
11
|
+
this.mx10.sendData(0x16, 0x08, [
|
|
12
|
+
{ value: this.mx10.mx10NID, length: 2 },
|
|
13
|
+
{ value: NID, length: 2 },
|
|
14
|
+
{ value: CV, length: 4 },
|
|
15
|
+
]);
|
|
16
|
+
}
|
|
17
|
+
tseProgWrite(NID, CV, value) {
|
|
18
|
+
this.mx10.sendData(0x16, 0x09, [
|
|
19
|
+
{ value: this.mx10.mx10NID, length: 2 },
|
|
20
|
+
{ value: NID, length: 2 },
|
|
21
|
+
{ value: CV, length: 4 },
|
|
22
|
+
{ value: value, length: 1 },
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
parse(size, command, mode, nid, buffer) {
|
|
26
|
+
switch (command) {
|
|
27
|
+
case 0x02:
|
|
28
|
+
this.parseTseInfo(size, mode, nid, buffer);
|
|
29
|
+
break;
|
|
30
|
+
case 0x08:
|
|
31
|
+
this.parseTseProgRead(size, mode, nid, buffer);
|
|
32
|
+
break;
|
|
33
|
+
case 0x09:
|
|
34
|
+
this.parseTseProgWrite(size, mode, nid, buffer);
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
parseTseInfo(size, mode, nid, buffer) {
|
|
39
|
+
if (this.onTseInfoExtended.observed) {
|
|
40
|
+
const NID = buffer.readUInt16LE(2);
|
|
41
|
+
const cfgNum = buffer.readUInt32LE(4);
|
|
42
|
+
const cvState = buffer.readUint8(8);
|
|
43
|
+
const cvCode = buffer.readUint8(9);
|
|
44
|
+
this.onTseInfoExtended.next({
|
|
45
|
+
nid: NID,
|
|
46
|
+
cfgNum,
|
|
47
|
+
cvState,
|
|
48
|
+
cvCode,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
parseTseProgRead(size, mode, nid, buffer) {
|
|
53
|
+
if (this.onTseProgReadExtended.observed) {
|
|
54
|
+
const NID = buffer.readUInt16LE(2);
|
|
55
|
+
const cfgNum = buffer.readUInt32LE(4);
|
|
56
|
+
const cvValue = buffer.readUInt16LE(8);
|
|
57
|
+
this.onTseProgReadExtended.next({
|
|
58
|
+
nid: NID,
|
|
59
|
+
cfgNum,
|
|
60
|
+
cvValue,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
parseTseProgWrite(size, mode, nid, buffer) {
|
|
65
|
+
if (this.onTseProgWriteExtended.observed) {
|
|
66
|
+
const NID = buffer.readUInt16LE(0);
|
|
67
|
+
const cfgNum = buffer.readUInt32LE(2);
|
|
68
|
+
const cvValue = buffer.readUint8(6);
|
|
69
|
+
this.onTseProgWriteExtended.next({
|
|
70
|
+
nid: NID,
|
|
71
|
+
cfgNum,
|
|
72
|
+
cvValue,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=trackCfgGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackCfgGroup.js","sourceRoot":"","sources":["../../src/zcan/trackCfgGroup.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAM7B,MAAM,CAAC,OAAO,OAAO,aAAa;IAChB,iBAAiB,GAAG,IAAI,OAAO,EAAmB,CAAC;IACnD,qBAAqB,GAAG,IAAI,OAAO,EAAuB,CAAC;IAC3D,sBAAsB,GAAG,IAAI,OAAO,EAAwB,CAAC;IAErE,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,WAAW,CAAC,GAAW,EAAE,EAAU;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;YAC7B,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAC;YACrC,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAC;YACvB,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAC;SACvB,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,EAAU,EAAE,KAAa;QACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;YAC7B,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAC;YACrC,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAC;YACvB,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAC;YACtB,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CACH,IAAY,EACZ,OAAe,EACf,IAAY,EACZ,GAAW,EACX,MAAc;QAEd,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,IAAI;gBACP,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAChD,MAAM;QACV,CAAC;IACH,CAAC;IAGD,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc;QAClE,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAEpC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAEnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAC1B,GAAG,EAAE,GAAG;gBACR,MAAM;gBACN,OAAO;gBACP,MAAM;aACP,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAGD,gBAAgB,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc;QACtE,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;YAExC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAEvC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;gBAC9B,GAAG,EAAE,GAAG;gBACR,MAAM;gBACN,OAAO;aACR,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAGD,iBAAiB,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc;QACvE,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAEpC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;gBAC/B,GAAG,EAAE,GAAG;gBACR,MAAM;gBACN,OAAO;aACR,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import MX10 from '../MX10';
|
|
2
|
+
export default class TrainControlGroup {
|
|
3
|
+
private mx10;
|
|
4
|
+
constructor(mx10: MX10);
|
|
5
|
+
trainPartFind(NID: number): void;
|
|
6
|
+
parse(size: number, command: number, mode: number, nid: number, buffer: Buffer): void;
|
|
7
|
+
parseTrainPartFind(size: number, mode: number, nid: number, buffer: Buffer): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export default class TrainControlGroup {
|
|
2
|
+
mx10;
|
|
3
|
+
constructor(mx10) {
|
|
4
|
+
this.mx10 = mx10;
|
|
5
|
+
}
|
|
6
|
+
trainPartFind(NID) {
|
|
7
|
+
this.mx10.sendData(0x05, 0x02, [{ value: NID, length: 2 }], 0b00);
|
|
8
|
+
}
|
|
9
|
+
parse(size, command, mode, nid, buffer) {
|
|
10
|
+
switch (command) {
|
|
11
|
+
case 0x02:
|
|
12
|
+
this.parseTrainPartFind(size, mode, nid, buffer);
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
parseTrainPartFind(size, mode, nid, buffer) {
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=trainControlGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trainControlGroup.js","sourceRoot":"","sources":["../../src/zcan/trainControlGroup.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAC5B,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,aAAa,CAAC,GAAW;QAEvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CACH,IAAY,EACZ,OAAe,EACf,IAAY,EACZ,GAAW,EACX,MAAc;QAEd,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,IAAI;gBACP,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBACjD,MAAM;QACV,CAAC;IACH,CAAC;IAID,kBAAkB,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc;IAY1E,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import MX10 from '../MX10';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { CallFunctionData, CallSpecialFunctionData, VehicleStateData, VehicleModeData, VehicleSpeedData } from '../@types/models';
|
|
4
|
+
import { Direction, DirectionDefault, Manual, ShuntingFunction, SpecialFunctionMode } from '../util/enums';
|
|
5
|
+
export default class VehicleGroup {
|
|
6
|
+
private mx10;
|
|
7
|
+
readonly onVehicleState: Subject<VehicleStateData>;
|
|
8
|
+
readonly onVehicleMode: Subject<VehicleModeData>;
|
|
9
|
+
readonly onChangeSpeed: Subject<VehicleSpeedData>;
|
|
10
|
+
readonly onCallFunction: Subject<CallFunctionData>;
|
|
11
|
+
readonly onCallSpecialFunction: Subject<CallSpecialFunctionData>;
|
|
12
|
+
constructor(mx10: MX10);
|
|
13
|
+
vehicleMode(vehicleAddress: number): void;
|
|
14
|
+
changeSpeed(vehicleAddress: number, speedStep: number, forward: boolean, eastWest?: Direction, emergencyStop?: boolean): void;
|
|
15
|
+
callFunction(vehicleAddress: number, functionId: number, functionStatus: boolean): void;
|
|
16
|
+
changeSpecialFunction(vehicleAddress: number, specialFunctionMode: SpecialFunctionMode, specialFunctionStatus: Manual | ShuntingFunction | DirectionDefault): void;
|
|
17
|
+
vehicleState(vehicleAddress: number): void;
|
|
18
|
+
activeModeTrain(vehicleAddress: number): void;
|
|
19
|
+
activeModeTakeOver(vehicleAddress: number): void;
|
|
20
|
+
parse(size: number, command: number, mode: number, nid: number, buffer: Buffer): void;
|
|
21
|
+
private parseVehicleState;
|
|
22
|
+
private parseVehicleMode;
|
|
23
|
+
private parseVehicleSpeed;
|
|
24
|
+
private parseVehicleFunction;
|
|
25
|
+
private parseVehicleSpecialFunction;
|
|
26
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
import { getOperatingMode, } from '../util/enums';
|
|
3
|
+
import { combineSpeedAndDirection, getSpeedSteps, parseSpeed, } from '../internal/speedUtils';
|
|
4
|
+
export default class VehicleGroup {
|
|
5
|
+
mx10;
|
|
6
|
+
onVehicleState = new Subject();
|
|
7
|
+
onVehicleMode = new Subject();
|
|
8
|
+
onChangeSpeed = new Subject();
|
|
9
|
+
onCallFunction = new Subject();
|
|
10
|
+
onCallSpecialFunction = new Subject();
|
|
11
|
+
constructor(mx10) {
|
|
12
|
+
this.mx10 = mx10;
|
|
13
|
+
}
|
|
14
|
+
vehicleMode(vehicleAddress) {
|
|
15
|
+
this.mx10.sendData(0x02, 0x01, [{ value: vehicleAddress, length: 2 }]);
|
|
16
|
+
}
|
|
17
|
+
changeSpeed(vehicleAddress, speedStep, forward, eastWest, emergencyStop) {
|
|
18
|
+
const speedAndDirection = combineSpeedAndDirection(speedStep, forward, eastWest, emergencyStop);
|
|
19
|
+
this.mx10.sendData(0x02, 0x02, [
|
|
20
|
+
{ value: vehicleAddress, length: 2 },
|
|
21
|
+
{ value: speedAndDirection, length: 2 },
|
|
22
|
+
{ value: 0x0000, length: 2 },
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
callFunction(vehicleAddress, functionId, functionStatus) {
|
|
26
|
+
this.mx10.sendData(0x02, 0x04, [
|
|
27
|
+
{ value: vehicleAddress, length: 2 },
|
|
28
|
+
{ value: functionId, length: 2 },
|
|
29
|
+
{ value: Number(functionStatus), length: 2 },
|
|
30
|
+
]);
|
|
31
|
+
}
|
|
32
|
+
changeSpecialFunction(vehicleAddress, specialFunctionMode, specialFunctionStatus) {
|
|
33
|
+
this.mx10.sendData(0x02, 0x05, [
|
|
34
|
+
{ value: vehicleAddress, length: 2 },
|
|
35
|
+
{ value: specialFunctionMode, length: 2 },
|
|
36
|
+
{ value: specialFunctionStatus, length: 2 },
|
|
37
|
+
]);
|
|
38
|
+
}
|
|
39
|
+
vehicleState(vehicleAddress) {
|
|
40
|
+
return this.mx10.sendData(0x02, 0x00, [{ value: vehicleAddress, length: 2 }], 0b00);
|
|
41
|
+
}
|
|
42
|
+
activeModeTrain(vehicleAddress) {
|
|
43
|
+
return this.mx10.sendData(0x02, 0x10, [
|
|
44
|
+
{ value: vehicleAddress, length: 2 },
|
|
45
|
+
{ value: 0x01, length: 2 },
|
|
46
|
+
], 0b01);
|
|
47
|
+
}
|
|
48
|
+
activeModeTakeOver(vehicleAddress) {
|
|
49
|
+
return this.mx10.sendData(0x02, 0x10, [
|
|
50
|
+
{ value: vehicleAddress, length: 2 },
|
|
51
|
+
{ value: 0x10, length: 2 },
|
|
52
|
+
], 0b01);
|
|
53
|
+
}
|
|
54
|
+
parse(size, command, mode, nid, buffer) {
|
|
55
|
+
switch (command) {
|
|
56
|
+
case 0x00:
|
|
57
|
+
this.parseVehicleState(size, mode, nid, buffer);
|
|
58
|
+
break;
|
|
59
|
+
case 0x01:
|
|
60
|
+
this.parseVehicleMode(size, mode, nid, buffer);
|
|
61
|
+
break;
|
|
62
|
+
case 0x02:
|
|
63
|
+
this.parseVehicleSpeed(size, mode, nid, buffer);
|
|
64
|
+
break;
|
|
65
|
+
case 0x04:
|
|
66
|
+
this.parseVehicleFunction(size, mode, nid, buffer);
|
|
67
|
+
break;
|
|
68
|
+
case 0x05:
|
|
69
|
+
this.parseVehicleSpecialFunction(size, mode, nid, buffer);
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
parseVehicleState(size, mode, nid, buffer) {
|
|
74
|
+
if (this.onVehicleState.observed) {
|
|
75
|
+
const NID = buffer.readUInt16LE(0);
|
|
76
|
+
const stateFlags = buffer.readUInt16LE(2);
|
|
77
|
+
const ctrlTick = buffer.readUInt16LE(4);
|
|
78
|
+
const ctrlDevice = buffer.readUInt16LE(6);
|
|
79
|
+
this.onVehicleState.next({
|
|
80
|
+
nid: NID,
|
|
81
|
+
ctrlTick,
|
|
82
|
+
ctrlDevice,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
parseVehicleMode(size, mode, nid, buffer) {
|
|
87
|
+
if (this.onVehicleMode.observed) {
|
|
88
|
+
const NID = buffer.readUInt16LE(0);
|
|
89
|
+
const mode1 = buffer.readUInt8(2);
|
|
90
|
+
const mode2 = buffer.readUInt8(3);
|
|
91
|
+
const mode3 = buffer.readUInt8(4);
|
|
92
|
+
const operatingMode = getOperatingMode(mode1);
|
|
93
|
+
const speedSteps = getSpeedSteps(mode1);
|
|
94
|
+
this.onVehicleMode.next({
|
|
95
|
+
nid: NID,
|
|
96
|
+
speedSteps,
|
|
97
|
+
operatingMode,
|
|
98
|
+
mode2,
|
|
99
|
+
mode3,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
parseVehicleSpeed(size, mode, nid, buffer) {
|
|
104
|
+
if (this.onChangeSpeed.observed) {
|
|
105
|
+
const NID = buffer.readUInt16LE(0);
|
|
106
|
+
const speedAndDirection = buffer.readUInt16LE(2);
|
|
107
|
+
const divisor = buffer.readUint8(4);
|
|
108
|
+
const { speedStep, forward, eastWest, emergencyStop } = parseSpeed(speedAndDirection);
|
|
109
|
+
this.onChangeSpeed.next({
|
|
110
|
+
nid: NID,
|
|
111
|
+
divisor,
|
|
112
|
+
speedStep,
|
|
113
|
+
forward,
|
|
114
|
+
eastWest,
|
|
115
|
+
emergencyStop,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
parseVehicleFunction(size, mode, nid, buffer) {
|
|
120
|
+
if (this.onCallFunction.observed) {
|
|
121
|
+
const NID = buffer.readUInt16LE(0);
|
|
122
|
+
const functionNumber = buffer.readUInt16LE(2);
|
|
123
|
+
const functionState = buffer.readUInt16LE(4);
|
|
124
|
+
const functionActive = functionState !== 0x00;
|
|
125
|
+
this.onCallFunction.next({
|
|
126
|
+
nid: NID,
|
|
127
|
+
functionNumber,
|
|
128
|
+
functionState: functionActive,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
parseVehicleSpecialFunction(size, mode, nid, buffer) {
|
|
133
|
+
if (this.onCallSpecialFunction.observed) {
|
|
134
|
+
const NID = buffer.readUInt16LE(0);
|
|
135
|
+
const specialFunctionMode = buffer.readUInt16LE(2);
|
|
136
|
+
const specialFunctionState = buffer.readUInt16LE(4);
|
|
137
|
+
this.onCallSpecialFunction.next({
|
|
138
|
+
nid: NID,
|
|
139
|
+
specialFunctionMode,
|
|
140
|
+
specialFunctionState,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=vehicleGroup.js.map
|