加了个PDP连接错误处理
This commit is contained in:
parent
1b2a11301d
commit
9459deb846
|
@ -245,6 +245,24 @@ rt_uint8_t XOR_CheckSum(const rt_uint8_t *data, rt_size_t len)
|
||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//利用IMEI号进行错峰延时计算
|
||||||
|
rt_uint32_t IMEI_Delay(void)
|
||||||
|
{
|
||||||
|
char imei_str[16];
|
||||||
|
char randon_char[8] = {0};
|
||||||
|
rt_uint32_t imei_delay = 0;
|
||||||
|
unsigned int random_number = 0;
|
||||||
|
|
||||||
|
Get_Iot_Imei(imei_str, FLASH_IOT_IMEI_LEN);
|
||||||
|
// 提取 IMEI 的最后 5 位作为种子
|
||||||
|
rt_strncpy(randon_char, &imei_str[0] + FLASH_IOT_IMEI_LEN - 5, 5);
|
||||||
|
random_number = atoi(randon_char);
|
||||||
|
imei_delay = (random_number + Get_RandomNumber()) % (K);
|
||||||
|
// rt_kprintf("IMEI_Delay:%d\r\n", imei_delay);
|
||||||
|
return (rt_uint32_t)imei_delay;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
int BSP_SYS_Init(void)
|
int BSP_SYS_Init(void)
|
||||||
{
|
{
|
||||||
BSP_Flash_Init();
|
BSP_Flash_Init();
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
|
|
||||||
#define MAX_EXPIRATION_DAYS (uint16_t)(365 * 5 + 30 * 3)
|
#define MAX_EXPIRATION_DAYS (uint16_t)(365 * 5 + 30 * 3)
|
||||||
|
|
||||||
|
#define K 3 * 1000
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
kPowerOnEvent,
|
kPowerOnEvent,
|
||||||
|
@ -80,6 +82,7 @@ unsigned int VerToHex(const char *version);
|
||||||
int Extract_Value(const char *str, const char *key);
|
int Extract_Value(const char *str, const char *key);
|
||||||
int _Self_Check_Mode(void);
|
int _Self_Check_Mode(void);
|
||||||
rt_uint8_t XOR_CheckSum(const rt_uint8_t *data, rt_size_t len);
|
rt_uint8_t XOR_CheckSum(const rt_uint8_t *data, rt_size_t len);
|
||||||
|
rt_uint32_t IMEI_Delay(void);
|
||||||
|
|
||||||
int BSP_SYS_Init(void);
|
int BSP_SYS_Init(void);
|
||||||
|
|
||||||
|
|
|
@ -88,16 +88,16 @@
|
||||||
#define FLASH_TEMP_ALARM_THRESHOLD_LEN (1)
|
#define FLASH_TEMP_ALARM_THRESHOLD_LEN (1)
|
||||||
|
|
||||||
// 上传周期
|
// 上传周期
|
||||||
#define FLASH_NB_UPLOAD_CYCLE_ADDR (FLASH_TEMP_ALARM_THRESHOLD_ADDR + FLASH_TEMP_ALARM_THRESHOLD_LEN)
|
#define FLASH_IOT_UPLOAD_CYCLE_ADDR (FLASH_TEMP_ALARM_THRESHOLD_ADDR + FLASH_TEMP_ALARM_THRESHOLD_LEN)
|
||||||
#define FLASH_NB_UPLOAD_CYCLE_LEN (2)
|
#define FLASH_IOT_UPLOAD_CYCLE_LEN (2)
|
||||||
|
|
||||||
// 重试次数
|
// 重试次数
|
||||||
#define FLASH_NB_RETRY_ADDR (FLASH_NB_UPLOAD_CYCLE_ADDR + FLASH_NB_UPLOAD_CYCLE_LEN)
|
#define FLASH_IOT_RETRY_ADDR (FLASH_IOT_UPLOAD_CYCLE_ADDR + FLASH_IOT_UPLOAD_CYCLE_LEN)
|
||||||
#define FLASH_NB_RETRY_LEN (1)
|
#define FLASH_IOT_RETRY_LEN (1)
|
||||||
|
|
||||||
|
|
||||||
/*电磁阀功能开启*/
|
/*电磁阀功能开启*/
|
||||||
#define FLASH_EMAGNETIC_SWITCH_ADDR (FLASH_NB_RETRY_ADDR + FLASH_NB_RETRY_LEN)
|
#define FLASH_EMAGNETIC_SWITCH_ADDR (FLASH_IOT_RETRY_ADDR + FLASH_IOT_RETRY_LEN)
|
||||||
#define FLASH_EMAGNETIC_SWITCH_LEN (1)
|
#define FLASH_EMAGNETIC_SWITCH_LEN (1)
|
||||||
|
|
||||||
/*继电器功能开启*/
|
/*继电器功能开启*/
|
||||||
|
@ -105,19 +105,19 @@
|
||||||
#define FLASH_RELAY_SWITCH_LEN (1)
|
#define FLASH_RELAY_SWITCH_LEN (1)
|
||||||
|
|
||||||
//imei
|
//imei
|
||||||
#define FLASH_NB_IMEI_ADDR (FLASH_RELAY_SWITCH_ADDR + FLASH_RELAY_SWITCH_LEN)
|
#define FLASH_IOT_IMEI_ADDR (FLASH_RELAY_SWITCH_ADDR + FLASH_RELAY_SWITCH_LEN)
|
||||||
#define FLASH_NB_IMEI_LEN (15)
|
#define FLASH_IOT_IMEI_LEN (15)
|
||||||
|
|
||||||
// imsi
|
// imsi
|
||||||
#define FLASH_NB_IMSI_ADDR (FLASH_NB_IMEI_ADDR + FLASH_NB_IMEI_LEN)
|
#define FLASH_IOT_IMSI_ADDR (FLASH_IOT_IMEI_ADDR + FLASH_IOT_IMEI_LEN)
|
||||||
#define FLASH_NB_IMSI_LEN (15)
|
#define FLASH_IOT_IMSI_LEN (15)
|
||||||
|
|
||||||
// iccid
|
// iccid
|
||||||
#define FLASH_NB_ICCID_ADDR (FLASH_NB_IMSI_ADDR + FLASH_NB_IMSI_LEN)
|
#define FLASH_IOT_ICCID_ADDR (FLASH_IOT_IMSI_ADDR + FLASH_IOT_IMSI_LEN)
|
||||||
#define FLASH_NB_ICCID_LEN (20)
|
#define FLASH_IOT_ICCID_LEN (20)
|
||||||
|
|
||||||
/*工作时长记录*/
|
/*工作时长记录*/
|
||||||
#define FLASH_WORK_TIME_ADDR (FLASH_NB_ICCID_ADDR + FLASH_NB_ICCID_LEN)
|
#define FLASH_WORK_TIME_ADDR (FLASH_IOT_ICCID_ADDR + FLASH_IOT_ICCID_LEN)
|
||||||
#define FLASH_WORK_TIME_LEN (2)//单位:天
|
#define FLASH_WORK_TIME_LEN (2)//单位:天
|
||||||
|
|
||||||
/*正式平台服务器地址*/
|
/*正式平台服务器地址*/
|
||||||
|
@ -260,13 +260,13 @@ typedef struct __attribute__((packed))
|
||||||
rt_uint16_t alarm_l_value; // 报警低阈值
|
rt_uint16_t alarm_l_value; // 报警低阈值
|
||||||
rt_uint16_t alarm_h_value; // 报警高阈值
|
rt_uint16_t alarm_h_value; // 报警高阈值
|
||||||
rt_uint8_t temp_alarm_threshold;//温度报警阈值
|
rt_uint8_t temp_alarm_threshold;//温度报警阈值
|
||||||
rt_uint16_t nb_upload_cycle; // NB上传周期
|
rt_uint16_t iot_upload_cycle; // NB上传周期
|
||||||
rt_uint8_t nb_retry; // 重试次数
|
rt_uint8_t iot_retry; // 重试次数
|
||||||
rt_uint8_t emagnetic_switch;
|
rt_uint8_t emagnetic_switch;
|
||||||
rt_uint8_t relay_switch;
|
rt_uint8_t relay_switch;
|
||||||
rt_uint8_t nb_imei[15]; // IMEI
|
rt_uint8_t iot_imei[15]; // IMEI
|
||||||
rt_uint8_t nb_imsi[15]; // IMSI
|
rt_uint8_t iot_imsi[15]; // IMSI
|
||||||
rt_uint8_t nb_iccid[20]; // ICCID
|
rt_uint8_t iot_iccid[20]; // ICCID
|
||||||
} sys_config_info;
|
} sys_config_info;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
|
|
@ -232,7 +232,7 @@ extern struct Ml307_Ops ml307_ops;
|
||||||
extern rt_sem_t ml307_recv_sem;
|
extern rt_sem_t ml307_recv_sem;
|
||||||
extern rt_uint8_t ml307_conncet_tcp_flag;
|
extern rt_uint8_t ml307_conncet_tcp_flag;
|
||||||
extern rt_uint8_t power_on_send_flag;
|
extern rt_uint8_t power_on_send_flag;
|
||||||
|
extern rt_uint8_t ml307_disconnect_pdp_flag;
|
||||||
extern rt_sem_t ml307_disconnect_sem;
|
extern rt_sem_t ml307_disconnect_sem;
|
||||||
void Ml307_Send_Event(Ml307Event event_type);
|
void Ml307_Send_Event(Ml307Event event_type);
|
||||||
int ml307_device_register(void);
|
int ml307_device_register(void);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author : stark1898y 1658608470@qq.com
|
* @Author : stark1898y 1658608470@qq.com
|
||||||
* @Date : 2024-09-04 13:33:49
|
* @Date : 2024-09-04 13:33:49
|
||||||
* @LastEditors: mbw && 1600520629@qq.com
|
* @LastEditors: mbw && 1600520629@qq.com
|
||||||
* @LastEditTime: 2025-01-04 15:48:16
|
* @LastEditTime: 2025-01-04 17:51:47
|
||||||
* @FilePath: \ble_bjq_ch303rct6_ml307\bsp\src\at_device_ml307.c
|
* @FilePath: \ble_bjq_ch303rct6_ml307\bsp\src\at_device_ml307.c
|
||||||
* @Description :
|
* @Description :
|
||||||
*
|
*
|
||||||
|
@ -190,6 +190,7 @@ static void urc_tcp_connect_state(struct at_client *client, const char *data, rt
|
||||||
case 571:
|
case 571:
|
||||||
LOG_D("PDP激活失败");
|
LOG_D("PDP激活失败");
|
||||||
ml307_conncet_tcp_flag = 0;
|
ml307_conncet_tcp_flag = 0;
|
||||||
|
ml307_disconnect_pdp_flag = 1;
|
||||||
rt_sem_release(ml307_disconnect_sem);
|
rt_sem_release(ml307_disconnect_sem);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -314,7 +315,7 @@ static int at_device_ml307_connect_tcp(struct at_device *device)
|
||||||
{
|
{
|
||||||
if (at_resp_get_line_by_kw(resp, "OK") != RT_NULL)
|
if (at_resp_get_line_by_kw(resp, "OK") != RT_NULL)
|
||||||
{
|
{
|
||||||
if (rt_sem_take(ml307_connect_flag_sem, 10000) == RT_EOK)
|
if (rt_sem_take(ml307_connect_flag_sem, 5000) == RT_EOK)
|
||||||
{
|
{
|
||||||
if (ml307_conncet_tcp_flag)
|
if (ml307_conncet_tcp_flag)
|
||||||
{
|
{
|
||||||
|
@ -333,14 +334,8 @@ static int at_device_ml307_connect_tcp(struct at_device *device)
|
||||||
ret = RT_EOK;
|
ret = RT_EOK;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (at_resp_get_line_by_kw(resp, "+CME ERROR: 559") == RT_EOK) // SOCKET错误
|
|
||||||
{
|
|
||||||
ml307_conncet_tcp_flag = 0;
|
|
||||||
rt_sem_release(ml307_disconnect_sem);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
rt_thread_mdelay(5000);
|
||||||
rt_thread_mdelay(60000);
|
|
||||||
}
|
}
|
||||||
at_delete_resp(resp);
|
at_delete_resp(resp);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -411,6 +406,12 @@ static int ml307_check_link_status(struct at_device *device)
|
||||||
result = RT_EOK;
|
result = RT_EOK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LOG_E("AT+MIPCALL error.");
|
||||||
|
result = -RT_ERROR;
|
||||||
|
goto __exit;
|
||||||
|
}
|
||||||
|
|
||||||
if (at_obj_exec_cmd(device->client, resp, "AT+CGACT?") < 0)
|
if (at_obj_exec_cmd(device->client, resp, "AT+CGACT?") < 0)
|
||||||
{
|
{
|
||||||
|
@ -967,11 +968,7 @@ static void ml307_init_thread_entry(void *parameter)
|
||||||
result = -RT_ERROR;
|
result = -RT_ERROR;
|
||||||
goto __exit;
|
goto __exit;
|
||||||
}
|
}
|
||||||
if (at_obj_exec_cmd(device->client, resp, "AT+MIPCALL=1,1") != RT_EOK)
|
|
||||||
{
|
|
||||||
result = -RT_ERROR;
|
|
||||||
goto __exit;
|
|
||||||
}
|
|
||||||
char parsed_data[10] = {0};
|
char parsed_data[10] = {0};
|
||||||
for (i = 0; i < CGATT_RETRY; i++)
|
for (i = 0; i < CGATT_RETRY; i++)
|
||||||
{
|
{
|
||||||
|
@ -1060,7 +1057,11 @@ static void ml307_init_thread_entry(void *parameter)
|
||||||
result = -RT_ERROR;
|
result = -RT_ERROR;
|
||||||
goto __exit;
|
goto __exit;
|
||||||
}
|
}
|
||||||
|
if (at_obj_exec_cmd(device->client, resp, "AT+MIPCALL=1,1") != RT_EOK)
|
||||||
|
{
|
||||||
|
result = -RT_ERROR;
|
||||||
|
goto __exit;
|
||||||
|
}
|
||||||
#if defined(AT_DEBUG)
|
#if defined(AT_DEBUG)
|
||||||
/* check the GPRS network IP address */
|
/* check the GPRS network IP address */
|
||||||
for (i = 0; i < IPADDR_RETRY; i++)
|
for (i = 0; i < IPADDR_RETRY; i++)
|
||||||
|
|
|
@ -23,8 +23,8 @@ flash_sever_info sever_info =
|
||||||
/*默认的系统配置*/
|
/*默认的系统配置*/
|
||||||
rt_uint8_t sys_hw_ver = 0x10;
|
rt_uint8_t sys_hw_ver = 0x10;
|
||||||
rt_uint8_t sys_sw_ver = 0x11;
|
rt_uint8_t sys_sw_ver = 0x11;
|
||||||
rt_uint8_t sys_nb_retry = 0x03; // 重试次数3次
|
rt_uint8_t sys_iot_retry = 0x03; // 重试次数3次
|
||||||
rt_uint16_t sys_nb_upload_cycle = 0x0001; // 120分钟一次
|
rt_uint16_t sys_iot_upload_cycle = 0x003C; // 120分钟一次
|
||||||
rt_uint16_t sys_alarm_h_value = 0x09C4; // 2500
|
rt_uint16_t sys_alarm_h_value = 0x09C4; // 2500
|
||||||
rt_uint16_t sys_alarm_l_value = 0x0640; // 1600
|
rt_uint16_t sys_alarm_l_value = 0x0640; // 1600
|
||||||
rt_uint8_t sys_temp_alarm_threshold = 0x32;
|
rt_uint8_t sys_temp_alarm_threshold = 0x32;
|
||||||
|
@ -37,13 +37,13 @@ extern int Convert_To_Hex(const flash_sever_info *sever_info, uint8_t *hex_array
|
||||||
: (id) == kAlarmLValueId ? (&(info)->alarm_l_value) \
|
: (id) == kAlarmLValueId ? (&(info)->alarm_l_value) \
|
||||||
: (id) == kAlarmHValueId ? (&(info)->alarm_h_value) \
|
: (id) == kAlarmHValueId ? (&(info)->alarm_h_value) \
|
||||||
: (id) == kTempAlarmThresholdId ? (&(info)->temp_alarm_threshold) \
|
: (id) == kTempAlarmThresholdId ? (&(info)->temp_alarm_threshold) \
|
||||||
: (id) == kIotUploadCycleId ? (&(info)->nb_upload_cycle) \
|
: (id) == kIotUploadCycleId ? (&(info)->iot_upload_cycle) \
|
||||||
: (id) == kIotRetryId ? (&(info)->nb_retry) \
|
: (id) == kIotRetryId ? (&(info)->iot_retry) \
|
||||||
: (id) == kEmagneticSwitchId ? (&(info)->emagnetic_switch) \
|
: (id) == kEmagneticSwitchId ? (&(info)->emagnetic_switch) \
|
||||||
: (id) == kRelaySwitchId ? (&(info)->relay_switch) \
|
: (id) == kRelaySwitchId ? (&(info)->relay_switch) \
|
||||||
: (id) == kIotImeiId ? ((info)->nb_imei) \
|
: (id) == kIotImeiId ? ((info)->iot_imei) \
|
||||||
: (id) == kIotImsiId ? ((info)->nb_imsi) \
|
: (id) == kIotImsiId ? ((info)->iot_imsi) \
|
||||||
: (id) == kIotIccidId ? ((info)->nb_iccid) \
|
: (id) == kIotIccidId ? ((info)->iot_iccid) \
|
||||||
: NULL)
|
: NULL)
|
||||||
|
|
||||||
TsTotalRecords TotalRecords;
|
TsTotalRecords TotalRecords;
|
||||||
|
@ -70,14 +70,14 @@ const rt_uint32_t hr_sys_cfg_info_addr[kCnt] = {
|
||||||
FLASH_SW_VER_ADDR,
|
FLASH_SW_VER_ADDR,
|
||||||
FLASH_ALARM_L_VALUE_ADDR,
|
FLASH_ALARM_L_VALUE_ADDR,
|
||||||
FLASH_ALARM_H_VALUE_ADDR,
|
FLASH_ALARM_H_VALUE_ADDR,
|
||||||
FLASH_NB_UPLOAD_CYCLE_ADDR,
|
FLASH_IOT_UPLOAD_CYCLE_ADDR,
|
||||||
FLASH_NB_RETRY_ADDR,
|
FLASH_IOT_RETRY_ADDR,
|
||||||
FLASH_TEMP_ALARM_THRESHOLD_ADDR,
|
FLASH_TEMP_ALARM_THRESHOLD_ADDR,
|
||||||
FLASH_EMAGNETIC_SWITCH_ADDR,
|
FLASH_EMAGNETIC_SWITCH_ADDR,
|
||||||
FLASH_RELAY_SWITCH_ADDR,
|
FLASH_RELAY_SWITCH_ADDR,
|
||||||
FLASH_NB_IMEI_ADDR,
|
FLASH_IOT_IMEI_ADDR,
|
||||||
FLASH_NB_IMSI_ADDR,
|
FLASH_IOT_IMSI_ADDR,
|
||||||
FLASH_NB_ICCID_ADDR,
|
FLASH_IOT_ICCID_ADDR,
|
||||||
};
|
};
|
||||||
|
|
||||||
const rt_uint32_t hr_sys_cfg_info_len[kCnt] = {
|
const rt_uint32_t hr_sys_cfg_info_len[kCnt] = {
|
||||||
|
@ -85,19 +85,18 @@ const rt_uint32_t hr_sys_cfg_info_len[kCnt] = {
|
||||||
FLASH_SW_VER_LEN,
|
FLASH_SW_VER_LEN,
|
||||||
FLASH_ALARM_L_VALUE_LEN,
|
FLASH_ALARM_L_VALUE_LEN,
|
||||||
FLASH_ALARM_H_VALUE_LEN,
|
FLASH_ALARM_H_VALUE_LEN,
|
||||||
FLASH_NB_UPLOAD_CYCLE_LEN,
|
FLASH_IOT_UPLOAD_CYCLE_LEN,
|
||||||
FLASH_NB_RETRY_LEN,
|
FLASH_IOT_RETRY_LEN,
|
||||||
FLASH_TEMP_ALARM_THRESHOLD_LEN,
|
FLASH_TEMP_ALARM_THRESHOLD_LEN,
|
||||||
FLASH_EMAGNETIC_SWITCH_LEN,
|
FLASH_EMAGNETIC_SWITCH_LEN,
|
||||||
FLASH_RELAY_SWITCH_LEN,
|
FLASH_RELAY_SWITCH_LEN,
|
||||||
FLASH_NB_IMEI_LEN,
|
FLASH_IOT_IMEI_LEN,
|
||||||
FLASH_NB_IMSI_LEN,
|
FLASH_IOT_IMSI_LEN,
|
||||||
FLASH_NB_ICCID_LEN,
|
FLASH_IOT_ICCID_LEN,
|
||||||
};
|
};
|
||||||
|
|
||||||
static rt_base_t interrupt_value;
|
static rt_base_t interrupt_value;
|
||||||
|
|
||||||
|
|
||||||
static void BSP_Flash_UnLock(void)
|
static void BSP_Flash_UnLock(void)
|
||||||
{
|
{
|
||||||
#if (SystemCoreClock > SYSCLK_FREQ_96MHz_HSE)
|
#if (SystemCoreClock > SYSCLK_FREQ_96MHz_HSE)
|
||||||
|
@ -152,9 +151,9 @@ static rt_size_t Flash_Read(rt_uint32_t addr, rt_uint8_t *buf, rt_size_t len)
|
||||||
|
|
||||||
int Get_Iot_Imei(char *buf, rt_size_t len)
|
int Get_Iot_Imei(char *buf, rt_size_t len)
|
||||||
{
|
{
|
||||||
if ((*(rt_uint8_t *)FLASH_NB_IMEI_ADDR != 0xE3) && (*(rt_uint8_t *)FLASH_NB_IMEI_ADDR != 0x39))
|
if ((*(rt_uint8_t *)FLASH_IOT_IMEI_ADDR != 0xE3) && (*(rt_uint8_t *)FLASH_IOT_IMEI_ADDR != 0x39))
|
||||||
{
|
{
|
||||||
rt_memcpy(buf, (char *)FLASH_NB_IMEI_ADDR, len);
|
rt_memcpy(buf, (char *)FLASH_IOT_IMEI_ADDR, len);
|
||||||
|
|
||||||
LOG_D("NB IMEI: %s", buf);
|
LOG_D("NB IMEI: %s", buf);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -173,9 +172,9 @@ int Get_Iot_Imei(char *buf, rt_size_t len)
|
||||||
|
|
||||||
int Get_Iot_Imsi(char *buf, rt_size_t len)
|
int Get_Iot_Imsi(char *buf, rt_size_t len)
|
||||||
{
|
{
|
||||||
if ((*(rt_uint8_t *)FLASH_NB_IMSI_ADDR != 0xE3) && (*(rt_uint8_t *)FLASH_NB_IMSI_ADDR != 0x39))
|
if ((*(rt_uint8_t *)FLASH_IOT_IMSI_ADDR != 0xE3) && (*(rt_uint8_t *)FLASH_IOT_IMSI_ADDR != 0x39))
|
||||||
{
|
{
|
||||||
rt_memcpy(buf, (char *)FLASH_NB_IMSI_ADDR, len);
|
rt_memcpy(buf, (char *)FLASH_IOT_IMSI_ADDR, len);
|
||||||
|
|
||||||
LOG_D("NB IMSI: %s", buf);
|
LOG_D("NB IMSI: %s", buf);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -194,9 +193,9 @@ int Get_Iot_Imsi(char *buf, rt_size_t len)
|
||||||
|
|
||||||
int Get_Iot_Iccid(char *buf, rt_size_t len)
|
int Get_Iot_Iccid(char *buf, rt_size_t len)
|
||||||
{
|
{
|
||||||
if ((*(rt_uint8_t *)FLASH_NB_ICCID_ADDR != 0xE3) && (*(rt_uint8_t *)FLASH_NB_ICCID_ADDR != 0x39))
|
if ((*(rt_uint8_t *)FLASH_IOT_ICCID_ADDR != 0xE3) && (*(rt_uint8_t *)FLASH_IOT_ICCID_ADDR != 0x39))
|
||||||
{
|
{
|
||||||
rt_memcpy(buf, (char *)FLASH_NB_ICCID_ADDR, len);
|
rt_memcpy(buf, (char *)FLASH_IOT_ICCID_ADDR, len);
|
||||||
|
|
||||||
LOG_D("NB ICCID: %s", buf);
|
LOG_D("NB ICCID: %s", buf);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -903,8 +902,8 @@ int BSP_Flash_Init(void)
|
||||||
sci.sw_ver = sys_sw_ver;
|
sci.sw_ver = sys_sw_ver;
|
||||||
sci.alarm_l_value = sys_alarm_l_value;
|
sci.alarm_l_value = sys_alarm_l_value;
|
||||||
sci.alarm_h_value = sys_alarm_h_value;
|
sci.alarm_h_value = sys_alarm_h_value;
|
||||||
sci.nb_upload_cycle = sys_nb_upload_cycle;
|
sci.iot_upload_cycle = sys_iot_upload_cycle;
|
||||||
sci.nb_retry = sys_nb_retry;
|
sci.iot_retry = sys_iot_retry;
|
||||||
sci.temp_alarm_threshold = sys_temp_alarm_threshold;
|
sci.temp_alarm_threshold = sys_temp_alarm_threshold;
|
||||||
sci.emagnetic_switch = sys_emagnetic_switch;
|
sci.emagnetic_switch = sys_emagnetic_switch;
|
||||||
sci.relay_switch = sys_relay_switch;
|
sci.relay_switch = sys_relay_switch;
|
||||||
|
|
|
@ -449,9 +449,9 @@ int Process_Factor_Cmd(const char *rx_buff, size_t length)
|
||||||
}
|
}
|
||||||
rt_uint32_t cnt = (rt_uint32_t)((time_buf[2]<<16)| (time_buf[1] << 8)|time_buf[0]);
|
rt_uint32_t cnt = (rt_uint32_t)((time_buf[2]<<16)| (time_buf[1] << 8)|time_buf[0]);
|
||||||
LOG_D("time_buf[2] = %02x time_buf[1] = %02x time_buf[0] = %02x cnt = %04d", time_buf[2], time_buf[1], time_buf[0], cnt);
|
LOG_D("time_buf[2] = %02x time_buf[1] = %02x time_buf[0] = %02x cnt = %04d", time_buf[2], time_buf[1], time_buf[0], cnt);
|
||||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
Get_Iot_Imei(imei, FLASH_IOT_IMEI_LEN);
|
||||||
Get_Iot_Imsi(imsi, FLASH_NB_IMSI_LEN);
|
Get_Iot_Imsi(imsi, FLASH_IOT_IMSI_LEN);
|
||||||
Get_Iot_Iccid(iccid, FLASH_NB_ICCID_LEN);
|
Get_Iot_Iccid(iccid, FLASH_IOT_ICCID_LEN);
|
||||||
rt_sprintf(buf,
|
rt_sprintf(buf,
|
||||||
"\r\n[ID :YD4N02/%02d%02d%02d%04d]\r\n"
|
"\r\n[ID :YD4N02/%02d%02d%02d%04d]\r\n"
|
||||||
"[IMEI:%s]\r\n"
|
"[IMEI:%s]\r\n"
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: mbw
|
* @Author: mbw
|
||||||
* @Date: 2024-11-30 15:46:21
|
* @Date: 2024-11-30 15:46:21
|
||||||
* @LastEditors: mbw && 1600520629@qq.com
|
* @LastEditors: mbw && 1600520629@qq.com
|
||||||
* @LastEditTime: 2025-01-03 16:53:49
|
* @LastEditTime: 2025-01-04 17:23:49
|
||||||
* @FilePath: \ble_bjq_ch303rct6_ml307\bsp\src\bsp_ml307.c
|
* @FilePath: \ble_bjq_ch303rct6_ml307\bsp\src\bsp_ml307.c
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
|
@ -17,6 +17,7 @@
|
||||||
#include "bsp_rtc.h"
|
#include "bsp_rtc.h"
|
||||||
#include "bsp_bt.h"
|
#include "bsp_bt.h"
|
||||||
#include "bsp_mq.h"
|
#include "bsp_mq.h"
|
||||||
|
#include "user_sys.h"
|
||||||
|
|
||||||
#define LOG_TAG "ml307"
|
#define LOG_TAG "ml307"
|
||||||
#include <at_log.h>
|
#include <at_log.h>
|
||||||
|
@ -53,6 +54,7 @@ static rt_timer_t ml307_timer; // 上报心跳
|
||||||
static rt_timer_t ml307_upload_timer; // 更新本地时间定时器
|
static rt_timer_t ml307_upload_timer; // 更新本地时间定时器
|
||||||
static rt_timer_t ml307_power_error_timer; // 上电失败情况下启动定时器
|
static rt_timer_t ml307_power_error_timer; // 上电失败情况下启动定时器
|
||||||
|
|
||||||
|
rt_uint8_t ml307_disconnect_pdp_flag;// PDP断开连接标志
|
||||||
rt_uint8_t ml307_conncet_tcp_flag;
|
rt_uint8_t ml307_conncet_tcp_flag;
|
||||||
Ml307EventIndex ml307_event_index;
|
Ml307EventIndex ml307_event_index;
|
||||||
|
|
||||||
|
@ -798,6 +800,7 @@ int Ml307_Process_Events(Ml307Event ml307_recv_event, struct at_device *device,
|
||||||
if (ml307_conncet_tcp_flag)
|
if (ml307_conncet_tcp_flag)
|
||||||
{
|
{
|
||||||
// 如果事件有关联的发送函数,则调用该发送函数
|
// 如果事件有关联的发送函数,则调用该发送函数
|
||||||
|
rt_thread_mdelay(IMEI_Delay());
|
||||||
if (event->send_func)
|
if (event->send_func)
|
||||||
{
|
{
|
||||||
int result = event->send_func(device, ml307_ops);
|
int result = event->send_func(device, ml307_ops);
|
||||||
|
@ -866,7 +869,7 @@ void Handle_Self_Check(struct Ml307_Ops *ops)
|
||||||
{
|
{
|
||||||
LOG_D("服务器下发自检指令\n");
|
LOG_D("服务器下发自检指令\n");
|
||||||
char imei[16] = {0};
|
char imei[16] = {0};
|
||||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
Get_Iot_Imei(imei, FLASH_IOT_IMEI_LEN);
|
||||||
LOG_D("imei:%s\n", imei);
|
LOG_D("imei:%s\n", imei);
|
||||||
_Self_Check_Mode();
|
_Self_Check_Mode();
|
||||||
rt_thread_mdelay(100);
|
rt_thread_mdelay(100);
|
||||||
|
@ -885,7 +888,7 @@ void Handle_Mute(struct Ml307_Ops *ops)
|
||||||
LOG_D("服务器下发消音指令\n");
|
LOG_D("服务器下发消音指令\n");
|
||||||
|
|
||||||
char imei[16] = {0};
|
char imei[16] = {0};
|
||||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
Get_Iot_Imei(imei, FLASH_IOT_IMEI_LEN);
|
||||||
char temp[32] = "0";
|
char temp[32] = "0";
|
||||||
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
||||||
|
|
||||||
|
@ -902,7 +905,7 @@ rt_err_t Handle_Close_Valve(struct Ml307_Ops *ops)
|
||||||
rt_uint8_t data[FLASH_VALVE_MAC_ADDR_LEN + 1] = {0};
|
rt_uint8_t data[FLASH_VALVE_MAC_ADDR_LEN + 1] = {0};
|
||||||
rt_uint8_t mac_addr[6] = {0};
|
rt_uint8_t mac_addr[6] = {0};
|
||||||
char imei[16] = {0};
|
char imei[16] = {0};
|
||||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
Get_Iot_Imei(imei, FLASH_IOT_IMEI_LEN);
|
||||||
char temp[32] = "0";
|
char temp[32] = "0";
|
||||||
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
||||||
rt_memcpy(data, (ops->recv->recv_data.res_data + 8), FLASH_VALVE_MAC_ADDR_LEN + 1);
|
rt_memcpy(data, (ops->recv->recv_data.res_data + 8), FLASH_VALVE_MAC_ADDR_LEN + 1);
|
||||||
|
@ -981,7 +984,7 @@ void Handle_Open_Valve(struct Ml307_Ops *ops)
|
||||||
LOG_D("服务器下发打开阀门指令\n");
|
LOG_D("服务器下发打开阀门指令\n");
|
||||||
|
|
||||||
char imei[16] = {0};
|
char imei[16] = {0};
|
||||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
Get_Iot_Imei(imei, FLASH_IOT_IMEI_LEN);
|
||||||
char temp[32] = "0";
|
char temp[32] = "0";
|
||||||
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
||||||
|
|
||||||
|
@ -998,7 +1001,7 @@ void Handle_Open_Relay(struct Ml307_Ops *ops)
|
||||||
LOG_D("服务器下发打开继电器指令\n");
|
LOG_D("服务器下发打开继电器指令\n");
|
||||||
|
|
||||||
char imei[16] = {0};
|
char imei[16] = {0};
|
||||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
Get_Iot_Imei(imei, FLASH_IOT_IMEI_LEN);
|
||||||
char temp[32] = "0";
|
char temp[32] = "0";
|
||||||
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
||||||
// relay_state_flag = 1;
|
// relay_state_flag = 1;
|
||||||
|
@ -1014,7 +1017,7 @@ void Handle_Close_Relay(struct Ml307_Ops *ops)
|
||||||
char imei[16] = {0};
|
char imei[16] = {0};
|
||||||
char temp[32] = "0";
|
char temp[32] = "0";
|
||||||
|
|
||||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
Get_Iot_Imei(imei, FLASH_IOT_IMEI_LEN);
|
||||||
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
||||||
|
|
||||||
// relay_state_flag = 0;
|
// relay_state_flag = 0;
|
||||||
|
@ -1029,7 +1032,7 @@ void Handle_Query_Params(struct Ml307_Ops *ops)
|
||||||
LOG_D("服务器下发查询系统参数\n");
|
LOG_D("服务器下发查询系统参数\n");
|
||||||
|
|
||||||
rt_memcpy(data, (rt_uint8_t *)FLASH_HW_VER_ADDR, sizeof(sys_config_info) - 50);
|
rt_memcpy(data, (rt_uint8_t *)FLASH_HW_VER_ADDR, sizeof(sys_config_info) - 50);
|
||||||
LOG_D("hw_ver:%02x sw_ver:%02x alarm_low:%02x alarm_high:%02x temp_alarm:%02x nb_upload_cycle:%dmin retry:%02x emagnetic:%02X relay_switch:%02X\n",
|
LOG_D("hw_ver:%02x sw_ver:%02x alarm_low:%02x alarm_high:%02x temp_alarm:%02x iot_upload_cycle:%dmin retry:%02x emagnetic:%02X relay_switch:%02X\n",
|
||||||
data[0], data[1], data[2], data[3], data[4], ((data[5]) | (data[6] << 8)), data[7], data[8], data[9]);
|
data[0], data[1], data[2], data[3], data[4], ((data[5]) | (data[6] << 8)), data[7], data[8], data[9]);
|
||||||
|
|
||||||
rt_sprintf(str, "0000000000%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
|
rt_sprintf(str, "0000000000%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
|
||||||
|
@ -1048,14 +1051,14 @@ int Handle_Config_Params(struct Ml307_Ops *ops)
|
||||||
|
|
||||||
LOG_D("服务器下发配置参数\n");
|
LOG_D("服务器下发配置参数\n");
|
||||||
|
|
||||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
Get_Iot_Imei(imei, FLASH_IOT_IMEI_LEN);
|
||||||
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
||||||
|
|
||||||
rt_memset(data_buf, '0', 32);
|
rt_memset(data_buf, '0', 32);
|
||||||
rt_memcpy(recv_data, (ops->recv->recv_data.res_data + 5), sizeof(sys_config_info) - 50);
|
rt_memcpy(recv_data, (ops->recv->recv_data.res_data + 5), sizeof(sys_config_info) - 50);
|
||||||
rt_memcpy(flash_info, (rt_uint8_t *)FLASH_HW_VER_ADDR, sizeof(sys_config_info) - 50);
|
rt_memcpy(flash_info, (rt_uint8_t *)FLASH_HW_VER_ADDR, sizeof(sys_config_info) - 50);
|
||||||
|
|
||||||
LOG_D("hw_ver:%02x sw_ver:%02x alarm_low:%02x alarm_high:%02x temp_alarm:%02x nb_upload_cycle:%d min retry:%02x emagnetic:%02X relay_switch:%02X\n",
|
LOG_D("hw_ver:%02x sw_ver:%02x alarm_low:%02x alarm_high:%02x temp_alarm:%02x iot_upload_cycle:%d min retry:%02x emagnetic:%02X relay_switch:%02X\n",
|
||||||
flash_info[0], flash_info[1], flash_info[2], flash_info[3], flash_info[4], (flash_info[5] | (flash_info[6] << 8)), flash_info[7], flash_info[8], recv_data[9]);
|
flash_info[0], flash_info[1], flash_info[2], flash_info[3], flash_info[4], (flash_info[5] | (flash_info[6] << 8)), flash_info[7], flash_info[8], recv_data[9]);
|
||||||
LOG_D("recv_data: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x \n",
|
LOG_D("recv_data: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x \n",
|
||||||
recv_data[0], recv_data[1], recv_data[2], recv_data[3], recv_data[4],
|
recv_data[0], recv_data[1], recv_data[2], recv_data[3], recv_data[4],
|
||||||
|
@ -1081,10 +1084,10 @@ int Handle_Config_Params(struct Ml307_Ops *ops)
|
||||||
{
|
{
|
||||||
if (BSP_Flash_Write_Info(recv_data, sizeof(sys_config_info) - 50) != 0)
|
if (BSP_Flash_Write_Info(recv_data, sizeof(sys_config_info) - 50) != 0)
|
||||||
{
|
{
|
||||||
rt_uint16_t nb_upload_time = (uint16_t)Flash_Get_SysCfg(kIotUploadCycleId);
|
rt_uint16_t iot_upload_time = (uint16_t)Flash_Get_SysCfg(kIotUploadCycleId);
|
||||||
unsigned long timeout = nb_upload_time * 60 * RT_TICK_PER_SECOND;
|
unsigned long timeout = iot_upload_time * 60 * RT_TICK_PER_SECOND;
|
||||||
rt_timer_control(ml307_timer, RT_TIMER_CTRL_SET_TIME, (void *)&timeout); // 更新上报周期
|
rt_timer_control(ml307_timer, RT_TIMER_CTRL_SET_TIME, (void *)&timeout); // 更新上报周期
|
||||||
LOG_D("上报周期由%dmin更新为%dmin", ((flash_info[5] << 8) | flash_info[6]), nb_upload_time);
|
LOG_D("上报周期由%dmin更新为%dmin", ((flash_info[5] << 8) | flash_info[6]), iot_upload_time);
|
||||||
if (ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_ML307, INSTRUCTION_DOWN_CONFIG_PARAMS, temp, RESPONSE_CODE_SUCCESS) == RT_EOK)
|
if (ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_ML307, INSTRUCTION_DOWN_CONFIG_PARAMS, temp, RESPONSE_CODE_SUCCESS) == RT_EOK)
|
||||||
{
|
{
|
||||||
LOG_D("配置参数写入成功\n");
|
LOG_D("配置参数写入成功\n");
|
||||||
|
@ -1119,7 +1122,7 @@ void Handle_Time_Calibration_Data(struct Ml307_Ops *ops)
|
||||||
|
|
||||||
LOG_D("时间校准数据\n");
|
LOG_D("时间校准数据\n");
|
||||||
|
|
||||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
Get_Iot_Imei(imei, FLASH_IOT_IMEI_LEN);
|
||||||
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
||||||
|
|
||||||
rt_memcpy(data, ops->recv->recv_data.res_data, sizeof(data));
|
rt_memcpy(data, ops->recv->recv_data.res_data, sizeof(data));
|
||||||
|
@ -1143,7 +1146,7 @@ void Handle_Sever_Addr_Set(struct Ml307_Ops *ops)
|
||||||
char imei[16] = {0};
|
char imei[16] = {0};
|
||||||
char temp[32] = "0";
|
char temp[32] = "0";
|
||||||
|
|
||||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
Get_Iot_Imei(imei, FLASH_IOT_IMEI_LEN);
|
||||||
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
||||||
rt_memcpy(data, (ops->recv->recv_data.res_data + 9), FLASH_SERVER_LEN);
|
rt_memcpy(data, (ops->recv->recv_data.res_data + 9), FLASH_SERVER_LEN);
|
||||||
LOG_D("data[%d] = %x data[%d] = %x data[%d] = %x data[%d] = %x data[%d] = %x data[%d] = %x", 0, data[0], 1, data[1], 2, data[2], 3, data[3], 4, data[4], 5, data[5]);
|
LOG_D("data[%d] = %x data[%d] = %x data[%d] = %x data[%d] = %x data[%d] = %x data[%d] = %x", 0, data[0], 1, data[1], 2, data[2], 3, data[3], 4, data[4], 5, data[5]);
|
||||||
|
@ -1167,7 +1170,7 @@ rt_err_t Handle_Valve_Add(struct Ml307_Ops *ops)
|
||||||
char imei[16] = {0};
|
char imei[16] = {0};
|
||||||
char temp[32] = "0";
|
char temp[32] = "0";
|
||||||
rt_uint8_t cnt = Flash_Get_Valve_Num();
|
rt_uint8_t cnt = Flash_Get_Valve_Num();
|
||||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
Get_Iot_Imei(imei, FLASH_IOT_IMEI_LEN);
|
||||||
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
||||||
|
|
||||||
if (cnt >= 1)
|
if (cnt >= 1)
|
||||||
|
@ -1229,7 +1232,7 @@ rt_err_t Handle_Valve_Replace(struct Ml307_Ops *ops)
|
||||||
char imei[16] = {0};
|
char imei[16] = {0};
|
||||||
char temp[32] = "0";
|
char temp[32] = "0";
|
||||||
LOG_I("服务器下发更换阀门设备");
|
LOG_I("服务器下发更换阀门设备");
|
||||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
Get_Iot_Imei(imei, FLASH_IOT_IMEI_LEN);
|
||||||
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
||||||
rt_memcpy(data, (ops->recv->recv_data.res_data + 2), (2 * FLASH_VALVE_MAC_ADDR_LEN + 1));
|
rt_memcpy(data, (ops->recv->recv_data.res_data + 2), (2 * FLASH_VALVE_MAC_ADDR_LEN + 1));
|
||||||
LOG_HEX("data", 16, data, sizeof(data));
|
LOG_HEX("data", 16, data, sizeof(data));
|
||||||
|
@ -1296,7 +1299,7 @@ rt_err_t Handle_Remove_Valve(struct Ml307_Ops *ops)
|
||||||
char imei[16] = {0};
|
char imei[16] = {0};
|
||||||
char temp[32] = "0";
|
char temp[32] = "0";
|
||||||
rt_uint8_t cnt = Flash_Get_Valve_Num();
|
rt_uint8_t cnt = Flash_Get_Valve_Num();
|
||||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
Get_Iot_Imei(imei, FLASH_IOT_IMEI_LEN);
|
||||||
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
||||||
|
|
||||||
LOG_I("接收到服务器下发移除阀门指令");
|
LOG_I("接收到服务器下发移除阀门指令");
|
||||||
|
@ -1352,7 +1355,7 @@ void Handle_Error(struct Ml307_Ops *ops, rt_err_t ret)
|
||||||
char imei[16] = {0};
|
char imei[16] = {0};
|
||||||
char temp[32] = "0";
|
char temp[32] = "0";
|
||||||
|
|
||||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
Get_Iot_Imei(imei, FLASH_IOT_IMEI_LEN);
|
||||||
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
||||||
ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_ML307, ops->recv->cmd, temp, RESPONSE_CODE_PARSE_FAIL);
|
ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_ML307, ops->recv->cmd, temp, RESPONSE_CODE_PARSE_FAIL);
|
||||||
}
|
}
|
||||||
|
@ -1676,9 +1679,20 @@ static void Ml307_Life_Thread_Entry(void *parameter)
|
||||||
ret = rt_sem_take(ml307_disconnect_sem, RT_WAITING_FOREVER);
|
ret = rt_sem_take(ml307_disconnect_sem, RT_WAITING_FOREVER);
|
||||||
if (ret == RT_EOK)
|
if (ret == RT_EOK)
|
||||||
{
|
{
|
||||||
|
LOG_D("重连网络中...\n");
|
||||||
if (ml307_conncet_tcp_flag != RT_TRUE)
|
if (ml307_conncet_tcp_flag != RT_TRUE)
|
||||||
{
|
{
|
||||||
LOG_D("重连网络中...\n");
|
if(ml307_disconnect_pdp_flag)
|
||||||
|
{
|
||||||
|
at_response_t resp = at_create_resp(32, 0, 5000);
|
||||||
|
if (resp == RT_NULL)
|
||||||
|
{
|
||||||
|
LOG_E("No memory for response structure!");
|
||||||
|
at_delete_resp(resp);
|
||||||
|
}
|
||||||
|
at_obj_exec_cmd(device->client, resp, "AT+MIPCALL=1,1");
|
||||||
|
at_delete_resp(resp);
|
||||||
|
}
|
||||||
device->class->device_ops->control(device, AT_DEVICE_CTRL_NET_DISCONN, RT_NULL); // 先关闭,再处理
|
device->class->device_ops->control(device, AT_DEVICE_CTRL_NET_DISCONN, RT_NULL); // 先关闭,再处理
|
||||||
if (device->class->device_ops->control(device, AT_DEVICE_CTRL_NET_CONN, RT_NULL) == RT_EOK)
|
if (device->class->device_ops->control(device, AT_DEVICE_CTRL_NET_CONN, RT_NULL) == RT_EOK)
|
||||||
{
|
{
|
||||||
|
@ -1706,9 +1720,9 @@ int BSP_Ml307_Thread_Init(void)
|
||||||
rt_err_t ret;
|
rt_err_t ret;
|
||||||
|
|
||||||
Ml307_Event_Init();
|
Ml307_Event_Init();
|
||||||
rt_uint32_t nb_upload_time = (uint16_t)Flash_Get_SysCfg(kIotUploadCycleId);
|
rt_uint32_t iot_upload_time = (uint16_t)Flash_Get_SysCfg(kIotUploadCycleId);
|
||||||
unsigned long timeout = nb_upload_time * 60 * RT_TICK_PER_SECOND;
|
unsigned long timeout = iot_upload_time * 60 * RT_TICK_PER_SECOND;
|
||||||
LOG_I("上报服务器周期:%d分钟", nb_upload_time);
|
LOG_I("上报服务器周期:%d分钟", iot_upload_time);
|
||||||
ml307_mutex = rt_mutex_create("ml307_mutex", RT_IPC_FLAG_FIFO);
|
ml307_mutex = rt_mutex_create("ml307_mutex", RT_IPC_FLAG_FIFO);
|
||||||
if (ml307_mutex == RT_NULL)
|
if (ml307_mutex == RT_NULL)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author : stark1898y 1658608470@qq.com
|
* @Author : stark1898y 1658608470@qq.com
|
||||||
* @Date : 2024-06-18 15:48:01
|
* @Date : 2024-06-18 15:48:01
|
||||||
* @LastEditors: mbw && 1600520629@qq.com
|
* @LastEditors: mbw && 1600520629@qq.com
|
||||||
* @LastEditTime: 2024-12-25 17:10:33
|
* @LastEditTime: 2025-01-04 17:35:21
|
||||||
* @FilePath: \ble_bjq_ch303rct6_ml307\bsp\src\bsp_mq.c
|
* @FilePath: \ble_bjq_ch303rct6_ml307\bsp\src\bsp_mq.c
|
||||||
* @Description :
|
* @Description :
|
||||||
*
|
*
|
||||||
|
@ -197,7 +197,7 @@ int BSP_MQ_Init(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef TEST_ENABLE
|
#ifdef TEST_ENABLE
|
||||||
static void TEST_MQ_EndOfLife(void)
|
void TEST_MQ_EndOfLife(void)
|
||||||
{
|
{
|
||||||
Sensor_device.end_of_life = 1;
|
Sensor_device.end_of_life = 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue