UartDataHandle::UartDataHandle(const QString &name,QObject *parent)
: QObject(parent)
{
qDebug() << name;
//设置串口参数
mySerial = new QSerialPort(name);
//判断串口是否已经打开d
if( !mySerial->isOpen() )
{
//判断串口是否成功打开d
if( mySerial->open(QIODevice::ReadWrite)
&& mySerial->setBaudRate(QSerialPort::Baud115200)
&& mySerial->setDataBits(QSerialPort::Data8)
&& mySerial->setParity(QSerialPort::NoParity)
&& mySerial->setStopBits(QSerialPort::OneStop)
&& mySerial->setFlowControl(QSerialPort::NoFlowControl) )
{
qDebug() << "open serial success!!!";
if(mySerial->isReadable())
{
qDebug() << "can read serial success!!!";
QObject::connect(mySerial,SIGNAL(readyRead()),this,SLOT(HandleDataFromSerial()));
}
}else
{
qDebug() << "name :" << mySerial->portName()
<< "\nbaudrate :" << mySerial->baudRate()
<< "\ndatabits :" << mySerial->dataBits()
<< "\nparity :" << mySerial->parity()
<< "\ntopbis :" << mySerial->stopBits()
<< "\nflowcontrol :" << mySerial->flowControl();
qDebug() << "error code :" << QString("%1").arg(mySerial->error())
<< "\nerror reason :" << mySerial->errorString() ;
}
}else
{
qDebug() << "the serial was open!!!";
QObject::connect(mySerial,SIGNAL(readyRead()),this,SLOT(HandleDataFromSerial()));
}
//crc16 init数据检验
Crc16Init();
}