// // 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; }