Files
coco df489d5640 a
2026-07-03 16:05:30 +08:00

74 lines
1.8 KiB
C++

// 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_)