The software that I wrote was a device communication SDK, written in C. It abstracted the hardware/link stuff, and presented a common API.

Basically, a driver. Pretty involved one.