完成了增加阀门程序部分
This commit is contained in:
parent
039fca89a4
commit
2b7272acaa
|
@ -77,7 +77,7 @@ typedef struct __attribute__((packed))
|
|||
uint8_t iccid[20];
|
||||
uint8_t imsi[15];
|
||||
uint8_t rssi; // RSSI
|
||||
uint8_t rsrq; // RSRP
|
||||
uint8_t rsrp; // RSRP
|
||||
} ml307_sys_info;
|
||||
|
||||
extern ml307_sys_info ml307;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: mbw
|
||||
* @Date: 2024-11-30 15:46:21
|
||||
* @LastEditors: mbw && 1600520629@qq.com
|
||||
* @LastEditTime: 2024-12-04 18:49:45
|
||||
* @LastEditTime: 2024-12-05 09:08:12
|
||||
* @FilePath: \ble_bjq_ch303rct6_ml307\bsp\inc\bsp_ml307.h
|
||||
* @Description:
|
||||
* @
|
||||
|
@ -181,7 +181,6 @@ struct __attribute__((packed)) DataBody
|
|||
uint8_t device_status; // 设备失效状态
|
||||
rt_uint8_t valve_num; // 阀门数量
|
||||
struct valve_data valve_data[MAX_VALVE_NUM];
|
||||
// valve_data_t* valve_data; // 阀门数据指针
|
||||
};
|
||||
|
||||
// 定义数据帧结构体
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author : stark1898y 1658608470@qq.com
|
||||
* @Date : 2024-09-04 13:33:49
|
||||
* @LastEditors: mbw && 1600520629@qq.com
|
||||
* @LastEditTime: 2024-12-04 16:23:57
|
||||
* @LastEditTime: 2024-12-05 09:06:18
|
||||
* @FilePath: \ble_bjq_ch303rct6_ml307\bsp\src\at_device_ml307.c
|
||||
* @Description :
|
||||
*
|
||||
|
@ -45,7 +45,7 @@
|
|||
#define ML307_WAIT_CONNECT_TIME 5000
|
||||
#define ML307_THREAD_STACK_SIZE 4096
|
||||
#define ML307_THREAD_PRIORITY (RT_THREAD_PRIORITY_MAX / 2)
|
||||
char data_buf[AT_CLIENT_RECV_BUFF_LEN] = {0};
|
||||
|
||||
|
||||
ml307_sys_info ml307 = {0};
|
||||
struct rt_completion ml307_init_complate;
|
||||
|
@ -224,16 +224,18 @@ static int ml307_wakeup(struct at_device *device)
|
|||
return (RT_EOK);
|
||||
}
|
||||
#endif
|
||||
|
||||
char data_buf[AT_CLIENT_RECV_BUFF_LEN] = {0};
|
||||
static void urc_tcp_recv(struct at_client *client, const char *data, rt_size_t size)
|
||||
{
|
||||
rt_uint8_t id;
|
||||
int id;
|
||||
int len = 0;
|
||||
rt_uint16_t crc16 = 0;
|
||||
rt_uint16_t rec_crc16 = 0;
|
||||
char crc16_buf[6] = {0};
|
||||
|
||||
rt_uint8_t recv_byte_buf[AT_CLIENT_RECV_BUFF_LEN] = {0};
|
||||
rt_memset(data_buf, 0, sizeof(data_buf));
|
||||
LOG_D("ml307 recv data: %s", data);
|
||||
/*+MIPURC: "rtcp",<connect_id>,<recv_length>,<data>*/
|
||||
if (sscanf(data, "+MIPURC: \"rtcp\",%d,%d,%s", &id, &len, data_buf) == 3)
|
||||
{
|
||||
|
@ -1464,16 +1466,15 @@ rt_err_t Ml307_Get_Signal_Info(struct at_device *device)
|
|||
{
|
||||
if (at_obj_exec_cmd(device->client, resp, "AT+CESQ") == RT_EOK)
|
||||
{
|
||||
rt_uint8_t rsrp = 0, rsrq = 0;
|
||||
rt_uint8_t rsrp = 0;
|
||||
|
||||
if (at_resp_parse_line_args_by_kw(resp, "+CESQ:", "+CESQ:%*[^,],%*[^,],%*[^,],%*[^,],%d,%d", &rsrq, &rsrp) > 0)
|
||||
if (at_resp_parse_line_args_by_kw(resp, "+CESQ:", "+CESQ:%*[^,],%*[^,],%*[^,],%*[^,],%*[^,],%d", &rsrp) > 0)
|
||||
{
|
||||
if ((rsrp < 97) && (rsrp > 0) && ((rsrq < 34) && (rsrq > 0)))
|
||||
if ((rsrp < 97) && (rsrp > 0))
|
||||
{
|
||||
LOG_D("%s device signal rsrp: %d, rsrq: %d",
|
||||
device->name, rsrp, rsrq);
|
||||
// ml307.rsrp = rsrp;
|
||||
ml307.rsrq = rsrq;
|
||||
LOG_D("%s device signal rsrp: %d",
|
||||
device->name, rsrp);
|
||||
ml307.rsrp = rsrp;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -82,7 +82,7 @@ static rt_base_t interrupt_value;
|
|||
rt_uint8_t sys_hw_ver = 0x10;
|
||||
rt_uint8_t sys_sw_ver = 0x11;
|
||||
rt_uint8_t sys_nb_retry = 0x03; // 重试次数3次
|
||||
rt_uint16_t sys_nb_upload_cycle = 0x0078; // 120分钟一次
|
||||
rt_uint16_t sys_nb_upload_cycle = 0x0001; // 120分钟一次
|
||||
rt_uint16_t sys_alarm_h_value = 0x0032; // 50
|
||||
rt_uint16_t sys_alarm_l_value = 0x09C4; // 10
|
||||
rt_uint8_t sys_temp_alarm_threshold = 0x32;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: mbw
|
||||
* @Date: 2024-11-30 15:46:21
|
||||
* @LastEditors: mbw && 1600520629@qq.com
|
||||
* @LastEditTime: 2024-12-04 18:54:55
|
||||
* @LastEditTime: 2024-12-05 09:01:42
|
||||
* @FilePath: \ble_bjq_ch303rct6_ml307\bsp\src\bsp_ml307.c
|
||||
* @Description:
|
||||
*
|
||||
|
@ -417,7 +417,6 @@ int Ml307_Send_Data(struct Ml307_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd,
|
|||
ret = _Send_Handle(ops, data_num, cmd, data_buf);
|
||||
if (ret != RT_EOK)
|
||||
{
|
||||
// rt_free(ops->body->valve_data);
|
||||
return -ret;
|
||||
}
|
||||
}
|
||||
|
@ -428,7 +427,7 @@ int Ml307_Send_Data(struct Ml307_Ops *ops, rt_uint8_t data_num, rt_uint8_t cmd,
|
|||
LOG_E("ml307_conncet_tcp_flag = 0");
|
||||
ret = -RT_ERROR;
|
||||
}
|
||||
// rt_free(ops->body->valve_data);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -936,9 +935,9 @@ int Compare_HeaderToTail(struct Ml307_Ops *ops)
|
|||
|
||||
void Handle_Server_Reply(struct Ml307_Ops *ops)
|
||||
{
|
||||
if (ops->recv->recv_data.event_type == INSTRUCTION_HEART_BEAT)
|
||||
if ((ops->recv->recv_data.event_type == INSTRUCTION_HEART_BEAT)||(ops->recv->recv_data.event_type == EVENT_TYPE_POWER_ON))
|
||||
{
|
||||
LOG_D("ml307 send data success\n");
|
||||
LOG_D("服务器响应成功,响应码:[%02X]\n", ops->recv->recv_data.event_type);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1196,7 +1195,7 @@ void Handle_Sever_Addr_Set(struct Ml307_Ops *ops)
|
|||
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]);
|
||||
Flash_Set_Sever_Addr_Info(data);
|
||||
if (Flash_Get_Sever_Addr_Info(&sever_info) != RT_EOK)
|
||||
if (Flash_Get_Sever_Addr_Info(&sever_info) == RESET)
|
||||
{
|
||||
LOG_E("服务器地址修改失败\n");
|
||||
}
|
||||
|
@ -1214,22 +1213,25 @@ rt_err_t Handle_Valve_Add(struct Ml307_Ops *ops)
|
|||
char imei[16] = {0};
|
||||
char temp[32] = "0";
|
||||
rt_uint8_t cnt = Flash_Get_Valve_Num();
|
||||
|
||||
rt_uint8_t mac_addr[FLASH_VALVE_MAC_ADDR_LEN + 1] = {0};
|
||||
Get_Iot_Imei(imei, FLASH_NB_IMEI_LEN);
|
||||
String2Hex(temp, imei); // 将字符串转为十六进制字符串
|
||||
|
||||
if (cnt > MAX_VALVE_NUM)
|
||||
{
|
||||
LOG_E("阀门设备数量超过最大值\n");
|
||||
ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_ML307, INSTRUCTION_DOWN_VALVE_ADD, temp, RESPONSE_CODE_OTHER_ERROR);
|
||||
ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_ML307, INSTRUCTION_DOWN_VALVE_ADD, temp, RESPONSE_CODE_ACTION_FAILURE);
|
||||
return RT_ERROR;
|
||||
}
|
||||
|
||||
rt_memcpy(data, (ops->recv->recv_data.res_data + 8), FLASH_VALVE_MAC_ADDR_LEN + 1);
|
||||
|
||||
LOG_D("data[0] = %x data[1] = %x data[2] = %x data[3] = %x data[4] = %x, data[5] = %x", data[0], data[1], data[2], data[3], data[4], data[5], data[6]);
|
||||
|
||||
if (Flash_Set_Mac_Addr(&data[1], data[0]) != RT_EOK)
|
||||
if (Flash_Get_Mac_Addr(mac_addr, data[0]) != RESET)
|
||||
{
|
||||
if ((mac_addr[0] != 0xe3) && (mac_addr[0] != 0xe9))
|
||||
{
|
||||
if (Flash_Set_Mac_Addr(&data[1], data[0]) == RESET)
|
||||
{
|
||||
LOG_E("新增阀门设备失败\n");
|
||||
ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_ML307, INSTRUCTION_DOWN_VALVE_ADD, temp, RESPONSE_CODE_ACTION_FAILURE);
|
||||
|
@ -1240,6 +1242,15 @@ rt_err_t Handle_Valve_Add(struct Ml307_Ops *ops)
|
|||
ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_ML307, INSTRUCTION_DOWN_VALVE_ADD, temp, RESPONSE_CODE_SUCCESS);
|
||||
return RT_EOK;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_E("该阀门设备已存在,请选择更换阀门编号后重试\n");
|
||||
ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_ML307, INSTRUCTION_DOWN_VALVE_ADD, temp, RESPONSE_CODE_OTHER_ERROR);
|
||||
return RT_EOK;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*更换阀门设备*/
|
||||
rt_err_t Handle_Valve_Replace(struct Ml307_Ops *ops)
|
||||
|
@ -1253,7 +1264,7 @@ rt_err_t Handle_Valve_Replace(struct Ml307_Ops *ops)
|
|||
rt_memcpy(data, (ops->recv->recv_data.res_data + 8), FLASH_VALVE_MAC_ADDR_LEN + 1);
|
||||
LOG_D("data[0] = %x data[1] = %x data[2] = %x data[3] = %x data[4] = %x, data[5] = %x", data[0], data[1], data[2], data[3], data[4], data[5], data[6]);
|
||||
|
||||
if (Flash_Set_Mac_Addr(&data[1], data[0]) != RT_EOK)
|
||||
if (Flash_Set_Mac_Addr(&data[1], data[0]) == RESET)
|
||||
{
|
||||
LOG_E("更换阀门设备失败\n");
|
||||
ops->Resp(ops, DATA_SERIAL_NUM, CMD_TYPE_INSTRUCTION_REPLY, DEVICE_TYPE_ML307, INSTRUCTION_DOWN_VALVE_REPLACE, temp, RESPONSE_CODE_ACTION_FAILURE);
|
||||
|
|
Loading…
Reference in New Issue