Event Scheduling#

Scheduling events for future execution.

See Event Scheduling for documentation. These macros implement an event abstraction that allows the application to schedule code to run after a specified time interval. An event consists of a procedure to be called at some point in the future and a control object that determines which procedure should be called. Events are also useful when an ISR needs to initiate an action that should run outside the ISR context.

See event.h for source code.

Note that, while not required, it is recommended that the event-handling procedure explicitly define the recurrence of the next event, either by rescheduling via some kind of emberEventControlSetDelayXX() call or by deactivating via a call to emberEventControlSetInactive().

When the handler does not explicitly reschedule or cancel the event, the default behavior of the event control system is to keep the event immediately active as if the handler function had called emberEventControlSetActive(someEvent) or emberEventControlSetDelayMS(someEvent, 0).

The base time units for events are ticks. A tick equals 1 ms on every platform supported by Connect. Note, however, that the accuracy of the base tick depends on the timer source, which by default is the LF RC oscillator on EFR32 platforms.

Furthermore, the scheduled delay is the minimum delay. If emberRunEvents() or emberRunTask() are not called frequently enough, the actual delay may be longer than the scheduled delay.

Additionally, the APIs for quarter second and minute delays (emberEventControlSetDelayQS() and emberEventControlSetDelayMinutes()) use "binary" units. One quarter second is 256 ticks and one minute is 65536 ticks. These APIs are therefore doesn't actually mean a quarter of second or a minute on platforms supported by Connect.

However, in the future, Connect support might become available on platforms where one tick is not exactly 1 ms. For example, on the EM357 SoC, 1 s is 1024 ticks, so each tick is 1000 / 1024 = ~0.98 milliseconds. If you need platform independent accurate delays, use the macros MILLISECOND_TICKS_PER_SECOND and MILLISECOND_TICKS_PER_MINUTE. For example, calling emberEventControlSetDelayMS(someEvent, 3 * MILLISECOND_TICKS_PER_MINUTE) will delay for 3 minutes on any platform.

The following are brief usage examples.

EmberEventControl delayEvent;
EmberEventControl signalEvent;
EmberEventControl periodicEvent;

void delayEventHandler(void)
{
  // Disable this event until its next use.
  emberEventControlSetInactive(delayEvent);
}

void signalEventHandler(void)
{
  // Disable this event until its next use.
  emberEventControlSetInactive(signalEvent);

  // Sometimes an action has to occur 100 ms later.
  if (somethingIsExpected)
    emberEventControlSetDelayMS(delayEvent, 100);
}

void periodicEventHandler(void)
{
  emberEventControlSetDelayQS(periodicEvent, 4);
}

void someIsr(void)
{
  // Set the signal event to run at the first opportunity.
  emberEventControlSetActive(signalEvent);
}

// Put the controls and handlers in an array.  They will be run in
// this order (this is usually generated)
EmberEventData events[] =
 {
   { &delayEvent,    delayEventHandler },
   { &signalEvent,   signalEentHandler },
   { &periodicEvent, periodicEventHandler },
   { NULL, NULL }                            // terminator
 };

void main(void)
{
  // Cause the periodic event to occur once a second.
  emberEventControlSetDelayQS(periodicEvent, 4);

  while (true) {
    emberRunEvents(events);
  }
}

Time Manipulation Macros#

void
sli_event_control_set_active(EmberEventControl *event)

Set EmberEventControl to run at the next available opportunity.

void
emEventControlSetDelayMS(EmberEventControl *event, uint32_t delay)

Set EmberEventControl to run some milliseconds in the future.

uint32_t
emEventControlGetRemainingMS(EmberEventControl *event)

Check when the event is scheduled to run.

void
emberRunEvents(EmberEventData *events)

Start an event handler if anything is scheduled when this function is called.

void
emberRunTask(EmberTaskId taskid)

Start an event handler if there is anything scheduled at the moment this function is called.

uint32_t
emberMsToNextEvent(EmberEventData *events, uint32_t maxMs)

Check when the next event is scheduled to run.

uint32_t
emberMsToNextEventExtended(EmberEventData *events, uint32_t maxMs, uint8_t *returnIndex)

Check when the next event is scheduled to run.

uint32_t

Check when the next stack event is scheduled to run.

emberTaskInit(EmberEventData *events)

Initialize a task for managing events and processor idling state.

bool
emberMarkTaskIdle(EmberTaskId taskid)

Try to idle the CPU, unless any events in any tasks are pending.

void
emTaskEnableIdling(bool allow)

Enable or disable idling.

void
emMarkTaskActive(EmberTaskId taskid)

Calling it indicates that a task has something to do, so it should prevent the CPU from idling until emberMarkTaskIdle is next called on this task.

