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

📄 main_pro.h

📁 C语言源代码及相关资料
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef		__MAIN_PRO_H
#define		__MAIN_PRO_H

#if	PROTOCOL_MAIN_EN>0
/************************************************************************************************
*
********************4 IP协议格式
*
***********************************************************************************************/
 //应答标志,00:不需要应答,01:需要应答
#define  	MAIN_UNANSWER_FLAG		0X00
#define 	MAIN_ANSWER_FLAG			0X01


//#define		MAXSIZE		20


//////////////////////////ftp////////////////////////////////////////////////////
typedef	struct
{
	char	Ftp_UserName[40];//ftp用户名 <40
	char	Ftp_UserPWD[40];//ftp密码	<40
	char	DirFile_Name[200];//升级文件的目录及文件名	<200
	//char	DirFile_Len[10];//升级文件的长度
}FTPCMDINFO;
typedef struct
{
    char *	CmdName;       // FTP命令字        
    char *	CmdPara;       // FTP命令参数            
}FTPCMD;


typedef struct
{
	unsigned char     UpDataEn;   //
	unsigned short    FormLen;    //  版本长度
	unsigned short    WriteLen;   //  已经写入FLASH的长度
	unsigned short    StAddr;     //  版本在EEPROM的起始地址 
	unsigned char     FormState;  //  升级成功状态  
}TEMPDAT;
/////////////////////////ftp/////////////////////////////////////////////////////////////////



/******************4.1 主协议格式	***********************************************************
*************不包括信息内容长度为17
********************************************************************************************/

typedef struct
{
  INT16U   		ipDataLength	;//消息的总长度(字节数),从第一个字节到最后一个字节。
  INT8U			protocolVersion;  //协议版本号   版本号为2
  INT8U     	answerFlag;     //应答标志  本条消息是否需要应答。00:不需要应答01:需要应答
  INT8U			terminalID[7];		  //定位终端ID  终端的唯一编号(BCD码,高字节在前)
  INT16U		serverID;		//控制源ID    控制源的唯一编号
  INT16U		commandNumber;	//命令序号	   从0开始循环累加注:分包(按协议)发送的数据,命令序号需累加
  INT16U		commandID;		//命令ID       第一个字节表示命令ID类别,第二字节表示命令编号。
  void		*	pDataContext;  	//不定长   ,信息内容
}STRU_IPMainData;
typedef	STRU_IPMainData		IPMAINDATA;

/******************4.2 SMS协议格式	***********************************************************
*********************采用SMS作为通信方式时,采用PDU 8位编码方式。  ****
**************在每条SMS消息中加4字节SMS封装字对IP协议进行封装*******
************不包括IP消息内容,长度为4,IP消息,最长136字节.SMS长度最大为140
********************************************************************************************/
typedef	struct
{
	 INT16U			commandNumber;        //同主协议格式中的命令序号
	 INT8U			segment_Cou;				 //总段数,该包共分为几段
	 INT8U			segment_ID;				 //分段数,本包是第几段
	 INT8U	*		pIPDataSegent;			//	IP消息,最长136字节 .IP消息数据段
} STRU_SMSData_Segment;



/*********************************************************************************
*************************基本协议4.3.1 下行数据格式命令代码************************/
typedef	enum
{
	D_srvAnswerComm			=	0x0001,	//4.3.1.1 中心命令应答(命令ID:0001H)	14
	D_gotoComm		 		=	0x0002,	//4.3.1.2 定位指令(命令ID:0002H)	15
	D_traceComm	 			=	0x0003,	//4.3.1.3 追踪指令(命令ID:0003H)	15
	D_setupComm	 			=	0x0004,	//4.3.1.4 设定参数(命令ID:0004H)	15
	D_unAlarmComm	 		=	0x0005,	//4.3.1.5 解除报警(命令ID:0005H)	21
	D_repPegMenuComm		=	0x0006,	//4.3.1.6 修改固定菜单(命令ID:0006H)	21
	D_downTextInfoComm		=	0x0007,	//4.3.1.7 下发文本调度信息(命令ID:0007H)	22
	D_downMenuInfoComm		=	0x0008,	//4.3.1.8 下发带菜单的调度信息(命令ID:0008H)	22
	D_setupTelNumComm 		=	0x0009,	//4.3.1.9 设定固定通话号码(命令ID:0009H)	22
	D_talkRequestComm		=	0x000A,	//4.3.1.10 通话请求指令(命令ID:000AH)	23
	D_updFirmwareComm		=	0x000B,	//4.3.1.11 升级固件指令(命令ID:000BH)	23
	D_paramQueryComm		=	0x000C,	//4.3.1.12 参数查询指令(命令ID:000CH)	24
	D_remoteCtrlComm		=	0x000D,	//4.3.1.13 远程控制(命令ID:000DH)	24
	D_setTlkLmtStaComm		=	0x000E,	//4.3.1.14 设置通话限制状态(命令ID:000EH)	25
	D_cfgSrvParmsComm		=	0x000F,	//4.3.1.15 配置中心服务器通讯参数指令(命令ID:000FH)	25
	D_activeComm			=	0x0010	//4.3.1.16 激活定位终端指令(命令ID:0010H)	26

}ENUM_BASECOMMID_DOWN;
typedef  ENUM_BASECOMMID_DOWN		EN_BASECOMMID_DOWN;

