You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
3.0 KiB
C++

#include "CommMgr.h"
CCommMgr::CCommMgr(void)
{
}
CCommMgr::~CCommMgr(void)
{
}
//<2F><><EFBFBD><EFBFBD>com <20><>(dwBaudRate <20>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD>)
bool CCommMgr::Open(DWORD dwPort, DWORD dwBaudRate)
{
if(IsOpen())//<2F><><EFBFBD><EFBFBD>״ֱ̬<CCAC>ӷ<EFBFBD><D3B7><EFBFBD>
return true;
//CString str = "Function :[CCommPortMgr::Open][<5B><><EFBFBD><EFBFBD>com <20><>]";
////gLogMgr->WriteDebugLog(str);
//CString str1;
//str1.Format("%ld",dwPort);
//str = "Result :[com <20><><"+str1+"><3E><><EFBFBD><EFBFBD>]";
bool ret;
if(m_Com.Open(dwPort,dwBaudRate) == false)
{
//gLogMgr->WriteDebugLog(str,_LOG_ERROR);
ret = false;
}
else
{
//str += "[OK]";
//gLogMgr->WriteDebugLog(str);
ret = true;
}
return ret;
}
//<2F>򿪴<EFBFBD><F2BFAAB4><EFBFBD>, ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"9600, 8, n, 1"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
bool CCommMgr::Open(DWORD dwPort, char *szSetStr)
{
// CString str = "Function :[CCommPortMgr::Open][<5B><><EFBFBD><EFBFBD>com <20><>]";
//gLogMgr->WriteDebugLog(str);
//CString str1;
//str1.Format("%ld",dwPort);
//str = "Result :[com <20><><"+str1+"><3E><><EFBFBD><EFBFBD>]";
bool ret;
int len = MultiByteToWideChar(CP_ACP, 0, szSetStr, -1, NULL, 0); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
wchar_t* wStr = new wchar_t[len]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MultiByteToWideChar(CP_ACP, 0, szSetStr, -1, wStr, len); // ת<><D7AA>
LPCTSTR lpctstr = wStr;
if(m_Com.Open(dwPort, lpctstr) == false)
{
//gLogMgr->WriteDebugLog(str,_LOG_ERROR);
ret = false;
}
else
{
//str += "[OK]";
//gLogMgr->WriteDebugLog(str);
ret = true;
}
delete[] wStr;
return ret;
}
void CCommMgr::SetWorkMode(BOOL bSleep, DWORD dwOutTime)
{
m_Com.SetWorkMode(bSleep, dwOutTime);
}
//<2F>󶨴<EFBFBD><F3B6A8B4><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ID
void CCommMgr::SetWnd(HWND hWnd)
{
//CString str = "Function :[SetWnd][<5B>󶨴<EFBFBD><F3B6A8B4><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ID]";
//gLogMgr->WriteDebugLog(str);
//m_Com.SetWnd(hWnd);
}
void CCommMgr::SetNotify(std::function<void()> _pfn)
{
//CString str = "Function :[SetWnd][<5B>󶨴<EFBFBD><F3B6A8B4><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ID]";
m_Com.SetDataCallBack(_pfn);
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>szBuffer
DWORD CCommMgr::ReadBuf(char *szBuffer,DWORD dwBufferLength)
{
return m_Com.Read(szBuffer,dwBufferLength);
}
std::string CCommMgr::ReadStr()
{
const int dwBufferLength = 500;
char szBuffer[dwBufferLength];
memset(szBuffer,'0',dwBufferLength);
m_Com.ReadString(szBuffer,dwBufferLength);
//ת<><D7AA>ΪCString
//CString str = szBuffer;
std::string str(szBuffer);
return str;
}
int CCommMgr::Read(LPVOID Buffer, DWORD dwBufferLength)
{
return m_Com.Read(Buffer,dwBufferLength);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD CCommMgr::Write(const char *szBuffer)
{
return m_Com.Write(szBuffer, strlen(szBuffer));
}
DWORD CCommMgr::WriteBuf(LPVOID Buffer, DWORD dwBufferLength)
{
return m_Com.Write(Buffer,dwBufferLength);
}
//<2F>رմ<D8B1><D5B4><EFBFBD>
void CCommMgr::Close()
{
m_Com.Close();
}
void CCommMgr::SetBufferSize(DWORD dwInputSize, DWORD dwOutputSize)
{
//m_Com.SetBufferSize(dwInputSize,dwOutputSize);
}
int CCommMgr::GetInputSize()
{
//gLogMgr->WriteDebugLog("BufferSize","",m_Com.GetInputSize());
return 0;
}