📄 main_pro.h
字号:
#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 + -