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.
121 lines
4.1 KiB
121 lines
4.1 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();
|
|
}
|
|
}
|
|
|
|
void T_light_schedule(void)
|
|
{
|
|
if (power_state_light_structer_s->change_flag)
|
|
{
|
|
}
|
|
if (heating_state_light_structer_s->change_flag)
|
|
{
|
|
}
|
|
if (reaction_state_light_structer_s->change_flag)
|
|
{
|
|
}
|
|
if (wifi_state_light_structer_s->change_flag)
|
|
{
|
|
}
|
|
}
|