64 lines
1.4 KiB
C
64 lines
1.4 KiB
C
/*
|
||
* event_handler.h
|
||
*
|
||
* Created on: 2026-03-04
|
||
* Author: RT-Thread
|
||
*
|
||
* 功能: 事件处理器模块头文件
|
||
* 依赖: RT-Thread Nano, osal, event_queue
|
||
* 跨平台适配: 基于RT-Thread Nano,使用标准API
|
||
*/
|
||
|
||
#ifndef EVENT_HANDLER_H
|
||
#define EVENT_HANDLER_H
|
||
|
||
#include <rtthread.h>
|
||
#include "osal.h"
|
||
#include "event_queue.h"
|
||
|
||
/* 事件处理函数类型 */
|
||
typedef int (*event_handler_func_t)(event_t *event, void *user_data);
|
||
|
||
/* 事件处理器结构体 */
|
||
typedef struct {
|
||
event_handler_func_t handler; /* 事件处理函数 */
|
||
void *user_data; /* 用户数据 */
|
||
} event_handler_t;
|
||
|
||
/**
|
||
* @brief 初始化事件处理器
|
||
* @return 0 成功,非0 失败
|
||
*/
|
||
int event_handler_init(void);
|
||
|
||
/**
|
||
* @brief 注册事件处理器
|
||
* @param type 事件类型
|
||
* @param handler 事件处理函数
|
||
* @param user_data 用户数据
|
||
* @return 0 成功,非0 失败
|
||
*/
|
||
int event_handler_register(event_type_t type, event_handler_func_t handler, void *user_data);
|
||
|
||
/**
|
||
* @brief 注销事件处理器
|
||
* @param type 事件类型
|
||
* @return 0 成功,非0 失败
|
||
*/
|
||
int event_handler_unregister(event_type_t type);
|
||
|
||
/**
|
||
* @brief 处理事件
|
||
* @param event 事件指针
|
||
* @return 0 成功,非0 失败
|
||
*/
|
||
int event_handler_process(event_t *event);
|
||
|
||
/**
|
||
* @brief 事件分发线程
|
||
* @param parameter 线程参数
|
||
*/
|
||
void event_dispatch_thread(void *parameter);
|
||
|
||
#endif /* EVENT_HANDLER_H */
|