基于WinCE.NET的监控软件设计与实现
敬业的IT人
互联网
佚名
2008-2-19 12:16:35
摘要 本文详细分析了基于嵌入式操作系统WinCE.net的触摸屏监控软件的系统结构及其功能和实现细节,并阐述了其设计思想、方法和技术要点。
引言
WinCE.net为快速建立下一代智能嵌入式设备提供了一个健壮的实时操作系统,它的实时响应能力、良好的通信能力、出色的图形用户界面及提供的丰富的应用程序接口使得它在工业控制领域得到了越来越多的应用。在设计中央空调的主机E1_V5型吸收式冷温水机的触摸屏监控设备中,采用了WinCE.net嵌入式操作系统,并利用其提供的应用程序接口设计了嵌入式监控软件,来监控冷温水机的状态参数,为用户提供了友好的图形界面及完成了一些控制功能。本软件可以实时接收、处理从端口传来的数据,并能通过向串口发送命令来设定冷温水机参数。
监控软件的设计及实现
通过前面分析可知,本软件的设计任务分为以下几部分,一部分是页面设计,一部分是通讯设计等。鉴于WinCE.net优秀的多线程支持,在本监控软件设计中引入了多线程技术,主要是包括通讯线程、TCP/IP线程。
整个程序流程设计如图1所示。

图1 程序流程图
系统启动后,首先进行初始化所有工程变量,创建并初始化所有页面,并创建其他线程,包括通讯线程和数字屏监视线程,接着进入消息循环处理,有相应的消息到达,则交给相应的页面处理。
主线程的主要功能是管理所有页面(切换,显示,隐藏),管理系统主要参数(参数的保存和载入);数字屏监测线程监测数字屏的状态,并负责向当前显示窗口发送鼠标消息(通过主线程可得到当前显示窗口句柄);设备通讯线程负责提供设备命令发送接收功能,并在接收到状态改变时通知当前窗口更新显示;存盘线程负责数据的保存及数据的提取。
程序主线程派生于CWinApp类:class CTxcborder="0" alt="基于WinCE.NET的监控软件设计与实现(图二)" />
图2 工程变量管理
对于页面的管理,所有页面指针保存在CMapStringToPtr m_PageMap;中,初始化时创建所有页面,并在m_PageMap中保存页面指针,通过一个字符串来查找页面,在程序退出时(ExitInstance)关闭所有页面。通过CSANYOApp::UpdateFace向页面发送工程变量改变消息来驱动页面关联了工程变量的构建的更新。如图3所示。

图3 页面管理
所有页面从CPage派生,CPage从CDialog派生。CPage完成页面的共同功能:创建和管理页面内的所有构件(如圆和方框);负责在需要重绘时检查需要重绘的构件并调用构件绘制函数;在工程变量变化时负责检查构件,并更新相关的构件;在有用户输入(鼠标消息)时检查需要处理该消息的构件,并调用构件的消息处理函数。
构件完成程序的绝大部分界面显示和操作,这个系统的构件设计如图4所示。

图4 构件图
其中CMyCtrl完成构件基本功能,包括位置设定,文本设定,文本颜色,管理变量等;CMyButtborder="0" alt="基于WinCE.NET的监控软件设计与实现(图五)" />
图5 用户消息的处理

图6 工程变量的更新
每个页面定义了一个由构件ID、消息和处理该消息函数指针构成的结构的静态数组。有变量变化,通过CheckConnectTheVarID根据关联的变量的值更新在该构件状态。
对于串口通讯线程和TCP/IP通讯线程,本系统软件设计了一个通信基类Ccommunication, 串口通讯线程和TCP/IP通讯线程分别派生为Cserial和CTCPIPTransfer,其中Cserial完成串口的打开、关闭、读写、配置等工作,采用WinCE支持的CreateFile,ReadFile,WriteFile 等函数完成;对于TCPIP通讯线程由CTCPIPTransfer类管理,实现向外界(其他本地或远程程序)提供数据交换的接口,目前支持4个命令:取得所有变量的实时值、取得所有开关量的实时值、取得所有模拟量的实时值、取得指定变量的实时值。TCP端口号定为3333,该部分实现采用标准的Socket编程方法。
监控软件采用多线程来避免在进行文件操作等耗时操作时会引发阻塞现象的发生。同时为了防止多个线程同时对同一个变量进行操作引起时序上的差错,为了保持线程的同步,还采取了临界区加解锁的技术;由于使用了定时器,可以满足实时显示功能,以便及时的将所接收到的动态数据及时的反映到屏幕上。
结束语
经实际运行,所开发的远程监控软件平台运转稳定,使用情况良好,得到了用户的肯定。WinCE.net的实时响应能力、良好的通信能力、出色的图形用户界面及提供的丰富的应用程序接口使得该监控软件运行出色。保留::
引言
WinCE.net为快速建立下一代智能嵌入式设备提供了一个健壮的实时操作系统,它的实时响应能力、良好的通信能力、出色的图形用户界面及提供的丰富的应用程序接口使得它在工业控制领域得到了越来越多的应用。在设计中央空调的主机E1_V5型吸收式冷温水机的触摸屏监控设备中,采用了WinCE.net嵌入式操作系统,并利用其提供的应用程序接口设计了嵌入式监控软件,来监控冷温水机的状态参数,为用户提供了友好的图形界面及完成了一些控制功能。本软件可以实时接收、处理从端口传来的数据,并能通过向串口发送命令来设定冷温水机参数。
监控软件的设计及实现
通过前面分析可知,本软件的设计任务分为以下几部分,一部分是页面设计,一部分是通讯设计等。鉴于WinCE.net优秀的多线程支持,在本监控软件设计中引入了多线程技术,主要是包括通讯线程、TCP/IP线程。
整个程序流程设计如图1所示。

