Skip to content

Refactor I2C interface to use threading and thread safety #47

@JoelHer

Description

@JoelHer

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

Metadata

Metadata

Assignees

Type

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions