4 changed files with 228 additions and 1 deletions
-
1main/CMakeLists.txt
-
30main/app_main.cpp
-
114main/light.c
-
84main/light.h
@ -1,6 +1,7 @@ |
|||||
set(srcs "app_main.cpp" # |
set(srcs "app_main.cpp" # |
||||
"ble_spp_server_demo.c" |
"ble_spp_server_demo.c" |
||||
"camera.cpp" |
"camera.cpp" |
||||
|
"light.c" |
||||
) |
) |
||||
|
|
||||
idf_component_register(SRCS "${srcs}"# |
idf_component_register(SRCS "${srcs}"# |
||||
|
@ -0,0 +1,114 @@ |
|||||
|
#include "light.h" |
||||
|
|
||||
|
#include "driver/gpio.h" |
||||
|
#include "esp_log.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) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
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) |
||||
|
{ |
||||
|
} |
||||
|
} |
@ -0,0 +1,84 @@ |
|||||
|
/** |
||||
|
* @file light.h |
||||
|
* @author Finny (tianjialong0106@163.com) |
||||
|
* @brief Project micro shape photometer light control |
||||
|
* @version 0.1 |
||||
|
* @date 2022-09-25 |
||||
|
* |
||||
|
* @copyright Copyright (c) 2022 |
||||
|
* |
||||
|
*/ |
||||
|
#pragma once |
||||
|
|
||||
|
#include <stdbool.h> |
||||
|
|
||||
|
typedef enum |
||||
|
{ |
||||
|
ShutDown = 1, //关机 |
||||
|
StartingUp, //开机 |
||||
|
} power_state_t; |
||||
|
|
||||
|
typedef enum |
||||
|
{ |
||||
|
NoHeat = 1, //没加热 |
||||
|
Heating, //加热中 |
||||
|
HeatComplete, //加热完成 |
||||
|
} heating_state_t; |
||||
|
|
||||
|
typedef enum |
||||
|
{ |
||||
|
NoReaction = 1, //没反应 |
||||
|
Reacting, //反应中 |
||||
|
ReactionComplete, //反应完成 |
||||
|
} reaction_state_t; |
||||
|
|
||||
|
typedef enum |
||||
|
{ |
||||
|
NotConnected = 1, //未连接 |
||||
|
Connecting, //连接中 |
||||
|
ConnectionComplete, //连接完成 |
||||
|
} wifi_state_t; |
||||
|
|
||||
|
typedef struct |
||||
|
{ |
||||
|
power_state_t state; |
||||
|
bool change_flag; |
||||
|
} power_state_light_structer_t; |
||||
|
|
||||
|
typedef struct |
||||
|
{ |
||||
|
heating_state_t state; |
||||
|
bool change_flag; |
||||
|
} heating_state_light_structer_t; |
||||
|
|
||||
|
typedef struct |
||||
|
{ |
||||
|
reaction_state_t state; |
||||
|
bool change_flag; |
||||
|
} reaction_state_light_structer_t; |
||||
|
|
||||
|
typedef struct |
||||
|
{ |
||||
|
wifi_state_t state; |
||||
|
bool change_flag; |
||||
|
} wifi_state_light_structer_t; |
||||
|
|
||||
|
// Debug light |
||||
|
void T_debug_light_init(void); |
||||
|
void T_debug_light_toggle_level(void); |
||||
|
|
||||
|
// Power light |
||||
|
void T_power_light_init(power_state_light_structer_t *power_state_light_structer); |
||||
|
|
||||
|
// Heating state light |
||||
|
void T_heating_state_light_init(heating_state_light_structer_t *heating_state_light_structer); |
||||
|
|
||||
|
// Reaction state light |
||||
|
void T_reaction_state_light_init(reaction_state_light_structer_t *reaction_state_light_structer); |
||||
|
|
||||
|
// WIFI state light |
||||
|
void T_wifi_state_light_init(wifi_state_light_structer_t *wifi_state_light_structer); |
||||
|
|
||||
|
// Schedule |
||||
|
void T_debug_light_schedule(void); |
||||
|
void T_light_schedule(void); |
Write
Preview
Loading…
Cancel
Save
Reference in new issue