|
|
|
@ -43,13 +43,13 @@
@@ -43,13 +43,13 @@
|
|
|
|
|
|
|
|
|
|
namespace TNX { |
|
|
|
|
|
|
|
|
|
enum ChangeApplyTypes { AllAppTy, PortAttrOnlyAppTy, CommTimeoutsOnlyAppTy }; |
|
|
|
|
enum ChangeApplyTypes { AllAppTy, PortAttrOnlyAppTy, CommTimeoutsOnlyAppTy }; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
/**
|
|
|
|
|
* Communication timeout values for Win32/CE and Posix platforms. |
|
|
|
|
* @see www.unixwiz.net/techtips/termios-vmin-vtime.html |
|
|
|
|
*/ |
|
|
|
|
struct CommTimeouts { |
|
|
|
|
struct CommTimeouts { |
|
|
|
|
#ifdef TNX_WINDOWS_SERIAL_PORT |
|
|
|
|
typedef DWORD commt_t; |
|
|
|
|
static const DWORD NoTimeout = MAXDWORD; |
|
|
|
@ -75,14 +75,14 @@ struct CommTimeouts {
@@ -75,14 +75,14 @@ struct CommTimeouts {
|
|
|
|
|
PosixVTIME(0), PosixVMIN(1) |
|
|
|
|
{ |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
/**
|
|
|
|
|
* Wrapper class for serial port settings. |
|
|
|
|
*/ |
|
|
|
|
class TONIX_EXPORT QPortSettings |
|
|
|
|
{ |
|
|
|
|
public: |
|
|
|
|
class TONIX_EXPORT QPortSettings |
|
|
|
|
{ |
|
|
|
|
public: |
|
|
|
|
enum BaudRate { |
|
|
|
|
BAUDR_UNKNOWN = 0, |
|
|
|
|
#ifdef TNX_POSIX_SERIAL_PORT |
|
|
|
@ -99,13 +99,14 @@ public:
@@ -99,13 +99,14 @@ public:
|
|
|
|
|
BAUDR_460800, |
|
|
|
|
BAUDR_500000, |
|
|
|
|
BAUDR_576000, |
|
|
|
|
BAUDR_921600, |
|
|
|
|
#endif |
|
|
|
|
#ifdef TNX_WINDOWS_SERIAL_PORT |
|
|
|
|
BAUDR_14400, |
|
|
|
|
BAUDR_56000, |
|
|
|
|
BAUDR_128000, |
|
|
|
|
BAUDR_230400, |
|
|
|
|
BAUDR_256000, |
|
|
|
|
BAUDR_460800, |
|
|
|
|
#endif |
|
|
|
|
// baud rates supported by all OSs
|
|
|
|
|
BAUDR_110, |
|
|
|
@ -118,7 +119,8 @@ public:
@@ -118,7 +119,8 @@ public:
|
|
|
|
|
BAUDR_19200, |
|
|
|
|
BAUDR_38400, |
|
|
|
|
BAUDR_57600, |
|
|
|
|
BAUDR_115200 |
|
|
|
|
BAUDR_115200, |
|
|
|
|
BAUDR_921600 |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
enum DataBits { |
|
|
|
@ -170,7 +172,7 @@ public:
@@ -170,7 +172,7 @@ public:
|
|
|
|
|
baudRate_ = baudRate; |
|
|
|
|
|
|
|
|
|
switch ( baudRate_ ) { |
|
|
|
|
#ifdef TNX_POSIX_SERIAL_PORT |
|
|
|
|
#ifdef TNX_POSIX_SERIAL_PORT |
|
|
|
|
case BAUDR_50: baudRateInt_=50; break; |
|
|
|
|
case BAUDR_75: baudRateInt_=75; break; |
|
|
|
|
case BAUDR_134: baudRateInt_=134; break; |
|
|
|
@ -178,20 +180,21 @@ public:
@@ -178,20 +180,21 @@ public:
|
|
|
|
|
case BAUDR_200: baudRateInt_=200; break; |
|
|
|
|
case BAUDR_1800: baudRateInt_=1800; break; |
|
|
|
|
//case 76800: baudRateInt_=76800; break;
|
|
|
|
|
#endif |
|
|
|
|
#ifdef TNX_WINDOWS_SERIAL_PORT |
|
|
|
|
#endif |
|
|
|
|
#ifdef TNX_WINDOWS_SERIAL_PORT |
|
|
|
|
case BAUDR_14400: baudRateInt_=14400; break; |
|
|
|
|
case BAUDR_56000: baudRateInt_=56000; break; |
|
|
|
|
case BAUDR_128000: baudRateInt_=128000; break; |
|
|
|
|
case BAUDR_256000: baudRateInt_=256000; break; |
|
|
|
|
#endif |
|
|
|
|
#if defined(Q_OS_LINUX) |
|
|
|
|
case BAUDR_230400: baudRateInt_=230400; break; |
|
|
|
|
case BAUDR_460800: baudRateInt_=460800; break; |
|
|
|
|
#endif |
|
|
|
|
#if defined(Q_OS_LINUX) |
|
|
|
|
case BAUDR_230400: baudRateInt_=230400; break; |
|
|
|
|
case BAUDR_460800: baudRateInt_=460800; break; |
|
|
|
|
case BAUDR_500000: baudRateInt_=500000; break; |
|
|
|
|
case BAUDR_576000: baudRateInt_=576000; break; |
|
|
|
|
case BAUDR_921600: baudRateInt_=921600; break; |
|
|
|
|
#endif |
|
|
|
|
#endif |
|
|
|
|
// baud rates supported by all platforms
|
|
|
|
|
case BAUDR_110: baudRateInt_=110; break; |
|
|
|
|
case BAUDR_300: baudRateInt_=300; break; |
|
|
|
@ -204,6 +207,7 @@ public:
@@ -204,6 +207,7 @@ public:
|
|
|
|
|
case BAUDR_38400: baudRateInt_=38400; break; |
|
|
|
|
case BAUDR_57600: baudRateInt_=57600; break; |
|
|
|
|
case BAUDR_115200: baudRateInt_=115200; break; |
|
|
|
|
case BAUDR_921600: baudRateInt_=921600; break; |
|
|
|
|
default: |
|
|
|
|
baudRateInt_ = 0; // unknown baudrate
|
|
|
|
|
} |
|
|
|
@ -240,21 +244,21 @@ public:
@@ -240,21 +244,21 @@ public:
|
|
|
|
|
QString toString() const; |
|
|
|
|
|
|
|
|
|
// helper methods to configure port settings
|
|
|
|
|
private: |
|
|
|
|
private: |
|
|
|
|
static BaudRate baudRateFromInt(int baud, bool &ok); |
|
|
|
|
static DataBits dataBitsFromString(const QString &databits, bool &ok); |
|
|
|
|
static Parity parityFromString(const QString &parity, bool &ok); |
|
|
|
|
static StopBits stopBitsFromString(const QString &stopbits, bool &ok); |
|
|
|
|
static FlowControl flowControlFromString(const QString &flow, bool &ok); |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
private: |
|
|
|
|
BaudRate baudRate_; |
|
|
|
|
DataBits dataBits_; |
|
|
|
|
Parity parity_; |
|
|
|
|
StopBits stopBits_; |
|
|
|
|
FlowControl flowControl_; |
|
|
|
|
qint32 baudRateInt_; |
|
|
|
|
}; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|