Working without wires: Simulating hardware components for IoT development
IoT software development is often slowed or delayed because the target hardware is unfinished, unstable, or just a few units are available. Existing hardware simulation tools allow developers to test if their code is functionally correct on a specific device. Unfortunately, this type of simulation alone falls short when integrating the code into more complex applications or libraries, or when simulating hardware sensors or components that have custom interfaces.
An alternative approach is to allow for simulation of hardware at the software API layer, where the specifics of the hardware implementation are already abstracted out into higher-level functions. An example of this would be simulating an i2c temperature sensor with a simple getTemperature() function, rather than reading individual bytes from a simulated i2c bus.