intel-iot-devkit / tinyb

TinyB exposes the BLE GATT API for C++, Java and other languages, using BlueZ over DBus.
MIT License
255 stars 114 forks source link

Bug on 32-bit architectures #182

Open EML100 opened 3 years ago

EML100 commented 3 years ago

On GCC 8, Raspberry Pi 4 (ARM Cortex-A72) unsigned long is 32-bit. There are 6 calls to strtoul in BlueToothUUID.cpp, which are assumed to return 64 bits; the return values should be casted to uint64_t. gcc produces warnings for 3 of these calls (where the return value is incorrectly left-shifted by 32 or more bits).

On another note...

I think this is a great project, as I really don't want to start messing around with the undocumented BlueZ DBus API. OTOH, I don't think I'll get much further using it for the RPi (the C++ hellotinyb crashes, for example). I know this is the wrong place to ask, but can anyone suggest a replacement? There are a couple of other attempts at C++ APIs but I think they may be old and unmaintained. Or should I bite the bullet and try to figure out how to use BlueZ directly?

EML100 commented 3 years ago

Actually, this is looking better than I thought: