A driver is a conversation with a part, and a bus is what carries it. An I2cBus is
one bus that the program and every driver on it share, with one of three things on the
other end: the kernel's adapter on a Linux board, simulated parts that answer from their
registers, or a script of the transfers a driver is expected to make. A driver runs the
same way over all three, so a program is written and tested with nothing plugged in and
then pointed at /dev/i2c-1. A SerialPort is the same idea for a UART, and the
Delay types pace a driver that waits between pin changes.
Ergonomic facade over the generated bus binding.
A driver is a conversation with a part, and a bus is what carries it. An I2cBus is one bus that the program and every driver on it share, with one of three things on the other end: the kernel's adapter on a Linux board, simulated parts that answer from their registers, or a script of the transfers a driver is expected to make. A driver runs the same way over all three, so a program is written and tested with nothing plugged in and then pointed at
/dev/i2c-1. A SerialPort is the same idea for a UART, and the Delay types pace a driver that waits between pin changes.