#define
elapsedTimeInt8u (oldTime, newTime)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.

#define
elapsedTimeInt16u (oldTime, newTime)

Returns the elapsed time between two 16 bit values. Result may not be valid if the time samples differ by more than 32767.

#define
elapsedTimeInt32u (oldTime, newTime)

Returns the elapsed time between two 32 bit values. Result may not be valid if the time samples differ by more than 2147483647.

#define

Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.

#define

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.

#define

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.

#define

Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.

#define

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.

#define

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.

#define
MAX_INT32U_VALUE (0xFFFFFFFFUL)

Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.

#define
HALF_MAX_INT32U_VALUE (0x80000000UL)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.

#define

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.

#define

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.

#define
MILLISECOND_TICKS_PER_DECISECOND (MILLISECOND_TICKS_PER_SECOND / 10)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.

#define
MILLISECOND_TICKS_PER_QUARTERSECOND (MILLISECOND_TICKS_PER_SECOND >> 2)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.

#define
MILLISECOND_TICKS_PER_MINUTE (60UL * MILLISECOND_TICKS_PER_SECOND)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.

#define
MILLISECOND_TICKS_PER_HOUR (60UL * MILLISECOND_TICKS_PER_MINUTE)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.

#define
MILLISECOND_TICKS_PER_DAY (24UL * MILLISECOND_TICKS_PER_HOUR)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.

#define

The number of event tasks that can be used to schedule and run events. Connect stack requires one, while another is used for Application Framework events.

#define

Set EmberEventControl as inactive (no pending event).

#define

Check whether EmberEventControl is currently active. An event is considered active if it is set to run some time in the future (activated by emberEventControlSetActive(), emberEventControlSetDelayMS() or any other emberEventControlSetDelay* functions)

#define

Set EmberEventControl to run at the next available opportunity.

#define
EMBER_MAX_EVENT_CONTROL_DELAY_MS (HALF_MAX_INT32U_VALUE - 1)

The maximum delay that may be passed to emberEventControlSetDelayMS().

#define

Set EmberEventControl to run some milliseconds in the future.

#define
EMBER_MAX_EVENT_CONTROL_DELAY_QS (EMBER_MAX_EVENT_CONTROL_DELAY_MS >> 8)

The maximum delay that may be passed to emberEventControlSetDelayQS().

#define

Set EmberEventControl to run some quarter seconds in the future.

#define
EMBER_MAX_EVENT_CONTROL_DELAY_MINUTES (EMBER_MAX_EVENT_CONTROL_DELAY_MS >> 16)

The maximum delay that may be passed to emberEventControlSetDelayMinutes().

#define

Set EmberEventControl to run some minutes in the future.

#define

Check when the event is scheduled to run.

#define

Enable or disable idling.

#define

Calling it indicates that a task has something to do, so it should prevent the CPU from idling until emberMarkTaskIdle is next called on this task.

Macros#

#define

Time Manipulation Macros Documentation#

sli_event_control_set_active#

void sli_event_control_set_active (EmberEventControl * event)

Set EmberEventControl to run at the next available opportunity.

Parameters
[in]event

Pointer to the control of the event to set active

Warnings


Definition at line 299 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emEventControlSetDelayMS#

void emEventControlSetDelayMS (EmberEventControl * event, uint32_t delay)

Set EmberEventControl to run some milliseconds in the future.

Parameters
[in]event

Pointer to the control of the event to run.

[in]delay

The delay in milliseconds. Must be less than EMBER_MAX_EVENT_CONTROL_DELAY_MS

Warnings


Definition at line 325 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emEventControlGetRemainingMS#

uint32_t emEventControlGetRemainingMS (EmberEventControl * event)

Check when the event is scheduled to run.

Parameters
[in]event

Pointer to the control of the event in question.

Returns

  • Return the amount of milliseconds remaining before the event is scheduled to run. If the event is inactive, MAX_INT32U_VALUE is returned.

Warnings


Definition at line 378 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberRunEvents#

void emberRunEvents (EmberEventData * events)

Start an event handler if anything is scheduled when this function is called.

Parameters
[in]events

Pointer to the array of events.

An application typically creates an array of events along with their handlers. This function should be called in the main loop to run those events. Warnings


Definition at line 392 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberRunTask#

void emberRunTask (EmberTaskId taskid)

Start an event handler if there is anything scheduled at the moment this function is called.

Parameters
N/Ataskid

If an application has initialized a task via emberTaskInit(), to run the events associated with that task, it should call emberRunTask() instead of emberRunEvents().

Warnings

  • This is normally handled by the main plugin.


Definition at line 405 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberMsToNextEvent#

uint32_t emberMsToNextEvent (EmberEventData * events, uint32_t maxMs)

Check when the next event is scheduled to run.

Parameters
[in]events

An array of events to check.

[in]maxMs

If no event is scheduled before maxMs, maxMs will be returned

Returns

  • Returns the number of milliseconds before the next event is scheduled to expire, or maxMs if no event is scheduled to expire within that time.

Note

  • If any events are modified within an interrupt, to guarantee the accuracy of this API, it must be called with interrupts disabled.

See Also


Definition at line 420 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberMsToNextEventExtended#

uint32_t emberMsToNextEventExtended (EmberEventData * events, uint32_t maxMs, uint8_t * returnIndex)

Check when the next event is scheduled to run.

Parameters
[in]events

An array of events to check.

[in]maxMs

If no event is scheduled before maxMs, maxMs will be returned

[out]returnIndex

If not NULL pointer was passed, the index of the next event will be returned here, or 0xFF if no event is scheduled before maxMs.

Returns

  • Returns the number of milliseconds before the next event is scheduled to expire, or maxMs if no event is scheduled to expire within that time.

Note

  • If any events are modified within an interrupt, to guarantee the accuracy of this API, it must be called with interrupts disabled.

See Also


Definition at line 438 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberMsToNextStackEvent#

uint32_t emberMsToNextStackEvent (void )

Check when the next stack event is scheduled to run.

Parameters
N/A

Returns

  • Returns the number of milliseconds before the next stack event is scheduled to run.


Definition at line 446 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberTaskInit#

EmberTaskId emberTaskInit (EmberEventData * events)

Initialize a task for managing events and processor idling state.

Parameters
[in]events

Pointer to the array of events to manage

Returns

  • Returns the EmberTaskId which represents the newly created task.

Note

  • After the task is created emberRunTask() should be called periodically.


Definition at line 456 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberMarkTaskIdle#

bool emberMarkTaskIdle (EmberTaskId taskid)

Try to idle the CPU, unless any events in any tasks are pending.

Parameters
[in]taskid

the task which should handle the idling.

Returns

  • Returns true if the processor was idled false if idling wasn't permitted because a task has something to do.

Note

  • This API should always be called with interrupts disabled. It will forcibly re-enable interrupts before returning.


Definition at line 468 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emTaskEnableIdling#

void emTaskEnableIdling (bool allow)

Enable or disable idling.

Parameters
[in]allow

Setting it to true will enable, while setting it to false will disable idling.

Warnings


Definition at line 484 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emMarkTaskActive#

void emMarkTaskActive (EmberTaskId taskid)

Calling it indicates that a task has something to do, so it should prevent the CPU from idling until emberMarkTaskIdle is next called on this task.

Parameters
[in]taskid

The task to mark active.

Warnings


Definition at line 499 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

elapsedTimeInt8u#

#define elapsedTimeInt8u
Value:
(oldTime, newTime)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.


Definition at line 190 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

elapsedTimeInt16u#

#define elapsedTimeInt16u
Value:
(oldTime, newTime)

Returns the elapsed time between two 16 bit values. Result may not be valid if the time samples differ by more than 32767.


Definition at line 197 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

elapsedTimeInt32u#

#define elapsedTimeInt32u
Value:
(oldTime, newTime)

Returns the elapsed time between two 32 bit values. Result may not be valid if the time samples differ by more than 2147483647.


Definition at line 204 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

MAX_INT8U_VALUE#

#define MAX_INT8U_VALUE
Value:
(0xFF)

Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.


Definition at line 211 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

HALF_MAX_INT8U_VALUE#

#define HALF_MAX_INT8U_VALUE
Value:
(0x80)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.


Definition at line 212 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

timeGTorEqualInt8u#

#define timeGTorEqualInt8u
Value:
(t1, t2)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.


Definition at line 213 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

MAX_INT16U_VALUE#

#define MAX_INT16U_VALUE
Value:
(0xFFFF)

Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.


Definition at line 220 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

HALF_MAX_INT16U_VALUE#

#define HALF_MAX_INT16U_VALUE
Value:
(0x8000)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.


Definition at line 221 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

timeGTorEqualInt16u#

#define timeGTorEqualInt16u
Value:
(t1, t2)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.


Definition at line 222 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

MAX_INT32U_VALUE#

#define MAX_INT32U_VALUE
Value:
(0xFFFFFFFFUL)

Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.


Definition at line 229 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

HALF_MAX_INT32U_VALUE#

#define HALF_MAX_INT32U_VALUE
Value:
(0x80000000UL)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.


Definition at line 230 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

timeGTorEqualInt32u#

