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

📄 serial.h

📁 自己项目组开发的自组网传输中串口通信程序
💻 H
📖 第 1 页 / 共 2 页
字号:
/*命令类型*/
/*参数配置部分*/
/*宏定义*/
#ifndef SERIALH
#define SERIALH

#define ParaSystemWorkMode          0x01
/*工作模式定义*/
//-------------------------------------------
#define PacketMode                      0x00
#define PoolMode                        0x01
#define PTPDataMode                     0x02
//----------------------------------------------

#define ParaEncodeMode        	    0x02
/*编码速率*/
//---------------------------------------------
#define BP600                          0x00
#define BP1200                         0x01
#define BP2400                         0x02
#define BP4800                         0x03
#define BP9600                         0x04

//---------------------------------------------
#define ParaUserID		    0x03
#define ParaNetConfigPara	    0x04
#define ParaNetActiveNode           0x05
#define PreDefineNetNode            0x05
#define ParaPreDefineRouteTable     0x06
#define ParaLocalNodeRouteTable	    0x07
/*设置路由方式*/
#define ParaRouteWorkMode           0x08
//--------------------------------------------
#define Dynamic                     0x00
#define Static                      0x01
//-------------------------------------------
#define PreDefineTDMAPara           0x09
#define ParaLocalNodeMACPara        0x0A
/*信道接入方式*/
#define ParaNetMacMode              0x0B
//---------------------------------------------
#define NoChannel                   0x00
#define CSMA                        0x01
#define TDMA                        0x02

//------------------------------------------------
#define ParaRadioID                 0x0C
#define QueryLocalNodeList          0x0D
#define GateUserID                  0x0E
#define NetParaFileConfig           0x0F
#define ReturnMTU                   0x10
#define PhyWaitSendPktNum           0x11

/*分组传输部分*/
#define OnePTPModeFrameDataSend     0x55
#define VoiceSignalData             0x56  //单路有线信令的传输
#define SendIDToPCCommand           0x62  //SendIDToPCCommand
#define SendAckIDToPCCommand        0x63  //SendAckIDToPCCommand,SendNotRecvAckIDToPCCommand
#define SendNotRecvAckIDToPCCommand 0x64
#define ControlRadio                0x82
#define CancelControlRadio          0x83

/*控制命令部分*/
#define SendRouteADV                0x71
#define Logout			    0x72
#define CloseDebugInfo              0x73
#define GateNodeReportLocalNodeLost 0x74
/* 告警信息定义*/
#define SendSerialStringCommand     0xcc
#define SendEmergencyInfo           0x90
#define RadioState                  0xcd
/*网络层数据结构的定义*/
#define SendPcNetRecvDataToDebug    0xA0
#define SendPcNetSendDataToDebug    0xA1

#define C0CHAR		0xc0
#define DBCHAR		0xdb
#define DCCHAR   	0xdc
#define DDCHAR		0xdd
#define MAX_LENGTH      500
typedef unsigned char  UINT8;    /* Unsigned  8 bit quantity                           */
typedef unsigned short UINT16;   /* Unsigned 16 bit quantity                           */
typedef float          FP32;     /* Single precision floating point                    */
typedef double         FP64;     /* Double precision floating point                    */

