Commit 48f4d3ba authored by James Goppert's avatar James Goppert

Finished abstracting serial port.

parent d7e07781
...@@ -394,6 +394,7 @@ set(qgroundcontrolMocSrc ...@@ -394,6 +394,7 @@ set(qgroundcontrolMocSrc
#src/comm/OpalLink.h #src/comm/OpalLink.h
src/comm/MAVLinkProtocol.h src/comm/MAVLinkProtocol.h
src/comm/SerialLinkInterface.h src/comm/SerialLinkInterface.h
src/comm/SerialInterface.h
src/comm/UDPLink.h src/comm/UDPLink.h
src/comm/LinkManager.h src/comm/LinkManager.h
src/comm/LinkInterface.h src/comm/LinkInterface.h
......
...@@ -189,6 +189,7 @@ HEADERS += src/MG.h \ ...@@ -189,6 +189,7 @@ HEADERS += src/MG.h \
src/comm/LinkManager.h \ src/comm/LinkManager.h \
src/comm/LinkInterface.h \ src/comm/LinkInterface.h \
src/comm/SerialLinkInterface.h \ src/comm/SerialLinkInterface.h \
src/comm/SerialInterface.h \
src/comm/SerialLink.h \ src/comm/SerialLink.h \
src/comm/SerialSimulationLink.h \ src/comm/SerialSimulationLink.h \
src/comm/ProtocolInterface.h \ src/comm/ProtocolInterface.h \
......
/*=====================================================================
QGroundControl Open Source Ground Control Station
(c) 2009 - 2011 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
This file is part of the QGROUNDCONTROL project
QGROUNDCONTROL is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
QGROUNDCONTROL is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
======================================================================*/
/**
* @file
* @brief Brief Description
*
* @author James Goppertr <james.goppert@gmail.edu>
*
*/
#ifndef SERIALINTERFACE_H
#define SERIALINTERFACE_H
#include <QIODevice>
#include "qextserialport.h"
/**
* @brief The SerialInterface abstracts low level serial calls
*/
class SerialInterface : public QObject {
Q_OBJECT
signals:
void aboutToClose();
public:
enum baudRateType
{
BAUD50, //POSIX ONLY
BAUD75, //POSIX ONLY
BAUD110,
BAUD134, //POSIX ONLY
BAUD150, //POSIX ONLY
BAUD200, //POSIX ONLY
BAUD300,
BAUD600,
BAUD1200,
BAUD1800, //POSIX ONLY
BAUD2400,
BAUD4800,
BAUD9600,
BAUD14400, //WINDOWS ONLY
BAUD19200,
BAUD38400,
BAUD56000, //WINDOWS ONLY
BAUD57600,
BAUD76800, //POSIX ONLY
BAUD115200,
BAUD128000, // WINDOWS ONLY
BAUD230400, // WINDOWS ONLY
BAUD256000, // WINDOWS ONLY
BAUD460800, // WINDOWS ONLY
BAUD921600 // WINDOWS ONLY
};
enum dataBitsType
{
DATA_5,
DATA_6,
DATA_7,
DATA_8
};
enum parityType
{
PAR_NONE,
PAR_ODD,
PAR_EVEN,
PAR_MARK, //WINDOWS ONLY
PAR_SPACE
};
enum stopBitsType
{
STOP_1,
STOP_1_5, //WINDOWS ONLY
STOP_2
};
enum flowType
{
FLOW_OFF,
FLOW_HARDWARE,
FLOW_XONXOFF
};
/**
* structure to contain port settings
*/
struct portSettings
{
baudRateType BaudRate;
dataBitsType DataBits;
parityType Parity;
stopBitsType StopBits;
flowType FlowControl;
long timeout_Millisec;
};
virtual bool isOpen() = 0;
virtual bool isWriteable() = 0;
virtual bool bytesAvailable() = 0;
virtual int write(const char * data, qint64 size) = 0;
virtual void read(char * data, qint64 numBytes) = 0;
virtual void flush() = 0;
virtual void close() = 0;
virtual void open(QIODevice::OpenModeFlag flag) = 0;
virtual void setBaudRate(baudRateType baudrate) = 0;
virtual void setParity(parityType parity) = 0;
virtual void setStopBits(stopBitsType stopBits) = 0;
virtual void setDataBits(dataBitsType dataBits) = 0;
virtual void setTimeout(qint64 timeout) = 0;
};
class SerialQextserial : public SerialInterface
{
Q_OBJECT
private:
QextSerialPort * _port;
signals:
void aboutToClose();
public:
SerialQextserial(QString porthandle, QextSerialPort::QueryMode mode) : _port(NULL)
{
_port = new QextSerialPort(porthandle, QextSerialPort::Polling);
//QObject::connect(_port,SIGNAL(aboutToClose()),this,SIGNAL(aboutToClose()));
}
virtual bool isOpen() { return _port->isOpen(); }
virtual bool isWriteable() { return _port->isWritable(); } // yess, that is mis-spelled, writable
virtual bool bytesAvailable() { return _port->bytesAvailable(); }
virtual int write(const char * data, qint64 size) { return _port->write(data,size); }
virtual void read(char * data, qint64 numBytes) { _port->read(data,numBytes); }
virtual void flush() { _port->flush(); }
virtual void close() { _port->close(); }
virtual void open(QIODevice::OpenModeFlag flag) { _port->open(flag); }
virtual void setBaudRate(SerialInterface::baudRateType baudrate) { _port->setBaudRate((BaudRateType)baudrate); }
virtual void setParity(SerialInterface::parityType parity) { _port->setParity((ParityType)parity); }
virtual void setStopBits(SerialInterface::stopBitsType stopBits) { _port->setStopBits((StopBitsType)stopBits); }
virtual void setDataBits(SerialInterface::dataBitsType dataBits) { _port->setDataBits((DataBitsType)dataBits); }
virtual void setTimeout(qint64 timeout) { _port->setTimeout(timeout); };
};
class SerialQserial
{
};
#endif // SERIALINTERFACE_H
...@@ -22,7 +22,8 @@ ...@@ -22,7 +22,8 @@
#endif #endif
SerialLink::SerialLink(QString portname, BaudRateType baudrate, FlowType flow, ParityType parity, DataBitsType dataBits, StopBitsType stopBits) : SerialLink::SerialLink(QString portname, SerialInterface::baudRateType baudrate, SerialInterface::flowType flow, SerialInterface::parityType parity,
SerialInterface::dataBitsType dataBits, SerialInterface::stopBitsType stopBits) :
port(NULL) port(NULL)
{ {
// Setup settings // Setup settings
...@@ -141,7 +142,7 @@ void SerialLink::run() ...@@ -141,7 +142,7 @@ void SerialLink::run()
void SerialLink::checkForBytes() void SerialLink::checkForBytes()
{ {
/* Check if bytes are available */ /* Check if bytes are available */
if(port && port->isOpen() && port->isWritable()) if(port && port->isOpen() && port->isWriteable())
{ {
dataMutex.lock(); dataMutex.lock();
qint64 available = port->bytesAvailable(); qint64 available = port->bytesAvailable();
...@@ -159,7 +160,6 @@ void SerialLink::checkForBytes() ...@@ -159,7 +160,6 @@ void SerialLink::checkForBytes()
} }
void SerialLink::writeBytes(const char* data, qint64 size) void SerialLink::writeBytes(const char* data, qint64 size)
{ {
if(port && port->isOpen()) if(port && port->isOpen())
...@@ -316,7 +316,7 @@ bool SerialLink::hardwareConnect() ...@@ -316,7 +316,7 @@ bool SerialLink::hardwareConnect()
port->close(); port->close();
delete port; delete port;
} }
port = new QextSerialPort(porthandle, QextSerialPort::Polling); port = new SerialQextserial(porthandle, QextSerialPort::Polling);
QObject::connect(port, SIGNAL(aboutToClose()), this, SIGNAL(disconnected())); QObject::connect(port, SIGNAL(aboutToClose()), this, SIGNAL(disconnected()));
port->open(QIODevice::ReadWrite); port->open(QIODevice::ReadWrite);
...@@ -380,77 +380,77 @@ qint64 SerialLink::getNominalDataRate() ...@@ -380,77 +380,77 @@ qint64 SerialLink::getNominalDataRate()
qint64 dataRate = 0; qint64 dataRate = 0;
switch (baudrate) switch (baudrate)
{ {
case BAUD50: case SerialInterface::BAUD50:
dataRate = 50; dataRate = 50;
break; break;
case BAUD75: case SerialInterface::BAUD75:
dataRate = 75; dataRate = 75;
break; break;
case BAUD110: case SerialInterface::BAUD110:
dataRate = 110; dataRate = 110;
break; break;
case BAUD134: case SerialInterface::BAUD134:
dataRate = 134; dataRate = 134;
break; break;
case BAUD150: case SerialInterface::BAUD150:
dataRate = 150; dataRate = 150;
break; break;
case BAUD200: case SerialInterface::BAUD200:
dataRate = 200; dataRate = 200;
break; break;
case BAUD300: case SerialInterface::BAUD300:
dataRate = 300; dataRate = 300;
break; break;
case BAUD600: case SerialInterface::BAUD600:
dataRate = 600; dataRate = 600;
break; break;
case BAUD1200: case SerialInterface::BAUD1200:
dataRate = 1200; dataRate = 1200;
break; break;
case BAUD1800: case SerialInterface::BAUD1800:
dataRate = 1800; dataRate = 1800;
break; break;
case BAUD2400: case SerialInterface::BAUD2400:
dataRate = 2400; dataRate = 2400;
break; break;
case BAUD4800: case SerialInterface::BAUD4800:
dataRate = 4800; dataRate = 4800;
break; break;
case BAUD9600: case SerialInterface::BAUD9600:
dataRate = 9600; dataRate = 9600;
break; break;
case BAUD14400: case SerialInterface::BAUD14400:
dataRate = 14400; dataRate = 14400;
break; break;
case BAUD19200: case SerialInterface::BAUD19200:
dataRate = 19200; dataRate = 19200;
break; break;
case BAUD38400: case SerialInterface::BAUD38400:
dataRate = 38400; dataRate = 38400;
break; break;
case BAUD56000: case SerialInterface::BAUD56000:
dataRate = 56000; dataRate = 56000;
break; break;
case BAUD57600: case SerialInterface::BAUD57600:
dataRate = 57600; dataRate = 57600;
break; break;
case BAUD76800: case SerialInterface::BAUD76800:
dataRate = 76800; dataRate = 76800;
break; break;
case BAUD115200: case SerialInterface::BAUD115200:
dataRate = 115200; dataRate = 115200;
break; break;
case BAUD128000: case SerialInterface::BAUD128000:
dataRate = 128000; dataRate = 128000;
break; break;
case BAUD256000: case SerialInterface::BAUD256000:
dataRate = 256000; dataRate = 256000;
// Windows-specific high-end baudrates // Windows-specific high-end baudrates
case BAUD230400: case SerialInterface::BAUD230400:
dataRate = 230400; dataRate = 230400;
case BAUD460800: case SerialInterface::BAUD460800:
dataRate = 460800; dataRate = 460800;
case BAUD921600: case SerialInterface::BAUD921600:
dataRate = 921600; dataRate = 921600;
break; break;
} }
...@@ -553,16 +553,16 @@ int SerialLink::getDataBits() ...@@ -553,16 +553,16 @@ int SerialLink::getDataBits()
int ret; int ret;
switch (dataBits) switch (dataBits)
{ {
case DATA_5: case SerialInterface::DATA_5:
ret = 5; ret = 5;
break; break;
case DATA_6: case SerialInterface::DATA_6:
ret = 6; ret = 6;
break; break;
case DATA_7: case SerialInterface::DATA_7:
ret = 7; ret = 7;
break; break;
case DATA_8: case SerialInterface::DATA_8:
ret = 8; ret = 8;
break; break;
default: default:
...@@ -577,10 +577,10 @@ int SerialLink::getStopBits() ...@@ -577,10 +577,10 @@ int SerialLink::getStopBits()
int ret; int ret;
switch (stopBits) switch (stopBits)
{ {
case STOP_1: case SerialInterface::STOP_1:
ret = 1; ret = 1;
break; break;
case STOP_2: case SerialInterface::STOP_2:
ret = 2; ret = 2;
break; break;
default: default:
...@@ -629,79 +629,79 @@ bool SerialLink::setBaudRateType(int rateIndex) ...@@ -629,79 +629,79 @@ bool SerialLink::setBaudRateType(int rateIndex)
switch (rateIndex) { switch (rateIndex) {
case 0: case 0:
baudrate = BAUD50; baudrate = SerialInterface::BAUD50;
break; break;
case 1: case 1:
baudrate = BAUD75; baudrate = SerialInterface::BAUD75;
break; break;
case 2: case 2:
baudrate = BAUD110; baudrate = SerialInterface::BAUD110;
break; break;
case 3: case 3:
baudrate = BAUD134; baudrate = SerialInterface::BAUD134;
break; break;
case 4: case 4:
baudrate = BAUD150; baudrate = SerialInterface::BAUD150;
break; break;
case 5: case 5:
baudrate = BAUD200; baudrate = SerialInterface::BAUD200;
break; break;
case 6: case 6:
baudrate = BAUD300; baudrate = SerialInterface::BAUD300;
break; break;
case 7: case 7:
baudrate = BAUD600; baudrate = SerialInterface::BAUD600;
break; break;
case 8: case 8:
baudrate = BAUD1200; baudrate = SerialInterface::BAUD1200;
break; break;
case 9: case 9:
baudrate = BAUD1800; baudrate = SerialInterface::BAUD1800;
break; break;
case 10: case 10:
baudrate = BAUD2400; baudrate = SerialInterface::BAUD2400;
break; break;
case 11: case 11:
baudrate = BAUD4800; baudrate = SerialInterface::BAUD4800;
break; break;
case 12: case 12:
baudrate = BAUD9600; baudrate = SerialInterface::BAUD9600;
break; break;
case 13: case 13:
baudrate = BAUD14400; baudrate = SerialInterface::BAUD14400;
break; break;
case 14: case 14:
baudrate = BAUD19200; baudrate = SerialInterface::BAUD19200;
break; break;
case 15: case 15:
baudrate = BAUD38400; baudrate = SerialInterface::BAUD38400;
break; break;
case 16: case 16:
baudrate = BAUD56000; baudrate = SerialInterface::BAUD56000;
break; break;
case 17: case 17:
baudrate = BAUD57600; baudrate = SerialInterface::BAUD57600;
break; break;
case 18: case 18:
baudrate = BAUD76800; baudrate = SerialInterface::BAUD76800;
break; break;
case 19: case 19:
baudrate = BAUD115200; baudrate = SerialInterface::BAUD115200;
break; break;
case 20: case 20:
baudrate = BAUD128000; baudrate = SerialInterface::BAUD128000;
break; break;
case 21: case 21:
baudrate = BAUD230400; baudrate = SerialInterface::BAUD230400;
break; break;
case 22: case 22:
baudrate = BAUD256000; baudrate = SerialInterface::BAUD256000;
break; break;
case 23: case 23:
baudrate = BAUD460800; baudrate = SerialInterface::BAUD460800;
break; break;
case 24: case 24:
baudrate = BAUD921600; baudrate = SerialInterface::BAUD921600;
break; break;
default: default:
// If none of the above cases matches, there must be an error // If none of the above cases matches, there must be an error
...@@ -728,79 +728,79 @@ bool SerialLink::setBaudRate(int rate) ...@@ -728,79 +728,79 @@ bool SerialLink::setBaudRate(int rate)
switch (rate) switch (rate)
{ {
case 50: case 50:
baudrate = BAUD50; baudrate = SerialInterface::BAUD50;
break; break;
case 75: case 75:
baudrate = BAUD75; baudrate = SerialInterface::BAUD75;
break; break;
case 110: case 110:
baudrate = BAUD110; baudrate = SerialInterface::BAUD110;
break; break;
case 134: case 134:
baudrate = BAUD134; baudrate = SerialInterface::BAUD134;
break; break;
case 150: case 150:
baudrate = BAUD150; baudrate = SerialInterface::BAUD150;
break; break;
case 200: case 200:
baudrate = BAUD200; baudrate = SerialInterface::BAUD200;
break; break;
case 300: case 300:
baudrate = BAUD300; baudrate = SerialInterface::BAUD300;
break; break;
case 600: case 600:
baudrate = BAUD600; baudrate = SerialInterface::BAUD600;
break; break;
case 1200: case 1200:
baudrate = BAUD1200; baudrate = SerialInterface::BAUD1200;
break; break;
case 1800: case 1800:
baudrate = BAUD1800; baudrate = SerialInterface::BAUD1800;
break; break;
case 2400: case 2400:
baudrate = BAUD2400; baudrate = SerialInterface::BAUD2400;
break; break;
case 4800: case 4800:
baudrate = BAUD4800; baudrate = SerialInterface::BAUD4800;
break; break;
case 9600: case 9600:
baudrate = BAUD9600; baudrate = SerialInterface::BAUD9600;
break; break;
case 14400: case 14400:
baudrate = BAUD14400; baudrate = SerialInterface::BAUD14400;
break; break;
case 19200: case 19200:
baudrate = BAUD19200; baudrate = SerialInterface::BAUD19200;
break; break;
case 38400: case 38400:
baudrate = BAUD38400; baudrate = SerialInterface::BAUD38400;
break; break;
case 56000: case 56000:
baudrate = BAUD56000; baudrate = SerialInterface::BAUD56000;
break; break;
case 57600: case 57600:
baudrate = BAUD57600; baudrate = SerialInterface::BAUD57600;
break; break;
case 76800: case 76800:
baudrate = BAUD76800; baudrate = SerialInterface::BAUD76800;
break; break;
case 115200: case 115200:
baudrate = BAUD115200; baudrate = SerialInterface::BAUD115200;
break; break;
case 128000: case 128000:
baudrate = BAUD128000; baudrate = SerialInterface::BAUD128000;
break; break;
case 230400: case 230400:
baudrate = BAUD230400; baudrate = SerialInterface::BAUD230400;
break; break;
case 256000: case 256000:
baudrate = BAUD256000; baudrate = SerialInterface::BAUD256000;
break; break;
case 460800: case 460800:
baudrate = BAUD460800; baudrate = SerialInterface::BAUD460800;
break; break;
case 921600: case 921600:
baudrate = BAUD921600; baudrate = SerialInterface::BAUD921600;
break; break;
default: default:
// If none of the above cases matches, there must be an error // If none of the above cases matches, there must be an error
...@@ -822,14 +822,14 @@ bool SerialLink::setFlowType(int flow) ...@@ -822,14 +822,14 @@ bool SerialLink::setFlowType(int flow)
switch (flow) switch (flow)
{ {
case FLOW_OFF: case SerialInterface::FLOW_OFF:
this->flow = FLOW_OFF; this->flow = SerialInterface::FLOW_OFF;
break; break;
case FLOW_HARDWARE: case SerialInterface::FLOW_HARDWARE:
this->flow = FLOW_HARDWARE; this->flow = SerialInterface::FLOW_HARDWARE;
break; break;
case FLOW_XONXOFF: case SerialInterface::FLOW_XONXOFF:
this->flow = FLOW_XONXOFF; this->flow = SerialInterface::FLOW_XONXOFF;
break; break;
default: default:
// If none of the above cases matches, there must be an error // If none of the above cases matches, there must be an error
...@@ -851,19 +851,19 @@ bool SerialLink::setParityType(int parity) ...@@ -851,19 +851,19 @@ bool SerialLink::setParityType(int parity)
switch (parity) switch (parity)
{ {
case (int)PAR_NONE: case (int)PAR_NONE:
this->parity = PAR_NONE; this->parity = SerialInterface::PAR_NONE;
break; break;
case (int)PAR_ODD: case (int)PAR_ODD:
this->parity = PAR_ODD; this->parity = SerialInterface::PAR_ODD;
break; break;
case (int)PAR_EVEN: case (int)PAR_EVEN:
this->parity = PAR_EVEN; this->parity = SerialInterface::PAR_EVEN;
break; break;
case (int)PAR_MARK: case (int)PAR_MARK:
this->parity = PAR_MARK; this->parity = SerialInterface::PAR_MARK;
break; break;
case (int)PAR_SPACE: case (int)PAR_SPACE:
this->parity = PAR_SPACE; this->parity = SerialInterface::PAR_SPACE;
break; break;
default: default:
// If none of the above cases matches, there must be an error // If none of the above cases matches, there must be an error
...@@ -886,16 +886,16 @@ bool SerialLink::setDataBits(int dataBits) ...@@ -886,16 +886,16 @@ bool SerialLink::setDataBits(int dataBits)
switch (dataBits) switch (dataBits)
{ {
case 5: case 5:
this->dataBits = DATA_5; this->dataBits = SerialInterface::DATA_5;
break; break;
case 6: case 6:
this->dataBits = DATA_6; this->dataBits = SerialInterface::DATA_6;
break; break;
case 7: case 7:
this->dataBits = DATA_7; this->dataBits = SerialInterface::DATA_7;
break; break;
case 8: case 8:
this->dataBits = DATA_8; this->dataBits = SerialInterface::DATA_8;
break; break;
default: default:
// If none of the above cases matches, there must be an error // If none of the above cases matches, there must be an error
...@@ -918,10 +918,10 @@ bool SerialLink::setStopBits(int stopBits) ...@@ -918,10 +918,10 @@ bool SerialLink::setStopBits(int stopBits)
switch (stopBits) switch (stopBits)
{ {
case 1: case 1:
this->stopBits = STOP_1; this->stopBits = SerialInterface::STOP_1;
break; break;
case 2: case 2:
this->stopBits = STOP_2; this->stopBits = SerialInterface::STOP_2;
break; break;
default: default:
// If none of the above cases matches, there must be an error // If none of the above cases matches, there must be an error
...@@ -941,9 +941,9 @@ bool SerialLink::setDataBitsType(int dataBits) ...@@ -941,9 +941,9 @@ bool SerialLink::setDataBitsType(int dataBits)
if (isConnected()) reconnect = true; if (isConnected()) reconnect = true;
disconnect(); disconnect();
if (dataBits >= (int)DATA_5 && dataBits <= (int)DATA_8) if (dataBits >= (int)SerialInterface::DATA_5 && dataBits <= (int)SerialInterface::DATA_8)
{ {
this->dataBits = (DataBitsType) dataBits; this->dataBits = (SerialInterface::dataBitsType) dataBits;
if(reconnect) connect(); if(reconnect) connect();
accepted = true; accepted = true;
...@@ -959,9 +959,9 @@ bool SerialLink::setStopBitsType(int stopBits) ...@@ -959,9 +959,9 @@ bool SerialLink::setStopBitsType(int stopBits)
if(isConnected()) reconnect = true; if(isConnected()) reconnect = true;
disconnect(); disconnect();
if (stopBits >= (int)STOP_1 && dataBits <= (int)STOP_2) if (stopBits >= (int)SerialInterface::STOP_1 && dataBits <= (int)SerialInterface::STOP_2)
{ {
StopBitsType newBits = (StopBitsType) stopBits; SerialInterface::stopBitsType newBits = (SerialInterface::stopBitsType) stopBits;
port->setStopBits(newBits); port->setStopBits(newBits);
accepted = true; accepted = true;
......
...@@ -36,7 +36,7 @@ This file is part of the QGROUNDCONTROL project ...@@ -36,7 +36,7 @@ This file is part of the QGROUNDCONTROL project
#include <QThread> #include <QThread>
#include <QMutex> #include <QMutex>
#include <QString> #include <QString>
#include <qextserialport.h> #include "SerialInterface.h"
#include <configuration.h> #include <configuration.h>
#include "SerialLinkInterface.h" #include "SerialLinkInterface.h"
#ifdef _WIN32 #ifdef _WIN32
...@@ -57,7 +57,12 @@ class SerialLink : public SerialLinkInterface { ...@@ -57,7 +57,12 @@ class SerialLink : public SerialLinkInterface {
//Q_INTERFACES(SerialLinkInterface:LinkInterface) //Q_INTERFACES(SerialLinkInterface:LinkInterface)
public: public:
SerialLink(QString portname = "", BaudRateType baudrate=BAUD57600, FlowType flow=FLOW_OFF, ParityType parity=PAR_NONE, DataBitsType dataBits=DATA_8, StopBitsType stopBits=STOP_1); SerialLink(QString portname = "",
SerialInterface::baudRateType baudrate=SerialInterface::BAUD57600,
SerialInterface::flowType flow=SerialInterface::FLOW_OFF,
SerialInterface::parityType parity=SerialInterface::PAR_NONE,
SerialInterface::dataBitsType dataBits=SerialInterface::DATA_8,
SerialInterface::stopBitsType stopBits=SerialInterface::STOP_1);
~SerialLink(); ~SerialLink();
static const int poll_interval = SERIAL_POLL_INTERVAL; ///< Polling interval, defined in configuration.h static const int poll_interval = SERIAL_POLL_INTERVAL; ///< Polling interval, defined in configuration.h
...@@ -132,18 +137,18 @@ protected slots: ...@@ -132,18 +137,18 @@ protected slots:
void checkForBytes(); void checkForBytes();
protected: protected:
QextSerialPort* port; SerialInterface * port;
#ifdef _WIN32 #ifdef _WIN32
HANDLE winPort; HANDLE winPort;
DCB winPortSettings; DCB winPortSettings;
#endif #endif
QString porthandle; QString porthandle;
QString name; QString name;
BaudRateType baudrate; SerialInterface::baudRateType baudrate;
FlowType flow; SerialInterface::flowType flow;
ParityType parity; SerialInterface::parityType parity;
DataBitsType dataBits; SerialInterface::dataBitsType dataBits;
StopBitsType stopBits; SerialInterface::stopBitsType stopBits;
int timeout; int timeout;
int id; int id;
...@@ -163,7 +168,7 @@ protected: ...@@ -163,7 +168,7 @@ protected:
bool hardwareConnect(); bool hardwareConnect();
signals: signals:
// Signals are defined by LinkInterface void aboutToCloseFlag();
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment