【环境专家之智能手表】Part19:报警和呼救屏幕显示
[复制链接]
本帖最后由 w494143467 于 2021-7-10 17:56 编辑
1.介绍
之前设计矿井外设备得时候就有想过,由于下井人员在作业,所以进入报警状态自己很难之情,所以需要矿井外人员进行监察,下井人员进入呼救或者警告状态,矿井外设备需要进行相应得显示,将警告设备和呼救设备进行置顶显示并闪烁,这样就可以让矿井外设备得人员看到有人进入警告状态或呼救状态。
2.设计
上一篇已经设计好各个模式的切换了,同时在广播中定义了设备的下井状态字段,如下图1所示:
图1
下井状态的字段解析如下图2所示:
图2
广播字段有了,接下来就是屏幕的显示部分了,矿井外设备的屏幕只有进入到下井人员设备才会显示出来,所以默认处于正常态,在屏幕中添加上一个符号用于显示下井人员的报警和呼救状态,如下图所示:
图3
同时如果下井人员中存在这两种状态的设备,需要将设备显示进入置顶模式,如果有多名人员进入该状态,需要将多名人员设备进入置顶模式循环显示,所以我定义了一个变量,采用掩码的模式用于显示下井人员的状态,代码实现如下:
uint16_t global_help_mask = 0; //下井人员状态 使用掩码模式
if(go_well_poeple.help_status == 2)
{
global_help_mask |= 1 << i;
status_display[0] = '*';
}
else if(go_well_poeple.help_status == 3)
{
global_help_mask |= 1 << i;
status_display[0] = '!';
}
else
{
global_help_mask &= ~(1 << i);
status_display[0] = ' ';
}
//获取下井人员们的状态
uint16_t oled_config_get_help_cnt(void)
{
return global_help_mask;
}
该变量的每一位表示着设备处于正常态或者处于非正常态(报警或呼救)来进行置顶显示,当设备2处于报警或呼救态时,该变量的值如下图4所示:
图4
可以看到第二位置一了,说明第二名下井人员处于非正常态,然后根据该变量来切换屏幕显示的状态。
最后实现的效果如下图5所示:
图5
3.总结
报警和呼救的屏幕显示其实还是很重要的,矿井外设备就是为了监测下井人员的状态,那么对于特殊的下井人员状态就需要置顶的显示出来,让矿井外的人员及时发现,当然还有一些特殊情况也需要显示出来,比如下井设备广播长时间无法扫描到等。
|