regarding the multi-threading idea: the driver has an asynchronous mode, where the i2c driver calls return immediately and you can define a call-back for handling errors/returned data etc. I think using this would be the cleanest approach.
then in the separate modules (comms, master, nose, etc.) you can use an rtos task which is dedicated to constantly reading and writing data from the specific i2c devices that the module has. The callback function should also be separate for each esp module, so honestly further work on i2c in vigilant engine directly is very little.
this would conceptually be very similar to how I did the narrowband comms, a task which periodically wakes and does some asynchronous calls, and goes back to sleep. any return values are handled by callbacks or in the case of narrowband interrupts.
Originally posted by @tillx4 in #8
Originally posted by @tillx4 in #8