《国产嵌入式微系统msOS成型记》之九——嵌入式微系统的操作台:面向对象的界面编程

http://www.eefocus.com/embedded/328567


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采用的菜单界面,非常简单,是一个架构性的菜单界面,很适合用户看懂之后,自己修改、增删,也可以应用于彩屏。菜单界面的细节部分,请参考源码。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值