// SComPort.h: interface for the CSComPort class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_SCOMPORT_H__2F1C7926_4FFF_4C0A_B449_CD05EC100ADD__INCLUDED_) #define AFX_SCOMPORT_H__2F1C7926_4FFF_4C0A_B449_CD05EC100ADD__INCLUDED_ #include "Constant.h" #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class CSComPort { public: BOOL DetectLine(); void ClearCommReceiveBuff(); void ClearCommSendBuff(); void SetScanBreakSign(BOOL bIsScanBreak); BOOL SendDataDirectly(char *pDataBuff, int iDataSize); BOOL ReceiveDataDirectly(char *pDataBuff, int* iDataSize); BOOL ZmodemReceiveDataDirectly(char *pDataBuff, int *iDataSize); BOOL ZmodemSendDataDirectly(char *pDataBuff, int iDataSize); void CloseComm(); void SetOwnerWnd(HWND hOwnerWnd); void SetCommID(long lCommID); static UINT SComPortDetectBreakThreadFun(LPVOID pParam); static BOOL FindComName(CStringArray* pStringArray); BOOL OpenComm(CString szComName); BOOL ExecuteOrder(CString strOrder, CString strSign, CString *pStrResult, int nRepeatCnt=3); BOOL ExecuteSignleOrder(CString f_szOrder, CString f_szSign, CString *f_szResult); BOOL ExecuteNoResOrder(CString f_szOrder); CSComPort(); CSComPort(HWND hOwnerWnd, long lCommID); virtual ~CSComPort(); HANDLE m_hCom; HWND m_hOwnerWnd; private: void closeLog(); void openLog(); OVERLAPPED m_Overlapped; BOOL m_bIsScanBreak; char m_aWriteBuffer[WRITEBUFFER_SIZE]; int m_iWriteSize; DWORD m_dwBLThreadID; HANDLE m_hBLThread; BOOL m_bIsDetBreakFun; char m_aReadBuffer[READBUFFER_SIZE]; int m_iReadSize; long m_lCommID; CString m_szComName; DCB m_dcbBlock; DWORD m_dwFactdata; //log void PrintLogLast(CString& strLog); FILE *m_Log; //log }; #endif // !defined(AFX_SCOMPORT_H__2F1C7926_4FFF_4C0A_B449_CD05EC100ADD__INCLUDED_)