Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[dsdp-tml-dev] State machine problem

Hello guys,

 

I’ve found a potential problem source in the device framework, related to the state machine control.

 

Consider an instance that has 3 states (A, B and C) and 2 transitions (A->B, A->C). The instance is initially at state A.

At the instance view, the services that execute both transitions are enabled. Say we execute the service that transitions from A to B.

 

While the transition is ongoing, the device is neither in state A or B, but at the state machine it is still considered in state A before a result is available. Therefore the transition A->C is still enabled. What happens if we execute A->C?

 

I think it is necessary to define new rules for state maintenance. One simple solution would be to disable all services while a transition is ongoing, but there are cases in which two or more services can be executed in parallel. Does anyone have ideas about what would be the most effective algorithm to deal with a state machine generically, allowing robustness and parallelism at the same time?

 

Thanks and best regards,

 

Fabio Rigo


Back to the top