API指南

8ms相关

初始化页面列表
void qmsd_screen_list_init(int max);

注册页面
void qmsd_screen_register(lv_obj_t* obj,const char* id);

移除注册页面
void qmsd_screen_remove(const char *id);

为指定obj设置识别ID
void qmsd_obj_set_id(lv_obj_t* obj,const char *id);

打印当前已注册的所有页面
void qmsd_screen_print();

根据注册id搜索页面
lv_obj_t* qmsd_search_screen(const char *id);

根据注册id搜索控件
lv_obj_t* qmsd_search_widget(const char *id);

获取对应名称的图片资源
lv_img_src_t *qmsd_get_img(const char *w_name);

获取对应名称的字体资源
lv_font_t *qmsd_get_font(const char *w_name);

向页面的所有子控件发送事件
void qmsd_send_event_to_chill(lv_obj_t* obj, lv_obj_t* prev, qmsd_event event)

控制协议相关

  • 将控制协议通过文本消息发送至Ui线程内部
    int qmsd_ctrl_str(const char *json_str);

  • 利用互斥锁等待UI线程处理间隔解析并执行相关操作
    char *qmsd_ctrl_str_sync(const char *json_str);

  • 在GUI线程内部解析并处理控制协议,仅限在GUI线程内部使用
    char *qmsd_ctrl_str_gui(const char *json_str);

初始化

  • GUI初始化,custom_fb_size,自定义LVGL buffer大小,为0,表示使用默认参数,dir为屏幕方向(参看qmsd_screen_rotation_t的定义)
    esp_err_t qmsd_gui_init(uint32_t custom_fb_size, uint8_t dir);

  • 存储初始化,初始化qmsd_storage的NVS分区
    void qmsd_storage_init(void);

  • 初始化消息队列,一般用于控件回调给主线程发送消息
    int qmsd_main_msgque_init(int msgmax);

  • 通知链初始化,qmsd_api中用到很多通知链来通知事件
    int qmsd_notifier_register(struct qmsd_notifier_block *n);