Moved to QSerialPort. Working now

Qt Code:
  1. MainWindow::MainWindow(QWidget *parent) :
  2. QMainWindow(parent),
  3. ui(new Ui::MainWindow), Serial(NULL)
  4. {
  5. ui->setupUi(this);
  6. connect(ui->ledBut, SIGNAL(clicked(bool)), this, SLOT(ledOnOff(bool)));
  7. setup();
  8. }
  9.  
  10. MainWindow::~MainWindow()
  11. {
  12. delete ui;
  13. Serial->close();
  14. delete Serial;
  15. Serial = NULL;
  16. }
  17.  
  18. void MainWindow::ledOnOff(bool on)
  19. {
  20. int write = -1;
  21.  
  22. if(on)
  23. {
  24. write = 1;
  25. ui->ledBut->setText("OFF");
  26. }
  27. else
  28. {
  29. write = 0;
  30. ui->ledBut->setText("OFF");
  31. }
  32.  
  33. if(Serial->isOpen() || this->Serial->open(QIODevice::ReadWrite))
  34. {
  35. this->Serial->setBaudRate(QSerialPort::Baud9600);
  36. this->Serial->setParity(QSerialPort::NoParity);
  37. this->Serial->setStopBits(QSerialPort::OneStop);
  38. this->Serial->setFlowControl(QSerialPort::NoFlowControl);
  39. this->Serial->setDataBits(QSerialPort::Data8);
  40.  
  41. QByteArray dayArray;
  42. dayArray[0]= write;
  43. qDebug() << "Written Bytes : " << this->Serial->write(dayArray);
  44. this->Serial->waitForBytesWritten(-1);
  45. }
  46. else
  47. {
  48. qDebug() << "Failled open com port";
  49. }
  50. }
  51.  
  52. void MainWindow::onReadyRead()
  53. {
  54. QByteArray bytes;
  55. int a = Serial->bytesAvailable();
  56. bytes.resize(a);
  57. Serial->read(bytes.data(), bytes.size());
  58. qDebug() << "bytes read:" << bytes.size() << " Written data = " << bytes.data();
  59. }
  60.  
  61. void MainWindow::errorReport(QSerialPort::SerialPortError error)
  62. {
  63. if(error!=0)
  64. qDebug()<<"ERROR:"<<endl<<error;
  65. }
  66.  
  67. void MainWindow::setup()
  68. {
  69. if(!Serial)
  70. {
  71. this->Serial=new QSerialPort(this);
  72. this->Serial->setPortName("COM6");
  73. this->Serial->setBaudRate(QSerialPort::Baud9600);
  74. connect(this->Serial,SIGNAL(error(QSerialPort::SerialPortError)),this,SLOT(errorReport(QSerialPort::SerialPortError)));
  75. connect(Serial, SIGNAL(readyRead()), this, SLOT(onReadyRead()));
  76. }
  77. }
To copy to clipboard, switch view to plain text mode