#include "framework_compat.h" #include "esp_log.h" #include static void *g_event_monitor = NULL; int iotx_event_regist_cb(void (*monitor_cb)(int event)) { g_event_monitor = (void *)monitor_cb; return 0; } int iotx_event_post(int event) { if (g_event_monitor == NULL) { return -1; } ((void (*)(int))g_event_monitor)(event); return 0; } typedef struct { int eventid; void *callback; } impl_event_map_t; static impl_event_map_t g_impl_event_map[] = { {IOT_CONNECT_CLOUD_FAILT, NULL}, {IOT_CONNECT_CLOUD_SUCCESS, NULL}, {IOT_LOGIN_FAILT, NULL}, {IOT_LOGIN_SUCCESS, NULL}, {IOT_REGISTER_FAILT, NULL}, {IOT_REGISTER_SUCCESS, NULL}}; void *iotx_event_callback(int evt) { if (evt < 0 || evt >= sizeof(g_impl_event_map) / sizeof(impl_event_map_t)) { return NULL; } return g_impl_event_map[evt].callback; } DEFINE_EVENT_CALLBACK(IOT_CONNECT_CLOUD_FAILT, void(*callback)(void)); DEFINE_EVENT_CALLBACK(IOT_CONNECT_CLOUD_SUCCESS, void(*callback)(void)); DEFINE_EVENT_CALLBACK(IOT_LOGIN_FAILT, void(*callback)(void)); DEFINE_EVENT_CALLBACK(IOT_LOGIN_SUCCESS, void(*callback)(void)); DEFINE_EVENT_CALLBACK(IOT_REGISTER_FAILT, void(*callback)(void)); DEFINE_EVENT_CALLBACK(IOT_REGISTER_SUCCESS, void(*callback)(void));