#define timeGTorEqualInt32u
Value:
(t1, t2)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.


Definition at line 231 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

MILLISECOND_TICKS_PER_SECOND#

#define MILLISECOND_TICKS_PER_SECOND
Value:
1000UL

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.


Definition at line 234 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

MILLISECOND_TICKS_PER_DECISECOND#

#define MILLISECOND_TICKS_PER_DECISECOND
Value:
(MILLISECOND_TICKS_PER_SECOND / 10)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.


Definition at line 237 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

MILLISECOND_TICKS_PER_QUARTERSECOND#

#define MILLISECOND_TICKS_PER_QUARTERSECOND
Value:
(MILLISECOND_TICKS_PER_SECOND >> 2)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.


Definition at line 241 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

MILLISECOND_TICKS_PER_MINUTE#

#define MILLISECOND_TICKS_PER_MINUTE
Value:
(60UL * MILLISECOND_TICKS_PER_SECOND)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.


Definition at line 245 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

MILLISECOND_TICKS_PER_HOUR#

#define MILLISECOND_TICKS_PER_HOUR
Value:
(60UL * MILLISECOND_TICKS_PER_MINUTE)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.


Definition at line 249 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

MILLISECOND_TICKS_PER_DAY#

#define MILLISECOND_TICKS_PER_DAY
Value:
(24UL * MILLISECOND_TICKS_PER_HOUR)

Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.


Definition at line 253 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

EMBER_TASK_COUNT#

#define EMBER_TASK_COUNT
Value:
(3)

The number of event tasks that can be used to schedule and run events. Connect stack requires one, while another is used for Application Framework events.


Definition at line 261 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberEventControlSetInactive#

#define emberEventControlSetInactive
Value:
(control)

Set EmberEventControl as inactive (no pending event).


Definition at line 268 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberEventControlGetActive#

#define emberEventControlGetActive
Value:
(control)

Check whether EmberEventControl is currently active. An event is considered active if it is set to run some time in the future (activated by emberEventControlSetActive(), emberEventControlSetDelayMS() or any other emberEventControlSetDelay* functions)

Returns

  • Returns true if the event is active false otherwise


Definition at line 282 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberEventControlSetActive#

#define emberEventControlSetActive
Value:
(control)

Set EmberEventControl to run at the next available opportunity.


Definition at line 291 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

EMBER_MAX_EVENT_CONTROL_DELAY_MS#

#define EMBER_MAX_EVENT_CONTROL_DELAY_MS
Value:
(HALF_MAX_INT32U_VALUE - 1)

The maximum delay that may be passed to emberEventControlSetDelayMS().


Definition at line 305 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberEventControlSetDelayMS#

#define emberEventControlSetDelayMS
Value:
(control, delay)

Set EmberEventControl to run some milliseconds in the future.


Definition at line 314 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

EMBER_MAX_EVENT_CONTROL_DELAY_QS#

#define EMBER_MAX_EVENT_CONTROL_DELAY_QS
Value:
(EMBER_MAX_EVENT_CONTROL_DELAY_MS >> 8)

The maximum delay that may be passed to emberEventControlSetDelayQS().


Definition at line 330 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberEventControlSetDelayQS#

#define emberEventControlSetDelayQS
Value:
(control, delay)

Set EmberEventControl to run some quarter seconds in the future.

Warnings


Definition at line 341 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

EMBER_MAX_EVENT_CONTROL_DELAY_MINUTES#

#define EMBER_MAX_EVENT_CONTROL_DELAY_MINUTES
Value:
(EMBER_MAX_EVENT_CONTROL_DELAY_MS >> 16)

The maximum delay that may be passed to emberEventControlSetDelayMinutes().


Definition at line 347 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberEventControlSetDelayMinutes#

#define emberEventControlSetDelayMinutes
Value:
(control, delay)

Set EmberEventControl to run some minutes in the future.


Definition at line 356 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberEventControlGetRemainingMS#

#define emberEventControlGetRemainingMS
Value:
(control)

Check when the event is scheduled to run.

Returns

  • Returns the amount of milliseconds remaining before the event is scheduled to run. If the event is inactive, MAX_INT32U_VALUE is returned.


Definition at line 366 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberTaskEnableIdling#

#define emberTaskEnableIdling
Value:
(allow)

Enable or disable idling.


Definition at line 477 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

emberMarkTaskActive#

#define emberMarkTaskActive
Value:
(taskid)

Calling it indicates that a task has something to do, so it should prevent the CPU from idling until emberMarkTaskIdle is next called on this task.


Definition at line 492 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h

Macro Definition Documentation#

__EVENT_H__#

#define __EVENT_H__

Definition at line 179 of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/event.h