Updated to use QSerialPort