#include "gprs_protocol_api.h"
|
#include "string.h"
|
#include "rtc.h"
|
#include "sundry.h"
|
#include "stdlib.h"
|
#include "billing.h"
|
#include "system_parameter.h"
|
|
GPRS_SUCC_TEST_T gprs_test_g = {0};//230531
|
|
static ErrorStatus set_result_g = ERROR;
|
|
GPRS_PROTOCOL_HEAD_TAIL_T gprs_protocol_head_tail_g = {
|
{PROTOCOL_START_CODE, 0, 0, 0, 0, 0, 0, 0, 0, PROTOCOL_START_CODE, PROTOCOL_CMD_UP_U8_H | PROTOCOL_CMD_INITIATIVE_SEND_U8_L, 0},
|
{0, 0, 0, 0, 0, 0, PROTOCOL_VERSION, PROTOCOL_NORMAL_SEND_CMD_U16, 0, 0, KEY_VERSION},
|
{0, PROTOCOL_END_CODE},
|
{0}};
|
|
GPRS_PROTOCOL_ALARM_HEAD_T gprs_protocol_alarm_head_tail_g = {
|
{PROTOCOL_START_CODE, 0, 0, 0, 0, 0, 0, 0, 0, PROTOCOL_START_CODE, PROTOCOL_CMD_UP_U8_H | PROTOCOL_CMD_INITIATIVE_SEND_U8_L, 0},
|
{0, 0, 0, 0, 0, 0, PROTOCOL_VERSION, PROTOCOL_NORMAL_SEND_CMD_U16, 0, 0, KEY_VERSION},
|
{0, PROTOCOL_END_CODE}};
|
|
|
GPRS_PROTOCOL_NORMAL_DATA_PACK_T gprs_protocol_normal_data_pack_g;
|
GPRS_PROTOCOL_PARA_T gprs_protocol_para_g;
|
GPRS_PROTOCOL_ALARM_ID_PACK_T gprs_protocol_alarm_id_pack_g;
|
|
static const GPRS_PROTOCOL_SEND_FUNC_TABLE_DRV_T gprs_protocol_send_tab_func[] = {
|
{PROTOCOL_NORMAL_SEND_CMD, Gprs_Protocol_SendNormalDataHandler},
|
{PROTOCOL_SET_TIME_CMD_BACK, Gprs_Protocol_SendSetTimeResultHandler}};
|
|
static const GPRS_PROTOCOL_RECV_FUNC_TABLE_DRV_T gprs_protocol_recv_tab_func[] = {
|
{PROTOCOL_NORMAL_SEND_CMD_U16, Gprs_Protocol_RecvNormalDataHandler},
|
{PROTOCOL_END_CMD_U16, Gprs_Protocol_RecvEndHandler},
|
{PROTOCOL_SET_TIME_CMD_U16, Gprs_Protocol_RecvSetTimeHandler}};
|
|
uint16_t Gprs_Protocol_DataLength(uint8_t send_type, GPRS_PROTOCOL_ENCRYPT_PARA *gprs_protocol_encrypt_para_p)
|
{
|
switch (send_type)
|
{
|
case PROTOCOL_NORMAL_SEND_CMD:
|
gprs_protocol_encrypt_para_p->plaintext_length = PROTOCOL_NORMAL_DATA_HEAD_LENGTH + PROTOCOL_NORMAL_DATA_PACK_LENGTH;
|
break;
|
case PROTOCOL_SET_TIME_CMD_BACK:
|
gprs_protocol_encrypt_para_p->plaintext_length = PROTOCOL_SET_CMD_DATA_BACK_LENGTH;
|
break;
|
case PROTOCOL_ALARM_SEND_CMD:
|
gprs_protocol_encrypt_para_p->plaintext_length = sizeof(GPRS_PROTOCOL_ALARM_ID_PACK_T);
|
break;
|
default:
|
break;
|
}
|
gprs_protocol_encrypt_para_p->padding_total_length = PKCS5Padding_like(&gprs_protocol_encrypt_para_p->padding_length, gprs_protocol_encrypt_para_p->plaintext_length);
|
return PROTOCOL_HEAD_LENGTH + PROTOCOL_DATA_FIELD_HEAD_LENGTH + PROTOCOL_TAIL_LENGTH + gprs_protocol_encrypt_para_p->padding_total_length;
|
}
|
|
|
|
/************************************** Send Data **************************************************************/
|
/************************************** Send Data **************************************************************/
|
/************************************** Send Data **************************************************************/
|
|
void Gprs_Protocol_SendSetTimeResultHandler(uint8_t *pData, GPRS_PROTOCOL_HEAD_TAIL_T *gprs_protocol_head_tail_p)
|
{
|
/*¹¹ÔìÖ¡Í·¿ØÖÆÂë*/
|
gprs_protocol_head_tail_p->gprs_protocol_head.cmd_code_u8 = (PROTOCOL_CMD_UP_U8_H | PROTOCOL_CMD_WRITE_U8_L);
|
gprs_protocol_head_tail_p->gprs_protocol_data_field_head.cmd_code_u16 = PROTOCOL_SET_TIME_CMD_U16;
|
/*¹¹ÔìÊý¾ÝÓò³¤¶È*/
|
gprs_protocol_head_tail_p->gprs_protocol_head.data_field_length = PROTOCOL_DATA_FIELD_HEAD_LENGTH + gprs_protocol_encrypt_para_g.padding_total_length;
|
/*¹¹ÔìÊý¾Ý°üÊý¾Ý*/
|
pData[0] = set_result_g;
|
}
|
|
void Create_Send_NormalDataPack(GPRS_PROTOCOL_NORMAL_DATA_PACK_T *gprs_protocol_normal_data_pack_p)
|
{
|
volatile int32_t temp_data = 0;
|
gprs_protocol_normal_data_pack_p->sample_time[0] = calendar_g.year & 0xFF;
|
gprs_protocol_normal_data_pack_p->sample_time[1] = calendar_g.month;
|
gprs_protocol_normal_data_pack_p->sample_time[2] = calendar_g.day;
|
gprs_protocol_normal_data_pack_p->sample_time[3] = calendar_g.hour;
|
gprs_protocol_normal_data_pack_p->sample_time[4] = calendar_g.minute;
|
gprs_protocol_normal_data_pack_p->sample_time[5] = calendar_g.second;
|
gprs_test_g.gprs_send_succ_cnt++;
|
|
temp_data = billing_real_para_g.balance_now;
|
gprs_protocol_normal_data_pack_p->balance_dec = /*(billing_real_para_g.balance_now - temp_data) * 10000*/0;
|
gprs_protocol_normal_data_pack_p->balance_int = /*temp_data*/gprs_test_g.gprs_start_cnt;
|
|
temp_data = sys_realtime_data_g.measure_para_s.forward_cumulate_sc;
|
gprs_protocol_normal_data_pack_p->gas_use_total_dec = /*(sys_realtime_data_g.measure_para_s.forward_cumulate_sc - temp_data) * 10000*/0;
|
gprs_protocol_normal_data_pack_p->gas_use_total_int = /*temp_data*/gprs_test_g.gprs_send_succ_cnt;
|
|
gprs_protocol_normal_data_pack_p->fee_use_total_dec = 0;
|
gprs_protocol_normal_data_pack_p->fee_use_total_int = /*0*/gprs_test_g.gprs_time_cnt;
|
|
gprs_protocol_normal_data_pack_p->sc_cumulate_dec = /*gprs_protocol_normal_data_pack_p->gas_use_total_dec*/0;
|
gprs_protocol_normal_data_pack_p->sc_cumulate_int = /*gprs_protocol_normal_data_pack_p->gas_use_total_int*/gprs_test_g.gprs_recv_cnt;
|
|
temp_data = sys_realtime_data_g.measure_para_s.forward_cumulate_wc;
|
gprs_protocol_normal_data_pack_p->wc_cumulate_dec = /*(sys_realtime_data_g.measure_para_s.forward_cumulate_wc - temp_data) * 10000*/0;
|
gprs_protocol_normal_data_pack_p->wc_cumulate_int = /*temp_data*/gprs_test_g.gprs_iccid_cnt;
|
|
temp_data = sys_realtime_data_g.measure_para_s.instant_sc;
|
gprs_protocol_normal_data_pack_p->sc_instant_dec = /*(sys_realtime_data_g.measure_para_s.instant_sc - temp_data) * 10000*/0;
|
gprs_protocol_normal_data_pack_p->sc_instant_int = /*temp_data*/gprs_test_g.gprs_imei_cnt;
|
|
temp_data = sys_realtime_data_g.measure_para_s.instant_wc;
|
gprs_protocol_normal_data_pack_p->wc_instant_dec = /*(sys_realtime_data_g.measure_para_s.instant_wc - temp_data) * 10000*/0;
|
gprs_protocol_normal_data_pack_p->wc_instant_int = /*temp_data*/gprs_test_g.gprs_csq_cnt;
|
|
gprs_protocol_normal_data_pack_p->temperature = /*sys_realtime_data_g.measure_para_s.temperature*/gprs_test_g.gprs_call_cnt;
|
gprs_protocol_normal_data_pack_p->pressure = /*sys_realtime_data_g.measure_para_s.pressure*/gprs_test_g.gprs_tcp_cnt;
|
|
gprs_protocol_normal_data_pack_p->lith_vcc_dec = /*sys_realtime_data_g.state_para_s.lith_vcc % 10 * 10*/0;
|
gprs_protocol_normal_data_pack_p->lith_vcc_int = /*sys_realtime_data_g.state_para_s.lith_vcc / 10*/gprs_test_g.gprs_len_cnt;
|
|
gprs_protocol_normal_data_pack_p->alka_vcc_dec = sys_realtime_data_g.state_para_s.alka_vcc % 10 * 10;
|
gprs_protocol_normal_data_pack_p->alka_vcc_int = sys_realtime_data_g.state_para_s.alka_vcc / 10;
|
|
}
|
|
void Gprs_Protocol_SendNormalDataHandler(uint8_t *pData, GPRS_PROTOCOL_HEAD_TAIL_T *gprs_protocol_head_tail_p)
|
{
|
/*¹¹ÔìÖ¡Í·¿ØÖÆÂë*/
|
gprs_protocol_head_tail_p->gprs_protocol_head.cmd_code_u8 = (PROTOCOL_CMD_UP_U8_H | PROTOCOL_CMD_INITIATIVE_SEND_U8_L);
|
gprs_protocol_head_tail_p->gprs_protocol_data_field_head.cmd_code_u16 = PROTOCOL_NORMAL_SEND_CMD_U16;
|
/*¹¹ÔìÊý¾ÝÓò³¤¶È*/
|
gprs_protocol_head_tail_p->gprs_protocol_head.data_field_length = PROTOCOL_DATA_FIELD_HEAD_LENGTH + gprs_protocol_encrypt_para_g.padding_total_length;
|
|
/*¹¹ÔìÊý¾Ý°üÍ·*/
|
//gprs_protocol_head_tail_p->gprs_protocol_normal_data_head.sys_send_type = 2;
|
gprs_protocol_head_tail_p->gprs_protocol_normal_data_head.pwr_type = 1;
|
gprs_protocol_head_tail_p->gprs_protocol_normal_data_head.data_get_type = 2;
|
gprs_protocol_head_tail_p->gprs_protocol_normal_data_head.billing_type = 1;
|
gprs_protocol_head_tail_p->gprs_protocol_normal_data_head.use_state = 0;
|
gprs_protocol_head_tail_p->gprs_protocol_normal_data_head.net_info = 0;
|
gprs_protocol_head_tail_p->gprs_protocol_normal_data_head.valve_state = 1;
|
gprs_protocol_head_tail_p->gprs_protocol_normal_data_head.one_frame_num = 1;
|
/*¹¹ÔìÊý¾Ý°üÊý¾Ý*/
|
Create_Send_NormalDataPack(&gprs_protocol_normal_data_pack_g);
|
/*¿½±´Êý¾Ý°üÍ·¹Ì¶¨Êý¾Ý*/
|
memcpy(pData, &gprs_protocol_head_tail_p->gprs_protocol_normal_data_head, PROTOCOL_NORMAL_DATA_HEAD_LENGTH);
|
/*¿½±´Êý¾Ý¶¯Ì¬ÄÚÈÝÊý¾Ý*/
|
memcpy(&pData[PROTOCOL_NORMAL_DATA_HEAD_LENGTH], &gprs_protocol_normal_data_pack_g, PROTOCOL_NORMAL_DATA_PACK_LENGTH);
|
}
|
|
void Gprs_Protocol_SendAlarmPack(uint8_t *pSendData, GPRS_PROTOCOL_ALARM_HEAD_T *gprs_protocol_alarm_head_p)
|
{
|
uint8_t i = 0;
|
uint16_t checksum_length = 0;
|
/*¹¹ÔìÐÒé°üÍ·*/
|
gprs_protocol_alarm_head_p->gprs_protocol_head.device_num[0] = 0x04; //É豸±àºÅ
|
gprs_protocol_alarm_head_p->gprs_protocol_head.device_num[1] = 0x00;
|
gprs_protocol_alarm_head_p->gprs_protocol_head.device_num[2] = 0x00;
|
gprs_protocol_alarm_head_p->gprs_protocol_head.device_num[3] = 0x00;
|
gprs_protocol_alarm_head_p->gprs_protocol_head.device_num[4] = 0x00;
|
gprs_protocol_alarm_head_p->gprs_protocol_head.device_num[5] = 0x15;
|
gprs_protocol_alarm_head_p->gprs_protocol_head.device_num[6] = 0x08;
|
gprs_protocol_alarm_head_p->gprs_protocol_head.device_num[7] = 0x23;
|
|
gprs_protocol_alarm_head_p->gprs_protocol_data_field_head.device_time[0] = calendar_g.year & 0xFF; //ʱ¼ä
|
gprs_protocol_alarm_head_p->gprs_protocol_data_field_head.device_time[1] = calendar_g.month;
|
gprs_protocol_alarm_head_p->gprs_protocol_data_field_head.device_time[2] = calendar_g.day;
|
gprs_protocol_alarm_head_p->gprs_protocol_data_field_head.device_time[3] = calendar_g.hour;
|
gprs_protocol_alarm_head_p->gprs_protocol_data_field_head.device_time[4] = calendar_g.minute;
|
gprs_protocol_alarm_head_p->gprs_protocol_data_field_head.device_time[5] = calendar_g.second;
|
|
gprs_protocol_alarm_head_p->gprs_protocol_head.cmd_code_u8 = (PROTOCOL_CMD_UP_U8_H | PROTOCOL_CMD_INITIATIVE_SEND_U8_L); //¿ØÖÆÂë
|
gprs_protocol_alarm_head_p->gprs_protocol_data_field_head.cmd_code_u16 = PROTOCOL_ALARM_CMD_U16; //ÃüÁî±êʶ
|
gprs_protocol_alarm_head_p->gprs_protocol_head.data_field_length = PROTOCOL_DATA_FIELD_HEAD_LENGTH + gprs_protocol_encrypt_para_g.padding_total_length; //Êý¾Ý³¤¶È
|
|
gprs_protocol_alarm_head_p->gprs_protocol_data_field_head.frame_num = 1;
|
gprs_protocol_alarm_head_p->gprs_protocol_data_field_head.frame_sum = 1;
|
|
gprs_protocol_alarm_id_pack_g.alarm_num = 1;
|
|
/*¿½±´Í·²¿¹Ì¶¨Êý¾ÝÖÁ·¢ËÍÊý×é*/
|
memcpy(pSendData, &gprs_protocol_alarm_head_p->gprs_protocol_head, PROTOCOL_HEAD_LENGTH); //¿½±´Êý¾ÝÖ¡Í·²¿Êý¾Ý
|
memcpy(&pSendData[PROTOCOL_HEAD_LENGTH], &gprs_protocol_alarm_head_p->gprs_protocol_data_field_head, PROTOCOL_DATA_FIELD_HEAD_LENGTH);//¿½±´Êý¾ÝÓò
|
memcpy(&pSendData[PROTOCOL_HEAD_LENGTH + PROTOCOL_DATA_FIELD_HEAD_LENGTH], &gprs_protocol_alarm_id_pack_g, sizeof(GPRS_PROTOCOL_ALARM_ID_PACK_T));
|
Gprs_Send_Data_Aes128_Ecb_Encrypt_Padding(&pSendData[PROTOCOL_HEAD_LENGTH + PROTOCOL_DATA_FIELD_HEAD_LENGTH], &gprs_protocol_encrypt_para_g);//¼ÓÃÜÊý¾Ý
|
|
/*ºÍУÑé*/
|
checksum_length = PROTOCOL_HEAD_LENGTH + PROTOCOL_DATA_FIELD_HEAD_LENGTH + gprs_protocol_encrypt_para_g.padding_total_length;
|
gprs_protocol_alarm_head_p->gprs_protocol_tail.checksum = 0;
|
for (i = 0; i < checksum_length; i++)
|
gprs_protocol_alarm_head_p->gprs_protocol_tail.checksum += pSendData[i];
|
/*¿½±´Î²²¿¹Ì¶¨Êý¾ÝÖÁ·¢ËÍÊý×é*/
|
memcpy(&pSendData[PROTOCOL_HEAD_LENGTH + PROTOCOL_DATA_FIELD_HEAD_LENGTH + gprs_protocol_encrypt_para_g.padding_total_length], &gprs_protocol_alarm_head_p->gprs_protocol_tail, PROTOCOL_TAIL_LENGTH);
|
}
|
|
/*GPRSÐÒé·¢ËÍÊý¾ÝÅäÖÃ*/
|
void Gprs_Protocol_SendDataConfig(uint8_t send_type, uint8_t *pSendData, GPRS_PROTOCOL_HEAD_TAIL_T *gprs_protocol_head_tail_p)
|
{
|
uint8_t i = 0;
|
uint16_t checksum_length = 0;
|
/*¹¹ÔìÐÒé°üÍ·*/
|
gprs_protocol_head_tail_p->gprs_protocol_head.device_num[0] = 0x04; //É豸±àºÅ
|
gprs_protocol_head_tail_p->gprs_protocol_head.device_num[1] = 0x00;
|
gprs_protocol_head_tail_p->gprs_protocol_head.device_num[2] = 0x00;
|
gprs_protocol_head_tail_p->gprs_protocol_head.device_num[3] = 0x00;
|
gprs_protocol_head_tail_p->gprs_protocol_head.device_num[4] = 0x00;
|
gprs_protocol_head_tail_p->gprs_protocol_head.device_num[5] = 0x15;
|
gprs_protocol_head_tail_p->gprs_protocol_head.device_num[6] = 0x08;
|
gprs_protocol_head_tail_p->gprs_protocol_head.device_num[7] = 0x23;
|
|
gprs_protocol_head_tail_p->gprs_protocol_data_field_head.device_time[0] = calendar_g.year & 0xFF; //ʱ¼ä
|
gprs_protocol_head_tail_p->gprs_protocol_data_field_head.device_time[1] = calendar_g.month;
|
gprs_protocol_head_tail_p->gprs_protocol_data_field_head.device_time[2] = calendar_g.day;
|
gprs_protocol_head_tail_p->gprs_protocol_data_field_head.device_time[3] = calendar_g.hour;
|
gprs_protocol_head_tail_p->gprs_protocol_data_field_head.device_time[4] = calendar_g.minute;
|
gprs_protocol_head_tail_p->gprs_protocol_data_field_head.device_time[5] = calendar_g.second;
|
|
gprs_protocol_head_tail_p->gprs_protocol_data_field_head.frame_num = 1;
|
gprs_protocol_head_tail_p->gprs_protocol_data_field_head.frame_sum = 1;
|
|
/*Ñ¡Ôñ·¢ËÍÊý¾ÝÖ¡ÀàÐÍ*/
|
for (i = 0; i < GPRS_PROTOCOL_SEND_FUNC_TABLE_NUM; i++)
|
{
|
/*²é±í*/
|
if (gprs_protocol_send_tab_func[i].gprs_protocol_cmd_table == send_type && gprs_protocol_send_tab_func[i].GprsProtocolSendFuncHandler != NULL)
|
{
|
gprs_protocol_send_tab_func[i].GprsProtocolSendFuncHandler(&pSendData[PROTOCOL_HEAD_LENGTH + PROTOCOL_DATA_FIELD_HEAD_LENGTH], gprs_protocol_head_tail_p);
|
Gprs_Send_Data_Aes128_Ecb_Encrypt_Padding(&pSendData[PROTOCOL_HEAD_LENGTH + PROTOCOL_DATA_FIELD_HEAD_LENGTH], &gprs_protocol_encrypt_para_g); //Ìî³äºÍ¼ÓÃÜ
|
break;
|
}
|
}
|
/*¿½±´Í·²¿¹Ì¶¨Êý¾ÝÖÁ·¢ËÍÊý×é*/
|
memcpy(pSendData, &gprs_protocol_head_tail_p->gprs_protocol_head, PROTOCOL_HEAD_LENGTH + PROTOCOL_DATA_FIELD_HEAD_LENGTH); //¿½±´Êý¾ÝÖ¡Í·²¿Êý¾Ý
|
/*ºÍУÑé*/
|
checksum_length = PROTOCOL_HEAD_LENGTH + PROTOCOL_DATA_FIELD_HEAD_LENGTH + gprs_protocol_encrypt_para_g.padding_total_length;
|
gprs_protocol_head_tail_p->gprs_protocol_tail.checksum = 0;
|
for (i = 0; i < checksum_length; i++)
|
gprs_protocol_head_tail_p->gprs_protocol_tail.checksum += pSendData[i];
|
/*¿½±´Î²²¿¹Ì¶¨Êý¾ÝÖÁ·¢ËÍÊý×é*/
|
memcpy(&pSendData[PROTOCOL_HEAD_LENGTH + PROTOCOL_DATA_FIELD_HEAD_LENGTH + gprs_protocol_encrypt_para_g.padding_total_length], &gprs_protocol_head_tail_p->gprs_protocol_tail, PROTOCOL_TAIL_LENGTH);
|
}
|
|
|
/************************************** Recv Data **************************************************************/
|
/************************************** Recv Data **************************************************************/
|
/************************************** Recv Data **************************************************************/
|
|
GPRS_PROTOCOL_STATUS Gprs_Protocol_RecvNormalDataHandler(uint8_t *pData)
|
{
|
if (gprs_protocol_head_tail_g.gprs_protocol_data_field_head.frame_num < gprs_protocol_head_tail_g.gprs_protocol_data_field_head.frame_sum)
|
gprs_protocol_head_tail_g.gprs_protocol_data_field_head.frame_num++;
|
return PROTOCOL_NORMAL_SEND_CMD;
|
}
|
|
GPRS_PROTOCOL_STATUS Gprs_Protocol_RecvEndHandler(uint8_t *pData)
|
{
|
gprs_protocol_head_tail_g.gprs_protocol_data_field_head.frame_num = 1;
|
gprs_protocol_head_tail_g.gprs_protocol_data_field_head.frame_sum = 1;
|
gprs_test_g.gprs_recv_cnt++;
|
return PROTOCOL_END_STATUS;
|
}
|
|
GPRS_PROTOCOL_STATUS Gprs_Protocol_RecvSetTimeHandler(uint8_t *pData)
|
{
|
|
// if (Set_Sys_Rtc_Time(pData[0], pData[1], pData[2], 1, pData[3], pData[4], pData[5]) == HAL_OK)
|
set_result_g = SUCCESS;
|
// else
|
// set_result_g = ERROR;
|
return PROTOCOL_SET_TIME_CMD_BACK;
|
}
|
|
/*GPRSÐÒé½ÓÊÕÊý¾Ý´¦Àí*/
|
GPRS_PROTOCOL_STATUS Gprs_Protocol_RecvDataConfig(uint8_t *pRecvData, uint16_t recv_data_length)
|
{
|
GPRS_PROTOCOL_STATUS gprs_protocol_cmd_flag = PROTOCOL_UNKOWN_STATUS;
|
uint8_t recv_cmd_code_u8 = pRecvData[10]; //ÐÒé¿ØÖÆÂë
|
uint16_t recv_cmd_code_u16 = pRecvData[21] << 8 | pRecvData[20]; //ÐÒéÃüÁî±êʶ
|
uint8_t recv_checksum_calculate = 0, recv_checksum = pRecvData[recv_data_length - 1 - 1];
|
for (uint8_t i = 0; i < recv_data_length - 2; i++)
|
recv_checksum_calculate += pRecvData[i];
|
if (recv_checksum_calculate == recv_checksum)
|
{
|
/*Ñ¡Ôñ½ÓÊÕÊý¾ÝÖ¡ÀàÐÍ*/
|
for (uint8_t i = 0; i < GPRS_PROTOCOL_RECV_FUNC_TABLE_NUM; i++)
|
{
|
/*²é±í*/
|
if (gprs_protocol_recv_tab_func[i].gprs_protocol_cmd_table_u16 == recv_cmd_code_u16 && gprs_protocol_recv_tab_func[i].GprsProtocolRecvFuncHandler != NULL)
|
{
|
/*Êý¾Ý½âÃÜ*/
|
Gprs_Recv_Data_Aes128_Ecb_Decrypt(&pRecvData[PROTOCOL_HEAD_LENGTH + PROTOCOL_DATA_FIELD_HEAD_LENGTH], recv_data_length);
|
gprs_protocol_cmd_flag = gprs_protocol_recv_tab_func[i].GprsProtocolRecvFuncHandler(&pRecvData[PROTOCOL_HEAD_LENGTH + PROTOCOL_DATA_FIELD_HEAD_LENGTH]);
|
break;
|
}
|
}
|
}
|
return gprs_protocol_cmd_flag;
|
}
|