工控串口通讯设计的源码

 

#ifndef _EASYCOMM_H
#define _EASYCOMM_H

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <windows.h>
#include <commctrl.h>
#include <tchar.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef enum{
NC_COMMBREAK = 110,
NC_COMMERROR = 111,
NC_COMMMONITOR = 112,
NC_COMMACK = 113,
NC_COMMRECIVE = 114,
NC_COMMSENT = 115
}NotifyCode;

typedef struct tagNMHDR_COMM{
HWND hwndFrom;
    UINT idFrom;
    UINT code;
LPARAM lParam;
WPARAM wParam;
}NMHDR_COMM;

#define WM_COMMMSG    WM_USER + 10

#define COMMCTRLCLASS   _T("CommCtrl")
ATOM RegisterCommCtrlClass(HINSTANCE hInstance);

#define COM_SETPORT    WM_COMMMSG + 150
#define COM_GETPORT    WM_COMMMSG + 151
#define COM_SETBAUDRATE   WM_COMMMSG + 152
#define COM_GETBAUDRATE   WM_COMMMSG + 153
#define COM_SETBYTESIZE   WM_COMMMSG + 154
#define COM_GETBYTESIZE   WM_COMMMSG + 155
#define COM_SETSTOPBITS   WM_COMMMSG + 156
#define COM_GETSTOPBITS   WM_COMMMSG + 157
#define COM_SETPARITY   WM_COMMMSG + 158
#define COM_GETPARITY   WM_COMMMSG + 159
#define COM_SETFCTRL   WM_COMMMSG + 160
#define COM_GETFCTRL   WM_COMMMSG + 161
#define COM_SETTIMEOUTS   WM_COMMMSG + 162
#define COM_GETTIMEOUTS   WM_COMMMSG + 163
#define COM_SETACKCHAR   WM_COMMMSG + 164
#define COM_GETACKCHAR   WM_COMMMSG + 165
#define COM_SETLISTIMER   WM_COMMMSG + 166
#define COM_GETLISTIMER   WM_COMMMSG + 167
#define COM_SETACTIVE   WM_COMMMSG + 168
#define COM_GETACTIVE   WM_COMMMSG + 169
#define COM_SETDATA    WM_COMMMSG + 170
#define COM_GETDATA    WM_COMMMSG + 171
#define COM_SETQUEUE   WM_COMMMSG + 172
#define COM_POSTERROR   WM_COMMMSG + 175
#define COM_POSTRECIVE   WM_COMMMSG + 176
#define COM_POSTSENT   WM_COMMMSG + 177
#define COM_POSTBREAK   WM_COMMMSG + 178
#define COM_POSTACK    WM_COMMMSG + 179
#define COM_POSTMONITOR   WM_COMMMSG + 180
#define COM_QUERYSEND   WM_COMMMSG + 181

#define PY_NONE     0 /*无奇偶校验*/
#define PY_EVEN     1 /*偶校验*/
#define PY_ODD     2 /*奇校验*/
#define PY_MARK     3
#define PY_SPACE    4

#define STOPBITS_ONE   1 /*1位停止位*/
#define STOPBITS_TWO   2 /*2位停止位*/
#define STOPBITS_ONEHALF 3 /*1.5停止位*/

#define FLOWCTRL_NONE   0 /*无流控制*/
#define FLOWCTRL_HARD   1 /*硬件控制*/
#define FLOWCTRL_SOFT   2 /*软件控制*/

#define CE_PARAM    -1

#define READ_SUCCESS   0
#define READ_TIMEOUTS   1
#define WRITE_SUCCESS   0
#define WRITE_TIMEOUTS   1

/*端口状态*/
typedef struct _CommMonitor{
BOOL bRLSDHold;
BOOL bCTSHold;
BOOL bDSRHold;
BOOL bXOFFHold;
BOOL bXOFFSent;
int nInQueue;
int nOutQueue;
}CommMonitor;

