completely factored out hardware-specific packetization functionality, need one more abstraction for final conversion to readings