UMOZ v1.2.0 - Static Priority Task Scheduler & Performance Calibration
What's New in v1.2.0 🚀
We are proud to introduce v1.2.0 of the UMOZ framework. This release shifts the multitasking engine from a simple sequential dispatcher to a Priority-Aware Scheduler, allowing critical micro-tasks to preempt or run before low-priority operations when execution windows overlap.
✨ Major Enhancements:
- Priority Scheduling Engine: Integrated
UMOZPriorityenum (UMOZ_LOW,UMOZ_MEDIUM,UMOZ_HIGH) into the static task structure. The runtime loop now evaluates all due tasks and guarantees that the highest priority task runs first. - Deterministic Execution: Eliminated latency jitter for critical operations (like sensor safety polling) by giving them explicit higher execution weights.
- Typo Fixes & Safety Patches: Resolved compiler boundary edge-cases by enforcing
constrain()bounds inside the livegetCPUUsage()diagnostics function. - Backward Compatibility: Kept the standard
addTaskmethod signature fully backward-compatible by injectingUMOZ_MEDIUMas a default parameter level.
📋 Usage Preview:
// Schedule a critical safety task with HIGH priority
tool.addTask(criticalTask, 100, UMOZ_HIGH);
// Schedule a regular telemetry task with LOW priority
tool.addTask(telemetryTask, 100, UMOZ_LOW);🛠️ Installation & Upgrading
Update your local installation by pulling the latest changes from the main branch or downloading this release zip file into your Arduino libraries/ directory.