?? 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 + -