Many small embedded systems exist to collect data from sensors, analyze the data, and either take appropriate action or send that sensor data to another system for processing. One of the many challenges of embedded systems design is the fact that parts you used today may be out of production tomorrow, or system requirements may change and you may need to choose a different sensor down the road. Creating new drivers is a relatively easy task, but integrating them into existing systems is both...