面向对象的界面编程-嵌入式微系统连载之九

发布时间:2016-2-29 14:03    发布者:designapp
关键词: 嵌入式微系统 , 面向对象 , 编程
  msOS采用128*64的字库黑白屏,降低硬件设计复杂度,这个屏一行可以显示8个汉字或者16个字母,总共4行。界面开发基于面向对象方式,把界面抽象为几个页面,而页面又由控件组成,以我做的高频机为例,抽象了5个页面,每个页面上都由背景文字、标签和文本组成。
  


  上图为工作页面,由一张背景文字(BackText),两个文本(TextBox)和五个标签(Label)组成。背景文字用于显示固定的说明文字,比如频率、功率等,这些文字在这个页面下是固定不能变化的。标签控件用于显示变量值,可以是字符串也可以是数字。文本控件具有标签的功能外,还可以通过按键等修改变量值。以上三种控件构成了最常用的页面。
  接触过PC机编程的,对于控件概念是非常容易接受的,若没有接触过,可以通过msOS配套的硬件开发平台msPLC Demo了解界面编程,这样会相对容易很多,此外也可以接触一下C#编程,从跟msOS配套的msMenu源码入手,这个msMenu源码比较简单,在PC机上用C#虚拟了128*64的黑白字库屏。有了msMenu,各类STM32F103的开发板都可以运行msOS,通过串口跟PC机通讯,在msMenu上显示,不需要硬件LCD屏,方便大家学习。msMenu的两个主显示区,就是由两个大的TextBox组成。
  下图为msMenu
  


  界面编程基于面向对象设计,首先要建立页面及各个控件的对象类型。下图为页面的对象类型。
  


  BackTextPointer:背景文字控件加载点,是一个16*4字节的数组,作为页面背景。
  ChartPointer:图表控件加载点,高频机项目中用到,是一个特殊控件,一般项目用不到。
  LabelPointer:标签控件加载点,一个Form可以支持多个Label,需要支持多控件级联。
  TextBoxPointer:文本控件加载点,一个Form可以支持多个TextBox,需要支持多控件级联。
  FocusTextBoxDataPointer:文本控件操作选择,设定焦点用于选择那个文本控件用于输入。
  


  


  设计程序的时候,第一步要建立页面Form,如下图:
  


  第二步,定义各种控件和资源。
  


  第三步,各个页面加载控件,初始化控件参数,关联业务逻辑数据库中的数据。
  


  第四步,执行MenuTask解析当前页面
  


  msOS采用的菜单界面,非常简单,是一个架构性的菜单界面,很适合用户看懂之后,自己修改、增删,也可以应用于彩屏。菜单界面的细节部分,请参考源码。
                               
                                                               
                               
               
本文地址:https://www.eechina.com/thread-161412-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表