From bfeb1cfb6cfb6d749910e98fd39ee22c9f6ac84f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Frohm=C3=BCller?= Date: Mon, 22 Dec 2025 11:09:13 +0100 Subject: [PATCH] Include primary relay settings in template files. --- res/templates/default.cfg | 21 ++++ res/templates/default_ssd.cfg | 5 + src/opensuperclone/clone_gui.c | 189 +++++++++++++++++++++++++++++++++ 3 files changed, 215 insertions(+) diff --git a/res/templates/default.cfg b/res/templates/default.cfg index bbce93f..545fdfd 100644 --- a/res/templates/default.cfg +++ b/res/templates/default.cfg @@ -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; +}; diff --git a/res/templates/default_ssd.cfg b/res/templates/default_ssd.cfg index 0c22eef..c6643cf 100644 --- a/res/templates/default_ssd.cfg +++ b/res/templates/default_ssd.cfg @@ -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; +}; diff --git a/src/opensuperclone/clone_gui.c b/src/opensuperclone/clone_gui.c index 7ce57de..beecc1f 100644 --- a/src/opensuperclone/clone_gui.c +++ b/src/opensuperclone/clone_gui.c @@ -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);