From d51527715e72586af8ee47a145f4410e9ab31178 Mon Sep 17 00:00:00 2001 From: BlueAndi Date: Tue, 31 Oct 2023 20:32:53 +0100 Subject: [PATCH] Planned new configuration concept to have application specific HAL, not containing unused peripherals which requires space on target. --- doc/configuration/uml/configuration.plantuml | 129 +++++++++++++------ 1 file changed, 92 insertions(+), 37 deletions(-) diff --git a/doc/configuration/uml/configuration.plantuml b/doc/configuration/uml/configuration.plantuml index 8c2852b9..b2fd3a10 100644 --- a/doc/configuration/uml/configuration.plantuml +++ b/doc/configuration/uml/configuration.plantuml @@ -2,56 +2,111 @@ title Configuration -component "env:ConvoyLeaderTarget" <> as envConvoyLeader -component "env:ConvoyLeaderSim" <> as envConvoyLeaderSim +package "platformio.ini" { -component "env:LineFollowerTarget" <> as envLineFollower -component "env:LineFollowerSim" <> as envLineFollowerSim + package "working environments" { + component "env:Target" <> as pioEnvAppTarget + component "env:Sim" <> as pioEnvAppSim + } -component "env:RemoteControlTarget" <> as envRemoteControl -component "env:RemoteControlSim" <> as envRemoteControlSim + package "configuration environments" as cfgEnv { -component "app:ConvoyLeader" <> as appConvoyLeader -component "app:LineFollower" <> as appLineFollower -component "app:RemoteControl" <> as appRemoteControl + component "hal_app:Target" <> as pioHalAppTarget + component "app:" <> as pioAppApp + component "hal_app:Sim" <> as pioHalAppSim -component "ConvoyLeader" <> as convoyLeader -component "LineFollower" <> as lineFollower -component "RemoteControl" <> as remoteControl -component "Service" <> as service + component "hal:Zumo" <> as pioHalTarget + component "hal:Sim" <> as pioHalSim + } +} -component "target:Zumo32U4" <> as targetZumo -component "target:Sim" <> as targetSim +package "/lib" as libFolder { -component "HALTarget" <> as halTarget -component "HALSim" <> as halSim + component "HALInterfaces" <> as halInterfacesLib -envConvoyLeader ..> appConvoyLeader -envConvoyLeader ..> targetZumo + component "APL" <> as appLib + component "Service" <> as serviceLib -envConvoyLeaderSim ..> appConvoyLeader -envConvoyLeaderSim ..> targetSim + component "HALTarget" <> as halAppTarget + component "HALSim" <> as halAppSim -envLineFollower ..> appLineFollower -envLineFollower ..> targetZumo + component "HALTarget" <> as halTargetLib + component "HALSim" <> as halSimLib -envLineFollowerSim ..> appLineFollower -envLineFollowerSim ..> targetSim + component "Webots" <> as webotsLib + component "ArduinoNative" <> as arduinoNativeLib -envRemoteControl ..> appRemoteControl -envRemoteControl ..> targetZumo + note bottom of halAppTarget + Application specific target HAL + instantiation via Board class. + May use less peripherals, than + available. + end note -envRemoteControlSim ..> appRemoteControl -envRemoteControlSim ..> targetSim + note bottom of halAppSim + Application specific simulation HAL + instantiation via Board class. + May use less peripherals, than + available. + end note -appConvoyLeader ..> convoyLeader -appConvoyLeader ..> service -appLineFollower ..> lineFollower -appLineFollower ..> service -appRemoteControl ..> remoteControl -appRemoteControl ..> service + note bottom of halTargetLib + Contains the target HAL + peripheral classes. + end note -targetZumo ..> halTarget -targetSim ..> halSim + note bottom of halSimLib + Contains the simulation HAL + peripheral classes. + end note + + note bottom of halInterfacesLib + Defines the interfaces + of the HAL peripherals. + end note + + note bottom of appLib + Application specific functionality. + end note + + note bottom of serviceLib + General services, used by + the applications. + end note + + note bottom of webotsLib + Webots simulation glue code. + end note + + note bottom of arduinoNativeLib + Some stubbed Arduino interfaces + for simulation. + end note +} + +pioEnvAppTarget ...> pioAppApp: <> +pioEnvAppTarget ...> pioHalAppTarget: <> + +pioHalAppTarget ..> pioHalTarget: <> +pioHalAppTarget ...> halAppTarget: <> + +pioHalTarget ..> halTargetLib: <> +pioHalTarget ..> halInterfacesLib: <> + + +pioEnvAppSim ..> pioAppApp: <> +pioEnvAppSim ..> pioHalAppSim: <> + +pioHalAppSim ..> pioHalSim: <> +pioHalAppSim ...> halAppSim: <> + +pioHalSim ..> halSimLib: <> +pioHalSim ..> webotsLib: <> +pioHalSim ..> halInterfacesLib: <> +pioHalSim ..> arduinoNativeLib: <> + + +pioAppApp ...> appLib: <> +pioAppApp ...> serviceLib: <> @enduml \ No newline at end of file