我有很多状态,其中状态对应于不同状态机中的数字
A_STATE_IDLE = 0
A_STATE_ENGAGE = 1
A_STATE_STOP = 2
A_STATE_STOPPED = 3
B_STATE_IDLE = 0
B_STATE_START = 1
B_STATE_RUNNING = 2
B_STATE_SUCCESS = 3
B_STATE_FAIL = 4
B_STATE_STOP = 5
我还列出了状态机的不同转换。
"trigger": press_start
"from": A_STATE_IDLE
"to": A_STATE_START
"trigger": press_start
"from": B_STATE_IDLE
"to": B_STATE_START
我应该如何处理状态转换,并且可以在不将状态置于例如字典吗?
最好是我想用以下其中一种方式来处理过渡。
press_start(A_STATE_IDLE) => A_STATE_START
A_STATE_IDLE.press_start() => A_STATE_START
在尝试实现此功能时,由于python自例如以来无法区分状态,所以我遇到状态值重叠的问题。
A_STATE_STOPPED == B_STATE_SUCCESS