sharpbrick / powered-up

.NET implementation of the LEGO PoweredUp Protocol
MIT License
98 stars 19 forks source link

[Work in Progress] Linux/BlueZ support #106

Closed rickjansen-dev closed 3 years ago

rickjansen-dev commented 3 years ago

Draft pull request for Linux/BlueZ support.

This in it's current form uses https://github.com/hashtagchris/DotNet-BlueZ. This is merely a small abstraction layer on top of DBus and uses Tdms.DBus underneath (https://github.com/tmds/Tmds.DBus) and i'm not sure it is actually supported/maintaned very well.

Currently this does not work properly because there's some issues with value notification setup in that library. Also there's some issues in discovery of existing & new devices.

Now I tried to fix the value notification stuff in the library, and I have some success with some modifications to the library. But that would involve copying the code of the library, which is probably possible since it's licensed under the apache license, but not ideal. Since it is a rather small abstraction layer on top of dbus and most of the abstractions kind of overlap with the ones in place in sharpbrick/powered-up, I'd like to eventually do away with the DotNet-BlueZ dependency completely and directly use DBus instead (using Tmds.DBus)