// 定义了与网络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-网络配置协议相关推荐

  1. Netconf网络配置协议讲解

    目录 什么是Netconf 为什么要提出Netconf 数据的类别 传统网络配置协议 Netconf配置协议 Netconf协议架构 安全传输层 消息层 操作层 内容层 Netconf配置设备流程 通 ...

  2. oracle db-link 分布式数据库网络配置协议错误,Oracle学习(18)【DBA向】:分布式数据库...

    数据物理上被存放在网络的多个节点上,逻辑上是一个整体. 分布式数据库的独立性 l分布数据的独立性指用户不必关心数据如何分割和存储,只需关心他需要什么数据. Oracle分布式RDBMS 本地操作 远程 ...

  3. netconf 网络配置协议 简介

    一.背景 有的人早上不起床刷手机,有的人起床之后再卫生间刷手机,有的人在上班的地铁上刷手机,有的人在下班之后的班车上刷手机,有的人在晚上不睡觉刷手机.这其中有许多离不开技术,其中有一个技术就是网络. ...

  4. SNMP简单网络配置协议

    作用:可以实现对不同种类和不同厂商的网络设备进行统一管理,大大提升了网络管理的效率 监控网络设备运行状态 SNMP具有三个版本: V1:实现方便,安全性弱 V2:提供简单认证功能,有一定的安全性. 现 ...

  5. Telnet,命令级别,DHCP (动态主机配置协议),DHCP租期, 地址池,全局配置,接口配置,DHCP中继代理,网络三要素,路由项匹配算法

    Telnet Tcp协议 自带mac 缺少ip 手动配置ip 客户端配置: System-view //进入系统模式 interface GigabitEthernet 0/0/0 //进入端口 ip ...

  6. 玩转“网上邻居”之网络配置(二)

    接上篇 二.混合系统网络 目前实际应用中单一系统的对等网络已不是主流,主要是由于这种网络性能较低,缺乏很好看安全及网络管理能力.目前在各企事业单位中普遍应用的还是基于多系统的域结构混合网络.但因目前主 ...

  7. linux中的网络配置

    Linux中的网络配置 1 什么是IP ADDRESS 2 子网掩码 3 ip通信判定 4 网络设定工具 4.1 设置双网卡 4.2 ping命令 4.3 ifconfig命令 4.4 ip addr ...

  8. 网络配置——Linux入门到精通的难关之一

    Linux学习的重中之重--网络配置 1.基础知识 1.1--网络配置基础 Linux具有强大的网络功能,它提供了许多完善的网络工具,可以帮助用户轻松完成各种复杂的网络配置,实现各种需要的网络服务. ...

  9. 《VMware Virtual SAN权威指南(原书第2版)》一3.4 VSAN网络配置之vSphere分布式交换机...

    3.4 VSAN网络配置之vSphere分布式交换机 VSAN要使用VDS,需要配置一个分布式端口组来承载VSAN流量.创建分布式端口组后,就可以在独立的ESXi主机上创建VMkernel接口来使用这 ...

  10. Centos的网络配置命令和文件

    一.ifcongfig Centos6之前最常用的配置网络命令就是ifconfig,使用ifconfig命令时最好切换到root用户的身份 1.直接使用ifconfig可以查看当前配置的网络设备的信息 ...

最新文章

  1. 机器学习-学习资源整理
  2. IOS 关于ipad iphone5s崩溃 解决
  3. 2018-2019-2 20165209 《网络对抗技术》Exp3:免杀原理与实践
  4. hdu 1269 tarjan求强连通分量
  5. boost 安装_Win10 + VS2019 编译安装 Boost
  6. 第二课--C语言基础(3部分--共三部分)
  7. 理解 position:relative 与 position:absolute
  8. 0909操作系统初感
  9. 如何在linux安装gcc,如何在Linux安装gcc
  10. 图书借阅与图书管理系统的设计与实现,源码+论文。
  11. gg修改器修改数值没有用怎么办_gg修改器怎么用教学 gg修改器修改游戏方法介绍...
  12. 程序员的底层思维:逻辑思维
  13. 关于个人求职简历的一些见解
  14. 计算机电子极域控制,极域电子教室的反控制实现【无需教师端】
  15. linux pptpd源码,Centos 7 源码安装pptpd
  16. ios键盘弹起页面被顶上去的问题
  17. 一,java虚拟机概述(什么是java虚拟机,为什么会产生java虚拟机,java虚拟机解决了什么问题)
  18. 三星android获取root权限,三星i9000 Android 2.3.3获取root权限教程
  19. [好久没有看到这么真切的文章了]在怀疑的时代依然需要信仰
  20. 抖音短视频实操:如何写出爆款标题(下)爆款标题的五种形式

热门文章

  1. micorpython固件DIY
  2. SSCI(社会科学引文索引)介绍
  3. 超弦理论是如何解决相对论和量子力学之间的冲突?
  4. 【Deeplearning】暗影精灵3安装Windows10+Ubuntu18.04双系统及CUDA10.0配置
  5. 打印机驱动程序中GDI、ps、pcl5和pcl6驱动的特点区别
  6. pcl for android
  7. 选型宝访谈:移动互联网时代,报销费控系统如何为企业降本增效?
  8. MSBuild 命令的简单使用
  9. vue点击事件下载音频(浏览器)(幼儿园理解级别)
  10. 宫崎步 brave heart 歌词加谐音