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;
|
|
|
|
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
|
|
|
}
|
|
|
|
|