2026-07-10 10:38:57 +02:00

61 lines
3.0 KiB
Python

from ScEpTIC.config.base_config import ScEpTICBaseConfig
class BaseTransformationsConfig(ScEpTICBaseConfig):
"""
Configuration for default transformations
"""
_config_domain = {
'simulate_clock_cycles_function_name': {'class': str, 'mode': 'set'},
'increment_custom_metric_function_name': {'class': str, 'mode': 'set'},
'enter_mcu_lpm_function_name': {'class': str, 'mode': 'set'},
'print_dump_function_name': {'class': str, 'mode': 'set'},
'interrupts_enable_firing_function_name': {'class': str, 'mode': 'set'},
'interrupts_disable_firing_function_name': {'class': str, 'mode': 'set'},
'interrupts_enable_function_name': {'class': str, 'mode': 'set'},
'interrupts_disable_function_name': {'class': str, 'mode': 'set'},
'timer_start_function_name': {'class': str, 'mode': 'set'},
'timer_stop_function_name': {'class': str, 'mode': 'set'},
'timer_set_period_function_name': {'class': str, 'mode': 'set'},
'printf_function_name': {'class': str, 'mode': 'set'},
'custom_log_function_name': {'class': str, 'mode': 'set'},
'custom_log_dump_function_name': {'class': str, 'mode': 'set'},
}
def __init__(self, main_config):
super().__init__(main_config)
self.__ir_prefix = f"{main_config.program.ir_function_prefix}"
self.simulate_clock_cycles_function_name = f"{self.__ir_prefix}sceptic_simulate_cycles"
self.increment_custom_metric_function_name = f"{self.__ir_prefix}sceptic_increment_custom_metric"
self.enter_mcu_lpm_function_name = f"{self.__ir_prefix}sceptic_mcu_lpm"
self.print_dump_function_name = f"{self.__ir_prefix}sceptic_print_dump"
self.interrupts_enable_firing_function_name = f"{self.__ir_prefix}sceptic_interrupts_enable_firing"
self.interrupts_disable_firing_function_name = f"{self.__ir_prefix}sceptic_interrupts_disable_firing"
self.interrupts_enable_function_name = f"{self.__ir_prefix}sceptic_interrupts_enable"
self.interrupts_disable_function_name = f"{self.__ir_prefix}sceptic_interrupts_disable"
self.timer_start_function_name = f"{self.__ir_prefix}sceptic_timer_start"
self.timer_stop_function_name = f"{self.__ir_prefix}sceptic_timer_stop"
self.timer_set_period_function_name = f"{self.__ir_prefix}sceptic_timer_set_period"
self.printf_function_name = f"{self.__ir_prefix}printf"
self.custom_log_function_name = f"{self.__ir_prefix}sceptic_custom_log"
self.custom_log_dump_function_name = f"{self.__ir_prefix}sceptic_custom_log_dump"
for function_name in self._config_domain.keys():
self._register_config_callback(function_name, self._append_ir_callback)
def _append_ir_callback(self, config_name, config_value):
if not config_value.startswith("sceptic_"):
config_value = f"sceptic_{config_value}"
setattr(self, config_name, f"{self.__ir_prefix}{config_value}")
# Returns the configuration
def get_config(main_config):
return BaseTransformationsConfig(main_config)