16#ifndef __SERIALPORT_H__
17#define __SERIALPORT_H__
40 virtual void Dump(CDumpContext& dc)
const;
42 virtual BOOL
GetErrorMessage(LPTSTR lpstrError, UINT nMaxError, PUINT pnHelpContext =
NULL);
96 operator HANDLE()
const {
return m_hComm; };
99 void CSerialPort::Dump(CDumpContext& dc)
const;
103 DWORD
Read(
void* lpBuf, DWORD dwCount);
104 BOOL
Read(
void* lpBuf, DWORD dwCount, OVERLAPPED& overlapped);
105 void ReadEx(
void* lpBuf, DWORD dwCount);
106 DWORD
Write(
const void* lpBuf, DWORD dwCount);
107 BOOL
Write(
const void* lpBuf, DWORD dwCount, OVERLAPPED& overlapped);
108 void WriteEx(
const void* lpBuf, DWORD dwCount);
126 void Escape(DWORD dwFunc);
147 void WaitEvent(DWORD& dwMask, OVERLAPPED& overlapped);
151 void Purge(DWORD dwFlags);
156 void Setup(DWORD dwInQueue, DWORD dwOutQueue);
159 virtual void OnCompletion(DWORD dwErrorCode, DWORD dwCount, LPOVERLAPPED lpOverlapped);
165 static void WINAPI
_OnCompletion(DWORD dwErrorCode, DWORD dwCount, LPOVERLAPPED lpOverlapped);
Definition: serialport.h:32
~CSerialException()
Definition: serialport.cpp:135
CString GetErrorMessage()
Definition: serialport.cpp:121
CSerialException(DWORD dwError)
Definition: serialport.cpp:130
DWORD m_dwError
Definition: serialport.h:46
Definition: serialport.h:57
void Purge(DWORD dwFlags)
Definition: serialport.cpp:708
void TransmitChar(char cChar)
Definition: serialport.cpp:476
void Escape(DWORD dwFunc)
Definition: serialport.cpp:612
void GetStatus(COMSTAT &stat)
Definition: serialport.cpp:578
void TerminateOutstandingWrites()
Definition: serialport.cpp:719
void Set0WriteTimeout()
Definition: serialport.cpp:784
void GetModemStatus(DWORD &dwModemStatus)
Definition: serialport.cpp:664
void Setup(DWORD dwInQueue, DWORD dwOutQueue)
Definition: serialport.cpp:739
void SetBreak()
Definition: serialport.cpp:511
HANDLE m_hComm
Definition: serialport.h:162
DWORD Read(void *lpBuf, DWORD dwCount)
Definition: serialport.cpp:322
void Open(int nPort, DWORD dwBaud=9600, Parity parity=NoParity, BYTE DataBits=8, StopBits stopbits=OneStopBit, FlowControl fc=NoFlowControl, BOOL bOverlapped=FALSE)
Definition: serialport.cpp:179
void GetProperties(COMMPROP &properties)
Definition: serialport.cpp:653
void SetTimeouts(COMMTIMEOUTS &timeouts)
Definition: serialport.cpp:750
void WaitEvent(DWORD &dwMask)
Definition: serialport.cpp:803
StopBits
Definition: serialport.h:80
@ TwoStopBits
Definition: serialport.h:83
@ OnePointFiveStopBits
Definition: serialport.h:82
@ OneStopBit
Definition: serialport.h:81
virtual void OnCompletion(DWORD dwErrorCode, DWORD dwCount, LPOVERLAPPED lpOverlapped)
Definition: serialport.cpp:420
HANDLE Detach()
Definition: serialport.cpp:315
void GetMask(DWORD &dwMask)
Definition: serialport.cpp:686
CSerialPort()
Definition: serialport.cpp:156
void ClearReadBuffer()
Definition: serialport.cpp:734
void ClearDTR()
Definition: serialport.cpp:623
void ClearBreak()
Definition: serialport.cpp:522
void WriteEx(const void *lpBuf, DWORD dwCount)
Definition: serialport.cpp:446
BOOL IsOpen() const
Definition: serialport.h:97
void SetDTR()
Definition: serialport.cpp:633
void GetConfig(COMMCONFIG &config)
Definition: serialport.cpp:487
void Attach(HANDLE hComm)
Definition: serialport.cpp:309
static void SetDefaultConfig(int nPort, COMMCONFIG &config)
Definition: serialport.cpp:561
BOOL m_bOverlapped
Definition: serialport.h:163
FlowControl
Definition: serialport.h:61
@ DsrRtsFlowControl
Definition: serialport.h:65
@ NoFlowControl
Definition: serialport.h:62
@ XonXoffFlowControl
Definition: serialport.h:67
@ CtsRtsFlowControl
Definition: serialport.h:63
@ CtsDtrFlowControl
Definition: serialport.h:64
@ DsrDtrFlowControl
Definition: serialport.h:66
void SetMask(DWORD dwMask)
Definition: serialport.cpp:675
void SetRTS()
Definition: serialport.cpp:638
Parity
Definition: serialport.h:71
@ NoParity
Definition: serialport.h:74
@ MarkParity
Definition: serialport.h:73
@ OddParity
Definition: serialport.h:75
@ EvenParity
Definition: serialport.h:72
@ SpaceParity
Definition: serialport.h:76
void Flush()
Definition: serialport.cpp:697
void ClearRTS()
Definition: serialport.cpp:628
void GetTimeouts(COMMTIMEOUTS &timeouts)
Definition: serialport.cpp:761
void CancelIo()
Definition: serialport.cpp:429
void ClearWriteBuffer()
Definition: serialport.cpp:729
void SetConfig(COMMCONFIG &Config)
Definition: serialport.cpp:499
void Set0ReadTimeout()
Definition: serialport.cpp:793
void GetOverlappedResult(OVERLAPPED &overlapped, DWORD &dwBytesTransferred, BOOL bWait)
Definition: serialport.cpp:390
DWORD Write(const void *lpBuf, DWORD dwCount)
Definition: serialport.cpp:356
void Close()
Definition: serialport.cpp:297
void GetState(DCB &dcb)
Definition: serialport.cpp:590
void SetState(DCB &dcb)
Definition: serialport.cpp:601
~CSerialPort()
Definition: serialport.cpp:162
static void GetDefaultConfig(int nPort, COMMCONFIG &config)
Definition: serialport.cpp:544
void ClearError(DWORD &dwErrors)
Definition: serialport.cpp:533
void SetXOFF()
Definition: serialport.cpp:643
void TerminateOutstandingReads()
Definition: serialport.cpp:724
void ReadEx(void *lpBuf, DWORD dwCount)
Definition: serialport.cpp:461
void Set0Timeout()
Definition: serialport.cpp:772
static void WINAPI _OnCompletion(DWORD dwErrorCode, DWORD dwCount, LPOVERLAPPED lpOverlapped)
Definition: serialport.cpp:407
void SetXON()
Definition: serialport.cpp:648
#define NULL
Definition: nidaqmx.h:84
#define FALSE
Definition: nidaqmx.h:81
void AfxThrowSerialException(DWORD dwError=0)
Definition: serialport.cpp:85