I2C class

We are planning to write some I2C code and am looking at the I2C class. It seems this class only provides synchronous access to an I2C device. Is this correct? If so, is there a class that will provide asynchronous access? I.e. providing methods to check if the bus is not busy so we can fire off a bus transaction and either have a callback when the data is ready to be read or some sort of isCompleted() method to check if the transaction is completed.

Why not start a thread and process your I2C requests inside of it?
Post your results in the class and provide a method to call from the robot main loop to fetch the most current value.

Yep, that’s what we came to that conclusion.