从 Bluetooth-le write 获取成功或失败响应
Get success or failure response from Bluetooth-le write
我在 Ionic React 项目中使用 Bluetooth-LE 社区插件。
我正在使用以下代码向 GATT 服务器写入一个值:
await BleClient.write(device.deviceId, SERV_SYSTEM_SETTINGS, CHAR_RTC, dvDateTime );
这工作正常,除了我需要能够设置一个标志变量来指示写入是成功还是失败。他们在文档中没有说明如何做到这一点。然而,他们也是一个
writeWithoutResponse(deviceId: string, service: string, characteristic: string, value: DataView, options?: TimeoutOptions | undefined) => Promise<void>
这意味着
write(deviceId: string, service: string, characteristic: string, value: DataView, options?: TimeoutOptions | undefined) => Promise<void>
应该 return 成功或失败响应。
我已经尝试了一个相当新的举动,希望响应可以被如下所示的变量捕获,但没有成功:
const writeFlag = await BleClient.write(device.deviceId, SERV_SYSTEM_SETTINGS, CHAR_RTC, dvDateTime );
console.log("WRITE FLAG: " + writeFlag);
但是 writeFlag 仍未定义。
如何从写入过程中获得响应?我可以手动检查 GATT 设备并查看设备是否正确接收了我的写入命令,但我需要能够在代码中对此 success/failure 采取行动。
I need to be able to set a flag variable to indicate whether the write
was a success or failure. There is nothing in the docs to indicate how
this can be done.
你 linked/shared 文档说的是 returned.
write(
deviceId: string,
service: string,
characteristic: string,
value: DataView,
options?: TimeoutOptions | undefined
) => Promise<void>
它 return 是一个没有价值的 Promise,即像一个 void return。
如果 Promise 解决了这意味着写入成功,如果它拒绝了这意味着失败。
如果您需要“捕获”success/failure,或者更确切地说是 resolves/rejected 状态,您可以使用 try/catch
模式。
示例:
try {
await BleClient.write(
device.deviceId,
SERV_SYSTEM_SETTINGS,
CHAR_RTC,
dvDateTime
);
// success!
// set any local success flag
} catch(error) {
// failure, and error is likely undefined because void value
// set any local non-success flag
}
我在 Ionic React 项目中使用 Bluetooth-LE 社区插件。
我正在使用以下代码向 GATT 服务器写入一个值:
await BleClient.write(device.deviceId, SERV_SYSTEM_SETTINGS, CHAR_RTC, dvDateTime );
这工作正常,除了我需要能够设置一个标志变量来指示写入是成功还是失败。他们在文档中没有说明如何做到这一点。然而,他们也是一个
writeWithoutResponse(deviceId: string, service: string, characteristic: string, value: DataView, options?: TimeoutOptions | undefined) => Promise<void>
这意味着
write(deviceId: string, service: string, characteristic: string, value: DataView, options?: TimeoutOptions | undefined) => Promise<void>
应该 return 成功或失败响应。
我已经尝试了一个相当新的举动,希望响应可以被如下所示的变量捕获,但没有成功:
const writeFlag = await BleClient.write(device.deviceId, SERV_SYSTEM_SETTINGS, CHAR_RTC, dvDateTime );
console.log("WRITE FLAG: " + writeFlag);
但是 writeFlag 仍未定义。
如何从写入过程中获得响应?我可以手动检查 GATT 设备并查看设备是否正确接收了我的写入命令,但我需要能够在代码中对此 success/failure 采取行动。
I need to be able to set a flag variable to indicate whether the write was a success or failure. There is nothing in the docs to indicate how this can be done.
你 linked/shared 文档说的是 returned.
write(
deviceId: string,
service: string,
characteristic: string,
value: DataView,
options?: TimeoutOptions | undefined
) => Promise<void>
它 return 是一个没有价值的 Promise,即像一个 void return。
如果 Promise 解决了这意味着写入成功,如果它拒绝了这意味着失败。
如果您需要“捕获”success/failure,或者更确切地说是 resolves/rejected 状态,您可以使用 try/catch
模式。
示例:
try {
await BleClient.write(
device.deviceId,
SERV_SYSTEM_SETTINGS,
CHAR_RTC,
dvDateTime
);
// success!
// set any local success flag
} catch(error) {
// failure, and error is likely undefined because void value
// set any local non-success flag
}