📄 parse.h
字号:
/***------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef __PARSE_H
#define __PARSE_H
/////////////////////////////////
//////////////////////////////////////////////
#define SMSLEN 140 //短消息内容长度
#define TRANSLEN 550 //GPRS 数据包内容长度
#define SMSINFOLEN 200 //短消息长度
#define TRANSINFOLEN 800 //GPRS数据包长度
#define GPRSINFOLEN 768 //GPRS数据包字节数,最大长度
#define SETUP_PARAMS_COUNT 49 //用到的设定参数的总数量
#define SETUP_PARAMS_DATASIZE 2048 //用到的设定参数的总空间大小
#define ASCII_PARAMS_COUNT 12 //用到的设定参数中参数值为ASCII码的总数量
#define WORK_PARAMS_COUNT 37 //用到的工作参数的总数量
#define WORK_PARAMS_DATASIZE 128 //用到的工作参数的总空间大小
#define CUSTOM_PARAMS_COUNT 22 //终端使用,无须上报,自定义参数的总数量
#define CUSTOM_PARAMS_DATASIZE 1280 //用到的自定义参数的总空间大小
#define ALARMID_COUNT 11 //告警量的总数量
#define SETUP_PARAMS_SEC 5//1 //设定参数存放的起始扇区号
#define WORK_PARAMS_SEC 6//2 //工作参数存放的起始扇区号
#define CUSTOM_PARAMS_SEC 9//3 //终端自用,无须上传,自定义参数存放的起始扇区号
#define MILEAGE_ACC_SEC 8//4 //存储里程数及ACC开关状态的起始扇区号
#define MILEAGE_ACC_SEC_END 8//4 //存储里程数及ACC开关状态的结束扇区号
#define FTP_SEC2 1020 ////ftp success
#define FTP_SEC 1021 ////enter ftp flag sec
//typedef INT8U BUFF[TRANSLEN] ;
#define FREE(p) free(p);p=NULL
extern GPS_DATA_TYPE GPS_DATA;
/************************************************************************************/
/**/ /// <summary> /// 参数与对应值存放的FLASH地址偏移量 ///数组对应关系,方便存取 /// </summary>
/************************************************************************************/
extern const INT16U SETUP_PARAMS[];
extern const uint16 ASCII_Params[];
extern const INT16U WORK_PARAMS[];
extern const INT16U CUSTOM_PARAMS[];
extern INT8U ALARM_ID_STATUS[];
/***********************************************************************
**函数功能:根据对象标号得到存储长度及存储地址偏移量
**Oid: 对象标号
**Olen: 对象数据长度
**Omove: 对象存储地址偏移量
**************************************************************************/
extern uint8 GetOmoveAddr(const uint16 * params,const uint16 params_Cou,uint16 Oid,uint16 * Olen,uint16 * Omove);
/***********************************************************************
**函数功能:
**alarmID: 告警项代码
**返回值: 告警项的索引
**************************************************************************/
extern INT8U GetAlarmID_Index(uint8 alarmID);
/***********************************************************************
**函数功能:根据对象标号,存储的参数值,得到实际存储ASCII码值长度
**************************************************************************/
extern INT8U GetParamVal_ASCII(uint16 param_ID,uint8 * buff,uint32 * paramValue_Len);
//////////////////////////////////////////////////////////////////////
/*********************************************************************
**函数功能:CRC校验
**len:源字符数组长度
**str:源字符数组
**CRC:返回CRC校验值,类型为INT16U
**********************************************************************/
extern INT16U getCrc(INT8U * str,INT8U len);
/*********************************************************************
**函数功能:合并两个字符为一个字符
**strDest:目的字符数组
**str:源字符数组
**len:源字符数组长度
**j:返回值 ,目的字符数组的长度
**********************************************************************/
extern INT16U getHexStr(INT8U *strDest,INT8U * str,INT16U len);
/*********************************************************************
**函数功能:拆分一个字节为两个字节
**strDest:目的字符数组
**str:源字符数组
**len:源字符数组长度
**j:返回值 ,目的字符数组的长度
**********************************************************************/
extern INT16U getAStr(INT8U *strDest,INT8U *str,INT16U len);
/*********************************************************************
**函数功能:删除源字符数组中,指定位置开始的指定数量的字符,
**strDest:目的字符数组
**str:源字符数组
**len:源字符数组长度
**start:指定的开始位置
**count:指定的长度
**j:返回值 ,目的字符数组的长度
*********************************************************************/
extern INT16U strSplit(INT8U * strDest,INT8U * str,INT8U len,INT8U start,INT8U count,INT8U *split);
/*********************************************************************
**函数功能:进行CRC校验,并将校验结果放到目的字符数组后
**strDest:目的字符数组
**str:源字符数组
**len:源字符数组长度
**j:目的字符数组长度
**********************************************************************/
extern INT8U strCRC(INT8U * strDest,INT8U * str,INT8U len,INT16U * crc_val);
/*********************************************************************
**函数功能:进行CRC校验,并将校验结果放到目的字符数组后
**strDest:目的字符数组
**str:源字符数组
**len:源字符数组长度
**j:目的字符数组长度
**********************************************************************/
extern INT8U strCRC_trans(INT8U * strDest,INT8U * str,INT8U len,INT16U * crc_val);
/*********************************************************************
**函数功能:转义处理
**strDest:目的字符数组
**str:源字符数组
**len:源字符数组长度
**j:返回值 ,目的字符数组的长度
**********************************************************************/
extern INT8U Revert_trans(INT8U *strDest,INT8U *str,INT8U len);
/*********************************************************************
**函数功能:反转义处理
**strDest:目的字符数组
**str:源字符数组
**len:源字符数组长度
**j:返回值 ,目的字符数组的长度
**********************************************************************/
extern INT8U unRevert_trans(INT8U *strDest,INT8U *str,INT8U len);
//////////////////////////////////////////////////////////////////////
#endif
/************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -