代码暂存 通过蓝牙上报阀门状态及数据
This commit is contained in:
parent
3724b20e2f
commit
6032d61ead
|
@ -725,19 +725,20 @@ static void peripheralStateNotificationCB(gapRole_States_t newState, gapRoleEven
|
||||||
*/
|
*/
|
||||||
static void performPeriodicTask(void)
|
static void performPeriodicTask(void)
|
||||||
{
|
{
|
||||||
gValveData.bat = BSP_ReadVbat();
|
// gValveData.bat = BSP_ReadVbat();
|
||||||
if (gValveData.bat <= LOW_VABAT_CLOSE_VALUE)
|
// if (gValveData.bat <= LOW_VABAT_CLOSE_VALUE)
|
||||||
{
|
// {
|
||||||
tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT);
|
// tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT);
|
||||||
}
|
// }
|
||||||
else if (gValveData.bat <= LOW_VABAT_ALARM_VALUE)
|
// else if (gValveData.bat <= LOW_VABAT_ALARM_VALUE)
|
||||||
{
|
// {
|
||||||
tmos_set_event(vavle_task_id, VAVLE_LOW_VBAT_ALARM_EVT);
|
// tmos_set_event(vavle_task_id, VAVLE_LOW_VBAT_ALARM_EVT);
|
||||||
}
|
// }
|
||||||
logDebug("switch_status:%d Temp:%d Bat:%d Humi:%d%% RSSI: %d",
|
// logDebug("switch_status:%d Temp:%d Bat:%d Humi:%d%% RSSI: %d",
|
||||||
gValveData.switch_status, gValveData.temp, gValveData.bat, gValveData.humi, gValveData.rssi);
|
// gValveData.switch_status, gValveData.temp, gValveData.bat, gValveData.humi, gValveData.rssi);
|
||||||
TsRawFrameData RawData;
|
TsRawFrameData RawData;
|
||||||
BSP_VALVE_Generate_UploadData(&RawData);
|
// BSP_VALVE_Generate_UploadData(&RawData);
|
||||||
|
BSP_VALVE_Generate_Data(&RawData, kCmdData);
|
||||||
peripheralChar4Notify(&RawData.buf[0], RawData.len);
|
peripheralChar4Notify(&RawData.buf[0], RawData.len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,3 +7,7 @@
|
||||||
6.低功耗优化
|
6.低功耗优化
|
||||||
7.电机停止需判断COIL_ADC优化
|
7.电机停止需判断COIL_ADC优化
|
||||||
8.低电压判断及后续处理
|
8.低电压判断及后续处理
|
||||||
|
|
||||||
|
|
||||||
|
灯显示加到开关阀流程中
|
||||||
|
4G上报添加到统一的开关阀函数中
|
||||||
|
|
|
@ -32,6 +32,31 @@ void Function_Check(void);
|
||||||
extern uint8_t volatile fault_state;
|
extern uint8_t volatile fault_state;
|
||||||
extern uint8_t keydown_flag;
|
extern uint8_t keydown_flag;
|
||||||
|
|
||||||
|
// 安全阈值参数统一定义
|
||||||
|
#define SAFETY_AUTO_OPEN_THRESHOLD 3 // 自动开阀阈值(连续检测次数)
|
||||||
|
#define SAFETY_MICRO_LEAK_THRESHOLD 5 // 微泄漏检测阈值(连续检测次数)
|
||||||
|
#define SAFETY_MICRO_LEAK_PRESS_DIFF 15 // 微泄漏压力差阈值(Pa),对应流量约0.3L/min
|
||||||
|
#define SAFETY_OVER_TEMP_THRESHOLD 65 // 超温阈值(℃)
|
||||||
|
#define SAFETY_GAS_REQUEST_PRESS_DIFF 50 // 用气请求压力差阈值(Pa)
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
int in_press_raw;
|
||||||
|
int out_press_raw;
|
||||||
|
|
||||||
|
int8_t in_temp;
|
||||||
|
int8_t out_temp;
|
||||||
|
int8_t atom_temp;
|
||||||
|
|
||||||
|
int in_press; // 表压 单位Pa
|
||||||
|
int out_press;
|
||||||
|
int atom_press;
|
||||||
|
|
||||||
|
// 进气端和出气端压力差值 单位Pa
|
||||||
|
int in_out_press_diff;
|
||||||
|
} TsValveRawData;
|
||||||
|
extern TsValveRawData ValveRawData;
|
||||||
|
|
||||||
// 微泄漏检测相关函数
|
// 微泄漏检测相关函数
|
||||||
void startMicroLeakDetection(void);
|
void startMicroLeakDetection(void);
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,7 @@ typedef enum
|
||||||
kValveCmdOverTemperature, // 超温关阀
|
kValveCmdOverTemperature, // 超温关阀
|
||||||
kValveCmdDelayClose, // 延时关阀
|
kValveCmdDelayClose, // 延时关阀
|
||||||
kValveCmdManualClose, // 手动关阀
|
kValveCmdManualClose, // 手动关阀
|
||||||
|
KValveCmdTimeSet, // 设置定时关阀时间
|
||||||
kValveCmdTimeResp, // 设置定时关阀时间响应
|
kValveCmdTimeResp, // 设置定时关阀时间响应
|
||||||
kValveCmdLowBatClose, // 低电量关阀
|
kValveCmdLowBatClose, // 低电量关阀
|
||||||
kValveCmdManualOpen, // 手动开阀
|
kValveCmdManualOpen, // 手动开阀
|
||||||
|
@ -99,19 +100,18 @@ typedef enum
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
kUnknown = 0,
|
kOpened= 0,
|
||||||
kClosed,
|
kClosed,
|
||||||
kOpened,
|
|
||||||
kDisconnect,
|
kDisconnect,
|
||||||
} TeValveSwitchStatus;
|
} TeValveSwitchStatus;
|
||||||
|
|
||||||
typedef struct __attribute__((packed))
|
typedef struct __attribute__((packed))
|
||||||
{
|
{
|
||||||
// uint8_t status; // 1B 阀门工作状态 超欠压、过流
|
// uint8_t valve_id;
|
||||||
|
// uint8_t valve_mac[6];
|
||||||
// uint8_t connct_status; // 1B 阀门连接状态 (电磁阀BLE控制盒) 0=未连接 1=已连接
|
// uint8_t connct_status; // 1B 阀门连接状态 (电磁阀BLE控制盒) 0=未连接 1=已连接
|
||||||
uint8_t switch_status; // 1B 阀门开关状态 0=未知 1=关闭=关闭过,未按按键恢复 2=关闭过,按下了恢复键 = 打开
|
uint8_t switch_status; // 1B 阀门开关状态 0=未知 1=关闭, 2=打开
|
||||||
int8_t temp; // 1B 阀门温度 有符号整数 25 ℃
|
int8_t temp; // 1B 阀门温度 有符号整数 25 ℃
|
||||||
|
|
||||||
uint32_t in_pressure; // 4B 阀门入口压力 Pa
|
uint32_t in_pressure; // 4B 阀门入口压力 Pa
|
||||||
uint32_t out_pressure; // 4B 阀门出口压力 Pa
|
uint32_t out_pressure; // 4B 阀门出口压力 Pa
|
||||||
uint32_t atm_pressure; // 4B 阀门大气压力 Pa
|
uint32_t atm_pressure; // 4B 阀门大气压力 Pa
|
||||||
|
@ -119,10 +119,10 @@ typedef struct __attribute__((packed))
|
||||||
uint8_t bat; // 1B 电池电压 30=3V,18=1.8V
|
uint8_t bat; // 1B 电池电压 30=3V,18=1.8V
|
||||||
uint8_t humi; // 1B 阀门湿度 %RH
|
uint8_t humi; // 1B 阀门湿度 %RH
|
||||||
int8_t rssi;
|
int8_t rssi;
|
||||||
|
|
||||||
} TsValveData;
|
} TsValveData;
|
||||||
extern TsValveData gValveData;
|
extern TsValveData gValveData;
|
||||||
|
|
||||||
|
|
||||||
typedef struct __attribute__((packed))
|
typedef struct __attribute__((packed))
|
||||||
{
|
{
|
||||||
uint32_t timer_minutes; // 设置的定时分钟数,0表示未激活
|
uint32_t timer_minutes; // 设置的定时分钟数,0表示未激活
|
||||||
|
@ -140,7 +140,7 @@ TsFrameData* BSP_VAVLE_GetFrameData(uint8_t *data, uint8_t len);
|
||||||
|
|
||||||
uint8_t GenerateRawFrame(TsRawFrameData *pRawData, uint8_t cmd, const uint8_t *p_src, uint8_t src_len);
|
uint8_t GenerateRawFrame(TsRawFrameData *pRawData, uint8_t cmd, const uint8_t *p_src, uint8_t src_len);
|
||||||
|
|
||||||
void BSP_VALVE_Generate_Data(TsRawFrameData *pRawData, uint8_t switch_status, uint8_t bat, int8_t temp, uint8_t humi);
|
void BSP_VALVE_Generate_Data(TsRawFrameData *pRawData, TeFrameCmd cmd);
|
||||||
void BSP_VALVE_Generate_ValveResponse(TsRawFrameData *pRawData, TeFrameCmd cmd, uint8_t status);
|
void BSP_VALVE_Generate_ValveResponse(TsRawFrameData *pRawData, TeFrameCmd cmd, uint8_t status);
|
||||||
|
|
||||||
void BSP_VALVE_Generate_UploadData(TsRawFrameData *pRawData);
|
void BSP_VALVE_Generate_UploadData(TsRawFrameData *pRawData);
|
||||||
|
|
|
@ -13,31 +13,7 @@ uint8_t keydown_flag = 0;
|
||||||
uint8_t keydown_time = 0;
|
uint8_t keydown_time = 0;
|
||||||
uint8_t volatile fault_state = 0;
|
uint8_t volatile fault_state = 0;
|
||||||
|
|
||||||
// 安全阈值参数统一定义
|
|
||||||
#define SAFETY_AUTO_OPEN_THRESHOLD 3 // 自动开阀阈值(连续检测次数)
|
|
||||||
#define SAFETY_MICRO_LEAK_THRESHOLD 5 // 微泄漏检测阈值(连续检测次数)
|
|
||||||
#define SAFETY_MICRO_LEAK_PRESS_DIFF 15 // 微泄漏压力差阈值(Pa),对应流量约0.3L/min
|
|
||||||
#define SAFETY_OVER_TEMP_THRESHOLD 65 // 超温阈值(℃)
|
|
||||||
#define SAFETY_GAS_REQUEST_PRESS_DIFF 50 // 用气请求压力差阈值(Pa)
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
int in_press_raw;
|
|
||||||
int out_press_raw;
|
|
||||||
|
|
||||||
int8_t in_temp;
|
|
||||||
int8_t out_temp;
|
|
||||||
int8_t atom_temp;
|
|
||||||
|
|
||||||
int in_press; // 表压 单位Pa
|
|
||||||
int out_press;
|
|
||||||
int atom_press;
|
|
||||||
|
|
||||||
// 进气端和出气端压力差值 单位Pa
|
|
||||||
int in_out_press_diff;
|
|
||||||
} TsValveRawData;
|
|
||||||
TsValveRawData ValveRawData;
|
TsValveRawData ValveRawData;
|
||||||
|
|
||||||
TsValveRawData ValveRawData_buffer[5];
|
TsValveRawData ValveRawData_buffer[5];
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
|
|
@ -145,37 +145,65 @@ uint8_t GenerateRawFrame(TsRawFrameData *pRawData, uint8_t cmd, const uint8_t *p
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BSP_VALVE_Generate_UploadData(TsRawFrameData *pRawData) // 生成上传数据函数
|
// void BSP_VALVE_Generate_UploadData(TsRawFrameData *pRawData) // 生成上传数据函数
|
||||||
{
|
// {
|
||||||
GenerateRawFrame(pRawData, kCmdData, (uint8_t *)&gValveData, sizeof(gValveData));
|
// GenerateRawFrame(pRawData, kCmdData, (uint8_t *)&gValveData, sizeof(gValveData));
|
||||||
}
|
// }
|
||||||
|
|
||||||
void BSP_VALVE_Generate_Data(TsRawFrameData *pRawData, uint8_t switch_status, uint8_t bat, int8_t temp, uint8_t humi) // 生成阀门数据函数
|
void BSP_VALVE_Generate_Data(TsRawFrameData *pRawData, TeFrameCmd cmd) // 生成阀门数据函数
|
||||||
{
|
{
|
||||||
TsValveData ValveData;
|
TsValveData ValveData;
|
||||||
|
// uint8_t MacAddr[6];
|
||||||
|
// GetMACAddress(MacAddr);
|
||||||
|
|
||||||
ValveData.switch_status = 0;
|
// ValveData.valve_id = 1;
|
||||||
ValveData.temp = temp;
|
// tmos_memset(ValveData.valve_mac, 0, sizeof(ValveData.valve_mac));
|
||||||
|
// tmos_memcpy(ValveData.valve_mac, MacAddr, sizeof(ValveData.valve_mac));
|
||||||
|
|
||||||
ValveData.in_pressure = 0;
|
// ValveData.connct_status = gValveData.connct_status;
|
||||||
ValveData.out_pressure = 0;
|
ValveData.switch_status = gValveData.switch_status;
|
||||||
ValveData.atm_pressure = 0;
|
ValveData.temp = ValveRawData.atom_temp;
|
||||||
|
|
||||||
ValveData.type = kTyq;
|
ValveData.in_pressure = ValveRawData.in_press_raw;
|
||||||
ValveData.bat = bat;
|
ValveData.out_pressure = ValveRawData.out_press_raw;
|
||||||
ValveData.humi = humi;
|
ValveData.atm_pressure = ValveRawData.atom_press;
|
||||||
|
|
||||||
ValveData.rssi = 0;
|
ValveData.type = kZbf;
|
||||||
|
ValveData.bat = BSP_ReadVbat();
|
||||||
|
ValveData.humi = 50;
|
||||||
|
ValveData.rssi = gValveData.rssi;
|
||||||
|
|
||||||
GenerateRawFrame(pRawData, kCmdData, (uint8_t *)&ValveData, sizeof(ValveData));
|
// 打印ValveData的所有字段
|
||||||
|
logDebug("ValveData 详细信息:\r\n"
|
||||||
|
"switch_status: %d\r\n"
|
||||||
|
"temp: %d\r\n"
|
||||||
|
"in_pressure: %d\r\n"
|
||||||
|
"out_pressure: %d\r\n"
|
||||||
|
"atm_pressure: %d\r\n"
|
||||||
|
"type: %d\r\n"
|
||||||
|
"bat: %d\r\n"
|
||||||
|
"humi: %d\r\n"
|
||||||
|
"rssi: %d",
|
||||||
|
ValveData.switch_status,
|
||||||
|
ValveData.temp,
|
||||||
|
ValveData.in_pressure,
|
||||||
|
ValveData.out_pressure,
|
||||||
|
ValveData.atm_pressure,
|
||||||
|
ValveData.type,
|
||||||
|
ValveData.bat,
|
||||||
|
ValveData.humi,
|
||||||
|
ValveData.rssi);
|
||||||
|
|
||||||
|
GenerateRawFrame(pRawData, cmd, (uint8_t *)&ValveData, sizeof(ValveData));
|
||||||
}
|
}
|
||||||
|
|
||||||
void BSP_VALVE_Generate_ValveResponse(TsRawFrameData *pRawData, TeFrameCmd cmd, uint8_t status) // 生成阀门响应函数
|
|
||||||
{
|
// void BSP_VALVE_Generate_ValveResponse(TsRawFrameData *pRawData, TeFrameCmd cmd, uint8_t status) // 生成阀门响应函数
|
||||||
uint8_t data = 0;
|
// {
|
||||||
data = status;
|
// uint8_t data = 0;
|
||||||
GenerateRawFrame(pRawData, cmd, &data, 1);
|
// data = status;
|
||||||
}
|
// GenerateRawFrame(pRawData, cmd, &data, 1);
|
||||||
|
// }
|
||||||
|
|
||||||
static void VAVLE_Task_ProcessTmosMsg(uint8_t *p_rev_msg) // 处理TMOS消息函数
|
static void VAVLE_Task_ProcessTmosMsg(uint8_t *p_rev_msg) // 处理TMOS消息函数
|
||||||
{
|
{
|
||||||
|
@ -192,26 +220,38 @@ static void VAVLE_Task_ProcessTmosMsg(uint8_t *p_rev_msg) // 处理TMOS消息函
|
||||||
break;
|
break;
|
||||||
case kCmdCloseVavle: // 关阀命令
|
case kCmdCloseVavle: // 关阀命令
|
||||||
logDebug("kCmdCloseVavle");
|
logDebug("kCmdCloseVavle");
|
||||||
BSP_VALVE_Close(kCmdCloseVavle); // 使用普通关阀命令
|
uint8_t CloseStatus = 0;
|
||||||
|
CloseStatus = BSP_VALVE_Close(kCmdCloseVavle); // 使用普通关阀命令
|
||||||
|
if(CloseStatus == 1)
|
||||||
|
{
|
||||||
|
BSP_VALVE_Generate_Data(&RelyData, kCmdCloseVavle);
|
||||||
|
tmos_set_event(Peripheral_TaskID, SBP_REPLY_CMD_EVT);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case kCmdOpenVavle: // 开阀命令
|
case kCmdOpenVavle: // 开阀命令
|
||||||
logDebug("kCmdOpenVavle");
|
logDebug("kCmdOpenVavle");
|
||||||
BSP_VALVE_Open(kCmdOpenVavle); // 使用普通开阀命令
|
uint8_t OpenStatus = 0;
|
||||||
|
OpenStatus = BSP_VALVE_Open(kCmdOpenVavle); // 使用普通开阀命令
|
||||||
|
if(OpenStatus == 1)
|
||||||
|
{
|
||||||
|
BSP_VALVE_Generate_Data(&RelyData, kCmdOpenVavle);
|
||||||
|
tmos_set_event(Peripheral_TaskID, SBP_REPLY_CMD_EVT);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case kValveCmdTimer: // 设置定时关阀命令
|
case KValveCmdTimeSet: // 设置定时关阀命令
|
||||||
{
|
{
|
||||||
uint8_t result = 0;
|
uint8_t result = 0;
|
||||||
if (HostFrameData->len >= 4) {
|
if (HostFrameData->len >= 2) {
|
||||||
uint32_t minutes = 0;
|
uint32_t minutes = 0;
|
||||||
tmos_memcpy(&minutes, HostFrameData->data, 4); // 安全的内存拷贝
|
tmos_memcpy(&minutes, HostFrameData->data, 2); // 安全的内存拷贝
|
||||||
result = BSP_VALVE_SetTimerClose(minutes);
|
result = BSP_VALVE_SetTimerClose(minutes);
|
||||||
logDebug("kValveCmdTimer: %d minutes, result: %d", minutes, result);
|
logDebug("kValveCmdTimer: %d minutes, result: %d", minutes, result);
|
||||||
}
|
}
|
||||||
// 生成响应: 状态(1字节) + 设置的分钟数(4字节)
|
// 生成响应: 设置的分钟数(2字节) + 状态(1字节)
|
||||||
uint8_t response[5] = {result};
|
uint8_t response[3] = {result};
|
||||||
tmos_memcpy(&response[1], &gTimerCloseState.timer_minutes, 4); // 安全的内存拷贝
|
tmos_memcpy(&response[1], &gTimerCloseState.timer_minutes, 2); // 安全的内存拷贝
|
||||||
GenerateRawFrame(&RelyData, kValveCmdTimer, response, 5);
|
GenerateRawFrame(&RelyData, kValveCmdTimeResp, response, 3);
|
||||||
tmos_set_event(Peripheral_TaskID, SBP_REPLY_CMD_EVT);
|
tmos_set_event(Peripheral_TaskID, SBP_REPLY_CMD_EVT);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -316,7 +356,8 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀
|
||||||
logWarning("gValveCloseReason %d",gValveCloseReason);
|
logWarning("gValveCloseReason %d",gValveCloseReason);
|
||||||
// gValveCloseReason = kCmdData;
|
// gValveCloseReason = kCmdData;
|
||||||
tmos_memset(&RelyData, 0, sizeof(RelyData));
|
tmos_memset(&RelyData, 0, sizeof(RelyData));
|
||||||
BSP_VALVE_Generate_ValveResponse(&RelyData, gValveCloseReason, 1);
|
// BSP_VALVE_Generate_ValveResponse(&RelyData, gValveCloseReason, 1);
|
||||||
|
BSP_VALVE_Generate_Data(&RelyData, gValveCloseReason);
|
||||||
// 重置为默认值
|
// 重置为默认值
|
||||||
gValveCloseReason = kCmdCloseVavle;
|
gValveCloseReason = kCmdCloseVavle;
|
||||||
|
|
||||||
|
@ -366,7 +407,8 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀
|
||||||
// gValveOpenReason = kCmdData;
|
// gValveOpenReason = kCmdData;
|
||||||
// 生成响应
|
// 生成响应
|
||||||
tmos_memset(&RelyData, 0, sizeof(RelyData));
|
tmos_memset(&RelyData, 0, sizeof(RelyData));
|
||||||
BSP_VALVE_Generate_ValveResponse(&RelyData, gValveOpenReason, 1);
|
// BSP_VALVE_Generate_ValveResponse(&RelyData, gValveOpenReason, 1);
|
||||||
|
BSP_VALVE_Generate_Data(&RelyData, gValveOpenReason);
|
||||||
|
|
||||||
// 重置为默认值
|
// 重置为默认值
|
||||||
gValveOpenReason = kCmdOpenVavle;
|
gValveOpenReason = kCmdOpenVavle;
|
||||||
|
@ -447,10 +489,10 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀
|
||||||
// 使用统一接口关阀
|
// 使用统一接口关阀
|
||||||
BSP_VALVE_Close(kValveCmdTimer);
|
BSP_VALVE_Close(kValveCmdTimer);
|
||||||
|
|
||||||
// 发送定时关阀完成通知
|
// // 发送定时关阀完成通知
|
||||||
uint8_t notification = 1; // 定时关阀完成
|
// uint8_t notification = 1; // 定时关阀完成
|
||||||
GenerateRawFrame(&RelyData, kValveCmdTimeResp, ¬ification, 1);
|
// GenerateRawFrame(&RelyData, kValveCmdTimeResp, ¬ification, 1);
|
||||||
tmos_set_event(Peripheral_TaskID, SBP_REPLY_CMD_EVT);
|
// tmos_set_event(Peripheral_TaskID, SBP_REPLY_CMD_EVT);
|
||||||
|
|
||||||
return (events ^ VAVLE_TIMER_CLOSE_EVT);
|
return (events ^ VAVLE_TIMER_CLOSE_EVT);
|
||||||
}
|
}
|
||||||
|
@ -488,13 +530,13 @@ static uint8_t BSP_VALVE_SetTimerClose(uint32_t minutes)
|
||||||
// 参数验证
|
// 参数验证
|
||||||
if (minutes == 0 || minutes > 1440) { // 1分钟到24小时
|
if (minutes == 0 || minutes > 1440) { // 1分钟到24小时
|
||||||
logError("Invalid timer minutes: %d", minutes);
|
logError("Invalid timer minutes: %d", minutes);
|
||||||
return 0; // 设置失败
|
return 1; // 设置失败
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查当前阀门状态,如果已经关闭则不需要定时关阀
|
// 检查当前阀门状态,如果已经关闭则不需要定时关阀
|
||||||
if (gValveData.switch_status == kClosed) {
|
if (gValveData.switch_status == kClosed) {
|
||||||
logDebug("Valve already closed, timer not needed");
|
logDebug("Valve already closed, timer not needed");
|
||||||
return 2; // 阀门已关闭
|
return 1; // 阀门已关闭
|
||||||
}
|
}
|
||||||
|
|
||||||
// 停止现有定时器(如果有)
|
// 停止现有定时器(如果有)
|
||||||
|
@ -513,14 +555,14 @@ static uint8_t BSP_VALVE_SetTimerClose(uint32_t minutes)
|
||||||
tmos_start_task(vavle_task_id, VAVLE_TIMER_CLOSE_EVT, MS1_TO_SYSTEM_TIME(delay_ms));
|
tmos_start_task(vavle_task_id, VAVLE_TIMER_CLOSE_EVT, MS1_TO_SYSTEM_TIME(delay_ms));
|
||||||
|
|
||||||
logInfo("Timer close set: %d minutes", minutes);
|
logInfo("Timer close set: %d minutes", minutes);
|
||||||
return 1; // 设置成功
|
return 0; // 设置成功
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint8_t BSP_VALVE_CancelTimerClose(void)
|
static uint8_t BSP_VALVE_CancelTimerClose(void)
|
||||||
{
|
{
|
||||||
if (!gTimerCloseState.is_active) {
|
if (!gTimerCloseState.is_active) {
|
||||||
logDebug("No active timer to cancel");
|
logDebug("No active timer to cancel");
|
||||||
return 0; // 没有激活的定时器
|
return 1; // 没有激活的定时器
|
||||||
}
|
}
|
||||||
|
|
||||||
// 停止定时器
|
// 停止定时器
|
||||||
|
@ -531,7 +573,7 @@ static uint8_t BSP_VALVE_CancelTimerClose(void)
|
||||||
gTimerCloseState.timer_minutes = 0;
|
gTimerCloseState.timer_minutes = 0;
|
||||||
|
|
||||||
logInfo("Timer close cancelled");
|
logInfo("Timer close cancelled");
|
||||||
return 1; // 取消成功
|
return 0; // 取消成功
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t BSP_VALVE_GetRemainingMinutes(void)
|
static uint32_t BSP_VALVE_GetRemainingMinutes(void)
|
||||||
|
@ -569,7 +611,7 @@ uint8_t BSP_VALVE_Close(TeFrameCmd close_reason)
|
||||||
// 触发关阀事件
|
// 触发关阀事件
|
||||||
tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT);
|
tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT);
|
||||||
|
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -590,7 +632,7 @@ uint8_t BSP_VALVE_Open(TeFrameCmd open_reason)
|
||||||
// 触发开阀事件
|
// 触发开阀事件
|
||||||
tmos_set_event(vavle_task_id, VAVLE_OPEN_START_EVT);
|
tmos_set_event(vavle_task_id, VAVLE_OPEN_START_EVT);
|
||||||
|
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue