Я пытаюсь использовать C ++ для связи с устройством BLE. Чтобы получить данные, я должен написать 4 байта на один UUID, тогда данные записаны через другой UUID. У меня это работает на питоне с мрачным: < /p>
async def main(address: str):
async def callback_handler(characteristic : BleakGATTCharacteristic, data: bytearray) -> None:
print(f"{characteristic.description}: {data}")
async with BleakClient(address) as client:
await client.start_notify(READ_DATA, callback_handler)
write_data = bytearray([0x00, 0x01, 0x02, 0x03])
await client.write_gatt_char(WRITE_DATA, write_data, response=False)
await asyncio.sleep(1.0)
if __name__ == "__main__":
asyncio.run(main(sys.argv[1] if len(sys.argv) == 2 else ADDRESS))
< /code>
Но я не могу заставить то же самое работать в C ++ с SDBU. Я могу написать 4 байта (я думаю): < /p>
_tempAttrProxyWrite = sdbus::createProxy("org.bluez", WRITE_DATA);
std::vector data = {0x00, 0x01, 0x02, 0x03};
std::map options;
_tempAttrProxyWrite->callMethod("WriteValue")
.onInterface(INTERFACE_CHAR)
.withArguments(data, options);
Но я не могу понять, как читать данные, либо подписавшись на слушателя, либо прочитав UUID после написания на них.
Я пытаюсь использовать C ++ для связи с устройством BLE. Чтобы получить данные, я должен написать 4 байта на один UUID, тогда данные записаны через другой UUID. У меня это работает на питоне с мрачным: < /p> [code]async def main(address: str): async def callback_handler(characteristic : BleakGATTCharacteristic, data: bytearray) -> None: print(f"{characteristic.description}: {data}")
async with BleakClient(address) as client: await client.start_notify(READ_DATA, callback_handler)
if __name__ == "__main__": asyncio.run(main(sys.argv[1] if len(sys.argv) == 2 else ADDRESS)) < /code> Но я не могу заставить то же самое работать в C ++ с SDBU. Я могу написать 4 байта (я думаю): < /p> _tempAttrProxyWrite = sdbus::createProxy("org.bluez", WRITE_DATA);
std::vector data = {0x00, 0x01, 0x02, 0x03}; std::map options; _tempAttrProxyWrite->callMethod("WriteValue") .onInterface(INTERFACE_CHAR) .withArguments(data, options); [/code] Но я не могу понять, как читать данные, либо подписавшись на слушателя, либо прочитав UUID после написания на них.
Я пытаюсь использовать C ++ для связи с устройством BLE. Чтобы получить данные, я должен написать 4 байта на один UUID, тогда данные записаны через другой UUID. У меня это работает на питоне с мрачным:
async def main(address: str):
async def...
Насколько я понимаю, в iOS невозможно получить MAC-адрес BLE, как в Android, вместо этого iOS создает UUID на основе MAC-адреса BLE, который отличается на разных устройствах iOS, но приложение может использовать это уникальный идентификатор вместо...
Только начал использовать java.util.UUID. Мой вопрос: если у меня есть две переменные UUID, скажем, u1 и u2, и я хотел бы проверить, равны ли они, могу ли я безопасно использовать выражение u1 == u2 или мне придется написать u1.equals(u2 )?...
Я использую собственное приложение React для записи и чтения файла .ini на Raspberry Pi, который я называю концентратором, на котором работает сервер GATT с использованием службы Nordic UART (NUS).
Я могу подключиться к RPi и отправить строку...
Я использую собственное приложение реагирования для записи и чтения файла .ini на Raspberry Pi, который я называю концентратором, на котором работает сервер GATT с использованием службы Nordic UART (NUS).
Я могу подключиться к RPi и отправить строку...