ELEC-C7222
Libraries for ELEC C7222 Course Work
Loading...
Searching...
No Matches
c7222::FreeRtosEventGroup Class Reference

Ownership-based wrapper for an event bit group. More...

#include <freertos_event_group.hpp>

Inheritance diagram for c7222::FreeRtosEventGroup:
Inheritance graph
Collaboration diagram for c7222::FreeRtosEventGroup:
Collaboration graph

Public Member Functions

 FreeRtosEventGroup ()
 Construct and initialize an event group.
 
bool Initialize ()
 Initialize (or re-initialize) the event group.
 
 ~FreeRtosEventGroup ()
 Destroy event group resources if initialized.
 
std::uint32_t SetBits (std::uint32_t bits)
 Set bits in the event group.
 
bool SetBitsFromISR (std::uint32_t bits)
 Set bits from ISR context.
 
std::uint32_t ClearBits (std::uint32_t bits)
 Clear bits in the event group.
 
std::uint32_t WaitBits (std::uint32_t bits_to_wait_for, bool clear_on_exit, bool wait_for_all_bits, std::uint32_t ticks_to_wait)
 Wait until required event bits are satisfied.
 
std::uint32_t GetBits () const
 
std::uint32_t GetBitsFromISR () const
 
bool IsValid () const
 
- Public Member Functions inherited from c7222::NonCopyable
 NonCopyable (const NonCopyable &)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
 NonCopyable (NonCopyable &&)=default
 
NonCopyableoperator= (NonCopyable &&)=default
 
- Public Member Functions inherited from c7222::NonMovable
 NonMovable (const NonMovable &)=default
 
NonMovableoperator= (const NonMovable &)=default
 
 NonMovable (NonMovable &&)=delete
 
NonMovableoperator= (NonMovable &&)=delete
 

Additional Inherited Members

- Protected Member Functions inherited from c7222::NonCopyableNonMovable
 NonCopyableNonMovable ()=default
 
 ~NonCopyableNonMovable ()=default
 
- Protected Member Functions inherited from c7222::NonCopyable
 NonCopyable ()=default
 
 ~NonCopyable ()=default
 
- Protected Member Functions inherited from c7222::NonMovable
 NonMovable ()=default
 
 ~NonMovable ()=default
 

Detailed Description

Ownership-based wrapper for an event bit group.

Event groups are useful for waiting on one or more flags across tasks. Wait and bit operations are explicit; RAII here refers to handle cleanup.

Typical usage:

constexpr std::uint32_t kReadyBit = 1u << 0;
// Producer:
(void)events.SetBits(kReadyBit);
// Consumer:
const std::uint32_t bits = events.WaitBits(kReadyBit, true, true, 100);
if((bits & kReadyBit) != 0U) {
// ready condition observed
}
Ownership-based wrapper for an event bit group.
Definition freertos_event_group.hpp:36
std::uint32_t WaitBits(std::uint32_t bits_to_wait_for, bool clear_on_exit, bool wait_for_all_bits, std::uint32_t ticks_to_wait)
Wait until required event bits are satisfied.
std::uint32_t SetBits(std::uint32_t bits)
Set bits in the event group.

Constructor & Destructor Documentation

◆ FreeRtosEventGroup()

c7222::FreeRtosEventGroup::FreeRtosEventGroup ( )

Construct and initialize an event group.

◆ ~FreeRtosEventGroup()

c7222::FreeRtosEventGroup::~FreeRtosEventGroup ( )

Destroy event group resources if initialized.

Member Function Documentation

◆ ClearBits()

std::uint32_t c7222::FreeRtosEventGroup::ClearBits ( std::uint32_t  bits)

Clear bits in the event group.

Parameters
bitsBit mask to clear.
Returns
Event bits value before clearing.

◆ GetBits()

std::uint32_t c7222::FreeRtosEventGroup::GetBits ( ) const
Returns
Current event bits from task context.

◆ GetBitsFromISR()

std::uint32_t c7222::FreeRtosEventGroup::GetBitsFromISR ( ) const
Returns
Current event bits from ISR context.

◆ Initialize()

bool c7222::FreeRtosEventGroup::Initialize ( )

Initialize (or re-initialize) the event group.

◆ IsValid()

bool c7222::FreeRtosEventGroup::IsValid ( ) const
Returns
true if the wrapper owns a valid event group handle.

◆ SetBits()

std::uint32_t c7222::FreeRtosEventGroup::SetBits ( std::uint32_t  bits)

Set bits in the event group.

Parameters
bitsBit mask to set.
Returns
Event bits value after setting.

◆ SetBitsFromISR()

bool c7222::FreeRtosEventGroup::SetBitsFromISR ( std::uint32_t  bits)

Set bits from ISR context.

Parameters
bitsBit mask to set.
Returns
true on success.

◆ WaitBits()

std::uint32_t c7222::FreeRtosEventGroup::WaitBits ( std::uint32_t  bits_to_wait_for,
bool  clear_on_exit,
bool  wait_for_all_bits,
std::uint32_t  ticks_to_wait 
)

Wait until required event bits are satisfied.

Parameters
bits_to_wait_forTarget bits.
clear_on_exitIf true, clear requested bits before return.
wait_for_all_bitsIf true, wait for all bits; otherwise any bit.
ticks_to_waitMax ticks to wait.
Returns
Event bits value on wakeup.

The documentation for this class was generated from the following file: