Include primary relay settings in template files.

This commit is contained in:
Julian Frohmüller
2025-12-22 11:09:13 +01:00
parent a09c6b13d0
commit bfeb1cfb6c
3 changed files with 215 additions and 0 deletions
+21
View File
@@ -84,3 +84,24 @@ timers :
usb_hard_reset_enabled = 0;
usb_port_reset_enabled = 1;
};
relay :
{
activate_primary_relay1 = true;
activate_primary_relay2 = true;
activate_primary_relay3 = true;
activate_primary_relay4 = true;
activate_primary_relay5 = true;
activate_primary_relay6 = true;
activate_primary_relay7 = true;
activate_primary_relay8 = true;
deactivate_primary_relay1 = false;
deactivate_primary_relay2 = false;
deactivate_primary_relay3 = false;
deactivate_primary_relay4 = false;
deactivate_primary_relay5 = false;
deactivate_primary_relay6 = false;
deactivate_primary_relay7 = false;
deactivate_primary_relay8 = false;
primary_relay_activation_time = 3L;
primary_relay_delay_time = 15L;
};
+5
View File
@@ -40,3 +40,8 @@ timers :
usb_hard_reset_enabled = 0;
usb_port_reset_enabled = 1;
};
relay :
{
primary_relay_activation_time = 3L;
primary_relay_delay_time = 7L;
};
+189
View File
@@ -5884,6 +5884,132 @@ void read_config_file_with_name_ccc(char* filename)
// update timer settings
update_timer_settings_ccc();
// load primary relay settings
load_primary_relay_settings_ccc();
// read primary relay settings from config file
group = config_setting_get_member(root, "relay");
if (group != NULL)
{
setting = config_setting_get_member(group, "activate_primary_relay1");
if (setting != NULL)
{
primary_relay_settings_ccc.activate_primary_relay1 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "activate_primary_relay2");
if (setting != NULL)
{
primary_relay_settings_ccc.activate_primary_relay2 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "activate_primary_relay3");
if (setting != NULL)
{
primary_relay_settings_ccc.activate_primary_relay3 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "activate_primary_relay4");
if (setting != NULL)
{
primary_relay_settings_ccc.activate_primary_relay4 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "activate_primary_relay5");;
if (setting != NULL)
{
primary_relay_settings_ccc.activate_primary_relay5 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "activate_primary_relay6");
if (setting != NULL)
{
primary_relay_settings_ccc.activate_primary_relay6 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "activate_primary_relay7");
if (setting != NULL)
{
primary_relay_settings_ccc.activate_primary_relay7 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "activate_primary_relay8");
if (setting != NULL)
{
primary_relay_settings_ccc.activate_primary_relay8 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "deactivate_primary_relay1");
if (setting != NULL)
{
primary_relay_settings_ccc.deactivate_primary_relay1 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "deactivate_primary_relay2");
if (setting != NULL)
{
primary_relay_settings_ccc.deactivate_primary_relay2 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "deactivate_primary_relay3");
if (setting != NULL)
{
primary_relay_settings_ccc.deactivate_primary_relay3 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "deactivate_primary_relay4");
if (setting != NULL)
{
primary_relay_settings_ccc.deactivate_primary_relay4 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "deactivate_primary_relay5");
if (setting != NULL)
{
primary_relay_settings_ccc.deactivate_primary_relay5 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "deactivate_primary_relay6");
if (setting != NULL)
{
primary_relay_settings_ccc.deactivate_primary_relay6 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "deactivate_primary_relay7");
if (setting != NULL)
{
primary_relay_settings_ccc.deactivate_primary_relay7 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "deactivate_primary_relay8");
if (setting != NULL)
{
primary_relay_settings_ccc.deactivate_primary_relay8 = config_setting_get_bool(setting);
}
setting = config_setting_get_member(group, "primary_relay_activation_time");
if (setting != NULL)
{
primary_relay_settings_ccc.primary_relay_activation_time = config_setting_get_int64(setting);
}
setting = config_setting_get_member(group, "primary_relay_delay_time");
if (setting != NULL)
{
primary_relay_settings_ccc.primary_relay_delay_time = config_setting_get_int64(setting);
}
// setting = config_setting_get_member(group, "primary_relay_name");;
// if (setting != NULL)
// {
// const char *prn = config_setting_get_string(setting);
// snprintf(primary_relay_settings_ccc.primary_relay_name, sizeof(primary_relay_settings_ccc.primary_relay_name), "%s", prn);
// }
}
// update primary relay settings
update_primary_relay_settings_ccc();
config_destroy(&config);
fclose(config_file);
@@ -6198,6 +6324,69 @@ void write_config_file_with_name_ccc(char* filename)
setting = config_setting_add(group, "usb_port_reset_enabled", CONFIG_TYPE_INT);
config_setting_set_int(setting, timer_settings_ccc.usb_port_reset_enabled);
// load primary relay settings
load_primary_relay_settings_ccc();
// write primary relay settings to config file
group = config_setting_add(root, "relay", CONFIG_TYPE_GROUP);
setting = config_setting_add(group, "activate_primary_relay1", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.activate_primary_relay1);
setting = config_setting_add(group, "activate_primary_relay2", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.activate_primary_relay2);
setting = config_setting_add(group, "activate_primary_relay3", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.activate_primary_relay3);
setting = config_setting_add(group, "activate_primary_relay4", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.activate_primary_relay4);
setting = config_setting_add(group, "activate_primary_relay5", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.activate_primary_relay5);
setting = config_setting_add(group, "activate_primary_relay6", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.activate_primary_relay6);
setting = config_setting_add(group, "activate_primary_relay7", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.activate_primary_relay7);
setting = config_setting_add(group, "activate_primary_relay8", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.activate_primary_relay8);
setting = config_setting_add(group, "deactivate_primary_relay1", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.deactivate_primary_relay1);
setting = config_setting_add(group, "deactivate_primary_relay2", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.deactivate_primary_relay2);
setting = config_setting_add(group, "deactivate_primary_relay3", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.deactivate_primary_relay3);
setting = config_setting_add(group, "deactivate_primary_relay4", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.deactivate_primary_relay4);
setting = config_setting_add(group, "deactivate_primary_relay5", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.deactivate_primary_relay5);
setting = config_setting_add(group, "deactivate_primary_relay6", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.deactivate_primary_relay6);
setting = config_setting_add(group, "deactivate_primary_relay7", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.deactivate_primary_relay7);
setting = config_setting_add(group, "deactivate_primary_relay8", CONFIG_TYPE_BOOL);
config_setting_set_bool(setting, primary_relay_settings_ccc.deactivate_primary_relay8);
setting = config_setting_add(group, "primary_relay_activation_time", CONFIG_TYPE_INT64);
config_setting_set_int64(setting, primary_relay_settings_ccc.primary_relay_activation_time);
setting = config_setting_add(group, "primary_relay_delay_time", CONFIG_TYPE_INT64);
config_setting_set_int64(setting, primary_relay_settings_ccc.primary_relay_delay_time);
// setting = config_setting_add(group, "primary_relay_name", CONFIG_TYPE_STRING);
// config_setting_set_string(setting, primary_relay_settings_ccc.primary_relay_name);
config_write(&config, config_file);
config_destroy(&config);