I have two composite states [OffMode, Running] that render ok, when "Running" is defined first, but fail to render when "OffMode" is defined first.
Is there any way to get this to render consistently correctly?
Working:
@startuml
[*] --> OffMode
Running : exit / set_new_ramp_start_speed
Running --> OffMode : undertemp, overtemp
state Running {
state "Normal Mode" as NormalMode
NormalMode : thermostate_on
NormalMode : motor_off
NormalMode --> OffMode : thermostate_off
NormalMode --> ForcedMode : motor_on
state "Forced Mode" as ForcedMode
ForcedMode : exit / repost_state
ForcedMode : thermostate_on
ForcedMode : thermostate_off
ForcedMode --> NormalMode : motor_off
}
OffMode : entry / stop_compressor
OffMode --> ForcedMode : motor_on
OffMode --> NormalMode : thermostate_on
state OffMode {
state "Cooling Off Mode" as CoolingOffMode
[*] --> CoolingOffMode
CoolingOffMode : entry / enable_tick
CoolingOffMode : thermostate_on, motor_on
CoolingOffMode --> FullyOff : tick / disable_ticks
FullyOff : entry / repost_state
FullyOff : thermostate_off
FullyOff : motor_off
}
@enduml
Not working:
@startuml
[*] --> OffMode
OffMode : entry / stop_compressor
OffMode --> ForcedMode : motor_on
OffMode --> NormalMode : thermostate_on
state OffMode {
state "Cooling Off Mode" as CoolingOffMode
[*] --> CoolingOffMode
CoolingOffMode : entry / enable_tick
CoolingOffMode : thermostate_on, motor_on
CoolingOffMode --> FullyOff : tick / disable_ticks
FullyOff : entry / repost_state
FullyOff : thermostate_off
FullyOff : motor_off
}
Running : exit / set_new_ramp_start_speed
Running --> OffMode : undertemp, overtemp
state Running {
state "Normal Mode" as NormalMode
NormalMode : thermostate_on
NormalMode : motor_off
NormalMode --> OffMode : thermostate_off
NormalMode --> ForcedMode : motor_on
state "Forced Mode" as ForcedMode
ForcedMode : exit / repost_state
ForcedMode : thermostate_on
ForcedMode : thermostate_off
ForcedMode --> NormalMode : motor_off
}
@enduml