图1 程序流程图
系统启动后,首先进行初始化所有工程变量,创建并初始化所有页面,并创建其他线程,包括通讯线程和数字屏监视线程,接着进入消息循环处理,有相应的消息到达,则交给相应的页面处理。
主线程的主要功能是管理所有页面(切换,显示,隐藏),管理系统主要参数(参数的保存和载入);数字屏监测线程监测数字屏的状态,并负责向当前显示窗口发送鼠标消息(通过主线程可得到当前显示窗口句柄);设备通讯线程负责提供设备命令发送接收功能,并在接收到状态改变时通知当前窗口更新显示;存盘线程负责数据的保存及数据的提取。
程序主线程派生于CWinApp类:class CTxcborder="0" alt="基于WinCE.NET的监控软件设计与实现(图二)" />
图2 工程变量管理
对于页面的管理,所有页面指针保存在CMapStringToPtr m_PageMap;中,初始化时创建所有页面,并在m_PageMap中保存页面指针,通过一个字符串来查找页面,在程序退出时(ExitInstance)关闭所有页面。通过CSANYOApp::UpdateFace向页面发送工程变量改变消息来驱动页面关联了工程变量的构建的更新。如图3所示。

图3 页面管理
所有页面从CPage派生,CPage从CDialog派生。CPage完成页面的共同功能:创建和管理页面内的所有构件(如圆和方框);负责在需要重绘时检查需要重绘的构件并调用构件绘制函数;在工程变量变化时负责检查构件,并更新相关的构件;在有用户输入(鼠标消息)时检查需要处理该消息的构件,并调用构件的消息处理函数。
构件完成程序的绝大部分界面显示和操作,这个系统的构件设计如图4所示。

图4 构件图
其中CMyCtrl完成构件基本功能,包括位置设定,文本设定,文本颜色,管理变量等;CMyButtborder="0" alt="基于WinCE.NET的监控软件设计与实现(图五)" />
图5 用户消息的处理

图6 工程变量的更新
每个页面定义了一个由构件ID、消息和处理该消息函数指针构成的结构的静态数组。有变量变化,通过CheckConnectTheVarID根据关联的变量的值更新在该构件状态。
对于串口通讯线程和TCP/IP通讯线程,本系统软件设计了一个通信基类Ccommunication, 串口通讯线程和TCP/IP通讯线程分别派生为Cserial和CTCPIPTransfer,其中Cserial完成串口的打开、关闭、读写、配置等工作,采用WinCE支持的CreateFile,ReadFile,WriteFile 等函数完成;对于TCPIP通讯线程由CTCPIPTransfer类管理,实现向外界(其他本地或远程程序)提供数据交换的接口,目前支持4个命令:取得所有变量的实时值、取得所有开关量的实时值、取得所有模拟量的实时值、取得指定变量的实时值。TCP端口号定为3333,该部分实现采用标准的Socket编程方法。
监控软件采用多线程来避免在进行文件操作等耗时操作时会引发阻塞现象的发生。同时为了防止多个线程同时对同一个变量进行操作引起时序上的差错,为了保持线程的同步,还采取了临界区加解锁的技术;由于使用了定时器,可以满足实时显示功能,以便及时的将所接收到的动态数据及时的反映到屏幕上。
结束语
经实际运行,所开发的远程监控软件平台运转稳定,使用情况良好,得到了用户的肯定。WinCE.net的实时响应能力、良好的通信能力、出色的图形用户界面及提供的丰富的应用程序接口使得该监控软件运行出色。保留::
- 最新文章
- MIDP2.0中图片象素级处理之半透明处理[02-19]
- 几款开放源代码的软件测试工具介绍[02-19]
- 测试工具的选择和使用[02-19]
- 代码检测:Code Review与CheckStyle[02-19]
- Windows CE程序设计之历史简介[02-19]
- DirectShow开发快速入门之慨述[02-19]
- 相关文章
- 几款开放源代码的软件测试工具介绍[02-19]
- 软件的架构与设计模式之Layers模式[02-19]
- Palm OS软件的用户界面元素[02-19]
- 玩转Windows XP内置语音输入软件[02-19]
- 传道解惑 软件开发技术名词解密[02-19]
- Palm OS软件界面设计初步[02-19]
