147 lines
3.6 KiB
C
Executable File
147 lines
3.6 KiB
C
Executable File
#ifndef BOARD_CONFIG_H_
|
|
#define BOARD_CONFIG_H_
|
|
|
|
#include "hal/adc_types.h"
|
|
#include "hal/gpio_types.h"
|
|
#include "soc/soc_caps.h"
|
|
|
|
typedef enum {
|
|
BOARD_CONFIG_ENERGY_METER_NONE,
|
|
BOARD_CONFIG_ENERGY_METER_CUR,
|
|
BOARD_CONFIG_ENERGY_METER_CUR_VLT
|
|
} board_config_energy_meter_t;
|
|
|
|
typedef enum {
|
|
BOARD_CONFIG_SERIAL_NONE,
|
|
BOARD_CONFIG_SERIAL_UART,
|
|
BOARD_CONFIG_SERIAL_RS485
|
|
} board_config_serial_t;
|
|
|
|
typedef struct
|
|
{
|
|
char device_name[32];
|
|
|
|
bool led_charging : 1;
|
|
gpio_num_t led_charging_gpio;
|
|
bool led_error : 1;
|
|
gpio_num_t led_error_gpio;
|
|
bool led_stop : 1;
|
|
gpio_num_t led_stop_gpio;
|
|
|
|
bool buzzer : 1;
|
|
gpio_num_t buzzer_gpio;
|
|
|
|
gpio_num_t button_wifi_gpio;
|
|
|
|
gpio_num_t pilot_pwm_gpio;
|
|
adc_channel_t pilot_adc_channel;
|
|
uint16_t pilot_down_threshold_12;
|
|
uint16_t pilot_down_threshold_9;
|
|
uint16_t pilot_down_threshold_6;
|
|
uint16_t pilot_down_threshold_3;
|
|
uint16_t pilot_down_threshold_n12;
|
|
|
|
bool proximity : 1;
|
|
adc_channel_t proximity_adc_channel;
|
|
uint16_t proximity_down_threshold_8;
|
|
uint16_t proximity_down_threshold_10;
|
|
uint16_t proximity_down_threshold_13;
|
|
uint16_t proximity_down_threshold_20;
|
|
uint16_t proximity_down_threshold_25;
|
|
uint16_t proximity_down_threshold_32;
|
|
|
|
gpio_num_t ac_relay_gpio;
|
|
|
|
bool socket_lock : 1;
|
|
gpio_num_t socket_lock_a_gpio;
|
|
gpio_num_t socket_lock_b_gpio;
|
|
gpio_num_t socket_lock_detection_gpio;
|
|
uint16_t socket_lock_detection_delay;
|
|
uint16_t socket_lock_min_break_time;
|
|
|
|
bool rcm : 1;
|
|
gpio_num_t rcm_gpio;
|
|
gpio_num_t rcm_test_gpio;
|
|
|
|
board_config_energy_meter_t energy_meter;
|
|
bool energy_meter_three_phases : 1;
|
|
|
|
adc_channel_t energy_meter_l1_cur_adc_channel;
|
|
adc_channel_t energy_meter_l2_cur_adc_channel;
|
|
adc_channel_t energy_meter_l3_cur_adc_channel;
|
|
float energy_meter_cur_scale;
|
|
adc_channel_t energy_meter_l1_vlt_adc_channel;
|
|
adc_channel_t energy_meter_l2_vlt_adc_channel;
|
|
adc_channel_t energy_meter_l3_vlt_adc_channel;
|
|
float energy_meter_vlt_scale;
|
|
|
|
|
|
bool aux_in_1 : 1;
|
|
char aux_in_1_name[8];
|
|
gpio_num_t aux_in_1_gpio;
|
|
|
|
bool aux_in_2 : 1;
|
|
char aux_in_2_name[8];
|
|
gpio_num_t aux_in_2_gpio;
|
|
|
|
bool aux_in_3 : 1;
|
|
char aux_in_3_name[8];
|
|
gpio_num_t aux_in_3_gpio;
|
|
|
|
bool aux_in_4 : 1;
|
|
char aux_in_4_name[8];
|
|
gpio_num_t aux_in_4_gpio;
|
|
|
|
bool aux_out_1 : 1;
|
|
char aux_out_1_name[8];
|
|
gpio_num_t aux_out_1_gpio;
|
|
|
|
bool aux_out_2 : 1;
|
|
char aux_out_2_name[8];
|
|
gpio_num_t aux_out_2_gpio;
|
|
|
|
bool aux_out_3 : 1;
|
|
char aux_out_3_name[8];
|
|
gpio_num_t aux_out_3_gpio;
|
|
|
|
bool aux_out_4 : 1;
|
|
char aux_out_4_name[8];
|
|
gpio_num_t aux_out_4_gpio;
|
|
|
|
bool aux_ain_1 : 1;
|
|
char aux_ain_1_name[8];
|
|
adc_channel_t aux_ain_1_adc_channel;
|
|
|
|
bool aux_ain_2 : 1;
|
|
char aux_ain_2_name[8];
|
|
adc_channel_t aux_ain_2_adc_channel;
|
|
|
|
board_config_serial_t serial_1;
|
|
char serial_1_name[16];
|
|
gpio_num_t serial_1_rxd_gpio;
|
|
gpio_num_t serial_1_txd_gpio;
|
|
gpio_num_t serial_1_rts_gpio;
|
|
board_config_serial_t serial_2;
|
|
char serial_2_name[16];
|
|
gpio_num_t serial_2_rxd_gpio;
|
|
gpio_num_t serial_2_txd_gpio;
|
|
gpio_num_t serial_2_rts_gpio;
|
|
#if SOC_UART_NUM > 2
|
|
board_config_serial_t serial_3;
|
|
char serial_3_name[16];
|
|
gpio_num_t serial_3_rxd_gpio;
|
|
gpio_num_t serial_3_txd_gpio;
|
|
gpio_num_t serial_3_rts_gpio;
|
|
#endif /* SOC_UART_NUM > 2 */
|
|
|
|
bool onewire : 1;
|
|
gpio_num_t onewire_gpio;
|
|
bool onewire_temp_sensor : 1;
|
|
} board_config_t;
|
|
|
|
extern board_config_t board_config;
|
|
|
|
void board_config_load();
|
|
|
|
#endif /* BOARD_CONFIG_H_ */
|