serial_comms: rework TCPSerial