У меня есть большое количество состояний, в которых состояния соответствуют числу в разных конечных автоматах
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
При попытке реализовать это я сталкиваюсь с проблемами с перекрывающимися значениями состояний, так как питон не может различать состояния, так как, например,
A_STATE_STOPPED == B_STATE_SUCCESS