- C++ 76%
- C 15.4%
- CMake 8.6%
| docs | Add docs pages for sphinx | |
| example | Cleanup example CMakeLists.txt | |
| include/pebble-le | Add docs generation via doxygen | |
| src | Pass bluetooth address in connectivity callback | |
| third_party | Remove submodule 'dbus_gatt' (replaced by Binc) | |
| .gitignore | Add docs generation via doxygen | |
| .gitmodules | Remove submodule 'dbus_gatt' (replaced by Binc) | |
| .readthedocs.yaml | Add readthedocs configuration | |
| CMakeLists.txt | Raise minimum CMake version to 3.10 | |
| Doxyfile | Add docs generation via doxygen | |
| LICENSE | Added LICENSE | |
| pebble-le.pc.in | Update readme | |
| readme.md | Release v0.3.0 | |
latest packaged version(s) License
libpebble-le
A library to talk to Pebble Smartwatches via Bluetooth Low Energy (BLE).
Design
This library mimics the API syntax of the on-watch AppMessage API.
The backend currently uses the BlueZ v5.48+ D-Bus API (Linux).
Usage
See example/main.cpp for example usage.
License
libpebble-le is licensed under the MIT License.
Internally it uses Binc and SimpleBLE which are both licensed under the MIT License as well.
Credits also go to Gadgetbridge (AGPL-3.0), which provided major insights into the pebble communications protocol, pebble-proto.h uses some data structures from Gadgetbridge.
Changelog
v0.3.0
- Documentation
- Added docs generation via Doxygen
- New C API and Example pages in Sphinx format
- Documentation is now available at ReadTheDocs.org
- Bluetooth address now indicated in watch connectivity callback
v0.2.2
- Fixed GATT server communication after watch reconnect
v0.2.1
- Fixed crash upon watch disconnect in optimized build
v0.2.0
- New: Support for sending/receiving large messages (packet chunking)
- [Breaking change] AppMessageInboxReceived: Pass UUID of the sending watch-app to the user
- AppMessageInboxReceived: Pass the bluetooth address of the sending watch to the user
- Internal rebase upon Binc
- Removed dbus_gatt dependency
- Internally handle PPoGATT v1 window negotiation
- Internally handle PING packets
- Several protocol fixes
- Stability improvements
- More documentation
Many thanks to the Rebble dev team for providing an excellent reference implementation, that was very useful during the development of this release!
v0.1.0
- Initial version of the library
- Connect and disconnect to and from watch
- Scanning and pairing
- Send and receive AppMessages
- Pebble dict-implementation currently doesn't parse incoming dictionaries and only supports byte arrays for outgoing messages
- Callbacks for connectivity events and incoming AppMessages
- Optional communication logging (disabled by default)
- Basic example program to demonstrate the API usage
Created by Lesosoftware in 2023