我正在开发一个应用程序(Ionic),该应用程序通过BLE(https://ionicframework.com/docs/native/ble/)与树莓进行通讯。 我想向Raspberry发送命令并获取结果。唯一的限制是使用TLV(标记长度值)格式发送命令: -标签:命令标识符 -长度:命令数据长度(0至18) -值:命令数据
我不知道该怎么做。
自动取款机我有一些代码。
首先,我搜索周围的所有设备:
this.ble.scan([], 5).subscribe(
device => this.onDeviceDiscovered(device),
error => this.scanError(error)
);
然后我从此设备获取信息:
this.ble.connect(device.id).subscribe(
peripheral => this.onConnected(peripheral),
peripheral => this.onDeviceDisconnected(peripheral)
);
然后...现在怎么办?
我正在尝试使用此功能:ble.write(device_id, service_uuid, characteristic_uuid, data, success, failure);
我得到了device_id,service_uuid,characters_uuid。但是我不知道如何传递数据。
我正在尝试类似的方法:
SendCommand() {
let data: {
RANDOM: 1,
Lenght: 1,
Value: 1
};
let binary_string = btoa(JSON.stringify(data));
let len = binary_string.length;
let aBuff = new Uint8Array(len);
for (let i = 0; i < len; i++)
aBuff[i] = binary_string.charCodeAt(i);
this.ble.write(this.peripheral.id, this.peripheral.services, this.peripheral.characteristic, aBuff.buffer)
.then(res => {
console.log("OK");
console.log(res)
})
.catch(err => {
console.log("KO");
console.log(err)
});
}
但是什么也没发生。
感谢您的帮助:D