⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commconst.h

📁 串口通讯在客户端/服务器类型的应用程序设计中经常要使用到
💻 H
字号:
#ifndef COMMCONST_H
#define COMMCONST_H

#define FrameFlag 0x12
#define RCC_VERSION 0
#define SendBufferMaxLength 16*1024 //发送缓冲区最大值,为16K,今后改为变量
#define ReceiveBufferMaxLength 16*1024
#define DataBufferMaxLength 16*1024
#define MaxBytesPerBlock 2048

typedef struct 
{
	BYTE Flag;		//标志
	BYTE Version:4;	//版本号
	BYTE Kind:4; 	//帧类别
    BYTE CheckSum;	//帧头检查和
	BYTE FrameNo; 	//帧号
	WORD Length;	//数据长度
	WORD Reserved;	//保留
}RCCFrameHead;	//CRC帧头格式
typedef RCCFrameHead RCCMsgFrame; //RCC消息帧格式

#define HeaderSize sizeof(RCCFrameHead)

typedef struct 
{
	RCCFrameHead Header; //帧头
	WORD Crc;		//数据区CRC校验
	char Data[MaxBytesPerBlock];	//数据区
}RCCDataFrame;  //RCC数据帧格式
typedef RCCDataFrame FrameAnalysisBuffer;

#define MODE_RS232 0 
#define MODE_MODEM 1
/*
RCC_CONNECT通知消息告知应用程序底层链路已经建立好,可以发送和接收数据;RCC_READ告知应用程序RCC底层接收到数据;
RCC_WRITE告知应用程序RCC底层数据发送完毕,应用程序可以继续发送剩余数据;
RCC_CLOSE 告知应用程序RCC底层链路已经正常或异常断开;
RCC_ERROR 告知应用程序在通讯时发生通讯错误
*/

#define WM_RCCNOTIFY		WM_USER+2005
#define RCC_CONNECT			1
#define RCC_READ 			2
#define RCC_WRITE			3
#define RCC_CLOSE			4
#define RCC_ERROR			5
#define RCC_RAWWRITE        6 //原始数据发送
#define RCC_RAWREAD         7 //原始数据读取
#define RCC_BIN_STATE       8 //二进制状态
#define RCC_STR_STATE       9 //字符型状态//由MODEM返回的

#define RCC_STAT_INIT		1 //初始化状态
#define RCC_STAT_COMM		2 //通讯状态
#define RCC_STAT_DATA		3 //发送数据状态
#define RCC_STAT_POLLING 	4 //检测状态
#define RCC_STAT_ABORT		5 //中断状态

#define RCC_ERROR_SUCCESS 	0 //处理成功
#define RCC_ERROR_INIT		1 //初始化错误
#define RCC_ERROR_SYNC      2 //同步错误
#define RCC_ERROR_ALREADY_OPEN 3 //串行口已经打开
#define RCC_ERROR_COMMNO     4 //串行口号不正确
#define RCC_ERROR_OPEN       5 //串行口打开失败
#define RCC_ERROR_INVALID_COMM 6 //指定的设备不是COMM设备
#define RCC_ERROR_SET_BUFFER 7 //不能设备COMM设备的接收缓冲区
#define RCC_ERROR_CREATE_CLOSE_EVENT 8 //不能创建关闭事件
#define RCC_ERROR_CREATE_THREAD 9 //创建线程错误
#define RCC_ERROR_NOCONNECT  11   //未连接
#define RCC_ERROR_INVAL  12 //参数错误
#define RCC_ERROR_OVERFLOW 13 //接收缓冲区溢出
#define RCC_ERROR_VERSION 14 //对方版本不对
#define RCC_ERROR_FRAMETYPE 15 //错误的帧头型
#define RCC_ERROR_FRAME      16 //帧内部错误
#define RCC_ERROR_UNKOWN   255 //WIN95/NT未知系统错误

#define frmData				0  //数据帧
#define frmZippedData		1  //压缩数据帧
#define frmDataAnswer       2  //数据应答帧
#define frmPolling          3  //检测帧
#define frmPlAnswer         4  //检测应答帧
#define frmAbort            5  //异常中止帧
#define frmSysError         6  //系统错误帧

#define frmMin              0  //最小帧序号
#define frmMax              6  //最大帧序号

//MODEM返回状态
#define MDM_NONE    0x00000000L
#define MDM_OK		0x00000001L
#define MDM_DCD     0x00000002L
#define MDM_CMDERR  0x00000004L
#define MDM_NOTONE  0x00000008L
#define MDM_BUSY    0x00000010L
#define MDM_NOANSW  0x00000020L
#define MDM_RING    0x00000040L
#define MDM_CONN    0x00000080L
#define MDM_PROT    0x00000100L
#define MDM_COMP    0x00000200L
#define MDM_CARRIER 0x00000400L
#define MDM_UNKOWN  0x80000000L

#define MDMAnswerNum 11

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -