Event Management

Last Updated on : 2024-11-20 08:51:43download

API list

Function name Description
dev_evt_callback Manages events.

API description

dev_evt_callback

static void __dev_evt_callback(uint8_t evt);

Parameters

Parameter name Parameter type Description
dev_evt_callback uint8_t Event name

Sample code

The SDK is a one-time event based system. The following example describes how to use the event management function.

#define SDK_TEST_EVT1    DEV_EVT_1
#define SDK_TEST_EVT2    DEV_EVT_2
#define SDK_TEST_EVT3    DEV_EVT_3
#define SDK_TEST_EVT4    DEV_EVT_4
 
static void __dev_evt_callback(uint8_t evt)
{
    switch(evt) {
        case SDK_TEST_EVT1: {
            //TODO: This event is executed after `dev_system_on_init` delays 1s.
            dev_timer_start_with_callback(SDK_TEST_EVT2, 0, __dev_evt_callback);
            break;
        }
        
        case SDK_TEST_EVT2: {
            //TODO: This event is executed after `SDK_TEST_EVT1` delays 0 ms.
            break;
        }
        
        case SDK_TEST_EVT3: {
            //TODO: This event is executed after `dev_system_on_init` delays 2s and then registers a 2s-delay time again. This event is scheduled to be executed every 2s.
            dev_timer_start_with_callback(SDK_TEST_EVT3, 2000, __dev_evt_callback);
            break;
        }
        
        case SDK_TEST_EVT4: {
            //TODO: This event is executed after `SDK_TEST_EVT1` delays 10s to cancel the schedule of `SDK_TEST_EVT3`.
            dev_timer_stop(SDK_TEST_EVT3);
            break;
        }
        
        default: {
            break;
        }
    }
}
 
void dev_system_on_init(void)
{
    dev_timer_start_with_callback(SDK_TEST_EVT1, 1000, __dev_evt_callback);
    dev_timer_start_with_callback(SDK_TEST_EVT3, 2000, __dev_evt_callback);
    dev_timer_start_with_callback(SDK_TEST_EVT4, 10000, __dev_evt_callback);
}