diff --git a/system/event_loop/Kconfig b/system/event_loop/Kconfig new file mode 100644 index 0000000000..76d188fcef --- /dev/null +++ b/system/event_loop/Kconfig @@ -0,0 +1,56 @@ + +# Kconfig file for package event_loop +menuconfig PKG_USING_EVENT_LOOP + bool "Event loop (delayed dispatch: mq + soft one-shot timer)" + default n + select RT_USING_MESSAGEQUEUE + select RT_USING_MUTEX + select RT_USING_TIMER_SOFT + help + Delay table processing runs only in the soft-timer callback (system timer thread): + RT_TIMER_FLAG_ONE_SHOT | RT_TIMER_FLAG_SOFT_TIMER. No extra el_tmr worker thread. + Public API: evt_loop_push_delayed / evt_loop_remove_delayed and + macros EVT_LOOP_PUSH, EVT_LOOP_REMOVE, EVT_LOOP_REMOVE_WITH_ARGS. + +if PKG_USING_EVENT_LOOP + + config PKG_EVENT_LOOP_PATH + string + default "/packages/system/event_loop" + + config EVENT_LOOP_MAX_EVENT_CNT + int "Maximum delayed slots in table" + default 32 + help + Fixed table size for pending delayed events. + + config EVENT_LOOP_MSGQ_DEPTH + int "Message queue depth (immediate + due callbacks)" + default 15 + help + rt_mq capacity for evt_loop_handle_t messages. + + config EVENT_LOOP_THREAD_STACK_SIZE + int "Event loop thread stack size (bytes)" + default 3072 + + config EVENT_LOOP_THREAD_PRIORITY + int "Event loop thread priority (smaller = higher)" + default 12 + range 0 31 + help + Must be strictly greater than RT_TIMER_THREAD_PRIO in rtconfig.h so the + soft-timer daemon (lower number) preempts evt_loop. Example: timer prio 4, + use 12 here. + + config EVENT_LOOP_USING_SAMPLES + bool "Build event_loop sample (event_loop_test.c)" + default n + help + Registers MSH command event_loop_test (when FINSH enabled). + + config PKG_EVENT_LOOP_VER + string + default "latest" + +endif diff --git a/system/event_loop/package.json b/system/event_loop/package.json new file mode 100644 index 0000000000..f1d60364d7 --- /dev/null +++ b/system/event_loop/package.json @@ -0,0 +1,29 @@ +{ + "name": "event_loop", + "description": "RT-Thread event loop: delayed callback dispatch (message queue + soft timer)", + "description_zh": "RT-Thread 事件循环:消息队列与软定时器实现延迟回调执行", + "enable": "PKG_USING_EVENT_LOOP", + "keywords": [ + "event", + "loop" + ], + "category": "system", + "author": { + "name": "John.liu", + "email": "450547566@qq.com", + "github": "https://github.com/Bluetooth-BLE" + }, + "license": "Apache-2.0", + "repository": "https://github.com/Bluetooth-BLE/event_loop", + "icon": "unknown", + "homepage": "https://github.com/Bluetooth-BLE/event_loop#readme", + "doc": "unknown", + "site": [ + { + "version": "latest", + "URL": "https://github.com/Bluetooth-BLE/event_loop.git", + "filename": "", + "VER_SHA": "main" + } + ] +}