IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> ch9121-网络配置协议 -> 正文阅读

[网络协议]ch9121-网络配置协议

// 定义了与网络CH9121通信的基本数据结构,和配置结构,参数等

#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__

//变量类型定义
#define UCHAR? unsigned char
#define USHORT unsigned short
#define ULONG? unsigned long

#define NET_MODULE_DATA_LENGTH??? 255?? //与CH9121通信时数据区的最大长度

#define MODULE_CFG_LEN_NEW?? ( 74 + 65*2 )

//通信命令码
#define NET_MODULE_CMD_SET????? 0X01??? //配置网络中的CH9121
#define NET_MODULE_CMD_GET????? 0X02??? //获取某个CH9121的配置
#define NET_MODULE_CMD_RESET??? 0X03??? //获取某个CH9121的配置
#define NET_MODULE_CMD_SEARCH?? 0X04??? //搜索网络中的CH9121

//应答命令码
#define NET_MODULE_ACK_SET????? 0X81??? //回应配置命令码
#define NET_MODULE_ACK_GET????? 0X82??? //回应获取命令码
#define NET_MODULE_ACK_RESET??? 0X83??? //获取某个CH9121的配置
#define NET_MODULE_ACK_SEARCH?? 0X84??? //回应所搜命令码

//校验和错误时的应答命令码
#define NET_MODULE_NAK_SEARCH??? 0xC0??? //搜索校验错
#define NET_MODULE_NAK_SET?????? 0XC1??? //配置校验错
#define NET_MODULE_NAK_GET?????? 0XC2??? //获取校验错

#define CH9121_CFG_FLAG??????? "CH9121_CFG_FLAG"??? //用来标识通信


//网络通信结构体
typedef struct NET_COMM {
? unsigned char flag[16];???????????????????? //通信标识,因为都是用广播方式进行通信的,所以这里加一个固定值
? unsigned char cmd;????????????????????????? //命令头
? unsigned char id[6];??????????????????????? //CH9121MAC地址
? unsigned char pcid[6];????????????????????? //PC的MAC地址
? unsigned char len;????????????????????????? //数据区长度
? unsigned char data[NET_MODULE_DATA_LENGTH]; //数据区缓冲区
}net_comm,*pnet_comm;

//CH9121标识
#define? NET_MODULE_TYPE_TCP_S??? 0X00???????? //CH9121作为TCP SERVER
#define? NET_MODULE_TYPE_TCP_C??? 0X01???????? //CH9121作为TCP CLIENT
#define? NET_MODULE_TYPE_UDP_S??? 0X02???????? //CH9121作为UDP SERVER
#define NET_MODULE_TYPE_UDP_C???? 0X03???????? //CH9121作为UDP CLIENT

//校验位标识
#define NET_MODULE_VERIFY_NULL??? 0X04???????? //无校验
#define NET_MODULE_VERIFY_ODD???? 0X00???????? //奇校验
#define NET_MODULE_VERIFY_EVEN??? 0X01???????? //偶校验
#define NET_MODULE_VERIFY_MARK??? 0X02???????? //mark校验
#define NET_MODULE_VERIFY_SPACE?? 0X03???????? //space校验


/* 设备硬件信息结构体定义 */
#define CH9121_DEV_TYPE???????????? 0x30
#define CH9121_DEV_AUX_TYPE???????? 0x01
#define CH9121_DEV_HARDWARE_VER???? 0x02
#define CH9121_DEV_SOFTWARE_VER???? 0x02? ?

/* 子设备配置信息结构体定义 */

#define CH9121_DevType???????? 0x21
#define CH9121_AuxDevType????? 0x21
#define CH9121_DevbIndex?????? 0x01
#define CH9121_DevHardwareVer? 0x02
#define CH9121_SoftwareVer???? 0x02
#define CH9121_VER??? (((CH9121_DevHardwareVer<<4) & 0xF0) | (CH9121_SoftwareVer & 0x0f))

__packed typedef struct _DEVICEHW_CONFIG
{
? UCHAR? bDevType;??????????????? /* 设备类型,只读 */
? UCHAR? bAuxDevType;???????????? /* 设备子类型, 只读*/
? UCHAR? bIndex;????????????????? /* 设备序号, 只读*/
? UCHAR? bDevHardwareVer;???????? /* 设备硬件版本号,只读 */ ?
? UCHAR? bDevSoftwareVer;???????? /* 设备软件版本号,只读 */ ?
? UCHAR? szModulename[21];??????? /* 用户名同CH9121名*/
? UCHAR? bDevMAC[ 6 ];??????????? /* CH9121网络MAC地址 */ ?
? UCHAR? bDevIP[ 4 ];???????????? /* CH9121IP地址*/
? UCHAR? bDevGWIP[ 4 ];?????????? /* CH9121网关IP */
? UCHAR? bDevIPMask[ 4 ];???????? /* CH9121子网掩码 */
? UCHAR? bDhcpEnable;???????????? /* DHCP 使能,是否启用DHCP,1:启用,0:不启用*/
? USHORT breserved1;????????????? /* 预留暂未启用 */
? UCHAR? breserved2[8];?????????? /* 预留暂未启用*/
? UCHAR? breserved3;????????????? /* 预留暂未启用*/
? UCHAR? breserved4[8];?????????? /* 预留暂未启用*/
? UCHAR? breserved5;????????????? /* 预留暂未启用*/
? UCHAR? bComcfgEn;?????????????? /* 串口协商配置标志 1:启用 0:禁用*/
? UCHAR? breserved6[8];?????????? /* 预留暂未启用*/
}DeviceHWConfigS,*pDeviceHWConfigS;

__packed typedef struct _DEVICEPORT_CONFIG
{
? UCHAR? bIndex;?????????????????? /* 子设备序号,只读? */
? UCHAR? bPortEn;????????????????? /* 端口启用标志 1:启用 ;0:不启用 */
? UCHAR? bNetMode;???????????????? /* 网络工作模式: 0: TCP SERVER;1: TCP CLENT; 2: UDP SERVER 3:UDP CLIENT; */
? UCHAR? bRandSportFlag;?????????? /* TCP 客户端模式下随机本地端口号,1:随机 0: 不随机*/
? USHORT wNetPort;???????????????? /* 本地端口号 */ ?
? UCHAR? bDesIP[ 4 ];????????????? /* 目的IP地址 */
? USHORT wDesPort;???????????????? /* 目的端口号 */
? ULONG? dBaudRate;??????????????? /* 串口波特率: 300---921600bps */
? UCHAR? bDataSize;??????????????? /* 串口数据位: 5---8位 */ ?
? UCHAR? bStopBits;??????????????? /* 串口停止位: 0表示1个停止位; 1表示1.5个停止位; 2表示2个停止位 */ ?
? UCHAR? bParity;????????????????? /* 串口校验位: 4表示无校验,0表示奇校验; 1表示偶校验; 2表示标志位(MARK,置1); 3表示空白位(SPACE,清0);? */?? ?
? UCHAR? bPHYChangeHandle;???????? /* PHY断开,Socket动作,1:关闭Socket 0:不动作*/
? ULONG? dRxPktlength;???????????? /* 串口RX数据打包长度,最大1024 */
? ULONG? dRxPktTimeout;??????????? /* 串口RX数据打包转发的最大等待时间,单位为: 10ms,0则表示关闭超时功能 */
? UCHAR? bResv;??????????????????? /* 预留未启用*/ ?
? UCHAR? bResetCtrl;?????????????? /* 串口复位操作: 0表示不清空串口数据缓冲区; 1表示连接时清空串口数据缓冲区 */ ?
? UCHAR? bDNSFlag;???????????????? /* 域名功能启用标志,1:启用 0:不启用*/
? UCHAR? szDomainname[20];???????? /* TCP客户端模式下,目的地址,域名*/
? UCHAR? breserved[14];??????????? /* 保留*/
}DevicePortConfigS,*pDevicePortConfigS;


__packed typedef struct _NET_DEVICE_CONFIG
{? ?
? DeviceHWConfigS???? HWCfg;??????? /*网络参数结构体*/
? DevicePortConfigS?? PortCfg[2];?? /*透传通道参数*/
}NetDeviceConfigS,*pNetDeviceConfigS;

#endif

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-07 12:25:58  更:2021-08-07 12:27:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 7:54:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码