基于Modbus通信协议的串口通信程序


基于Modbus通信协议的串口通信程序。通过串口和单片机通信。程序主要分为串口类,Modbus类,和主界面操作类,有详细的注释。类封装的很好,可重用。
资源截图
代码片段和文件信息
// CxSkinButton.cpp : implementation file
/** 15/03/2001 v1.00
 * first release (c) davide pizzolato
 ** 29/03/2001 v1.10
 * - mouse tracking (thanks to Milan(dot)Gardian(at)LEIBINGER(dot)com)
 ** 02/04/2001 v1.20
 * - new CreateRgnFromBitmap
 ** 14/04/2001 v1.21
 * - onmouseleave cast fixed
 * - Over bitmap consistency check
 ** 25/04/2001 v1.30
 * - ExtCreateRegion replacement (thanks to Fable(at)aramszu(dot)net)
 ** 24/06/2001 v1.40
 * - check & radio button add on
 * - added “focus“ bitmap
 * - fixed CreateRgnFromBitmap bug
 * - fixed shortcut bug
 ** 27/10/2001 v1.41
 * - fixed memory leakage in CreateRgnFromBitmap
 ** 07/07/2008 v1.50
 * - fixed memory leaks using Selectobject and GetDC (thanks to sachelis and Bernd Giesen)
 * - added SetToolTipColor (thanks to Mykel)
 */

#include “stdafx.h“
#include “xSkinButton.h“

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CxSkinButton
CxSkinButton::CxSkinButton()
{
m_DrawMode=1; // normal drawing mode
m_FocusRectMargin=0; // disable focus dotted rect
hClipRgn=NULL; // no clipping region
m_TextColor=GetSysColor(COLOR_BTNTEXT); // default button text color
m_button_down = m_tracking = m_Checked = false;
}
/////////////////////////////////////////////////////////////////////////////
CxSkinButton::~CxSkinButton()
{
if (hClipRgn) Deleteobject(hClipRgn); // free clip region
}
/////////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CxSkinButton CButton)
//{{AFX_MSG_MAP(CxSkinButton)
ON_WM_ERASEBKGND()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONDBLCLK()
ON_WM_KILLFOCUS()
//ON_CONTROL_REFLECT_EX(BN_CLICKED onclicked)
ON_WM_KEYDOWN()
//}}AFX_MSG_MAP
    ON_MESSAGE(WM_MOUSELEAVE onmouseleave)
ON_MESSAGE(WM_CXSHADE_RADIO  OnRadioInfo)
ON_MESSAGE(BM_SETCHECK  OnBMSetCheck)
ON_MESSAGE(BM_GETCHECK  OnBMGetCheck)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CxSkinButton message handlers
/////////////////////////////////////////////////////////////////////////////
void CxSkinButton::PreSubclassWindow() 
{
m_style=GetButtonstyle(); ///get specific BS_ styles
if ((m_style & BS_AUTOCHECKBOX)==BS_AUTOCHECKBOX)
// ||((m_style & BS_CHECKBOX)==BS_CHECKBOX))
m_style=BS_CHECKBOX;
else if ((m_style & BS_AUTORADIOBUTTON)==BS_AUTORADIOBUTTON)
// ||((m_style & BS_RADIOBUTTON)==BS_RADIOBUTTON))
m_style=BS_RADIOBUTTON;
else { m_style=BS_PUSHBUTTON; }

CButton::PreSubclassWindow();
Modifystyle(0 BS_OWNERDRAW);
}
/////////////////////////////////////////////////////////////////////////////
BOOL CxSkinButton::OnEraseBkgnd(CDC* pDC) 
{ return 1; } // doesn‘t erase the button background
/////////////////////////////////////////////////////////////////////////////

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-08-24 21:52  Modbus
     目录           0  2012-07-26 09:52  ModbusButton
     文件        5850  2012-06-13 13:09  ModbusButton1.bmp
     文件        5850  2012-06-13 13:09  ModbusButton2.bmp
     文件        5850  2012-06-13 13:09  ModbusButton3.bmp
     文件        5850  2012-06-13 13:09  ModbusButton4.bmp
     文件        5850  2012-06-13 13:09  ModbusButton5.bmp
     文件       10752  2012-06-13 13:09  ModbusButtonThumbs.db
     文件       27062  2012-06-13 13:09  ModbusButtonxSkinButton.cpp
     文件        3695  2012-06-13 13:09  ModbusButtonxSkinButton.h
     目录           0  2012-07-26 09:52  ModbusModbus_Test
     目录           0  2013-08-24 21:51  ModbusModbus_TestDebug
     文件      480578  2013-08-24 21:51  ModbusModbus_TestDebugCL.read.1.tlog
     文件       32160  2013-08-24 21:51  ModbusModbus_TestDebugCL.write.1.tlog
     文件       15751  2013-08-24 21:51  ModbusModbus_TestDebugModbus.obj
     文件        3988  2012-06-13 13:09  ModbusModbus_TestDebugModbus_Test.Build.CppClean.log
     文件         667  2012-06-13 13:09  ModbusModbus_TestDebugModbus_Test.exe.embed.manifest
     文件         732  2013-08-24 21:51  ModbusModbus_TestDebugModbus_Test.exe.embed.manifest.res
     文件         381  2013-08-24 21:51  ModbusModbus_TestDebugModbus_Test.exe.intermediate.manifest
     文件          58  2013-08-24 21:51  ModbusModbus_TestDebugModbus_Test.lastbuildstate
     文件       20637  2013-08-24 21:51  ModbusModbus_TestDebugModbus_Test.log
     文件       26157  2013-08-24 21:51  ModbusModbus_TestDebugModbus_Test.obj
     文件    33882112  2013-08-24 21:51  ModbusModbus_TestDebugModbus_Test.pch
     文件       99984  2013-08-24 21:51  ModbusModbus_TestDebugModbus_Test.res
     文件       79135  2013-08-24 21:51  ModbusModbus_TestDebugModbus_TestDlg.obj
     文件         212  2012-06-13 13:09  ModbusModbus_TestDebugModbus_Test_manifest.rc
     文件       36978  2013-08-24 21:51  ModbusModbus_TestDebugSerialPort.obj
     文件       36106  2013-08-24 21:51  ModbusModbus_TestDebugcl.command.1.tlog
     文件           2  2013-08-24 21:51  ModbusModbus_TestDebuglink-cvtres.read.1.tlog
     文件           2  2013-08-24 21:51  ModbusModbus_TestDebuglink-cvtres.write.1.tlog
     文件           2  2013-08-24 21:51  ModbusModbus_TestDebuglink.2852-cvtres.read.1.tlog
............此处省略55个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)