I was able to get most of the scaffolding done for how I will store the components and how they’ll interact with the Bluetooth service.
I have been working on implementing the slider component first. In hindsight I probably could’ve started with something a little easier… But, since the slider is able to interface with any characteristic type (read, write & notify) it was a great opportunity to get all of the interactions framed out.
I’m storing the global “component state” in the browser’s local storage. Your configuration will persist across refreshes. In the future it might be nice to have the option to import / export a file that contains your component configuration.
I had a hard time getting read, write, and notify to work together on the same component, but I think I found a workable solution. It will definitely need more testing.
I was worried that I would need the user to specify the data size (i.e. 8bit, 16bit, 32bit, etc.), but I think I found a way to guess at it on the fly. I would like to limit the necessary configuration upfront.
Anyway, here’s the latest demo video of the slider working with my nRF52 Feather. In this case the slider is driving the built-in Neopixel LED brightness.