diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b34ab3c..262f766 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -2,6 +2,7 @@ QT += sql QT += widgets QT += axcontainer +QT += serialport greaterThan(QT_MAJOR_VERSION, 4): QT += widgets diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b34ab3c..262f766 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -2,6 +2,7 @@ QT += sql QT += widgets QT += axcontainer +QT += serialport greaterThan(QT_MAJOR_VERSION, 4): QT += widgets diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 3da6680..7965806 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b34ab3c..262f766 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -2,6 +2,7 @@ QT += sql QT += widgets QT += axcontainer +QT += serialport greaterThan(QT_MAJOR_VERSION, 4): QT += widgets diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 3da6680..7965806 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/softwareDirectory/AutoVerScheme/formcommsetting.ui b/softwareDirectory/AutoVerScheme/formcommsetting.ui index 2b7784c..96fb301 100644 --- a/softwareDirectory/AutoVerScheme/formcommsetting.ui +++ b/softwareDirectory/AutoVerScheme/formcommsetting.ui @@ -141,13 +141,23 @@ true - 9600 + 1200 - 1 + 0 + 1200 + + + + + 2400 + + + + 4800 @@ -158,11 +168,6 @@ - 14400 - - - - 19200 @@ -171,6 +176,16 @@ 38400 + + + 57600 + + + + + 115200 + + diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b34ab3c..262f766 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -2,6 +2,7 @@ QT += sql QT += widgets QT += axcontainer +QT += serialport greaterThan(QT_MAJOR_VERSION, 4): QT += widgets diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 3da6680..7965806 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/softwareDirectory/AutoVerScheme/formcommsetting.ui b/softwareDirectory/AutoVerScheme/formcommsetting.ui index 2b7784c..96fb301 100644 --- a/softwareDirectory/AutoVerScheme/formcommsetting.ui +++ b/softwareDirectory/AutoVerScheme/formcommsetting.ui @@ -141,13 +141,23 @@ true - 9600 + 1200 - 1 + 0 + 1200 + + + + + 2400 + + + + 4800 @@ -158,11 +168,6 @@ - 14400 - - - - 19200 @@ -171,6 +176,16 @@ 38400 + + + 57600 + + + + + 115200 + + diff --git a/softwareDirectory/AutoVerScheme/visacommonengine.cpp b/softwareDirectory/AutoVerScheme/visacommonengine.cpp index 61763c2..a08db7e 100644 --- a/softwareDirectory/AutoVerScheme/visacommonengine.cpp +++ b/softwareDirectory/AutoVerScheme/visacommonengine.cpp @@ -21,25 +21,26 @@ { closeDevice(); } - remoteAddr = sAddr.toLatin1().data(); commType = sType; - status = viOpenDefaultRM(&defaultRM); - if (status < VI_SUCCESS) - { - qDebug() << "Could not open a session to the VISA Resource Manager!\n"; - return false; - } + if(sType=="Visa"){ + remoteAddr = sAddr.toLatin1().data(); + status = viOpenDefaultRM(&defaultRM); + if (status < VI_SUCCESS) + { + qDebug() << "Could not open a session to the VISA Resource Manager!\n"; + return false; + } - status = viOpen(defaultRM, remoteAddr, VI_NULL, VI_NULL, &instr); - if (status < VI_SUCCESS) - { - qDebug() << "Cannot open a session to the device.\n"; - closeDevice(); - return false; - } + status = viOpen(defaultRM, remoteAddr, VI_NULL, VI_NULL, &instr); + if (status < VI_SUCCESS) + { + qDebug() << "Cannot open a session to the device.\n"; + closeDevice(); + return false; + } - //viQueryf(instr,"IDN ?\n","%t",buffer); - /*status = viQueryf( instr, "*IDN?\n", "%s", buffer); + //viQueryf(instr,"IDN ?\n","%t",buffer); + /*status = viQueryf( instr, "*IDN?\n", "%s", buffer); if (status < VI_SUCCESS){ qDebug() << "Error reading a response from the device.\n"; @@ -50,80 +51,150 @@ }*/ - /* Set the timeout to 5 seconds (5000 milliseconds). */ - status = viSetAttribute(instr, VI_ATTR_TMO_VALUE, 10000); + /* Set the timeout to 5 seconds (5000 milliseconds). */ + status = viSetAttribute(instr, VI_ATTR_TMO_VALUE, 10000); - /* Set the baud rate to 4800 (default is 9600). */ - //status = viSetAttribute(instr, VI_ATTR_ASRL_BAUD, 4800); + /* Set the baud rate to 4800 (default is 9600). */ + //status = viSetAttribute(instr, VI_ATTR_ASRL_BAUD, 4800); - /* Set the number of data bits contained in each frame (from 5 to 8). + /* Set the number of data bits contained in each frame (from 5 to 8). * The data bits for each frame are located in the low-order bits of * every byte stored in memory. */ - //status = viSetAttribute(instr, VI_ATTR_ASRL_DATA_BITS, 8); + //status = viSetAttribute(instr, VI_ATTR_ASRL_DATA_BITS, 8); - //status = viSetAttribute(instr, VI_ATTR_ASRL_PARITY, VI_ASRL_PAR_NONE); + //status = viSetAttribute(instr, VI_ATTR_ASRL_PARITY, VI_ASRL_PAR_NONE); - //status = viSetAttribute(instr, VI_ATTR_ASRL_STOP_BITS, VI_ASRL_STOP_ONE); + //status = viSetAttribute(instr, VI_ATTR_ASRL_STOP_BITS, VI_ASRL_STOP_ONE); - //status = viSetAttribute(instr, VI_ATTR_TERMCHAR_EN, VI_TRUE); + //status = viSetAttribute(instr, VI_ATTR_TERMCHAR_EN, VI_TRUE); - /* Set the termination character to 0xA + /* Set the termination character to 0xA */ - status = viSetAttribute(instr, VI_ATTR_TERMCHAR, 0xA); + status = viSetAttribute(instr, VI_ATTR_TERMCHAR, 0xA); - //strcpy(stringinput, ":MEASure:VOLTage:DC?\n"); - //strcpy(stringinput, "*IDN?\n"); - //status = viWrite(instr, (ViBuf)stringinput, (ViUInt32)strlen(stringinput), &writeCount); - //if (status < VI_SUCCESS){ - // qDebug() << "Error writing to the device.\n"; - // goto Close; - //} + //strcpy(stringinput, ":MEASure:VOLTage:DC?\n"); + //strcpy(stringinput, "*IDN?\n"); + //status = viWrite(instr, (ViBuf)stringinput, (ViUInt32)strlen(stringinput), &writeCount); + //if (status < VI_SUCCESS){ + // qDebug() << "Error writing to the device.\n"; + // goto Close; + //} - //status = viRead(instr, buffer, 100, &retCount); - //if (status < VI_SUCCESS){ - // qDebug() << "Error reading a response from the device.\n"; - //}else{ - // qDebug() << "Data read:" << retCount << QString::fromLocal8Bit((char*)buffer,retCount); + //status = viRead(instr, buffer, 100, &retCount); + //if (status < VI_SUCCESS){ + // qDebug() << "Error reading a response from the device.\n"; + //}else{ + // qDebug() << "Data read:" << retCount << QString::fromLocal8Bit((char*)buffer,retCount); //ui->textBrowser->setText(QString::fromLocal8Bit((char*)buffer,retCount)); - //} - commState = true; - return true; + //} + commState = true; + return true; + }else{ + if(sAddr!=""){ + QStringList sList = sAddr.split(";"); + if(sList.length()==5){ + //设置串口名 + serial.setPortName(sList[0]); + //设置波特率 + serial.setBaudRate(sList[1].toInt()); + //设置奇偶校验 + QSerialPort::Parity parity=QSerialPort::NoParity; + if(sList[2]=="None") + parity = QSerialPort::NoParity; + else if(sList[2]=="Odd") + parity = QSerialPort::OddParity; + else if(sList[2]=="Even") + parity = QSerialPort::EvenParity; + serial.setParity(parity); + //设置数据位数 + QSerialPort::DataBits bits=QSerialPort::Data7; + if(sList[3]=="7") + bits=QSerialPort::Data7; + else if(sList[3]=="8") + bits=QSerialPort::Data8; + serial.setDataBits(bits); + + //设置停止位 + QSerialPort::StopBits stop =QSerialPort::OneStop; + if(sList[4]=="None") + stop=QSerialPort::UnknownStopBits; + else if(sList[4]=="One") + stop=QSerialPort::OneStop; + else if(sList[4]=="Two") + stop=QSerialPort::TwoStop; + else if(sList[4]=="OnePointFive") + stop=QSerialPort::OneAndHalfStop; + serial.setStopBits(stop); + //设置流控制 + //serial.setFlowControl(QSerialPort::NoFlowControl); + //打开串口 + if(serial.open(QIODevice::ReadWrite)){ + commState = true; + return true; + } + } + } + } } void VisaCommonEngine::closeDevice() { - status = viClose(instr); - status = viClose(defaultRM); - commState = false; + if(commType=="Visa"){ + status = viClose(instr); + status = viClose(defaultRM); + commState = false; + }else{ + serial.close(); + commState = false; + } } QString VisaCommonEngine::queryData(QString sCmd) { - ViConstRsrc sQuery = (sCmd+"\n").toLatin1().data(); - status = viQueryf( instr, sQuery, "%s", buffer); + if(commType=="Visa"){ + ViConstRsrc sQuery = (sCmd+"\n").toLatin1().data(); + status = viQueryf( instr, sQuery, "%s", buffer); - if (status < VI_SUCCESS){ - qDebug() << "Error reading a response from the device.\n"; + if (status < VI_SUCCESS){ + qDebug() << "Error reading a response from the device.\n"; + return ""; + }else{ + qDebug() << "Data read:" << retCount << QString::fromLocal8Bit((char*)buffer); + return QString::fromLocal8Bit((char*)buffer); + //ui->textBrowser->setText(QString::fromLocal8Bit((char*)buffer,retCount)); + } return ""; }else{ - qDebug() << "Data read:" << retCount << QString::fromLocal8Bit((char*)buffer); - return QString::fromLocal8Bit((char*)buffer); - //ui->textBrowser->setText(QString::fromLocal8Bit((char*)buffer,retCount)); + serial.clear(); + sendData(sCmd); + QString strRet; + QByteArray buf; + buf = serial.readAll(); + if(!buf.isEmpty()) + { + strRet=QString::fromLatin1(buf); + } + buf.clear(); + return strRet; } - return ""; } bool VisaCommonEngine::sendData(QString sCmd) { //strcpy(stringinput, strData.toLatin1().data()); //strcpy(stringinput, "*IDN?\n"); - char *strBuf = (sCmd+"\n").toLatin1().data(); - status = viWrite(instr, (ViBuf)strBuf, (ViUInt32)strlen(strBuf), &writeCount); - if (status < VI_SUCCESS){ - return false; + if(commType=="Visa"){ + char *strBuf = (sCmd+"\n").toLatin1().data(); + status = viWrite(instr, (ViBuf)strBuf, (ViUInt32)strlen(strBuf), &writeCount); + if (status < VI_SUCCESS){ + return false; + } + return true; + }else{ + serial.write(sCmd.toLatin1()); + return true; } - return true; } diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro index b34ab3c..262f766 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro @@ -2,6 +2,7 @@ QT += sql QT += widgets QT += axcontainer +QT += serialport greaterThan(QT_MAJOR_VERSION, 4): QT += widgets diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 3da6680..7965806 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/softwareDirectory/AutoVerScheme/formcommsetting.ui b/softwareDirectory/AutoVerScheme/formcommsetting.ui index 2b7784c..96fb301 100644 --- a/softwareDirectory/AutoVerScheme/formcommsetting.ui +++ b/softwareDirectory/AutoVerScheme/formcommsetting.ui @@ -141,13 +141,23 @@ true - 9600 + 1200 - 1 + 0 + 1200 + + + + + 2400 + + + + 4800 @@ -158,11 +168,6 @@ - 14400 - - - - 19200 @@ -171,6 +176,16 @@ 38400 + + + 57600 + + + + + 115200 + + diff --git a/softwareDirectory/AutoVerScheme/visacommonengine.cpp b/softwareDirectory/AutoVerScheme/visacommonengine.cpp index 61763c2..a08db7e 100644 --- a/softwareDirectory/AutoVerScheme/visacommonengine.cpp +++ b/softwareDirectory/AutoVerScheme/visacommonengine.cpp @@ -21,25 +21,26 @@ { closeDevice(); } - remoteAddr = sAddr.toLatin1().data(); commType = sType; - status = viOpenDefaultRM(&defaultRM); - if (status < VI_SUCCESS) - { - qDebug() << "Could not open a session to the VISA Resource Manager!\n"; - return false; - } + if(sType=="Visa"){ + remoteAddr = sAddr.toLatin1().data(); + status = viOpenDefaultRM(&defaultRM); + if (status < VI_SUCCESS) + { + qDebug() << "Could not open a session to the VISA Resource Manager!\n"; + return false; + } - status = viOpen(defaultRM, remoteAddr, VI_NULL, VI_NULL, &instr); - if (status < VI_SUCCESS) - { - qDebug() << "Cannot open a session to the device.\n"; - closeDevice(); - return false; - } + status = viOpen(defaultRM, remoteAddr, VI_NULL, VI_NULL, &instr); + if (status < VI_SUCCESS) + { + qDebug() << "Cannot open a session to the device.\n"; + closeDevice(); + return false; + } - //viQueryf(instr,"IDN ?\n","%t",buffer); - /*status = viQueryf( instr, "*IDN?\n", "%s", buffer); + //viQueryf(instr,"IDN ?\n","%t",buffer); + /*status = viQueryf( instr, "*IDN?\n", "%s", buffer); if (status < VI_SUCCESS){ qDebug() << "Error reading a response from the device.\n"; @@ -50,80 +51,150 @@ }*/ - /* Set the timeout to 5 seconds (5000 milliseconds). */ - status = viSetAttribute(instr, VI_ATTR_TMO_VALUE, 10000); + /* Set the timeout to 5 seconds (5000 milliseconds). */ + status = viSetAttribute(instr, VI_ATTR_TMO_VALUE, 10000); - /* Set the baud rate to 4800 (default is 9600). */ - //status = viSetAttribute(instr, VI_ATTR_ASRL_BAUD, 4800); + /* Set the baud rate to 4800 (default is 9600). */ + //status = viSetAttribute(instr, VI_ATTR_ASRL_BAUD, 4800); - /* Set the number of data bits contained in each frame (from 5 to 8). + /* Set the number of data bits contained in each frame (from 5 to 8). * The data bits for each frame are located in the low-order bits of * every byte stored in memory. */ - //status = viSetAttribute(instr, VI_ATTR_ASRL_DATA_BITS, 8); + //status = viSetAttribute(instr, VI_ATTR_ASRL_DATA_BITS, 8); - //status = viSetAttribute(instr, VI_ATTR_ASRL_PARITY, VI_ASRL_PAR_NONE); + //status = viSetAttribute(instr, VI_ATTR_ASRL_PARITY, VI_ASRL_PAR_NONE); - //status = viSetAttribute(instr, VI_ATTR_ASRL_STOP_BITS, VI_ASRL_STOP_ONE); + //status = viSetAttribute(instr, VI_ATTR_ASRL_STOP_BITS, VI_ASRL_STOP_ONE); - //status = viSetAttribute(instr, VI_ATTR_TERMCHAR_EN, VI_TRUE); + //status = viSetAttribute(instr, VI_ATTR_TERMCHAR_EN, VI_TRUE); - /* Set the termination character to 0xA + /* Set the termination character to 0xA */ - status = viSetAttribute(instr, VI_ATTR_TERMCHAR, 0xA); + status = viSetAttribute(instr, VI_ATTR_TERMCHAR, 0xA); - //strcpy(stringinput, ":MEASure:VOLTage:DC?\n"); - //strcpy(stringinput, "*IDN?\n"); - //status = viWrite(instr, (ViBuf)stringinput, (ViUInt32)strlen(stringinput), &writeCount); - //if (status < VI_SUCCESS){ - // qDebug() << "Error writing to the device.\n"; - // goto Close; - //} + //strcpy(stringinput, ":MEASure:VOLTage:DC?\n"); + //strcpy(stringinput, "*IDN?\n"); + //status = viWrite(instr, (ViBuf)stringinput, (ViUInt32)strlen(stringinput), &writeCount); + //if (status < VI_SUCCESS){ + // qDebug() << "Error writing to the device.\n"; + // goto Close; + //} - //status = viRead(instr, buffer, 100, &retCount); - //if (status < VI_SUCCESS){ - // qDebug() << "Error reading a response from the device.\n"; - //}else{ - // qDebug() << "Data read:" << retCount << QString::fromLocal8Bit((char*)buffer,retCount); + //status = viRead(instr, buffer, 100, &retCount); + //if (status < VI_SUCCESS){ + // qDebug() << "Error reading a response from the device.\n"; + //}else{ + // qDebug() << "Data read:" << retCount << QString::fromLocal8Bit((char*)buffer,retCount); //ui->textBrowser->setText(QString::fromLocal8Bit((char*)buffer,retCount)); - //} - commState = true; - return true; + //} + commState = true; + return true; + }else{ + if(sAddr!=""){ + QStringList sList = sAddr.split(";"); + if(sList.length()==5){ + //设置串口名 + serial.setPortName(sList[0]); + //设置波特率 + serial.setBaudRate(sList[1].toInt()); + //设置奇偶校验 + QSerialPort::Parity parity=QSerialPort::NoParity; + if(sList[2]=="None") + parity = QSerialPort::NoParity; + else if(sList[2]=="Odd") + parity = QSerialPort::OddParity; + else if(sList[2]=="Even") + parity = QSerialPort::EvenParity; + serial.setParity(parity); + //设置数据位数 + QSerialPort::DataBits bits=QSerialPort::Data7; + if(sList[3]=="7") + bits=QSerialPort::Data7; + else if(sList[3]=="8") + bits=QSerialPort::Data8; + serial.setDataBits(bits); + + //设置停止位 + QSerialPort::StopBits stop =QSerialPort::OneStop; + if(sList[4]=="None") + stop=QSerialPort::UnknownStopBits; + else if(sList[4]=="One") + stop=QSerialPort::OneStop; + else if(sList[4]=="Two") + stop=QSerialPort::TwoStop; + else if(sList[4]=="OnePointFive") + stop=QSerialPort::OneAndHalfStop; + serial.setStopBits(stop); + //设置流控制 + //serial.setFlowControl(QSerialPort::NoFlowControl); + //打开串口 + if(serial.open(QIODevice::ReadWrite)){ + commState = true; + return true; + } + } + } + } } void VisaCommonEngine::closeDevice() { - status = viClose(instr); - status = viClose(defaultRM); - commState = false; + if(commType=="Visa"){ + status = viClose(instr); + status = viClose(defaultRM); + commState = false; + }else{ + serial.close(); + commState = false; + } } QString VisaCommonEngine::queryData(QString sCmd) { - ViConstRsrc sQuery = (sCmd+"\n").toLatin1().data(); - status = viQueryf( instr, sQuery, "%s", buffer); + if(commType=="Visa"){ + ViConstRsrc sQuery = (sCmd+"\n").toLatin1().data(); + status = viQueryf( instr, sQuery, "%s", buffer); - if (status < VI_SUCCESS){ - qDebug() << "Error reading a response from the device.\n"; + if (status < VI_SUCCESS){ + qDebug() << "Error reading a response from the device.\n"; + return ""; + }else{ + qDebug() << "Data read:" << retCount << QString::fromLocal8Bit((char*)buffer); + return QString::fromLocal8Bit((char*)buffer); + //ui->textBrowser->setText(QString::fromLocal8Bit((char*)buffer,retCount)); + } return ""; }else{ - qDebug() << "Data read:" << retCount << QString::fromLocal8Bit((char*)buffer); - return QString::fromLocal8Bit((char*)buffer); - //ui->textBrowser->setText(QString::fromLocal8Bit((char*)buffer,retCount)); + serial.clear(); + sendData(sCmd); + QString strRet; + QByteArray buf; + buf = serial.readAll(); + if(!buf.isEmpty()) + { + strRet=QString::fromLatin1(buf); + } + buf.clear(); + return strRet; } - return ""; } bool VisaCommonEngine::sendData(QString sCmd) { //strcpy(stringinput, strData.toLatin1().data()); //strcpy(stringinput, "*IDN?\n"); - char *strBuf = (sCmd+"\n").toLatin1().data(); - status = viWrite(instr, (ViBuf)strBuf, (ViUInt32)strlen(strBuf), &writeCount); - if (status < VI_SUCCESS){ - return false; + if(commType=="Visa"){ + char *strBuf = (sCmd+"\n").toLatin1().data(); + status = viWrite(instr, (ViBuf)strBuf, (ViUInt32)strlen(strBuf), &writeCount); + if (status < VI_SUCCESS){ + return false; + } + return true; + }else{ + serial.write(sCmd.toLatin1()); + return true; } - return true; } diff --git a/softwareDirectory/AutoVerScheme/visacommonengine.h b/softwareDirectory/AutoVerScheme/visacommonengine.h index be4b8fc..9cc86b3 100644 --- a/softwareDirectory/AutoVerScheme/visacommonengine.h +++ b/softwareDirectory/AutoVerScheme/visacommonengine.h @@ -2,6 +2,8 @@ #define VISACOMMONENGINE_H #include "visa.h" #include +#include +#include class VisaCommonEngine { @@ -15,6 +17,7 @@ void closeDevice(); bool getState(); private: + //visa ViSession defaultRM; ViSession instr; ViUInt32 retCount; @@ -25,6 +28,8 @@ ViConstRsrc remoteAddr=""; QString commType="Visa"; bool commState=false; + //serial port + QSerialPort serial; }; #endif // VISACOMMONENGINE_H