3.串行通信组件实例
下面以串口通信组件模块为例,说明如何用PECOS实现其功能。
串行通信组件是指完成串行通信功能的独立程序模块,这个模块主要包括云台摄像机等硬件设备。摄像机控制主要包括控制其焦距、透镜凹凸、光圈;云台控制主要包括控制其自动旋转和方向,由其完成现场设备即云台摄像机到CGI组件的数据传送[6],它与CGI程序组件相互配合,共同完成对嵌入式Web服务器的数据更新。
下面是串口通信组件模块的接口定义语言IDL定义,这里省略了常量、数据定义,只提供整个模块的总统框架。
Module SerialPort{
interface Camera{
SetFocus(in int FocusValue,out int Result);// 设置焦距值
SetLens(in int LensValue,out int Result);//设置透镜汇聚和发散值
SetAperture(in int ApertureValue,out int Result);//设置光圈值
}
interface Console //云台接口
{
SetAuto(in Boolean isAuto,out int Result);//设置云台是否自动旋转
SetDirection(in int Direction,out int Result);//传入方向值从1-8,分别代表上下左右、左上、左下、右上、右下4个方向
….
} 在设计好IDL以后,用IDL编译器把它们编译成服务器框架,并插入到工程中,声明好类,就可以编写服务器的程序了。
串口通信组件模块可以很容易地进行拆卸和扩展,如果要添加新的硬件设备,只要在其中再添加一个新的接口,定义其中的函数即可,无需改动整个程序,大大提高了编程效率,使整个程序便于维护。
4.组件化设计中注意的几个关键问题
运用组件化的设计方法需要处理好如下几个关键性问题:
(1)建立合理的系统模型及组件模型是组件化设计的基础。对系统功能模型进行合理分解,以相对独立的功能模块为基础来定义组件,组件之间边界要清晰。
(2)标准化是保证组件具有兼容性的前提。对每种组件的接口和操作定义应尽量做到标准化,包括对组件的属性访问和对组件的操作都需要标准化。
(3)组件应该易于重用。组件技术和它的支持工具应该为组件版本管理提供支持,因为在介绍一个基于组件的开发模型时重用性是一个很重要的方面。
5.结语
本文作者的创新观点是视频监控组件的模型设计,并实现了简单的功能,下一步的工作重点是进一步完善其功能,利用现有的嵌入式组件定义视频监控组件或在现有的组件的基础上设计出一种新的组件化的模型。
参考文献
[1] 房红征 赵贵根 柳克俊 嵌入式组件模型研究[J] 微计算机应用 2005年 26(6)521-523
[2] 张移山 CGI程序设计指南[M] 中国水利水电出版社 1998
[3] 陈从生 、朱名日、马学文基于uCliunx的CGI接口设计与应用[J] 桂林工学院学报 2005
[4].Bastiaan Schonhaage Model mapping to C++ or Java-based ultra-light environment Technical Report Deliveralbe D2.2.9-1.Pecos,2001.www.pecos-project.org.
[5] 求是科技,谭思亮 Visual c++串口通信开发实例导航[M] 人民邮电出版社 2003年 132-189
[6] 丰洪才,邓华来,刘年波用Active X控件实现对云台和镜头的远程控制[J] 计算机应用研究 2004年(6)234-236
[7] 李侃,,寥启征,基于S3C2410平台与嵌入式Linux的图像采集应用[J] 微计算机信息 2006(6)125-128