@ray-js/lock-sdk 1.2.1-beta.8 → 1.2.1-beta.9
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.
|
@@ -8,70 +8,8 @@ import { getDpValueForRuntime } from "../dp/get-dp-value";
|
|
|
8
8
|
import { getDeviceStatusForRuntime } from "../state/device-status";
|
|
9
9
|
import { isSupportBleControlForRuntime } from "./ble-control";
|
|
10
10
|
import { sdkLog } from "../../utils/sdk-log";
|
|
11
|
+
import { hasDpForRuntime } from "../dp/has-dp";
|
|
11
12
|
const { wirelessAwake } = dpCodes;
|
|
12
|
-
const awakeDevice = async (devId, timeout) => {
|
|
13
|
-
const startedAt = Date.now();
|
|
14
|
-
sdkLog("info", "connectDevice", "awakeStart", {
|
|
15
|
-
devId,
|
|
16
|
-
data: { timeout: timeout || 15000 },
|
|
17
|
-
});
|
|
18
|
-
return new Promise((resolve, reject) => {
|
|
19
|
-
const handleChangeDp = (dpCodesArg) => {
|
|
20
|
-
if (dpCodesArg[wirelessAwake] === true) {
|
|
21
|
-
sdkLog("info", "connectDevice", "awakeReportSuccess", {
|
|
22
|
-
devId,
|
|
23
|
-
duration: Date.now() - startedAt,
|
|
24
|
-
});
|
|
25
|
-
resolve(true);
|
|
26
|
-
emitter.off(DPCHANGE, handleChangeDp);
|
|
27
|
-
clearTimeout(timer);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
emitter.on(DPCHANGE, handleChangeDp);
|
|
31
|
-
const timer = setTimeout(() => {
|
|
32
|
-
emitter.off(DPCHANGE, handleChangeDp);
|
|
33
|
-
const error = getError(1002);
|
|
34
|
-
sdkLog("warn", "connectDevice", "awakeTimeout", {
|
|
35
|
-
devId,
|
|
36
|
-
duration: Date.now() - startedAt,
|
|
37
|
-
error,
|
|
38
|
-
});
|
|
39
|
-
reject(error);
|
|
40
|
-
}, timeout || 15000);
|
|
41
|
-
const run = async () => {
|
|
42
|
-
try {
|
|
43
|
-
ipc.wakeUpDoorBell(devId);
|
|
44
|
-
ipc.wakeUpDoorBell(devId);
|
|
45
|
-
ipc.wakeUpDoorBell(devId);
|
|
46
|
-
const connected = await ipc.isConnected(devId);
|
|
47
|
-
if (connected.isConnected) {
|
|
48
|
-
sdkLog("info", "connectDevice", "awakeAlreadyConnected", {
|
|
49
|
-
devId,
|
|
50
|
-
duration: Date.now() - startedAt,
|
|
51
|
-
});
|
|
52
|
-
return resolve(true);
|
|
53
|
-
}
|
|
54
|
-
const connecting = await ipc.isConnecting(devId);
|
|
55
|
-
if (!connecting.isConnecting) {
|
|
56
|
-
sdkLog("info", "connectDevice", "awakeIpcConnectStart", { devId });
|
|
57
|
-
await ipc.connect(devId);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
sdkLog("debug", "connectDevice", "awakeIpcConnecting", { devId });
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
sdkLog("error", "connectDevice", "awakeFail", {
|
|
65
|
-
devId,
|
|
66
|
-
duration: Date.now() - startedAt,
|
|
67
|
-
error,
|
|
68
|
-
});
|
|
69
|
-
reject(error);
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
run();
|
|
73
|
-
});
|
|
74
|
-
};
|
|
75
13
|
const connectBle = async (devId, timeout) => {
|
|
76
14
|
const startedAt = Date.now();
|
|
77
15
|
sdkLog("info", "connectDevice", "bleConnectStart", { devId });
|
|
@@ -160,7 +98,7 @@ export async function connectDeviceForRuntime(rt, timeout) {
|
|
|
160
98
|
});
|
|
161
99
|
if (deviceStatus.connectEnable && hasWirelessAwakeDp) {
|
|
162
100
|
if (cfg.devInfo.isCloudOnline && !getDpValueForRuntime(rt, wirelessAwake)) {
|
|
163
|
-
const result = await
|
|
101
|
+
const result = await awakeDeviceForRuntime(rt, { timeout });
|
|
164
102
|
sdkLog("info", "connectDevice", "success", {
|
|
165
103
|
devId,
|
|
166
104
|
duration: Date.now() - startedAt,
|
|
@@ -208,5 +146,71 @@ export async function connectDeviceForRuntime(rt, timeout) {
|
|
|
208
146
|
export const awakeDeviceForRuntime = (runtime, options) => {
|
|
209
147
|
const cfg = runtime.config;
|
|
210
148
|
const devId = cfg.devInfo.devId;
|
|
211
|
-
|
|
149
|
+
const timeout = options?.timeout || 15000;
|
|
150
|
+
const startedAt = Date.now();
|
|
151
|
+
const hasWirelessAwake = hasDpForRuntime(runtime, wirelessAwake);
|
|
152
|
+
sdkLog("info", "connectDevice", "awakeStart", {
|
|
153
|
+
devId,
|
|
154
|
+
data: { timeout, hasWirelessAwake },
|
|
155
|
+
});
|
|
156
|
+
return new Promise((resolve, reject) => {
|
|
157
|
+
const handleChangeDp = (dpCodesArg) => {
|
|
158
|
+
if (dpCodesArg[wirelessAwake] === true) {
|
|
159
|
+
sdkLog("info", "connectDevice", "awakeReportSuccess", {
|
|
160
|
+
devId,
|
|
161
|
+
duration: Date.now() - startedAt,
|
|
162
|
+
});
|
|
163
|
+
resolve(true);
|
|
164
|
+
emitter.off(DPCHANGE, handleChangeDp);
|
|
165
|
+
clearTimeout(timer);
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
hasWirelessAwake && emitter.on(DPCHANGE, handleChangeDp);
|
|
169
|
+
const timer = setTimeout(() => {
|
|
170
|
+
emitter.off(DPCHANGE, handleChangeDp);
|
|
171
|
+
const error = getError(1002);
|
|
172
|
+
sdkLog("warn", "connectDevice", "awakeTimeout", {
|
|
173
|
+
devId,
|
|
174
|
+
duration: Date.now() - startedAt,
|
|
175
|
+
error,
|
|
176
|
+
});
|
|
177
|
+
reject(error);
|
|
178
|
+
}, timeout);
|
|
179
|
+
const run = async () => {
|
|
180
|
+
try {
|
|
181
|
+
ipc.wakeUpDoorBell(devId);
|
|
182
|
+
ipc.wakeUpDoorBell(devId);
|
|
183
|
+
ipc.wakeUpDoorBell(devId);
|
|
184
|
+
const connected = await ipc.isConnected(devId);
|
|
185
|
+
if (connected.isConnected) {
|
|
186
|
+
sdkLog("info", "connectDevice", "awakeAlreadyConnected", {
|
|
187
|
+
devId,
|
|
188
|
+
duration: Date.now() - startedAt,
|
|
189
|
+
});
|
|
190
|
+
return resolve(true);
|
|
191
|
+
}
|
|
192
|
+
const connecting = await ipc.isConnecting(devId);
|
|
193
|
+
if (!connecting.isConnecting) {
|
|
194
|
+
sdkLog("info", "connectDevice", "awakeIpcConnectStart", { devId });
|
|
195
|
+
await ipc.connect(devId);
|
|
196
|
+
if (!hasWirelessAwake) {
|
|
197
|
+
clearTimeout(timer);
|
|
198
|
+
return resolve(true);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
sdkLog("debug", "connectDevice", "awakeIpcConnecting", { devId });
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
sdkLog("error", "connectDevice", "awakeFail", {
|
|
207
|
+
devId,
|
|
208
|
+
duration: Date.now() - startedAt,
|
|
209
|
+
error,
|
|
210
|
+
});
|
|
211
|
+
reject(error);
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
run();
|
|
215
|
+
});
|
|
212
216
|
};
|