Hey list, I just wrote a little Haskell library wrapping the GATT API [0]. It's been a surprisingly smooth experience - thanks for the API and documentation! One issue that remains, though, is decent testing. Right now the tests limit themselves to calling d-bus methods and just checking that they don't throw an error. I don't see how I can do more than that - check that BlueZ in fact registered an application with the data I'm expecting, or check that it's handling notifications, etc. (Without, that is, pulling out my phone and trying it manually.) Tapping into dbus-monitor in some cases would provide some help, but everyone who wants to run the tests would need there dbus config files, the tests would have to run as root, I'd have to do fairly fragile parsing of the logs that would still only approximate the properties I really want to check for. If I could register an application on a computer and interact with it as if it were a remote peripheral (essentially having the computer be both the central and the peripheral), then testing would be much easier and more comprehensive. In this particular case, I know the communication would only go as far as DBus, and not through the hardware layers of the bluetooth stack, but that's okay. Is this at all possible? [0] http://hackage.haskell.org/package/ble -- Julian K. Arni Haskell Consultant, Turing Jump https://turingjump.com
Attachment:
signature.asc
Description: PGP signature