1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/schips-openfsm

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 2.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 18:41 498428e

Выполнение и получение состояния конечного автомата

Выполнение конечного автомата

Фактически интерфейсом, который запускает конечный автомат 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/schips-openfsm.git
git@api.gitlife.ru:oschina-mirror/schips-openfsm.git
oschina-mirror
schips-openfsm
schips-openfsm
master