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
ch9121-网络配置协议相关推荐
- Netconf网络配置协议讲解
目录 什么是Netconf 为什么要提出Netconf 数据的类别 传统网络配置协议 Netconf配置协议 Netconf协议架构 安全传输层 消息层 操作层 内容层 Netconf配置设备流程 通 ...
- oracle db-link 分布式数据库网络配置协议错误,Oracle学习(18)【DBA向】:分布式数据库...
数据物理上被存放在网络的多个节点上,逻辑上是一个整体. 分布式数据库的独立性 l分布数据的独立性指用户不必关心数据如何分割和存储,只需关心他需要什么数据. Oracle分布式RDBMS 本地操作 远程 ...
- netconf 网络配置协议 简介
一.背景 有的人早上不起床刷手机,有的人起床之后再卫生间刷手机,有的人在上班的地铁上刷手机,有的人在下班之后的班车上刷手机,有的人在晚上不睡觉刷手机.这其中有许多离不开技术,其中有一个技术就是网络. ...
- SNMP简单网络配置协议
作用:可以实现对不同种类和不同厂商的网络设备进行统一管理,大大提升了网络管理的效率 监控网络设备运行状态 SNMP具有三个版本: V1:实现方便,安全性弱 V2:提供简单认证功能,有一定的安全性. 现 ...
- Telnet,命令级别,DHCP (动态主机配置协议),DHCP租期, 地址池,全局配置,接口配置,DHCP中继代理,网络三要素,路由项匹配算法
Telnet Tcp协议 自带mac 缺少ip 手动配置ip 客户端配置: System-view //进入系统模式 interface GigabitEthernet 0/0/0 //进入端口 ip ...
- 玩转“网上邻居”之网络配置(二)
接上篇 二.混合系统网络 目前实际应用中单一系统的对等网络已不是主流,主要是由于这种网络性能较低,缺乏很好看安全及网络管理能力.目前在各企事业单位中普遍应用的还是基于多系统的域结构混合网络.但因目前主 ...
- linux中的网络配置
Linux中的网络配置 1 什么是IP ADDRESS 2 子网掩码 3 ip通信判定 4 网络设定工具 4.1 设置双网卡 4.2 ping命令 4.3 ifconfig命令 4.4 ip addr ...
- 网络配置——Linux入门到精通的难关之一
Linux学习的重中之重--网络配置 1.基础知识 1.1--网络配置基础 Linux具有强大的网络功能,它提供了许多完善的网络工具,可以帮助用户轻松完成各种复杂的网络配置,实现各种需要的网络服务. ...
- 《VMware Virtual SAN权威指南(原书第2版)》一3.4 VSAN网络配置之vSphere分布式交换机...
3.4 VSAN网络配置之vSphere分布式交换机 VSAN要使用VDS,需要配置一个分布式端口组来承载VSAN流量.创建分布式端口组后,就可以在独立的ESXi主机上创建VMkernel接口来使用这 ...
- Centos的网络配置命令和文件
一.ifcongfig Centos6之前最常用的配置网络命令就是ifconfig,使用ifconfig命令时最好切换到root用户的身份 1.直接使用ifconfig可以查看当前配置的网络设备的信息 ...
最新文章
- 机器学习-学习资源整理
- IOS 关于ipad iphone5s崩溃 解决
- 2018-2019-2 20165209 《网络对抗技术》Exp3:免杀原理与实践
- hdu 1269 tarjan求强连通分量
- boost 安装_Win10 + VS2019 编译安装 Boost
- 第二课--C语言基础(3部分--共三部分)
- 理解 position:relative 与 position:absolute
- 0909操作系统初感
- 如何在linux安装gcc,如何在Linux安装gcc
- 图书借阅与图书管理系统的设计与实现,源码+论文。
- gg修改器修改数值没有用怎么办_gg修改器怎么用教学 gg修改器修改游戏方法介绍...
- 程序员的底层思维:逻辑思维
- 关于个人求职简历的一些见解
- 计算机电子极域控制,极域电子教室的反控制实现【无需教师端】
- linux pptpd源码,Centos 7 源码安装pptpd
- ios键盘弹起页面被顶上去的问题
- 一,java虚拟机概述(什么是java虚拟机,为什么会产生java虚拟机,java虚拟机解决了什么问题)
- 三星android获取root权限,三星i9000 Android 2.3.3获取root权限教程
- [好久没有看到这么真切的文章了]在怀疑的时代依然需要信仰
- 抖音短视频实操:如何写出爆款标题(下)爆款标题的五种形式