@zimo-elektronik/zcan 1.0.11 → 1.0.12
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/@types/models.d.ts +5 -0
- package/dist/zcan/accessoryCommandGroup.d.ts +4 -1
- package/dist/zcan/accessoryCommandGroup.js +25 -0
- package/dist/zcan/accessoryCommandGroup.js.map +1 -1
- package/package.json +1 -1
- package/src/@types/models.ts +5 -0
- package/src/zcan/accessoryCommandGroup.ts +37 -1
package/dist/@types/models.d.ts
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { Subject } from 'rxjs';
|
|
2
2
|
import MX10 from '../MX10';
|
|
3
|
-
import { AccessoryModeData, AccessoryPortData } from '../@types/models';
|
|
3
|
+
import { AccessoryModeData, AccessoryPinData, AccessoryPortData } from '../@types/models';
|
|
4
4
|
export default class AccessoryCommandGroup {
|
|
5
5
|
readonly onAccessoryMode: Subject<AccessoryModeData>;
|
|
6
6
|
readonly onAccessoryPort: Subject<AccessoryPortData>;
|
|
7
|
+
readonly onAccessoryPin: Subject<AccessoryPinData>;
|
|
7
8
|
private mx10;
|
|
8
9
|
constructor(mx10: MX10);
|
|
9
10
|
accessoryModeByNid(nid: number): void;
|
|
10
11
|
accessoryPortByNid(nid: number): void;
|
|
12
|
+
accessoryPortByPin(nid: number, pin: number, state: number): void;
|
|
11
13
|
parse(size: number, command: number, mode: number, nid: number, buffer: Buffer): void;
|
|
12
14
|
parseAccessoryMode(size: number, mode: number, nid: number, buffer: Buffer): void;
|
|
13
15
|
parseAccessoryPort(size: number, mode: number, nid: number, buffer: Buffer): void;
|
|
16
|
+
parseAccessoryPin(size: number, mode: number, nid: number, buffer: Buffer): void;
|
|
14
17
|
}
|
|
@@ -3,6 +3,7 @@ import { AccessoryMode } from '../util/enums';
|
|
|
3
3
|
export default class AccessoryCommandGroup {
|
|
4
4
|
onAccessoryMode = new Subject();
|
|
5
5
|
onAccessoryPort = new Subject();
|
|
6
|
+
onAccessoryPin = new Subject();
|
|
6
7
|
mx10;
|
|
7
8
|
constructor(mx10) {
|
|
8
9
|
this.mx10 = mx10;
|
|
@@ -16,6 +17,13 @@ export default class AccessoryCommandGroup {
|
|
|
16
17
|
{ value: 0, length: 2 },
|
|
17
18
|
], 0b00);
|
|
18
19
|
}
|
|
20
|
+
accessoryPortByPin(nid, pin, state) {
|
|
21
|
+
this.mx10.sendData(0x01, 0x04, [
|
|
22
|
+
{ value: nid, length: 2 },
|
|
23
|
+
{ value: pin, length: 1 },
|
|
24
|
+
{ value: state, length: 1 },
|
|
25
|
+
], 0b00);
|
|
26
|
+
}
|
|
19
27
|
parse(size, command, mode, nid, buffer) {
|
|
20
28
|
switch (command) {
|
|
21
29
|
case 0x01:
|
|
@@ -24,6 +32,9 @@ export default class AccessoryCommandGroup {
|
|
|
24
32
|
case 0x02:
|
|
25
33
|
this.parseAccessoryPort(size, mode, nid, buffer);
|
|
26
34
|
break;
|
|
35
|
+
case 0x04:
|
|
36
|
+
this.parseAccessoryPin(size, mode, nid, buffer);
|
|
37
|
+
break;
|
|
27
38
|
default:
|
|
28
39
|
console.warn('command not parsed: ' + command.toString());
|
|
29
40
|
}
|
|
@@ -65,5 +76,19 @@ export default class AccessoryCommandGroup {
|
|
|
65
76
|
}
|
|
66
77
|
}
|
|
67
78
|
}
|
|
79
|
+
parseAccessoryPin(size, mode, nid, buffer) {
|
|
80
|
+
if (this.onAccessoryPin.observed) {
|
|
81
|
+
const deviceNID = buffer.readUInt16LE(0);
|
|
82
|
+
const pin = buffer.readUInt8(2);
|
|
83
|
+
const state = buffer.readUInt8(3);
|
|
84
|
+
if (deviceNID) {
|
|
85
|
+
this.onAccessoryPin.next({
|
|
86
|
+
nid: deviceNID,
|
|
87
|
+
pin,
|
|
88
|
+
state,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
68
93
|
}
|
|
69
94
|
//# sourceMappingURL=accessoryCommandGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessoryCommandGroup.js","sourceRoot":"","sources":["../../src/zcan/accessoryCommandGroup.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"accessoryCommandGroup.js","sourceRoot":"","sources":["../../src/zcan/accessoryCommandGroup.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.12",
|
|
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/@types/models.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
2
|
import {Subject} from 'rxjs';
|
|
3
3
|
import MX10 from '../MX10';
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
AccessoryModeData,
|
|
6
|
+
AccessoryPinData,
|
|
7
|
+
AccessoryPortData,
|
|
8
|
+
} from '../@types/models';
|
|
5
9
|
import {AccessoryMode} from '../util/enums';
|
|
6
10
|
|
|
7
11
|
/**
|
|
@@ -11,6 +15,7 @@ import {AccessoryMode} from '../util/enums';
|
|
|
11
15
|
export default class AccessoryCommandGroup {
|
|
12
16
|
public readonly onAccessoryMode = new Subject<AccessoryModeData>();
|
|
13
17
|
public readonly onAccessoryPort = new Subject<AccessoryPortData>();
|
|
18
|
+
public readonly onAccessoryPin = new Subject<AccessoryPinData>();
|
|
14
19
|
|
|
15
20
|
private mx10: MX10;
|
|
16
21
|
|
|
@@ -33,6 +38,18 @@ export default class AccessoryCommandGroup {
|
|
|
33
38
|
0b00,
|
|
34
39
|
);
|
|
35
40
|
}
|
|
41
|
+
accessoryPortByPin(nid: number, pin: number, state: number) {
|
|
42
|
+
this.mx10.sendData(
|
|
43
|
+
0x01,
|
|
44
|
+
0x04,
|
|
45
|
+
[
|
|
46
|
+
{value: nid, length: 2},
|
|
47
|
+
{value: pin, length: 1},
|
|
48
|
+
{value: state, length: 1},
|
|
49
|
+
],
|
|
50
|
+
0b00,
|
|
51
|
+
);
|
|
52
|
+
}
|
|
36
53
|
|
|
37
54
|
parse(
|
|
38
55
|
size: number,
|
|
@@ -48,6 +65,9 @@ export default class AccessoryCommandGroup {
|
|
|
48
65
|
case 0x02:
|
|
49
66
|
this.parseAccessoryPort(size, mode, nid, buffer);
|
|
50
67
|
break;
|
|
68
|
+
case 0x04:
|
|
69
|
+
this.parseAccessoryPin(size, mode, nid, buffer);
|
|
70
|
+
break;
|
|
51
71
|
default:
|
|
52
72
|
// eslint-disable-next-line no-console
|
|
53
73
|
console.warn('command not parsed: ' + command.toString());
|
|
@@ -95,4 +115,20 @@ export default class AccessoryCommandGroup {
|
|
|
95
115
|
}
|
|
96
116
|
}
|
|
97
117
|
}
|
|
118
|
+
|
|
119
|
+
parseAccessoryPin(size: number, mode: number, nid: number, buffer: Buffer) {
|
|
120
|
+
if (this.onAccessoryPin.observed) {
|
|
121
|
+
const deviceNID = buffer.readUInt16LE(0);
|
|
122
|
+
const pin = buffer.readUInt8(2);
|
|
123
|
+
const state = buffer.readUInt8(3);
|
|
124
|
+
|
|
125
|
+
if (deviceNID) {
|
|
126
|
+
this.onAccessoryPin.next({
|
|
127
|
+
nid: deviceNID,
|
|
128
|
+
pin,
|
|
129
|
+
state,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
98
134
|
}
|