You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

105 lines
3.8 KiB

#include "light.h"
#include "driver/gpio.h"
#include "esp_log.h"
#include "port.h"
#define GPIO_DEBUG_LIGHT 12
#define GPIO_POWER_LIGHT 12
#define GPIO_HEATING_STATE_LIGHT 12
#define GPIO_REACTION_STATE_LIGHT 12
#define GPIO_WIFI_STATE_LIGHT 12
static power_state_light_structer_t *power_state_light_structer_s;
static heating_state_light_structer_t *heating_state_light_structer_s;
static reaction_state_light_structer_t *reaction_state_light_structer_s;
static wifi_state_light_structer_t *wifi_state_light_structer_s;
// Debug light
void T_debug_light_init(void)
{
gpio_config_t gpio_debug_light_init_structer;
gpio_debug_light_init_structer.intr_type = GPIO_INTR_DISABLE;
gpio_debug_light_init_structer.mode = GPIO_MODE_INPUT_OUTPUT;
gpio_debug_light_init_structer.pin_bit_mask = (1ULL << GPIO_DEBUG_LIGHT);
gpio_debug_light_init_structer.pull_down_en = 0;
gpio_debug_light_init_structer.pull_up_en = 0;
gpio_config(&gpio_debug_light_init_structer);
}
void T_debug_light_toggle_level(void)
{
gpio_set_level(GPIO_DEBUG_LIGHT, !gpio_get_level(GPIO_DEBUG_LIGHT));
}
// Power light
void T_power_light_init(power_state_light_structer_t *power_state_light_structer)
{
power_state_light_structer_s = power_state_light_structer;
gpio_config_t gpio_debug_light_init_structer;
gpio_debug_light_init_structer.intr_type = GPIO_INTR_DISABLE;
gpio_debug_light_init_structer.mode = GPIO_MODE_INPUT_OUTPUT;
gpio_debug_light_init_structer.pin_bit_mask = (1ULL << GPIO_POWER_LIGHT);
gpio_debug_light_init_structer.pull_down_en = 0;
gpio_debug_light_init_structer.pull_up_en = 0;
gpio_config(&gpio_debug_light_init_structer);
}
// Heating state light
void T_heating_state_light_init(heating_state_light_structer_t *heating_state_light_structer)
{
heating_state_light_structer_s = heating_state_light_structer;
gpio_config_t gpio_heating_state_light_init_structer;
gpio_heating_state_light_init_structer.intr_type = GPIO_INTR_DISABLE;
gpio_heating_state_light_init_structer.mode = GPIO_MODE_INPUT_OUTPUT;
gpio_heating_state_light_init_structer.pin_bit_mask = (1ULL << GPIO_HEATING_STATE_LIGHT);
gpio_heating_state_light_init_structer.pull_down_en = 0;
gpio_heating_state_light_init_structer.pull_up_en = 0;
gpio_config(&gpio_heating_state_light_init_structer);
}
// Reaction state light
void T_reaction_state_light_init(reaction_state_light_structer_t *reaction_state_light_structer)
{
reaction_state_light_structer_s = reaction_state_light_structer;
gpio_config_t gpio_reaction_state_light_init_structer;
gpio_reaction_state_light_init_structer.intr_type = GPIO_INTR_DISABLE;
gpio_reaction_state_light_init_structer.mode = GPIO_MODE_INPUT_OUTPUT;
gpio_reaction_state_light_init_structer.pin_bit_mask = (1ULL << GPIO_REACTION_STATE_LIGHT);
gpio_reaction_state_light_init_structer.pull_down_en = 0;
gpio_reaction_state_light_init_structer.pull_up_en = 0;
gpio_config(&gpio_reaction_state_light_init_structer);
}
// WIFI state light
void T_wifi_state_light_init(wifi_state_light_structer_t *wifi_state_light_structer)
{
wifi_state_light_structer_s = wifi_state_light_structer;
gpio_config_t gpio_wifi_state_light_init_structer;
gpio_wifi_state_light_init_structer.intr_type = GPIO_INTR_DISABLE;
gpio_wifi_state_light_init_structer.mode = GPIO_MODE_INPUT_OUTPUT;
gpio_wifi_state_light_init_structer.pin_bit_mask = (1ULL << GPIO_WIFI_STATE_LIGHT);
gpio_wifi_state_light_init_structer.pull_down_en = 0;
gpio_wifi_state_light_init_structer.pull_up_en = 0;
gpio_config(&gpio_wifi_state_light_init_structer);
}
void T_debug_light_schedule(void)
{
static uint32_t debug_light_time;
if (port_haspassedms(debug_light_time) > 300)
{
T_debug_light_toggle_level();
debug_light_time = port_get_ticket();
}
}