struct USART : Controller, public library { USART(bool port); ~USART(); auto enter() -> void; auto quit() -> bool; auto usleep(unsigned milliseconds) -> void; auto readable() -> bool; auto read() -> uint8; auto writable() -> bool; auto write(uint8 data) -> void; auto data() -> uint2; auto latch(bool data) -> void; private: bool latched; bool data1; bool data2; unsigned counter; uint8 rxlength; uint8 rxdata; vector rxbuffer; uint8 txlength; uint8 txdata; vector txbuffer; function, //quit function, //usleep function, //readable function, //read function, //writable function //write )> init; function main; };