Фактически интерфейсом, который запускает конечный автомат Open FSM, является функция run_state_machine_once
, прототип которой выглядит следующим образом:
// Выполняет конечный автомат, делая один шаг
state run_state_machine_once(FSM * fsm);
fsm
— экземпляр конечного автомата.После выполнения можно получить только что выполненное состояние через возвращаемое значение.
Например:
state cur_state;
cur_state = run_state_machine_once(&fsm_1);
printf("Выполнено: %d\n", cur_state);
Можно использовать следующую функцию для получения состояния, которое будет выполнено следующим.
state get_next_state(FSM * fsm);
fsm
— экземпляр конечного автомата.Например:
printf("Следующее: %d\n", get_next_state(&fsm_1));
void init_state_machine(FSM *p);
void reset_state_machine(FSM *p);
Обе функции возвращают конечный автомат в начальное состояние, но reset_state_machine
дополнительно очищает состояние ошибки.
В этом проекте предоставляются три распространённых примера, которые используются для реализации одношагового и двухшагового конечных автоматов, а также обработки ошибок в них.
Для более подробного ознакомления с использованием обратитесь к конкретной реализации в src/example
.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )