Added LED brightnes placeholder. Set the default value when the timer settings will be known.

This commit is contained in:
David Žaitlík 2021-10-02 12:33:57 +02:00
parent 400a83ef64
commit daaab07912
4 changed files with 25 additions and 11 deletions

View File

@ -17,11 +17,12 @@
|Value|Register|
|---|---|
|LED ON | 40001|
|LED SMOOTH | 40002|
|CO2 ALERT LIMIT1 | 40003|
|CO2 ALERT LIMIT2 | 40004|
|SCD4x T OFFSET | 40005|
|MODBUS ADDR | 40006|
|LED BRIGHTNESS | 40002|
|LED SMOOTH | 40003|
|CO2 ALERT LIMIT1 | 40004|
|CO2 ALERT LIMIT2 | 40005|
|SCD4x T OFFSET | 40006|
|MODBUS ADDR | 40007|
### Device Information Registers

View File

@ -49,6 +49,7 @@ config_read(&config);
* Device configuration data can be accessed using config_t struct.
*/
#define CONFIG_DEFAULT_LED_ON 1
#define CONFIG_DEFAULT_LED_BRIGHTNESS 100 /* TODO: set according to the timers when this will be implemented */
#define CONFIG_DEFAULT_LED_ALERT1_LIMIT 1500
#define CONFIG_DEFAULT_LED_ALERT2_LIMIT 3000
#define CONFIG_DEFAULT_LED_SMOOTH 0
@ -56,6 +57,7 @@ config_read(&config);
#define MODBUS_ADDR_LENGTH 2
#define CONFIG_LED_ON_LENGTH 2
#define CONFIG_LED_BRIGHTNESS_LENGTH 2
#define CONFIG_LED_SMOOTH_LENGTH 2
#define CONFIG_LED_ALERT1_LENGTH 2
#define CONFIG_LED_ALERT2_LENGTH 2
@ -74,7 +76,8 @@ config_read(&config);
#define CONFIG_EEPROM_ADDR_MODBUS_ADDR (EEPROM_ADDR_START)
#define CONFIG_EEPROM_ADDR_LED_ON (CONFIG_EEPROM_ADDR_MODBUS_ADDR + MODBUS_ADDR_LENGTH)
#define CONFIG_EEPROM_ADDR_LED_SMOOTH (CONFIG_EEPROM_ADDR_LED_ON + CONFIG_LED_ON_LENGTH)
#define CONFIG_EEPROM_ADDR_LED_BRIGHTNESS (CONFIG_EEPROM_ADDR_LED_ON + CONFIG_LED_ON_LENGTH)
#define CONFIG_EEPROM_ADDR_LED_SMOOTH (CONFIG_EEPROM_ADDR_LED_BRIGHTNESS + CONFIG_LED_BRIGHTNESS_LENGTH)
#define CONFIG_EEPROM_ADDR_LED_ALERT1 (CONFIG_EEPROM_ADDR_LED_SMOOTH + CONFIG_LED_SMOOTH_LENGTH)
#define CONFIG_EEPROM_ADDR_LED_ALERT2 (CONFIG_EEPROM_ADDR_LED_ALERT1 + CONFIG_LED_ALERT1_LENGTH)
#define CONFIG_EEPROM_ADDR_SCD4x_T_OFFSET (CONFIG_EEPROM_ADDR_LED_ALERT2 + CONFIG_LED_ALERT2_LENGTH)
@ -105,6 +108,7 @@ typedef struct
{
/* LED CONFIG */
uint8_t led_on;
uint16_t led_brightness;
uint8_t led_smooth;
uint16_t led_co2_alert_limit1;
uint16_t led_co2_alert_limit2;

View File

@ -22,6 +22,7 @@ int8_t config_read(config_t *config)
{
config->modbus_addr = *(uint16_t *) (CONFIG_EEPROM_ADDR_MODBUS_ADDR);
config->led_on = *(uint16_t *) (CONFIG_EEPROM_ADDR_LED_ON);
config->led_brightness = *(uint16_t *) (CONFIG_EEPROM_ADDR_LED_BRIGHTNESS);
config->led_smooth = *(uint16_t *) (CONFIG_EEPROM_ADDR_LED_SMOOTH);
config->led_co2_alert_limit1 = *(uint16_t *) (CONFIG_EEPROM_ADDR_LED_ALERT1);
config->led_co2_alert_limit2 = *(uint16_t *) (CONFIG_EEPROM_ADDR_LED_ALERT2);
@ -59,6 +60,12 @@ int8_t config_write(config_t *config)
return EEPROM_WRITE_ERROR;
}
/* Write LED BRIGHTNESS */
if (eeprom_program_word(CONFIG_EEPROM_ADDR_LED_BRIGHTNESS, config->led_brightness) != EEPROM_OK)
{
return EEPROM_WRITE_ERROR;
}
/* Write LED SMOOTH */
if (eeprom_program_byte(CONFIG_EEPROM_ADDR_LED_SMOOTH, config->led_smooth) != EEPROM_OK)
{

View File

@ -81,11 +81,12 @@ enum {
enum {
REGISTER_NUM_LED_ON = 40001,
REGISTER_NUM_LED_SMOOTH = 40002,
REGISTER_NUM_CO2_ALERT_LIMIT1 = 40003,
REGISTER_NUM_CO2_ALERT_LIMIT2 = 40004,
REGISTER_NUM_SCD4x_T_OFFSET = 40005,
REGISTER_NUM_MODBUS_ADDR = 40006,
REGISTER_NUM_LED_BRIGHTNESS = 40002,
REGISTER_NUM_LED_SMOOTH = 40003,
REGISTER_NUM_CO2_ALERT_LIMIT1 = 40004,
REGISTER_NUM_CO2_ALERT_LIMIT2 = 40005,
REGISTER_NUM_SCD4x_T_OFFSET = 40006,
REGISTER_NUM_MODBUS_ADDR = 40007,
} config_registers_numbers;
enum {
@ -286,6 +287,7 @@ int main(void)
sensor_config.led_co2_alert_limit1 = CONFIG_DEFAULT_LED_ALERT1_LIMIT;
sensor_config.led_co2_alert_limit2 = CONFIG_DEFAULT_LED_ALERT2_LIMIT;
sensor_config.led_on = CONFIG_DEFAULT_LED_ON;
sensor_config.led_brightness = CONFIG_DEFAULT_LED_BRIGHTNESS;
sensor_config.led_smooth = CONFIG_DEFAULT_LED_SMOOTH;
sensor_config.scd4x_t_offset = CONFIG_DEFAULT_SCD4x_T_OFFSET;
}