LVGL---判断故障

1.简介

    我们经常需要显示下位机执行状态判断NG或者OK如下图。

                                

接下来我们用lvgl实现一下

首先创建一个容器


    ui_Container2 = lv_obj_create(ui_Screen1);
    lv_obj_remove_style_all(ui_Container2);
    lv_obj_set_width(ui_Container2, 119);
    lv_obj_set_height(ui_Container2, 84);
    lv_obj_set_x(ui_Container2, 226);
    lv_obj_set_y(ui_Container2, -137);
    lv_obj_set_align(ui_Container2, LV_ALIGN_CENTER);

然后再容器上创建一个label

  ui_okngstate = lv_label_create(ui_Container2);
    lv_obj_set_width(ui_okngstate, LV_SIZE_CONTENT);   /// 1
    lv_obj_set_height(ui_okngstate, LV_SIZE_CONTENT);    /// 1
    lv_obj_set_align(ui_okngstate, LV_ALIGN_CENTER);
    lv_label_set_text(ui_okngstate, "OK");
    lv_obj_set_style_text_font(ui_okngstate, &lv_font_montserrat_34, LV_PART_MAIN | LV_STATE_DEFAULT);

接下来创建一个定时器来执行状态值的判断

 lv_timer_create(update_container_state, 1000, NULL);  // 1000ms 的周期

然后在定时器的回调函数里面判断状态值

void update_container_state(lv_timer_t * timer) {
    // 根据标志位来更新容器状态
    //flag = !flag;  // 切换标志位
    if (flag == 1) {
        lv_obj_set_style_bg_color(ui_Container2, lv_color_hex(0xFF0000), LV_PART_MAIN | LV_STATE_DEFAULT);  // 背景变红
        lv_label_set_text(ui_okngstate, "NG");  // 文本变为“NG”
    } else {
        lv_obj_set_style_bg_color(ui_Container2, lv_color_hex(0x12E95A), LV_PART_MAIN | LV_STATE_DEFAULT);  // 背景恢复绿色
        lv_label_set_text(ui_okngstate, "OK");  // 文本变为“OK”
    }
    rt_kprintf("flag: %d\n", flag);
}

flag就是你业务代码的错误码,如果置1,label背景变成红色并且文本改成NG

                                                 如果置0,label背景变成绿色并且文本改成OK

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硬件菜鸟007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值