//4.3.1.1 中心命令应答(命令ID:0001H)回复定位终端主动上报的信息
typedef	struct
{
	INT16U   	term_CommNum; //需要应答的那条命令序号
	INT16U		term_CommID;   //定位终端上发指令的ID
	INT8U		exec_Result_Flag;	// 0:成功       1:失败
}STRU_D_Term2SrvRtn_Comm;
//4.3.1.2 定位指令(命令ID:0002H)
//信息内容为空,该指令默认无需定位终端应答,定位终端收到该指令后立即上传一条位置信息。

//4.3.1.3 追踪指令(命令ID:0003H)	15
typedef	struct
{
	INT8U		communi_Mode;		//通信方式。0:IP方式。1:SMS方式。
	INT16U		acc_In_Timeslot;	//ACC开时间间隔,单位:秒,最小为0,默认为0秒
	INT16U		acc_Out_Timeslot;	//ACC关时间间隔
	INT16U		distance_Slot;		//距离间隔,单位:米,最小为0,默认为0,最大为65535米
} STRU_D_Trace_Comm;

//4.3.1.4 设定参数(命令ID:0004H)	15
typedef	struct
{
	INT16U		param_ID;			//参数ID
	INT8U		paramValue_Len;	//参数值长度
	INT8U	  *	pParam_Value;		//参数值

}SetupParam_Item;  //设置参数体



//4.3.1.5 解除报警(命令ID:0005H)	21
//信息内容为空。中心在收到定位终端的报警信息之后,可通过下发次指令解除车台紧急报警状态。此指令默认需定位终端返回命令应答。

//4.3.1.6 修改固定菜单(命令ID:0006H)
typedef 	struct
{
	INT8U 		menu_ID; 		//菜单ID号。大于0
	INT8U		prev_Menu_ID; 	//如果当前菜单是根菜单,这里就填0。
	INT8U		menu_Info_Len;	//取值范围:1-40
	INT8U	 *	pMenu_Info;  	//小于40个字节,内容为空格时,可以允许车载终端输入内容
	//最多可设置128个固定菜单,此指令默认需定位终端返回命令应答。
}RepPegMenu_Item;
typedef	RepPegMenu_Item	STRU_D_RepPegMenu_Comm	;
//4.3.1.7 下发文本调度信息(命令ID:0007H)	22
typedef	struct
{
	 INT8U	*	pTextInfo;//文字信息,长度 <200
	 //此指令默认需定位终端返回命令应答。
}STRU_D_DownTextInfo_Comm;

//4.3.1.8 下发带菜单的调度信息(命令ID:0008H)	22
typedef	struct
{
 INT16U		info_Seq_ID; 	//这条信息的序列号,用户返回的时候会返回这个序列号
 INT8U   	menuInfo_Len;	//信息长度,取值范围0~199.
 INT8U 	*	pMenuInfo;	//文字信息,长度  <200
 //此指令默认需定位终端返回命令应答。定位终端收到该指令后,司机可选择一个候选答案反馈给中心。
 INT8U		answ_Seq_ID;	// 这条答案的序列号,用户返回的时候会返回这个序列号
 INT8U		answ_Info_Len;	// 1个字节
 INT8U	*	pAnsw_Info; 	// 长度小于40个字节,内容为空格时,可以允许车载终端输入内容

}STRU_D_DownMenuInfo_Comm;

//4.3.1.9 设定固定通话号码(命令ID:0009H)	22
	//此指令默认需定位终端返回命令应答。
typedef	struct
{
	INT8U		restrict_Status;// 0x00:允许呼入,允许呼出.0x01:允许呼入,禁止呼出.0x02:允许呼出,禁止呼入.0x03:禁止呼入, 禁止呼出
	INT8U		owner_Name[8];	 //该电话所有者姓名.长度为8个字节
	INT8U	 	telNum_Len;     //1个字节
	INT8U	*	pTelNum;	 //采用ASCII码表示

}SetupTelNum_Item;


//4.3.1.10 通话请求指令(命令ID:000AH)	23
//该指令默认需定位终端应答,应答完成后定位终端立即拨打要求的通话号码,该通话号码不受设定固定通话号码指令的限制。
typedef	struct
{

⌨️ 快捷键说明

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