#ifdef _CHS
#define ERROR_PARAM    _T("参数错误")
#define ERROR_BREAK    _T("硬件中断")
#define ERROR_FRAME    _T("硬件幀错误")
#define ERROR_IOE    _T("通讯I/O错误")
#define ERROR_OVERRUM   _T("数据丢失")
#define ERROR_RXOVER   _T("输入缓冲区溢出")
#define ERROR_RXPARITY   _T("硬件校验错误")
#define ERROR_TXFULL   _T("输出缓冲区溢出")
#define ERROR_UNKNOWN   _T("其他错误")
#else
#define ERROR_PARAM    _T("The parameter setup error")
#define ERROR_BREAK    _T("The hardware detected a break condition.")
#define ERROR_FRAME    _T("The hardware detected a framing error.")
#define ERROR_IOE    _T("An I/O error occurred during communications with the device.")
#define ERROR_OVERRUN   _T("A character-buffer overrun has occurred. The next character is lost.")
#define ERROR_RXOVER   _T("An input buffer overflow has occurred. There is either no room in the input buffer, or a character was received after the end-of-file (EOF) character.")
#define ERROR_RXPARITY   _T("The hardware detected a parity error.")
#define ERROR_TXFULL   _T("The application tried to transmit a character, but the output buffer was full.")
#define ERROR_UNKNOWN   _T("Other error occurred")
#endif

extern void InitCommControl(HINSTANCE hInstance);
extern void UnInitCommControl(HINSTANCE hInstance);

#ifdef __cplusplus
}
#endif

#endif

/*************************************************************
EasySoft easycomm v2.0

(c) 2001-2004 EasySoft Corporation. All Rights Reserved.

@doc easycomm.rtf

@module easycomm.c | easycomm impliment file

@devnote jdzwq 2003.01 - 2004.10
*************************************************************/

#include "easycomm.h"

typedef struct tagCommDelta{
HWND hWnd;
BOOL bActive;   /*侦听标志*/
BOOL bReady;   /*串口可写标志*/
HANDLE hListen;   /*侦听线程句柄*/
DWORD dwListen;   /*侦听线程ID*/
OVERLAPPED ovListen; /*用于侦听的重叠操作结构*/
HANDLE hCom;   /*端口句柄*/
CRITICAL_SECTION cs; /* 同步临界区*/
short nFlowCtrl; /*流控制模式*/
short nAckChar;   /*回应字符*/
short nParity;   /*校验方式*/
short nStopBits; /*停止位*/
short nByteSize; /*位长*/
short nReadTimeoutPerByte; /*读每字节超时参数*/
short nWriteTimeoutPerByte; /*写每字节超时参数*/
long nListenTimeout;   /*侦听超时*/
long nBaudRate;   /*波特率*/
long nInQueue;   /*输入缓冲区大小*/
long nOutQueue;   /*输出缓冲区大小*/
TCHAR szPort[10]; /*端口*/
}CommDelta;

/*定义线程操作结构*/
typedef

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC工控雕刻机源码是指使用MFC技术开发的一种工控雕刻机的软件代码。MFC全称为Microsoft Foundation Class Library(微软基础类库),是一种为Windows操作系统开发程序的应用程序框架。工控雕刻机是一种用于雕刻加工的数控设备,可以根据预先编程的指令来进行自动化的雕刻作业。 MFC工控雕刻机源码通常包含了用户界面设计、设备控制、数据处理等部分。用户界面设计是实现雕刻机的可视化操作界面,包括按钮、菜单、文本框等控件的布局和交互逻辑。设备控制是指通过程序控制雕刻机的各个部件,如电机、刀具等。数据处理则负责接收和处理用户输入的雕刻指令,以及对加工过程中产生的数据进行分析和处理。 MFC工控雕刻机源码的编写需要具备一定的编程经验和相关知识。开发人员需要熟悉MFC框架的使用,了解工控设备的原理和工作方式,具备良好的逻辑思维能力和问题解决能力。在编写源码的过程中,还需要进行不断的测试和调试,确保软件的稳定性和功能完整性。 通过使用MFC工控雕刻机源码,可以实现雕刻机的自动化控制和精确加工,提高生产效率和产品质量。此外,源码的开放性还可以为二次开发和功能扩展提供便利,满足不同用户的特定需求。 综上所述,MFC工控雕刻机源码是一种基于MFC技术开发的工控雕刻机软件代码,用于实现雕刻机的自动化控制和精确加工。通过编写和使用源码,可以为用户提供更加便捷和高效的雕刻机操作体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值