modbus上位机测试源码。。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 17328 2004-02-08 14:52 vc testjkModbusCDTCS.RC
文件 10158 2004-06-01 14:55 vc testjkModbusComControl.cpp
文件 1921 2004-06-01 15:26 vc testjkModbusComControl.h
文件 5697 2004-06-01 15:08 vc testjkModbusCRCClass.cpp
文件 1544 2004-06-01 15:19 vc testjkModbusCRCClass.h
文件 26813 2006-02-26 12:26 vc testjkModbusDebugComControl.obj
文件 0 2006-02-26 12:26 vc testjkModbusDebugComControl.sbr
文件 10113 2006-02-26 12:26 vc testjkModbusDebugCRCClass.obj
文件 0 2006-02-26 12:26 vc testjkModbusDebugCRCClass.sbr
文件 20390 2006-02-26 12:26 vc testjkModbusDebugDlgComSet.obj
文件 0 2006-02-26 12:26 vc testjkModbusDebugDlgComSet.sbr
文件 3138560 2006-02-26 12:26 vc testjkModbusDebugjkModbus.bsc
文件 2121838 2006-02-26 12:26 vc testjkModbusDebugjkModbus.exe
文件 2500432 2006-02-26 12:26 vc testjkModbusDebugjkModbus.ilk
文件 14427 2006-02-26 12:26 vc testjkModbusDebugjkModbus.obj
文件 6842740 2006-02-26 12:26 vc testjkModbusDebugjkModbus.pch
文件 3548160 2006-02-26 12:26 vc testjkModbusDebugjkModbus.pdb
文件 4244 2006-02-26 12:26 vc testjkModbusDebugjkModbus.res
文件 0 2006-02-26 12:26 vc testjkModbusDebugjkModbus.sbr
文件 72748 2006-02-26 12:26 vc testjkModbusDebugjkModbusDlg.obj
文件 0 2006-02-26 12:26 vc testjkModbusDebugjkModbusDlg.sbr
文件 106024 2006-02-26 12:26 vc testjkModbusDebugStdAfx.obj
文件 1363263 2006-02-26 12:26 vc testjkModbusDebugStdAfx.sbr
文件 214016 2006-09-03 15:24 vc testjkModbusDebugVC60.IDB
文件 364544 2006-02-26 12:26 vc testjkModbusDebugVC60.PDB
目录 0 2010-10-21 20:45 vc testjkModbusDebug
文件 2836 2004-05-28 14:24 vc testjkModbusDlgComSet.cpp
文件 1409 2004-02-08 16:18 vc testjkModbusDlgComSet.h
文件 24244 2006-09-03 15:24 vc testjkModbusjkModbus.aps
文件 3149 2006-09-03 15:24 vc testjkModbusjkModbus.clw
............此处省略23个文件信息
// ComControl.cpp
#include “StdAfx.h“
#include “ComControl.h“
#include “DlgComSet.h“
UINT ComThreadProc(LPVOID para)
{
CComControl* pCom = (CComControl*)para;
DWORD dwEventMask;
OVERLAPPED eov;
memset( &eov 0 sizeof( OVERLAPPED ) ) ;
eov.hEvent = CreateEvent( NULL // no security attributes
FALSE // auto reset event
FALSE // not signaled
NULL // no name
);
HANDLE hWaits[2];
DWORD dwWait;
hWaits[0] = eov.hEvent;
hWaits[1] = pCom->m_hExit;
while(true)
{
dwEventMask = 0;
WaitCommEvent(pCom->m_hCom &dwEventMask &eov);
dwWait = WaitForMultipleobjects(2 hWaits false INFINITE);
if(dwWait == WAIT_object_0+1)
break;
//EnterCriticalSection(&pCom->m_csWmThreshold);
pCom->ResetBytes();
if(dwEventMask & EV_ERR) // 线路错误CE_frame CE_OVERRUN and CE_RXPARITY.
{
SendMessage( pCom->m_hOwner WM_COM COM_ERR 0 );
}
if(dwEventMask & EV_TXEMPTY) // 输出缓冲区空
{
SendMessage( pCom->m_hOwner WM_COM COM_EMPTY 0 );
}
if( dwEventMask & EV_RXCHAR &&
// pCom->m_bCanInterrupt && //确认上一条消息已处理完
// pCom->m_nThresHold &&
pCom->m_cbInQue >= pCom->m_nThresHold // 输入缓冲区接收到一字符
)
{
pCom->m_bCanInterrupt = false;
SendMessage( pCom->m_hOwner WM_COMCOM_THRESHOLD0);
}
//LeaveCriticalSection(&pCom->m_csWmThreshold);
}
CloseHandle(eov.hEvent);
return true;
}
CComControl::CComControl(HWND hOwner)
{
m_hOwner = hOwner;
InitCom();
}
void CComControl::InitCom()
{
InitializeCriticalSection(&m_csWmThreshold);
memset( &m_ovRead 0 sizeof( OVERLAPPED ) ) ;
memset( &m_ovWrite 0 sizeof( OVERLAPPED ) ) ;
m_ovRead.hEvent = CreateEvent( NULL // no security
TRUE // explicit reset req;TRUE=人工重置;FASE=自动重置
FALSE // initial event reset;TRUE=已通知状态;FALSE=未通知状态
NULL // no name
);
m_ovWrite.hEvent = CreateEvent( NULL TRUE FALSE NULL ); // See above
m_nThresHold = 0;
m_bCanInterrupt = false;
m_hExit = CreateEvent(NULL false false NULL);
m_szPortName = “COM1“;
m_lBaudRate = 9600;
m_nParity = NOPARITY;
m_hCom = INVALID_HANDLE_VALUE;
m_cbInQue = 0;
m_cbOutQue = 0;
m_pThread = AfxBeginThread(ComThreadProc (LPVOID)thisTHREAD_PRIORITY_NORMAL 0 CREATE_SUSPENDED);
}
CComControl::~CComControl()
{
m_pThread->ResumeThread();
SetEvent(m_hExit);
WaitForSingleobject(m_pThread->m_hThread INFINITE);
m_pThread = NULL; //this ensure pCom->ClosePort work correct
ClosePort();
CloseHandle(m_ovRead.hEvent);
CloseHandle(m_ovWrite.hEvent);
CloseHandle(m_hExit);
DeleteCriticalSection(&m_csWmThreshold);
}
bool __fastcall CComControl::IsWindowsNT()
{
OSVERSIONINFO osv;
osv.dwOSVersionInfoSize = sizeof(osv);
GetVersionEx(&osv);
return (osv.dwPlatformId == VER_PLATFORM_WIN32_NT);
}
void CComControl::ResetByte
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 17328 2004-02-08 14:52 vc testjkModbusCDTCS.RC
文件 10158 2004-06-01 14:55 vc testjkModbusComControl.cpp
文件 1921 2004-06-01 15:26 vc testjkModbusComControl.h
文件 5697 2004-06-01 15:08 vc testjkModbusCRCClass.cpp
文件 1544 2004-06-01 15:19 vc testjkModbusCRCClass.h
文件 26813 2006-02-26 12:26 vc testjkModbusDebugComControl.obj
文件 0 2006-02-26 12:26 vc testjkModbusDebugComControl.sbr
文件 10113 2006-02-26 12:26 vc testjkModbusDebugCRCClass.obj
文件 0 2006-02-26 12:26 vc testjkModbusDebugCRCClass.sbr
文件 20390 2006-02-26 12:26 vc testjkModbusDebugDlgComSet.obj
文件 0 2006-02-26 12:26 vc testjkModbusDebugDlgComSet.sbr
文件 3138560 2006-02-26 12:26 vc testjkModbusDebugjkModbus.bsc
文件 2121838 2006-02-26 12:26 vc testjkModbusDebugjkModbus.exe
文件 2500432 2006-02-26 12:26 vc testjkModbusDebugjkModbus.ilk
文件 14427 2006-02-26 12:26 vc testjkModbusDebugjkModbus.obj
文件 6842740 2006-02-26 12:26 vc testjkModbusDebugjkModbus.pch
文件 3548160 2006-02-26 12:26 vc testjkModbusDebugjkModbus.pdb
文件 4244 2006-02-26 12:26 vc testjkModbusDebugjkModbus.res
文件 0 2006-02-26 12:26 vc testjkModbusDebugjkModbus.sbr
文件 72748 2006-02-26 12:26 vc testjkModbusDebugjkModbusDlg.obj
文件 0 2006-02-26 12:26 vc testjkModbusDebugjkModbusDlg.sbr
文件 106024 2006-02-26 12:26 vc testjkModbusDebugStdAfx.obj
文件 1363263 2006-02-26 12:26 vc testjkModbusDebugStdAfx.sbr
文件 214016 2006-09-03 15:24 vc testjkModbusDebugVC60.IDB
文件 364544 2006-02-26 12:26 vc testjkModbusDebugVC60.PDB
目录 0 2010-10-21 20:45 vc testjkModbusDebug
文件 2836 2004-05-28 14:24 vc testjkModbusDlgComSet.cpp
文件 1409 2004-02-08 16:18 vc testjkModbusDlgComSet.h
文件 24244 2006-09-03 15:24 vc testjkModbusjkModbus.aps
文件 3149 2006-09-03 15:24 vc testjkModbusjkModbus.clw
............此处省略23个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)