BLE_TYQ_CH584M/BSP/src/bsp_beep_led_emv.c

119 lines
2.2 KiB
C
Raw Normal View History

2024-12-09 11:41:44 +08:00
#include "bsp_beep_led_emv.h"
2024-12-17 14:51:12 +08:00
#include "bsp_uart.h"
#include "log.h"
2024-12-09 11:41:44 +08:00
2024-12-17 14:51:12 +08:00
#include "bsp_beep_led_emv.h"
#include "bsp_valve.h"
2024-12-09 11:41:44 +08:00
2024-12-17 14:51:12 +08:00
#include "SLEEP.h"
2024-12-09 11:41:44 +08:00
2024-12-17 14:51:12 +08:00
#include "bsp_adc.h"
2024-12-09 11:41:44 +08:00
2024-12-17 14:51:12 +08:00
#undef LOG_ENABLE
#define LOG_ENABLE 1
2024-12-09 11:41:44 +08:00
2024-12-17 14:51:12 +08:00
#undef LOG_TAG
#define LOG_TAG "led"
tmosTaskID led_task_id = INVALID_TASK_ID;
2024-12-09 11:41:44 +08:00
2024-12-17 14:51:12 +08:00
void ShowLed()
2024-12-09 11:41:44 +08:00
{
2024-12-17 14:51:12 +08:00
gValveData.bat = BSP_ReadVbat();
// 电压过低就关阀
if (gValveData.bat <= LOW_VABAT_ALARM_VALUE)
{
LED_ALL_OFF_DEINIT;
LED_Y_ON;
// BEEP_ON;
2024-12-17 14:51:12 +08:00
logDebug("LED_Y_ON");
}
else if (gValveData.switch_status == kUnknown || gValveData.switch_status == kClosed)
{
LED_ALL_OFF_DEINIT;
LED_R_ON;
logDebug("LED_R_ON");
}
else if (gValveData.switch_status == kOpened)
{
LED_ALL_OFF_DEINIT;
LED_G_ON;
logDebug("LED_G_ON");
}
2024-12-09 11:41:44 +08:00
}
2024-12-17 14:51:12 +08:00
static tmosEvents LED_Task_ProcessEvent(tmosTaskID taskID, tmosEvents event)
2024-12-09 11:41:44 +08:00
{
2024-12-17 14:51:12 +08:00
//event 处理
if(event & LED_SHOW_START_EVT)
{
logDebug("LED_SHOW_START_EVT");
BSP_BlockSleep();
BSP_RequestBoost();
DelayMs(1);
ShowLed();
tmos_stop_task(led_task_id, LED_SHOW_ONCE_EVT);
tmos_start_task(led_task_id, LED_SHOW_ONCE_EVT, 1000);
return (event ^ LED_SHOW_START_EVT);
}
if (event & LED_SHOW_ONCE_EVT)
{
logDebug("LED_SHOW_ONCE_EVT");
LED_ALL_OFF_DEINIT;
BEEP_OFF_DEINIT;
tmos_set_event(led_task_id, LED_SHOW_END_EVT);
return (event ^ LED_SHOW_ONCE_EVT);
}
if(event & LED_SHOW_END_EVT)
{
logDebug("LED_SHOW_END_EVT");
LED_ALL_OFF_DEINIT;
BEEP_OFF_DEINIT;
BSP_NoNeedBoost();
BSP_RequestSleep();
// BEEP_OFF_DEINIT;
// EMV_CHARGE_OFF_DEINIT;
// EMV_OFF_DEINIT;
return (event ^ LED_SHOW_END_EVT);
}
if (event & LOW_VBAT_EVT)
{
logDebug("LOW_VBAT_EVT");
LED_Y_ON;
return (event ^ LOW_VBAT_EVT);
}
2024-12-09 11:41:44 +08:00
}
2024-12-17 14:51:12 +08:00
void BSP_BEEP_LED_EMV_Init(void)
2024-12-09 11:41:44 +08:00
{
2024-12-17 14:51:12 +08:00
BOOST_OFF_DEINIT;
BEEP_OFF_DEINIT;
LED_ALL_OFF_DEINIT;
EMV_CHARGE_OFF_DEINIT;
EMV_OFF_DEINIT;
led_task_id = TMOS_ProcessEventRegister(LED_Task_ProcessEvent);
logDebug("BSP_BEEP_LED_EMV_Init");
2024-12-09 11:41:44 +08:00
}