30 lines
1.0 KiB
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;
|
|
} |