www.pudn.com > gps-time.rar > ComPort.h
// ComPort.h: interface for the CComPort class. // ////////////////////////////////////////////////////////////////////// //串口类:管理当前串口的操作、连接设备的管理、接收数据的分析处理。 #if !defined(AFX_COMPORT_H__F368C602_1947_11D5_932F_5254AB322796__INCLUDED_) #define AFX_COMPORT_H__F368C602_1947_11D5_932F_5254AB322796__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "combuff.h" #include "constant.h" class CCommunication; class CRegionSocket; class CComPort; typedef CTypedPtrArrayCComPortArray; typedef struct CUserModes { BYTE ID; BYTE Mode; }CUserMode; class CComPort :public CObject { public: void SendSelfControl(); CUserMode mUserMode; int GetMyDeviceNo(); CComPort(CCommunication *pComm); virtual ~CComPort(); //对串口的操作、设置参数等 void Close();//关闭串口 BOOL Open();//打开串口 void SetPamera(BYTE Port,long BitRate,BYTE DeviceType,BYTE DeviceNo,CString Depict); void WaitCommEvent();//waits for an event to occur for a specified communications device int GetState() { if (!m_bPortOpen) return DEV_COMCLOSED; // 取通讯口的工作状态 else return DEV_COMOPENED; } HANDLE GetReceiveEvent() { ASSERT(m_osWait.hEvent != NULL); return m_osWait.hEvent; } // 取通讯口接受数据事件句柄 //对设备的操作 void AdjustDevConnect();//判断设备是否超时 //对收到的数据处理分析 void ReadComData();//接收数据,触发数据处理线程。 BOOL TransmitTable(BYTE tDeviceNo, BYTE *sBuff,int sCount);//向中心转发数据 BOOL ProcessTable();//分析数据 BOOL SendTable(BYTE *sBuff,int sCount);//发送数据给设备 void NotifyStatus(BOOL iConnected);//向中心发送设备状态信息 BYTE m_ComPort; //端口号 long m_ComBitRate; //波特率 BYTE m_DeviceType; //设备类 BYTE m_DeviceNo; //设备号 CString m_Depict; BYTE m_ConfigreDeviceType; BYTE m_ConfigreDeviceNo; BOOL m_bPortOpen; //端口是否成功打开 DWORD m_dwEventMask;// 串口所发生事件类型的掩码 HANDLE m_hcom ;//串口句柄 CCommunication *m_pOwner; //指向串口管理类 HANDLE m_hProcessEvent; // 通知表格处理线程处理数据的事件 BOOL IsConnected; //是否连接,只支持一个路口设备连接 int nTimeCount; int TimeOutCount; //连接超时 private : void AskCntProc(BYTE sDeviceType,BYTE sDeviceNo);//应答请求连接 void QryCmdProc(BYTE sDeviceType,BYTE sDeviceNo);//应答查询连接 void SendAck(BYTE sDeviceType,BYTE sDeviceNo);//发送应答请求连接 void SendAckQry(BYTE sDeviceType,BYTE sDeviceNo);//发送查询请求连接 OVERLAPPED m_osWrite; OVERLAPPED m_osRead; OVERLAPPED m_osWait; //对串口的操作 BOOL WriteComm(BYTE* MyBuff, int wCount);//写串口 int ReadComm(BYTE* MyBuff, int rCount);//读串口 CComBuff MyComBuff; //内部包含的通信缓冲区 // lv change 060809 该函数变量为类变量 BYTE TmpBuffReadData[m_MaxTableLen]; BYTE TmpBuff[m_MaxTableLen]; BYTE rBuff[m_MaxTableLen]; }; #endif // !defined(AFX_COMPORT_H__F368C602_1947_11D5_932F_5254AB322796__INCLUDED_)