Реализовано: - TUI меню для внесения изменений в пользовательские настройки устройства - Синхронизация настроек с устройством
44 lines
1.6 KiB
Rust
44 lines
1.6 KiB
Rust
use config_lib::device_config::DeviceConfig;
|
|
use rand::rng;
|
|
use rand::seq::IndexedRandom;
|
|
|
|
fn main() -> Result<(), String> {
|
|
let mut config = DeviceConfig::create_parameter_list("config_lib/examples/simple_config.toml")?;
|
|
|
|
let parameters = config.get_parameters_names()?;
|
|
println!("Полученный список параметров: {:#?}", parameters);
|
|
|
|
println!("Текущие значения параметров:\n");
|
|
for parameter in ¶meters {
|
|
println!(
|
|
"{} = {};\nдиапазон допустимых значений: {:?}\n",
|
|
config.get_parameter_description(¶meter)?,
|
|
config.get_parameter_value(¶meter)?,
|
|
config.get_parameter_possible_values(¶meter)?
|
|
);
|
|
}
|
|
|
|
let mut rng = rng();
|
|
|
|
// Установка случайных значений для параметров в пределах допустимой области
|
|
for parameter in ¶meters {
|
|
let random_value = config
|
|
.get_parameter_possible_values(¶meter)?
|
|
.choose(&mut rng)
|
|
.unwrap()
|
|
.clone();
|
|
config.set_parameter_value(¶meter, random_value)?;
|
|
}
|
|
|
|
println!("Значения параметров после изменений:\n");
|
|
for parameter in ¶meters {
|
|
println!(
|
|
"{} = {};\nдиапазон допустимых значений: {:?}\n",
|
|
config.get_parameter_description(¶meter)?,
|
|
config.get_parameter_value(¶meter)?,
|
|
config.get_parameter_possible_values(¶meter)?
|
|
);
|
|
}
|
|
|
|
Ok(())
|
|
}
|