技术天地

ARM9工控板在远程监控中的应用之一——利用COM组件远程更改设备配置文件    发布时间:2009-6-2    被阅览数:

        COM(Component Object Model),即组件对象模型,是微软公司开发的一种新的软件开发技术,Microsoft的许多技术,如ActiveX、DirectX、以及OLE等都是基于COM而建立起来的。COM标准包括规范和实现两大部分,规范部分定义了组件和组件之间通信的机制,这些规范不依赖于任何特定的语言和操作系统,只要按照该规范,任何语言都可以使用; COM标准的实现部分是COM库,COM库为COM规范的具体实现提供了一些核心服务。

 

        在COM模型中,对象本身对于客户来说是不可见的,客户请求服务时,只能通过接口进行。每一个接口都由一个128位的全局唯一标识符(GUID,Globally Unique Identifier)来标识。客户通过GUID获得接口的指针,再通过接口指针客户就可以调用其相应的成员函数。对象可以支持多个接口,因此对组件对象的升级可通过增加接口的办法实现,这样得到的新接口可以不影响老接口的使用。

 

        COM既提出了组件之间进行交互的规范,也提供了实现交互的环境, 因为组件对象之间交互的规范不依赖于任何特定的语言,所以COM也可以是不同语言协作开发的一种标准。

 

        有了这种跨语言设计的方法,我们就可以通过动态网页技术,也就是嵌入式主板提供的WebServer功能,利用VBScript或者JavaScript使用COM提供的接口方法,完成远程监控和远程控制功能。这样,在英创嵌入式主板上接上摄像头,就可以通过Client端浏览器进行远程监控。更有意义的是通过这种方式,还能实现远程控制。比如,通过Client端浏览器的按钮,可以实现IO控制,串口控制等。利用这种跨平台的方法,我们还可以把EVC做的工作,做成COM组件,那么像VB、C#、LaberView等就可以实现直接调用,增加了团队合作的效率。

 

        通过ASP使用FileSystemObject对象可以对服务器中的文件进行远程操作,然而,WinCE WebServer没有支持FileSystemObject对象,本文详细介绍了通过编写COM组件,完成了FileSystemObject的部分功能,这样就实现了对嵌入式Web服务器的远程文件操作。通过对英创嵌入式主板基本信息的设置,你可以了解COM组件的创建、注册、调用等技术,使你对COM组件技术有一定的认识。以下是操作的全过程。

 

1、建立COM组件

        1、新建EVC工程,选择WCE ATL COM AppWizard,工程名字为Scripting。

 

        2、选择支持MFC。

 

        3、通过ATL向导添加接口 Insert->New ATL Objcet…,在该对话框中选择Simple Object项添加一个COM对象,点击Next按钮来设置对象名和属性。

 

 

        对象名Names选项卡中主要包括两类输入信息:C++信息和COM信息。在这里,为了保持和ASP中FileSystemObject对象名字一致,我们输入名字FileSystemObject,其它信息会自动生成。

 

        在Attributes选项卡中,我们要设置COM对象的底层特征。由于在CE中,目前只支持Free模型,所以,必须选中这一项。其它选项意义请参考相应的书籍。

 

        4、为FileSystemObject对象添加接口方法。选中IFileSystemObject接口,右击,在弹出的快捷菜单中选择Add Method…项,为FileSystemObject对象添加接口方法。

 

        5、为接口添加方法的对话框界面,只需在Method Name输入框中输入FileExists,在Parameters输入框中输入 [in]VARIANT v1 ,[out, retval] long * pVal,然后点击OK按钮,即可添加一个FileExists方法。这里,要注意参数的数据类型,参数的数据类型可以参考http://www.vckbase.com/document/viewdoc/?id=1488。

 

        6、添加了FileExists方法后,就要添加FileExists方法实现代码了。在ClassView选项卡中。双击FileExists,就可以在代码窗口添加实现代码了。具体代码见EVC工程源码。

 

        7、以同样的方法,添加其它接口方法,完成FileSystemObject对象常用方法。详见源码。

 

2、注册COM组件

        COM组件编写并编译为DLL文件,只有向系统注册此组件后,其它语言才能够调用。注册的方法有两种:

        1、用telnet登陆开发板,用regsvr32 Scripting.dll注册

        2、在程序中注册。具体方法请参考Regdll EVC工程源码

 

3、在ASP中调用COM组件

        以VBScript为例,调用COM组件对象,完成对文件的操作。

 

        1、以为界的VBScript语言,是在Server端运行的语句,以作为开始结束标志的VBScript语言在Client端运行。所以,按“恢复默认值”按钮后,调用的函数以为标识。

 

        2、如果要在Server端运行的VBScript语句在客户端输出提示信息,要用如下的方法:

 

        3、创建FSO对象,并读写文件。

 

        4、详细网页代码请参考ASP源文件。

 

4、综合测试

        至此,我们完成了COM组件的编写和VBScript调用组件。我们提供了综合例程。通过网页配置Dbginfo.txt和Userinfo.txt两个文件,具体步骤如下:

        1、把regdll.exe 和scripting.dll拷贝到Nandflash的根目录下

        2、telnet登陆嵌入式主板,执行regdll

        3、把DbgInfo文件夹下的所有文件拷贝到 \nandflash\www目录下

        4、在浏览器中输入嵌入式主板的ip地址/nand/config.asp就可以看到配置网页。

Go Top