海思GUI 设计一点思考

浪子不回头ぞ 提交于 2020-01-04 12:42:48

前言

    GUI界面最主要功能是显示信息和人机交互。显示信息主要功能实时显示设备的状态,比如设备电压、温度,GPS状态,4G状态和实时视频等状态。而人机交互主要是完成设备功能设置,参数的获取和设置,拨打电话等功能。针对海思安防这块来说,主要是在linux架构下利用linux framebuffer来完成的,这块海思只提供hifb,可以通过ioctl操作,而对于控件主要是由自己来完成,不同厂家各自都有一套自己的API,各不相同。本人也一直待在这个海思安防圈子里,有些做的稍微好看顺眼些,其他厂家没有美而言,都是仅仅完成人机交互功能而言。

功能需求

1.属性配置化,标签位置,颜色等属性可配置;

2.国际化,一个配置,多个不同语言文件;

3.人性化交互,适配遥控器、鼠标和触屏;

4.模块间消息易传递;

5.控件多样化;

6.跨平台化;

方案实现

1.使用xml配置每个界面的属性;属性文字显示都放在一个文件内config.ini,主要是完成国际化,一个文件,针对不同语音,只修改该文件为响应的语言,而不改上层的解析。

2.而针对多种人机交互,主要是主机完成响应的设备按键的解析,找到对应区域的焦点,完成响应功能的响应。

3.消息传递主要是通过socket,完成不同模块间消息的传递和获取,最好可以多进程消息分发和获取,完成状态的实时更新。

4.尽可能使用c语言实现,完成基本封装,可以跨平台调用。

 

人总要有梦想,一点一点实现,借鉴开源,学习开源 QT,minigui,AWTK,guilite等,但是这些针对嵌入式优化不够,小而精才是正道!欢迎交流,为海思安防贡献一份力量。

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!