#define __packed
#pragma pack(1)
/****************系统工作模式*************************/
typedef __packed struct {
	UINT8 WorkMode;                        //0-无线分组网模式1-点对点论询模式2-点对点数传模式
}WorkMode_OutStruct;
/********************系统信道编码速率模式**************************/
typedef __packed struct {
	UINT8 SpeedMode;                     //0-600BPS(分组无线网模式下不使用)//1-1200BPS2-2400BPS3-4800BPS4-9600BPS
}SpeedMode_OutStruct;
/********************本机节点地址************************/
typedef __packed struct {
	UINT8 IP[4];
}LocalIP_OutStruct;
/***********************网络协议参数***************************/
typedef __packed struct {
	UINT8 RouteADVINt;                     /*路由公告时间间隔*/
	UINT8 WAckTime;                        /*等待确认时间间隔*/
	UINT8 MaxRetransTimes;                /*请求分组重传次数*/
	UINT8 MaxReqTimes;                     /*源路由分组重传次数*/
}NetworkPara_OutStruct;
/************************预置本网有效的节点地址*****************/
typedef __packed struct {
	UINT8 NodeNum;                        /*节点数目*/
	__packed struct {
		UINT8 IPaddr[4];	      /*节点地址*/
	}IP[32];
}PreValidNode_OutStruct;
/*************************预置全网拓扑结构信息*****************/
typedef __packed struct {
	UINT8 NodeNum;                        /*节点数目*/
	UINT8 EageInfor[496];                 /*边的信息 32个节点 32×31/2=496个字节*/
}PreNetworkTopo_OutStruct ;
/*********************设置路由方式****************************/
typedef __packed struct {
	UINT8 routemode;                      /*0-动态,1-静态*/
}RouteMode_OutStruct;
/***********************预置本网所有节点的MAC层时隙分配方案*************/
typedef __packed struct {
	UINT8 SendPktNum;                     /*一个时隙可以发送的分组个数*/
	UINT8 EncodeSpeed;                   /*最低限度的编码速率*/
	UINT8 ActiveSlotNum;                 /*有效的时隙个数*/
	UINT8 NumofUser;                    /*用户数*/
	__packed struct {
	UINT8 NodeIP[4];                   /*节点IP地址*/
	UINT8 SoltNum;                      /*节点的时隙个数*/
	UINT8 HoldSlot[16];                /*所拥有的时隙*/
	}MacSlotAssiagn[32];
}PreMacTimeSlot_OutStruct;
/*******************信道接入方式*******************************/
typedef __packed struct {
	UINT8 MacMode;                 /*信道接入方式*/
}ChannelMode_OutStruct;
/***********************本网网关节点地址*********************/
typedef __packed struct {
	UINT8 GatewayIP[4];          /*网关节点IP*/
}GatewayIP_OutStruct;
/************网络参数配置加注*******************************/
typedef __packed struct {
	UINT8 LocalNodeIP[4];  /*本节点地址*/
	UINT8 GateWayIP[4];    /*预先配置的网关节点*/
	UINT8 LocalNodeNum;   /*预先配置的节点个数*/
	 __packed struct{
	UINT8 NodeIP[4];
	}LocalNodeList[32];
	UINT8 OneSlotSendPktNum;
	UINT8 ActiveSlotNum;
	UINT8 TDMACanPermitEncodeMode;
	UINT8 FramSlotAssianSchene[32];
	UINT8 NetworkMode;
	UINT8 LasedTimeUsedID0;
	UINT8 LasedTimeUsedID1;
	UINT8 EncodeMode;
	UINT8 WAckTime;
	UINT8 RouteADVInt;
	UINT8 MaxReqTimes;
	UINT8 MaxRetransTimes;
	UINT8 RouteWorkMode;
	UINT8 MacMode;
	UINT8 RoutingTable[496];
}NetworkInfuse_OutStruct;
/********************主动发起路由*******************************/
typedef __packed struct {
	char   Command;
	UINT8  AutoRoute;
}SendRoute_OutStruct;
/**************主动退网注销************************************/
typedef __packed struct {
	char   Command;
	UINT8  AutoExit;
}SendExit_OutStruct;
/*********************调试信息显示开/关**********************/
typedef __packed struct {
	UINT8 Debug;
}SendDebuginf_OutStruct;
/**********************网关节点强制命令某个节点退网**********/
typedef __packed struct {
	UINT8 IPaddr[4];
	UINT8 ExitType;
}SendForceExit_OutStruct;
/*****************设置电台*********************************/
typedef __packed struct {
	UINT8 NumofWork;    /*工作方式号*/
	UINT8 NumofChannel; /*信道号*/
	UINT8 NumofPower;    /*功率号*/	
}SendRadioStation_OutStruct;
/********************取消电台设置**********************************/
typedef __packed struct {
	char   Command;
	UINT8  StationCancle;
}SendCancleStaton_OutStruct;
/*************DTE->PRU的命令 设置命令*******************/

typedef __packed struct {
    	char 	Command;		                                                  //指令
	UINT8	Length;				                                          //长度
	__packed union {
		WorkMode_OutStruct            SetWorkMode;                                 //设置系统工作模式
		SpeedMode_OutStruct           SetSpeedMode;                                //系统信道编码速率模式
		LocalIP_OutStruct             SetLocalIP;                                  //本机节点地址
		NetworkPara_OutStruct         SetNetworkPara;                              //网络协议参数
		PreValidNode_OutStruct        SetPreValidNode;                             //预置本网有效的节点地址
		PreNetworkTopo_OutStruct      SetNetwork;                                  //预置全网拓扑结构信息
		RouteMode_OutStruct           SetRouteMode;                                //设置路由方式
		PreMacTimeSlot_OutStruct      SetTimeSlot;                                 //预置本网所有节点的MAC层时隙分配方案
		ChannelMode_OutStruct         SetChannelMode;                               //信道接入方式
		GatewayIP_OutStruct           SetGatewayIP;                                 //本网网关节点地址
		NetworkInfuse_OutStruct       SetNetworkInfuse;                             //网络参数配置加注
		SendDebuginf_OutStruct       SendDebugOpen;                                //调试信息显示开/关
		SendForceExit_OutStruct       SendForceExit;                                 //网关节点强制命令某个节点退网
		SendRadioStation_OutStruct    SendRadioStation;                              //设置电台
	} Data;
} DTE_OutData; 
/***************DTE->PRU发送 查询命令*******************/
typedef __packed struct {
        char 	Command;		                                       //指令
	UINT8	CommandAdd;				                       //固定为0x00
} Query_OutData;
/***********************IP数据*****************************/
/**********************************************************/
#define IPVer  0x45
/***********服务类型*******************************/

#define CommLevel      0x00
#define FirstLevel     0x20
#define UrgencyLevel   0x40
#define BrodcastLevel  0x80
#define PktTTL        0xff
#define Protype       0x64
#define Checksum      0x00
typedef __packed struct {
	UINT8 IpVersion;
	UINT8  PktServiceType;
	UINT8  len0;       /*0*/
	UINT8  Len;
	UINT8  PktAppID0;
	UINT8  PktAppID1;
	UINT8 PktAppID2;
	UINT8  PktAppID3;
	UINT8  TTL;
	UINT8  ProtocolType;
	UINT8  Checksum0;
	UINT8  Checksum1;
	UINT8   Src[4];
	UINT8   Dst[4];
        UINT8   Privacy[5];
	UINT8  Data[1024];

⌨️ 快捷键说明

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