## SDK开发说明 ### SDK UI线程框架
### UI刷新说明 如果在其他线程里面更新UI元素,请使用qmsd_ui_lock和qmsd_ui_unlock进行上锁操作,防止和UI线程相互操作,如果在UI线程内部则可以直接调用API进行更新 ``` if (qmsd_gui_lock(portMAX_DELAY) == 0) { // update ui qmsd_ui_unlock(); } ``` ### DEMO目录说明
### 通知链(notifier) #### API 目前qmsd_api大多数API都使用了通知链来通知事件。 1. 初始化 ``` int qmsd_notifier_init(void) ``` 注意:qmsd_mod_init会调用qmsd_notifier_init,进行初始化 2. 反初始化 ``` int qmsd_notifier_uninit(void) ``` 3. 注册cb ``` int qmsd_notifier_register(struct qmsd_notifier_block *n) ``` 4. 注销cb ``` int qmsd_notifier_unregister(struct qmsd_notifier_block *n) ``` 5. 不加锁调用(由于目前基本注册cb只有一次,所以建议用这个函数) ``` int qmsd_notifier_call_nolock(unsigned int action, void *v) ``` 5. 加锁调用 ``` int qmsd_notifier_call(unsigned int action, void *v) ```