Files
qf-fsm/fsm.c

30 lines
1.0 KiB
C

//
// Created by Hydro on 2026/4/21.
//
#include "fsm.h"
fsm_result_e
fsm_init_with_queue (fsm_handle_t *handle_ptr,
const fsm_event_queue_init event_queue_init,
const fsm_event_queue_put event_queue_put,
const fsm_event_queue_get event_queue_get)
{
fsm_result_e result = FSM_OK;
do
{
if (!(handle_ptr && event_queue_init && event_queue_put
&& event_queue_get))
{
result = FSM_FAIL;
break;
}
handle_ptr->event_queue_get = event_queue_get;
handle_ptr->event_queue_put = event_queue_put;
handle_ptr->event_queue_init = event_queue_init;
result = handle_ptr->event_queue_init(handle_ptr->event_queue_handle,
handle_ptr->event_queue,
EVENT_QUEUE_LEN
* sizeof(fsm_event_t));
} while (0);
return result;
}