ao_config_manager ================= Applies validated configuration updates and maintains active control configuration for runtime consumers. Inherited Component ------------------- - :doc:`Config_Manager ` Inherited Requirements ---------------------- - :doc:`REQ-CTL-003 ` - :doc:`REQ-IFC-003 ` - :doc:`REQ-IFC-004 ` Relationship Diagram -------------------- .. image:: /_static/sw_unit_uml/ao_config_manager_75815879-88a1-4581-88cc-9ba567d73b34_uml.svg :alt: UML class diagram for ao_config_manager :class: dblclick-open-image SW Unit Relations ----------------- Incoming Relations ~~~~~~~~~~~~~~~~~~ .. list-table:: :header-rows: 1 * - Relation - UML Type - Visibility - Source Unit - Description * - :doc:`SWR-020 ` - dependency - private - :doc:`ao_modbus_server ` - Modbus server forwards configuration update requests to config manager for validation and commit. Data Types ---------- .. _dt-6aa21605-584e-4aa2-903b-fce1f5f04d3f: .. raw:: html
ao_config_manager_contextstruct
Configuration manager runtime context. .. rubric:: Struct Members .. list-table:: :header-rows: 1 * - Name - Type - Description * - active_version - :ref:`uint16_t ` - Active configuration version. * - pending_update - :ref:`bool ` - Pending configuration update staged. * - last_apply_tick - :ref:`uint32_t ` - Tick of last applied update. * - last_error_code - :ref:`uint16_t ` - Last validation or apply error code. .. _dt-36bcae02-ce67-46bc-8547-f24299792578: .. raw:: html
ao_config_manager_eventstruct
Configuration manager event payload. .. rubric:: Struct Members .. list-table:: :header-rows: 1 * - Name - Type - Description * - signal_id - :ref:`uint16_t ` - Configuration manager signal identifier. * - parameter_key - :ref:`uint16_t ` - Configuration parameter key. * - parameter_value - :ref:`int32_t ` - Requested parameter value. * - commit_request - :ref:`bool ` - Commit request flag for staged update. .. _dt-d8b63ce2-d256-48b6-8965-7e77579aa417: .. raw:: html
ao_config_manager_resultenum
Configuration manager operation result. .. rubric:: Enum Members .. list-table:: :header-rows: 1 * - Name - Value - Description * - OK - 0 - Configuration operation succeeded. * - INVALID_RANGE - 1 - Parameter value out of allowed range. * - APPLY_REJECTED - 2 - Configuration apply rejected by guard condition. .. _dt-8bace17e-2abe-4bac-97c1-589be64c4135: .. raw:: html
ao_config_update_payloadprimitive
Validated configuration payload received from communication services. Attributes ---------- .. list-table:: :header-rows: 1 * - Attribute - Type - Visibility - Description * - ctx - :ref:`ao_config_manager_context ` - private - Configuration context for versioning pending updates and error tracking. Methods ------- apply_config_update ~~~~~~~~~~~~~~~~~~~ - **Return Type:** :ref:`ao_config_manager_result ` - **Visibility:** public - **Description:** Validate and apply one configuration update event. .. rubric:: Parameters .. list-table:: :header-rows: 1 * - Name - Type - Direction - Description * - config_update - :ref:`ao_config_manager_event ` - in - Configuration update event payload to validate and commit. init ~~~~ - **Return Type:** :ref:`ao_config_manager_result ` - **Visibility:** public - **Description:** Initialize configuration defaults and staging state. Dynamic Behaviour ----------------- Activity Diagrams ~~~~~~~~~~~~~~~~~ ao_config_manager_activity ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. uml:: @startuml start :Receive IF_ConfigUpdate; :Validate key and value range; if (valid update?) then (yes) :Stage pending configuration; :Apply to runtime control parameters; :Persist active configuration version; :Publish apply success status; else (no) :Reject update and keep active config; :Publish validation error status; endif stop @enduml This activity diagram defines configuration update handling from intake through validation staged apply and rejection behavior to guarantee deterministic config management without disrupting active control execution. Timing Diagrams ~~~~~~~~~~~~~~~ ao_config_manager_timing ^^^^^^^^^^^^^^^^^^^^^^^^ .. uml:: @startuml robust "ao_config_manager" as CFG scale max 1200 width concise "config request" as R @0 R is rx CFG is validating @80 CFG is staging @160 CFG is applying @260 CFG is persisted @320 CFG is response_published @enduml This timing diagram bounds configuration handling latency from request reception through validation apply and response publication so configuration operations remain within communication service deadlines.