// SerialPort.h: interface for the CSerialPort class.
//
//
#if !defined(AFX_SERIALPORT_H__5EA960A8_CC22_11D4_86FD_5254AB12C040__INCLUDED_)
#define AFX_SERIALPORT_H__5EA960A8_CC22_11D4_86FD_5254AB12C040__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CHanwangEye;
#define ASCII_BEL 0x07
#define ASCII_BS 0x08
#define ASCII_LF 0x0A
#define ASCII_CR 0x0D
#define ASCII_XON 0x11
#define ASCII_XOFF 0x13
DWORD FAR PASCAL CommWatchProc(LPVOID lpData);
#include "CommonSocket.h"
class CSerialPort
{
public:
CSerialPort();
virtual ~CSerialPort();
HANDLE m_hCom;
BOOL m_fConnected;
HANDLE m_hCommWatchThread;
DWORD m_dwThreadID;
OVERLAPPED m_osRead, m_osWrite;
CHanwangEye* m_pEye;
bool m_blIdle;
LPBYTE pReceive;
int nReceive; //当前报文长度
int mReceive; //最大长度
/*#ifdef LPR_DOHERELARGE
BYTE m_pInfo[e_nInfoLength];
BYTE m_pID[e_nIDLength];
BYTE m_pEmptyID[e_nIDLength];
BYTE m_pImage[e_nImageLength];
int m_nImageState;
#endif*/
BOOL m_bClearUntillEmpty;
public:
BOOL Connect(CString szCom, DWORD BaudRate, BYTE ByteSize, BYTE StopBits, BYTE Parity);
BOOL Disconnect();
BOOL GetCommState(DCB* pDCB);
BOOL SetCommState(DCB* pDCB);
BOOL GetCommTimeouts(LPCOMMTIMEOUTS lpCommTimeouts);
BOOL SetCommTimeouts(LPCOMMTIMEOUTS lpCommTimeouts);
BOOL Write(LPBYTE pData, DWORD dwLength);
DWORD Read(LPBYTE pData, DWORD dwLength);
DWORD ReadByBlock(LPBYTE pBuffer, DWORD dwWantSize, DWORD dwBlockSize);
static int Write(CSerialPort* pSerial1, LPBYTE pData1, DWORD dwLength1, CSerialPort* pSerial2, LPBYTE pData2, DWORD dwLength2);
};
#endif // !defined(AFX_SERIALPORT_H__5EA960A8_CC22_11D4_86FD_5254AB12C040__INCLUDED_)