FuriEventLoopEventFlagEdge

Constant FuriEventLoopEventFlagEdge 

Source
pub const FuriEventLoopEventFlagEdge: FuriEventLoopEvent;
Expand description

Use edge triggered events.

By default, level triggered events are used. A level above zero is reported based on the following conditions:

In events:

  • a FuriMessageQueue contains one or more items,
  • a FuriStreamBuffer contains one or more bytes,
  • a FuriSemaphore can be acquired at least once,
  • a FuriMutex can be acquired.

Out events:

  • a FuriMessageQueue has at least one item of free space,
  • a FuriStreamBuffer has at least one byte of free space,
  • a FuriSemaphore has been acquired at least once,
  • a FuriMutex has been acquired.

If this flag is NOT set, the event will be generated repeatedly until the level becomes zero (e.g. all items have been removed from a FuriMessageQueue in case of the “In” event, etc.)

If this flag IS set, then the above check is skipped and the event is generated ONLY when a change occurs, with the event direction (In or Out) taken into account.