15#ifndef OS_EVENT_FLAGS_H_
16#define OS_EVENT_FLAGS_H_
38template <
size_t kReserved = 1>
63 bool Set(uint32_t bits)
noexcept
72 bool Clear(uint32_t bits)
noexcept
91 uint32_t& actual_bits)
noexcept
100 option, actual,
ToTicks(timeout_ms));
101 actual_bits =
static_cast<uint32_t
>(actual);
108 return (timeout_ms == UINT32_MAX)
Generic RTOS abstraction — public header.
WaitMode
Selects ANY-of-bits vs ALL-of-bits semantics for Wait calls.
Definition OsEventFlags.h:27
@ All
Wake only when all of the requested bits are set.
@ Any
Wake when any of the requested bits are set.
C-facing helper functions for delays, cycle counters, and creation of RTOS handles (queues,...
bool os_event_flags_set_ex(OS_EventGroup &eventFlags, OS_Ulong flagsToSet, bool suppressVerbose=true) noexcept
Set event flags in the event flag group.
Definition OsUtility.cpp:900
constexpr uint32_t os_convert_msec_to_delay_ticks(uint32_t milliseconds)
Converts milliseconds to delay ticks, rounding down but never to zero.
Definition OsUtility.h:74
bool os_event_flags_delete_ex(OS_EventGroup &eventFlags, bool suppressVerbose=true) noexcept
Deletes the specified event flag group and logs any error.
Definition OsUtility.cpp:877
bool os_event_flags_get_ex(OS_EventGroup &eventFlags, OS_Ulong flagsToGet, OS_Uint getOption, OS_Ulong &actualFlags, OS_Ulong wait_option, bool suppressVerbose=true) noexcept
Get event flags from the event flag group.
Definition OsUtility.cpp:933
bool os_event_flags_clear_ex(OS_EventGroup &eventFlags, OS_Ulong flagsToClear, bool suppressVerbose=true) noexcept
Clears event flags in the event flag group.
Definition OsUtility.cpp:915
bool os_event_flags_create_ex(OS_EventGroup &eventFlags, const char *name, bool suppressVerbose=true) noexcept
Creates an event flag group with the specified parameters.
Definition OsUtility.cpp:851
Eager-init event-flag group with modern C++ public surface.
Definition OsEventFlags.h:39
bool Set(uint32_t bits) noexcept
Set bits in the group.
Definition OsEventFlags.h:63
OsEventFlags(const char *groupName) noexcept
Definition OsEventFlags.h:41
bool IsValid() const noexcept
True if the underlying RTOS handle was created successfully.
Definition OsEventFlags.h:58
OsEventFlags(const OsEventFlags &)=delete
static OS_Ulong ToTicks(uint32_t timeout_ms) noexcept
Definition OsEventFlags.h:106
const char * name_
Definition OsEventFlags.h:113
bool Wait(uint32_t bits, WaitMode mode, uint32_t timeout_ms, uint32_t &actual_bits) noexcept
Wait for bits to be set per mode, up to timeout_ms.
Definition OsEventFlags.h:90
OsEventFlags & operator=(const OsEventFlags &)=delete
bool created_
Definition OsEventFlags.h:114
OS_EventGroup group_
Definition OsEventFlags.h:115
~OsEventFlags() noexcept
Definition OsEventFlags.h:50
bool Clear(uint32_t bits) noexcept
Clear bits in the group.
Definition OsEventFlags.h:72
@ OS_OR
Definition os_cmsis.h:52
@ OS_WAIT_FOREVER
Definition os_cmsis.h:48
@ OS_AND
Definition os_cmsis.h:51
osEventFlagsId_t OS_EventGroup
Definition os_cmsis.h:31
unsigned int OS_Uint
Definition os_cmsis.h:36
unsigned long OS_Ulong
Definition os_cmsis.h:35