www.pudn.com > gps-time.rar > Communication.h
// Communication.h: interface for the CCommunication class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_COMMUNICATION_H__36368C42_1E27_11D5_863E_444553540000__INCLUDED_) #define AFX_COMMUNICATION_H__36368C42_1E27_11D5_863E_444553540000__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 //管理串口类、Socket类、线程类 #include "comport.h" class CRegionSocket; class CComThrd; class CProcDataThrd; typedef CArrayChEventArray; //the array of event class CCommunication : public CObject { public: void DegradeUserID(BYTE ID); void Degrade(); void SendCenter(); int GetComIndexByPort(BYTE iPortNo); BOOL CreateThreadEvents(); void StopAllRunningThread(); void ProcessCommData(); void TryToReadAllComm(); CCommunication(); virtual ~CCommunication(); //对串口类操作 BOOL AddTscCom(BYTE PortNo, DWORD dwBaudRate,BYTE DeviceType,BYTE DeviceNo,CString Depict);//增加串口 void DeleteTscCom(BYTE PortNo);//删除串口 void AdjustDevConnect();//判断设备是否超时 int FindComIndex(BYTE PortNo);//串口查询 //对线程操作 void StartProcData();// 表格处理线程开始 void StartComm();// 通讯口接收数据线程开始 //数据处理 void SendNotifyAllDev();//发设备状态通知给中心 void ConvertToDevice(BYTE DeviceType, BYTE DeviceNo, BYTE *tabBuff, int tabCount);//数据转发给串口设备 BOOL Run(); //BOOL FindEqualDevice(BYTE DeviceType,BYTE DeviceNo); CComPortArray m_aCom; // 通讯口对象数组 ChEventArray m_aProcessEvent; // 表格处理通知事件数组 ChEventArray m_aReceiveEvent; // 通讯口接收数据事件数组 BYTE m_cRegionNo; // 区域号 CRegionSocket * m_pServerSocket; // 与中心连接的Socket private: CComThrd * m_pCommThread; // 通讯处理线程对象 CProcDataThrd * m_pProcessThread; // 表格处理线程对象 CMutex muxCommArray; //存取通信口对象的互斥变量 HANDLE ExitEvent; //通知线程退出事件 HANDLE ComChangeEvent,ProcessChangeEvent; //打开或关闭新的端口通知事件 // lv change 060809 该函数变量为类变量 BYTE TmpBuff[m_MaxTableLen]; }; #endif // !defined(AFX_COMMUNICATION_H__36368C42_1E27_11D5_863E_444553540000__INCLUDED_)