将标定值改为1600,预热时间改为3min,加了断电关阀功能
This commit is contained in:
parent
d446e2a999
commit
9a7c78302f
|
@ -2,7 +2,7 @@
|
||||||
* @Author: mbw
|
* @Author: mbw
|
||||||
* @Date: 2024-10-23 17:14:16
|
* @Date: 2024-10-23 17:14:16
|
||||||
* @LastEditors: mbw && 1600520629@qq.com
|
* @LastEditors: mbw && 1600520629@qq.com
|
||||||
* @LastEditTime: 2025-01-02 17:29:27
|
* @LastEditTime: 2025-01-04 16:01:41
|
||||||
* @FilePath: \ble_bjq_ch303rct6_ml307\applications\main.c
|
* @FilePath: \ble_bjq_ch303rct6_ml307\applications\main.c
|
||||||
* @Descrt_thread_
|
* @Descrt_thread_
|
||||||
*
|
*
|
||||||
|
@ -149,8 +149,8 @@ void Preheat_Timer_Callback(void *parameter)
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
// 定义超时时间,单位为毫秒
|
// 定义超时时间,单位为毫秒
|
||||||
// #define TIMEOUT_MS 3 * 60 * 1000
|
#define TIMEOUT_MS 3 * 60 * 1000
|
||||||
#define TIMEOUT_MS 8 * 1000
|
// #define TIMEOUT_MS 8 * 1000
|
||||||
#define WORK_TIMER_CNT (1000 * 60 * 60 * 24)
|
#define WORK_TIMER_CNT (1000 * 60 * 60 * 24)
|
||||||
rt_err_t result = RT_EINVAL;
|
rt_err_t result = RT_EINVAL;
|
||||||
rt_uint32_t received_event;
|
rt_uint32_t received_event;
|
||||||
|
@ -381,7 +381,7 @@ int main(void)
|
||||||
Flash_Write_Record(kRecordFault);
|
Flash_Write_Record(kRecordFault);
|
||||||
|
|
||||||
LED_Y_FAULT;
|
LED_Y_FAULT;
|
||||||
BEEP_FAULT;
|
// BEEP_FAULT;
|
||||||
|
|
||||||
#if (IOT_MODULE_SWITCH == 1)
|
#if (IOT_MODULE_SWITCH == 1)
|
||||||
Ml307_Send_Event(kMl307FaultEvent);
|
Ml307_Send_Event(kMl307FaultEvent);
|
||||||
|
@ -421,7 +421,7 @@ int main(void)
|
||||||
|
|
||||||
SysControl.last_status = SysControl.status;
|
SysControl.last_status = SysControl.status;
|
||||||
SysControl.status = kPowerDownEvent;
|
SysControl.status = kPowerDownEvent;
|
||||||
|
GAS_POWER_CLOSE;
|
||||||
// 写入掉电记录
|
// 写入掉电记录
|
||||||
Flash_Write_Record(kRecordPowerDown);
|
Flash_Write_Record(kRecordPowerDown);
|
||||||
|
|
||||||
|
@ -431,7 +431,9 @@ int main(void)
|
||||||
#endif
|
#endif
|
||||||
if (Flash_Get_Valve_Num())
|
if (Flash_Get_Valve_Num())
|
||||||
{
|
{
|
||||||
Bt_Valve_Handler(kValveCmdCtr, 0, RT_NULL);
|
rt_uint8_t mac_addr[6];
|
||||||
|
Flash_Get_Mac_Addr(mac_addr, 1);
|
||||||
|
Bt_Valve_Handler(kValveCmdCtr, 1, mac_addr);
|
||||||
if (rt_sem_take(&bt_ctr_sem, 10000) == RT_EOK)
|
if (rt_sem_take(&bt_ctr_sem, 10000) == RT_EOK)
|
||||||
{
|
{
|
||||||
LOG_D("电磁阀动作完成");
|
LOG_D("电磁阀动作完成");
|
||||||
|
@ -441,7 +443,7 @@ int main(void)
|
||||||
LOG_E("电磁阀动作失败");
|
LOG_E("电磁阀动作失败");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
GAS_POWER_CLOSE;
|
|
||||||
LOG_D("Enter AnalogWatchdog Interrupt");
|
LOG_D("Enter AnalogWatchdog Interrupt");
|
||||||
// 等待30s,要是还没断电就重启
|
// 等待30s,要是还没断电就重启
|
||||||
for (uint8_t i = 0; i < 30; i++)
|
for (uint8_t i = 0; i < 30; i++)
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
#define SYS_PREHEAT_TIME_S (10U)
|
#define SYS_PREHEAT_TIME_S (10U)
|
||||||
#define SYS_MUTE_TIME_S (uint8_t)(10 * 3)
|
#define SYS_MUTE_TIME_S (uint8_t)(10 * 3)
|
||||||
|
|
||||||
#define MAX_EXPIRATION_DAYS (uint16_t)(365 * 10 + 30 * 3)
|
#define MAX_EXPIRATION_DAYS (uint16_t)(365 * 5 + 30 * 3)
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
|
|
|
@ -67,14 +67,14 @@ extern agile_led_t *led_y;
|
||||||
LED_ON(g); \
|
LED_ON(g); \
|
||||||
} while (0U)
|
} while (0U)
|
||||||
|
|
||||||
//网络连接指示灯
|
//网络连接断开指示灯
|
||||||
#define LED_G_INTERNET \
|
#define LED_G_INTERNET \
|
||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
LED_STOP(r); \
|
LED_STOP(r); \
|
||||||
LED_STOP(g); \
|
LED_STOP(g); \
|
||||||
LED_STOP(y); \
|
LED_STOP(y); \
|
||||||
LED_CTRL(g, "500,500", -1);\
|
LED_CTRL(g, "500,1000", -1);\
|
||||||
LED_START(g);\
|
LED_START(g);\
|
||||||
} while (0U)
|
} while (0U)
|
||||||
|
|
||||||
|
|
|
@ -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-03 16:44:30
|
* @LastEditTime: 2025-01-04 15:48:16
|
||||||
* @FilePath: \ble_bjq_ch303rct6_ml307\bsp\src\at_device_ml307.c
|
* @FilePath: \ble_bjq_ch303rct6_ml307\bsp\src\at_device_ml307.c
|
||||||
* @Description :
|
* @Description :
|
||||||
*
|
*
|
||||||
|
@ -46,7 +46,6 @@
|
||||||
#define ML307_THREAD_STACK_SIZE (4096)
|
#define ML307_THREAD_STACK_SIZE (4096)
|
||||||
#define ML307_THREAD_PRIORITY (RT_THREAD_PRIORITY_MAX / 2)
|
#define ML307_THREAD_PRIORITY (RT_THREAD_PRIORITY_MAX / 2)
|
||||||
|
|
||||||
|
|
||||||
ml307_sys_info ml307 = {0};
|
ml307_sys_info ml307 = {0};
|
||||||
struct rt_completion ml307_init_complate;
|
struct rt_completion ml307_init_complate;
|
||||||
volatile rt_uint8_t socket_id = 0;
|
volatile rt_uint8_t socket_id = 0;
|
||||||
|
@ -186,25 +185,24 @@ static void urc_tcp_connect_state(struct at_client *client, const char *data, rt
|
||||||
switch (err_code)
|
switch (err_code)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
LOG_D("TCP connect success");
|
|
||||||
ml307_conncet_tcp_flag = 1;
|
ml307_conncet_tcp_flag = 1;
|
||||||
break;
|
break;
|
||||||
case 571:
|
case 571:
|
||||||
LOG_D("PDP激活失败");
|
LOG_D("PDP激活失败");
|
||||||
ml307_conncet_tcp_flag = 0;
|
ml307_conncet_tcp_flag = 0;
|
||||||
|
rt_sem_release(ml307_disconnect_sem);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
LOG_D("连接失败");
|
LOG_D("连接失败");
|
||||||
ml307_conncet_tcp_flag = 0;
|
ml307_conncet_tcp_flag = 0;
|
||||||
|
rt_sem_release(ml307_disconnect_sem);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
rt_sem_release(ml307_connect_flag_sem); // 用于返回连接的标志量在连接函数中
|
rt_sem_release(ml307_connect_flag_sem); // 用于返回连接的标志量在连接函数中
|
||||||
rt_sem_release(ml307_disconnect_sem);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void urc_tcp_disconnect(struct at_client *client, const char *data, rt_size_t size)
|
static void urc_tcp_disconnect(struct at_client *client, const char *data, rt_size_t size)
|
||||||
{
|
{
|
||||||
size_t state = 0, id;
|
size_t state = 0, id;
|
||||||
|
@ -236,7 +234,7 @@ static void urc_tcp_disconnect(struct at_client *client, const char *data, rt_si
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void urc_sim_remove(struct at_client *client, const char *data, rt_size_t size)
|
void urc_sim_remove(struct at_client *client, const char *data, rt_size_t size)
|
||||||
{
|
{
|
||||||
LOG_D("SIM removed");
|
LOG_D("SIM removed");
|
||||||
Send_Laser_Alarm_Event(kFaultEvent);
|
Send_Laser_Alarm_Event(kFaultEvent);
|
||||||
|
@ -247,7 +245,7 @@ static const struct at_urc urc_table[] = {
|
||||||
{"+MIPURC: \"disconn\"", "\r\n", urc_tcp_disconnect},
|
{"+MIPURC: \"disconn\"", "\r\n", urc_tcp_disconnect},
|
||||||
{"+MIPURC: \"rtcp\"", "\r\n", urc_tcp_recv},
|
{"+MIPURC: \"rtcp\"", "\r\n", urc_tcp_recv},
|
||||||
{"+MATREADY", "\r\n", urc_device_reset},
|
{"+MATREADY", "\r\n", urc_device_reset},
|
||||||
{"+CPIN: SIM REMOVED", "\r\n", urc_sim_remove},
|
// {"+CPIN: SIM REMOVED", "\r\n", urc_sim_remove},
|
||||||
};
|
};
|
||||||
|
|
||||||
void show_resp_info(at_response_t resp)
|
void show_resp_info(at_response_t resp)
|
||||||
|
@ -399,6 +397,21 @@ static int ml307_check_link_status(struct at_device *device)
|
||||||
LOG_E("no memory for resp create.");
|
LOG_E("no memory for resp create.");
|
||||||
return -RT_ERROR;
|
return -RT_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (at_obj_exec_cmd(device->client, resp, "AT+MIPCALL?") < 0)
|
||||||
|
{
|
||||||
|
result = -RT_ERROR;
|
||||||
|
goto __exit;
|
||||||
|
}
|
||||||
|
//// 查询拨号状态
|
||||||
|
if (at_resp_parse_line_args_by_kw(resp, "+MIPCALL:", "+MIPCALL: %d,%*d,%*s", &link_stat) > 0)
|
||||||
|
{
|
||||||
|
if (link_stat == 1)
|
||||||
|
{
|
||||||
|
result = RT_EOK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (at_obj_exec_cmd(device->client, resp, "AT+CGACT?") < 0)
|
if (at_obj_exec_cmd(device->client, resp, "AT+CGACT?") < 0)
|
||||||
{
|
{
|
||||||
result = -RT_ERROR;
|
result = -RT_ERROR;
|
||||||
|
@ -455,6 +468,7 @@ static int ml307_netdev_set_info(struct netdev *netdev)
|
||||||
result = -RT_ENOMEM;
|
result = -RT_ENOMEM;
|
||||||
goto __exit;
|
goto __exit;
|
||||||
}
|
}
|
||||||
|
device->class->device_ops->control(device, AT_DEVICE_CTRL_NET_CONN, RT_NULL); // 打开连接
|
||||||
/* set network interface device IP address */
|
/* set network interface device IP address */
|
||||||
{
|
{
|
||||||
#define IP_ADDR_SIZE_MAX 16
|
#define IP_ADDR_SIZE_MAX 16
|
||||||
|
@ -512,20 +526,26 @@ static void ml307_check_link_status_entry(void *parameter)
|
||||||
LOG_E("get device(%s) failed.", netdev->name);
|
LOG_E("get device(%s) failed.", netdev->name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
at_response_t resp = at_create_resp(ML307_IMEI_RESP_SIZE, 0, ML307_INFO_RESP_TIMO);
|
||||||
|
if (resp == RT_NULL)
|
||||||
|
{
|
||||||
|
LOG_E("no memory for resp create.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
link_status = ml307_check_link_status(device);
|
link_status = ml307_check_link_status(device);
|
||||||
if (link_status < 0)
|
if (link_status < 0)
|
||||||
{
|
{
|
||||||
rt_thread_mdelay(ML307_LINK_DELAY_TIME);
|
rt_thread_mdelay(ML307_LINK_DELAY_TIME);
|
||||||
|
at_exec_cmd(resp, "AT+MIPCALL=1,1");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* check the network interface device link status */
|
// /* check the network interface device link status */
|
||||||
if ((ML307_LINK_STATUS_OK == link_status) != netdev_is_link_up(netdev))
|
// if ((ML307_LINK_STATUS_OK == link_status) != netdev_is_link_up(netdev))
|
||||||
{
|
// {
|
||||||
netdev_low_level_set_link_status(netdev, (ML307_LINK_STATUS_OK == link_status));
|
// netdev_low_level_set_link_status(netdev, (ML307_LINK_STATUS_OK == link_status));
|
||||||
}
|
// }
|
||||||
rt_thread_delay(ML307_LINK_DELAY_TIME);
|
rt_thread_delay(ML307_LINK_DELAY_TIME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -533,7 +553,7 @@ static void ml307_check_link_status_entry(void *parameter)
|
||||||
int ml307_netdev_check_link_status(struct netdev *netdev)
|
int ml307_netdev_check_link_status(struct netdev *netdev)
|
||||||
{
|
{
|
||||||
#define ML307_LINK_THREAD_TICK 20
|
#define ML307_LINK_THREAD_TICK 20
|
||||||
#define ML307_LINK_THREAD_STACK_SIZE (1024)
|
#define ML307_LINK_THREAD_STACK_SIZE (2048)
|
||||||
#define ML307_LINK_THREAD_PRIORITY (RT_THREAD_PRIORITY_MAX - 2)
|
#define ML307_LINK_THREAD_PRIORITY (RT_THREAD_PRIORITY_MAX - 2)
|
||||||
|
|
||||||
rt_thread_t tid;
|
rt_thread_t tid;
|
||||||
|
@ -792,15 +812,15 @@ static struct netdev *ml307_netdev_add(const char *netdev_name)
|
||||||
|
|
||||||
/* ============================= ml307 device operations ============================= */
|
/* ============================= ml307 device operations ============================= */
|
||||||
|
|
||||||
// #define AT_SEND_CMD(client, resp, resp_line, timeout, cmd) \
|
#define AT_SEND_CMD(client, resp, resp_line, timeout, cmd) \
|
||||||
// do { \
|
do { \
|
||||||
// (resp) = at_resp_set_info((resp), 128, (resp_line), rt_tick_from_millisecond(timeout)); \
|
(resp) = at_resp_set_info((resp), 128, (resp_line), rt_tick_from_millisecond(timeout)); \
|
||||||
// if (at_obj_exec_cmd((client), (resp), (cmd)) < 0) \
|
if (at_obj_exec_cmd((client), (resp), (cmd)) < 0) \
|
||||||
// { \
|
{ \
|
||||||
// result = -RT_ERROR; \
|
result = -RT_ERROR; \
|
||||||
// goto __exit; \
|
goto __exit; \
|
||||||
// } \
|
} \
|
||||||
// } while(0)
|
} while (0)
|
||||||
/* initialize for ml307 */
|
/* initialize for ml307 */
|
||||||
static void ml307_init_thread_entry(void *parameter)
|
static void ml307_init_thread_entry(void *parameter)
|
||||||
{
|
{
|
||||||
|
@ -810,7 +830,8 @@ static void ml307_init_thread_entry(void *parameter)
|
||||||
#define CEREG_RETRY 50
|
#define CEREG_RETRY 50
|
||||||
#define IPADDR_RETRY 10
|
#define IPADDR_RETRY 10
|
||||||
#define COMMON_RETRY 10
|
#define COMMON_RETRY 10
|
||||||
#define ML307_AT_DEFAULT_TIMEOUT 1000
|
#define CGATT_RETRY 10
|
||||||
|
#define ML307_AT_DEFAULT_TIMEOUT 5000
|
||||||
int i;
|
int i;
|
||||||
rt_uint8_t retry_num = INIT_RETRY;
|
rt_uint8_t retry_num = INIT_RETRY;
|
||||||
rt_err_t result = RT_EOK;
|
rt_err_t result = RT_EOK;
|
||||||
|
@ -831,9 +852,9 @@ static void ml307_init_thread_entry(void *parameter)
|
||||||
while (retry_num--)
|
while (retry_num--)
|
||||||
{
|
{
|
||||||
/* power on the ml307 device */
|
/* power on the ml307 device */
|
||||||
rt_thread_mdelay(500);
|
|
||||||
ml307_power_on(device);
|
|
||||||
rt_thread_mdelay(1000);
|
rt_thread_mdelay(1000);
|
||||||
|
ml307_power_on(device);
|
||||||
|
rt_thread_mdelay(2000);
|
||||||
LOG_D("power on %s device.", device->name);
|
LOG_D("power on %s device.", device->name);
|
||||||
/* wait ml307 startup finish, send AT every 500ms, if receive OK, SYNC success*/
|
/* wait ml307 startup finish, send AT every 500ms, if receive OK, SYNC success*/
|
||||||
if (at_client_obj_wait_connect(client, ML307_WAIT_CONNECT_TIME))
|
if (at_client_obj_wait_connect(client, ML307_WAIT_CONNECT_TIME))
|
||||||
|
@ -843,11 +864,7 @@ static void ml307_init_thread_entry(void *parameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* disable echo */
|
/* disable echo */
|
||||||
if (at_obj_exec_cmd(device->client, resp, "ATE0") != RT_EOK)
|
AT_SEND_CMD(client, resp, 0, ML307_AT_DEFAULT_TIMEOUT, "ATE0");
|
||||||
{
|
|
||||||
result = -RT_ERROR;
|
|
||||||
goto __exit;
|
|
||||||
}
|
|
||||||
/* get module version */
|
/* get module version */
|
||||||
if (at_obj_exec_cmd(device->client, resp, "ATI") != RT_EOK)
|
if (at_obj_exec_cmd(device->client, resp, "ATI") != RT_EOK)
|
||||||
{
|
{
|
||||||
|
@ -898,6 +915,7 @@ static void ml307_init_thread_entry(void *parameter)
|
||||||
result = -RT_ERROR;
|
result = -RT_ERROR;
|
||||||
goto __exit;
|
goto __exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
#define ML307_NETDEV_HWADDR_LEN 8
|
#define ML307_NETDEV_HWADDR_LEN 8
|
||||||
#define ML307_IMEI_LEN 15
|
#define ML307_IMEI_LEN 15
|
||||||
|
@ -941,7 +959,7 @@ static void ml307_init_thread_entry(void *parameter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rt_thread_mdelay(1000);
|
rt_thread_mdelay(3000);
|
||||||
}
|
}
|
||||||
if (i == CPIN_RETRY)
|
if (i == CPIN_RETRY)
|
||||||
{
|
{
|
||||||
|
@ -949,41 +967,23 @@ 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)
|
||||||
// for (i = 0; i < CSQ_RETRY; i++)
|
{
|
||||||
// {
|
result = -RT_ERROR;
|
||||||
// if (at_obj_exec_cmd(device->client, resp, "AT+CREG=1") == RT_EOK)
|
goto __exit;
|
||||||
// {
|
}
|
||||||
// rt_uint8_t state;
|
char parsed_data[10] = {0};
|
||||||
// if (at_resp_parse_line_args_by_kw(resp, "+CREG:", "+CREG:%d", &state) > 0)
|
for (i = 0; i < CGATT_RETRY; i++)
|
||||||
// {
|
{
|
||||||
// if (state == 1)
|
AT_SEND_CMD(client, resp, 0, ML307_AT_DEFAULT_TIMEOUT, "AT+CGATT?");
|
||||||
// {
|
at_resp_parse_line_args_by_kw(resp, "+CGATT:", "+CGATT: %s", &parsed_data);
|
||||||
// LOG_D("%s device network registration success.", device->name);
|
if (!rt_strncmp(parsed_data, "1", 1))
|
||||||
// /* code */
|
{
|
||||||
// }
|
LOG_D("%s device Packet domain attach.", device->name);
|
||||||
// else
|
break;
|
||||||
// {
|
}
|
||||||
// LOG_E("%s device network registration failed.", device->name);
|
rt_thread_mdelay(1000);
|
||||||
// result = -RT_ERROR;
|
}
|
||||||
// goto __exit;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// LOG_D("%s device prase \"AT+CREG=1\" cmd error.", device->name);
|
|
||||||
// result = -RT_ERROR;
|
|
||||||
// goto __exit;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// rt_thread_mdelay(1000);
|
|
||||||
// }
|
|
||||||
// if (i == CSQ_RETRY)
|
|
||||||
// {
|
|
||||||
// LOG_D("%s device network registration failed.", device->name);
|
|
||||||
// result = -RT_ERROR;
|
|
||||||
// goto __exit;
|
|
||||||
// }
|
|
||||||
/* set network interface device hardware iccid */
|
/* set network interface device hardware iccid */
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -1036,34 +1036,6 @@ static void ml307_init_thread_entry(void *parameter)
|
||||||
Flash_Sys_Cfg(kIotImsiId, ml307.imsi, ML307_IMSI_LEN);
|
Flash_Sys_Cfg(kIotImsiId, ml307.imsi, ML307_IMSI_LEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check signal strength */
|
|
||||||
for (i = 0; i < CSQ_RETRY; i++)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (at_obj_exec_cmd(device->client, resp, "AT+CSQ") == RT_EOK)
|
|
||||||
{
|
|
||||||
int signal_strength = 0, err_rate = 0;
|
|
||||||
|
|
||||||
if (at_resp_parse_line_args_by_kw(resp, "+CSQ:", "+CSQ: %d,%d", &signal_strength, &err_rate) > 0)
|
|
||||||
{
|
|
||||||
if ((signal_strength != 99) && (signal_strength != 0))
|
|
||||||
{
|
|
||||||
LOG_D("%s device signal strength: %d, channel bit err_rate: %d",
|
|
||||||
device->name, signal_strength, err_rate);
|
|
||||||
ml307.rssi = signal_strength;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
rt_thread_mdelay(1000);
|
|
||||||
}
|
|
||||||
if (i == CSQ_RETRY)
|
|
||||||
{
|
|
||||||
LOG_E("%s device signal strength check failed", device->name);
|
|
||||||
result = -RT_ERROR;
|
|
||||||
goto __exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* check the GPRS network is registered */
|
/* check the GPRS network is registered */
|
||||||
for (i = 0; i < CEREG_RETRY; i++)
|
for (i = 0; i < CEREG_RETRY; i++)
|
||||||
{
|
{
|
||||||
|
@ -1147,7 +1119,7 @@ static void ml307_init_thread_entry(void *parameter)
|
||||||
/* set network interface device status and address information */
|
/* set network interface device status and address information */
|
||||||
ml307_netdev_set_info(device->netdev);
|
ml307_netdev_set_info(device->netdev);
|
||||||
/* check and create link staus sync thread */
|
/* check and create link staus sync thread */
|
||||||
// ml307_netdev_check_link_status(device->netdev);
|
ml307_netdev_check_link_status(device->netdev);
|
||||||
LOG_I("%s device network initialize success.", device->name);
|
LOG_I("%s device network initialize success.", device->name);
|
||||||
rt_completion_done(&ml307_init_complate); // 通知初始化完成
|
rt_completion_done(&ml307_init_complate); // 通知初始化完成
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: mbw
|
* @Author: mbw
|
||||||
* @Date: 2024-12-03 10:31:45
|
* @Date: 2024-12-03 10:31:45
|
||||||
* @LastEditors: mbw && 1600520629@qq.com
|
* @LastEditors: mbw && 1600520629@qq.com
|
||||||
* @LastEditTime: 2025-01-03 14:57:36
|
* @LastEditTime: 2025-01-04 15:42:19
|
||||||
* @FilePath: \ble_bjq_ch303rct6_ml307\bsp\src\bsp_bt.c
|
* @FilePath: \ble_bjq_ch303rct6_ml307\bsp\src\bsp_bt.c
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
|
@ -411,7 +411,7 @@ void BSP_Bt_Valve_Updata(void)
|
||||||
if (Flash_Get_Mac_Addr(mac, i) == 0) // 说明有MAC数据
|
if (Flash_Get_Mac_Addr(mac, i) == 0) // 说明有MAC数据
|
||||||
{
|
{
|
||||||
rt_memcpy(valve[cnt].valve_mac, mac, 6); // 这样做的目的就是读取方便,只需要根据flash中读取到的数量进行读取前N个值
|
rt_memcpy(valve[cnt].valve_mac, mac, 6); // 这样做的目的就是读取方便,只需要根据flash中读取到的数量进行读取前N个值
|
||||||
valve[cnt].valve_id = i + 1;
|
valve[cnt].valve_id = i;
|
||||||
LOG_D("updata valve_id: %d, valve_mac: %02X %02X %02X %02X %02X %02X",
|
LOG_D("updata valve_id: %d, valve_mac: %02X %02X %02X %02X %02X %02X",
|
||||||
valve[cnt].valve_id,
|
valve[cnt].valve_id,
|
||||||
valve[cnt].valve_mac[0],
|
valve[cnt].valve_mac[0],
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include "at_device_ml307.h"
|
#include "at_device_ml307.h"
|
||||||
#include <rtthread.h>
|
#include <rtthread.h>
|
||||||
#include <rthw.h>
|
#include <rthw.h>
|
||||||
|
#include "rtdef.h"
|
||||||
|
|
||||||
#define LOG_TAG "bsp_flash"
|
#define LOG_TAG "bsp_flash"
|
||||||
#define LOG_LVL LOG_LVL_DBG
|
#define LOG_LVL LOG_LVL_DBG
|
||||||
|
@ -24,8 +25,8 @@ 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_nb_retry = 0x03; // 重试次数3次
|
||||||
rt_uint16_t sys_nb_upload_cycle = 0x0001; // 120分钟一次
|
rt_uint16_t sys_nb_upload_cycle = 0x0001; // 120分钟一次
|
||||||
rt_uint16_t sys_alarm_h_value = 0x0032; // 50
|
rt_uint16_t sys_alarm_h_value = 0x09C4; // 2500
|
||||||
rt_uint16_t sys_alarm_l_value = 0x09C4; // 2500
|
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;
|
||||||
rt_uint8_t sys_emagnetic_switch = 0x04; // 具备阀门功能
|
rt_uint8_t sys_emagnetic_switch = 0x04; // 具备阀门功能
|
||||||
rt_uint8_t sys_relay_switch = 0x04; // 具备继电器功能
|
rt_uint8_t sys_relay_switch = 0x04; // 具备继电器功能
|
||||||
|
@ -895,8 +896,8 @@ int BSP_Flash_Init(void)
|
||||||
Flash_Write(FLASH_INIT_FLAG_ADDR, flash_init_flag,
|
Flash_Write(FLASH_INIT_FLAG_ADDR, flash_init_flag,
|
||||||
sizeof(flash_init_flag));
|
sizeof(flash_init_flag));
|
||||||
|
|
||||||
Flash_SetProductTimeLimit(2024, 9, 8, 13, 58, 20, kFactoryTimeId);
|
Flash_SetProductTimeLimit(2025, 1, 6, 11, 20, 50, kFactoryTimeId);
|
||||||
Flash_SetProductTimeLimit(2024 + 8, 9, 8, 13, 58, 20, kExpirationTimeId);
|
Set_ExpirationTime(MAX_EXPIRATION_DAYS);
|
||||||
|
|
||||||
sci.hw_ver = sys_hw_ver;
|
sci.hw_ver = sys_hw_ver;
|
||||||
sci.sw_ver = sys_sw_ver;
|
sci.sw_ver = sys_sw_ver;
|
||||||
|
|
|
@ -54,14 +54,14 @@ static void BSP_Led_thread_entry(void *param)
|
||||||
#endif
|
#endif
|
||||||
if (SysControl.status == kNormalDetectionEvents)
|
if (SysControl.status == kNormalDetectionEvents)
|
||||||
{
|
{
|
||||||
if ((power_on_send_flag))
|
if ((ml307_conncet_tcp_flag))
|
||||||
{
|
|
||||||
LED_G_INTERNET;
|
|
||||||
}
|
|
||||||
else if ((!power_on_send_flag))
|
|
||||||
{
|
{
|
||||||
LED_G_NORMAL;
|
LED_G_NORMAL;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LED_G_INTERNET;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
rt_thread_mdelay(1000);
|
rt_thread_mdelay(1000);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1506,20 +1506,6 @@ static void Ml307_Send_Thread_Entry(void *param)
|
||||||
RT_WAITING_FOREVER, &ml307_recv_event); // 这个事件一般是设备端发生了变化,发送到服务器时调用
|
RT_WAITING_FOREVER, &ml307_recv_event); // 这个事件一般是设备端发生了变化,发送到服务器时调用
|
||||||
|
|
||||||
if (result == RT_EOK)
|
if (result == RT_EOK)
|
||||||
{
|
|
||||||
LOG_D("ml307 recv event OK\n");
|
|
||||||
if (ml307_conncet_tcp_flag != 1)
|
|
||||||
{
|
|
||||||
if (device->class->device_ops->control(device, AT_DEVICE_CTRL_NET_CONN, RT_NULL) == RT_EOK) // 打开连接
|
|
||||||
{
|
|
||||||
LOG_I("ml307 connect tcp success\n");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LOG_E("ml307 connect tcp failed\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ml307_conncet_tcp_flag)
|
|
||||||
{
|
{
|
||||||
if (ml307_recv_event & Ml307_Get_Event_Flag(kMl307PowerOnEvent))
|
if (ml307_recv_event & Ml307_Get_Event_Flag(kMl307PowerOnEvent))
|
||||||
{
|
{
|
||||||
|
@ -1643,7 +1629,6 @@ static void Ml307_Send_Thread_Entry(void *param)
|
||||||
LOG_E("ml307 send data failed result = [%d]\n", result);
|
LOG_E("ml307 send data failed result = [%d]\n", result);
|
||||||
}
|
}
|
||||||
ml307_event_initialized = RT_FALSE; // 当接收到掉电事件时,不再接收其他事件
|
ml307_event_initialized = RT_FALSE; // 当接收到掉电事件时,不再接收其他事件
|
||||||
// rt_event_detach(&at_device_event);
|
|
||||||
}
|
}
|
||||||
else if (ml307_recv_event & Ml307_Get_Event_Flag(kMl307DeviceFailureEvent))
|
else if (ml307_recv_event & Ml307_Get_Event_Flag(kMl307DeviceFailureEvent))
|
||||||
{
|
{
|
||||||
|
@ -1654,8 +1639,6 @@ static void Ml307_Send_Thread_Entry(void *param)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rt_thread_mdelay(1); // 释放下线程
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue