為了滿足客戶多網(wǎng)絡(luò)的需求,英創(chuàng)公司推出了有3個(gè)網(wǎng)絡(luò)接口的嵌入式主板——EM9360。 由于EM9360沒有標(biāo)準(zhǔn)的WinCE界面,給更改網(wǎng)絡(luò)的ip地址帶來困難。本演示示例是通過英創(chuàng)嵌入式主板的WebServer功能來完成ip地址的配置。 其實(shí)現(xiàn)的原理是通過ASP網(wǎng)頁提交給服務(wù)器需要更改的ip地址內(nèi)容,在服務(wù)器端,通過調(diào)用COM組件,完成ip地址的配置。通過本示例,你可以加深對COM組件的理解。
EM9360可以通過一下三種方法來完成ip地址的配置:
1、通過更改WinCE的注冊表
對注冊表的訪問,可以更改ip地址,但是,需要重新啟動開發(fā)板才能使設(shè)置的ip地址生效。注冊表的修改可以利用遠(yuǎn)程調(diào)試工具中的Remote Registry Editor來進(jìn)行,這部分的詳細(xì)介紹可以參見英創(chuàng)公司網(wǎng)站“技術(shù)天地”欄目中英創(chuàng)9260系列嵌入式主板調(diào)試使用方法簡介。該方法一般是在產(chǎn)品開發(fā)時(shí),技術(shù)開發(fā)人員使用。
2、參考C程序SetIPParms 示例程序來進(jìn)行IP參數(shù)的設(shè)置
該程序主要是提供了一個(gè)利用NetIP_API靜態(tài)庫修改網(wǎng)卡參數(shù)的示例。通過API函數(shù)GetNetWorkAdapterInfo(…)獲取網(wǎng)絡(luò)參數(shù), SetNetWorkAdapterInfo(…)來設(shè)置網(wǎng)絡(luò)參數(shù)并自動綁定網(wǎng)絡(luò)適配器,無需重啟開發(fā)板,就能使設(shè)置的網(wǎng)絡(luò)生效。該程序主要提供給用C語言進(jìn)行應(yīng)用程序開發(fā)技術(shù)人員參考,同時(shí)也可以作為一個(gè)獨(dú)立的小工具程序,在telnet環(huán)境下啟動運(yùn)行,通過命令行參數(shù)進(jìn)行網(wǎng)絡(luò)參數(shù)的設(shè)置。命令行的格式如下:
SetIPParms 網(wǎng)卡名 IP地址 子網(wǎng)掩碼 默認(rèn)網(wǎng)關(guān)
如設(shè)置網(wǎng)絡(luò)2口DM9K21的參數(shù):
SetIPParms DM9k21 192.168.202.170 255.255.255.0 192.168.202.8
為了適應(yīng)客戶靈活修改程序,我們在開發(fā)光盤中提供了SetIPParms的源碼。
3、利用COM組件通過ASP動態(tài)網(wǎng)頁設(shè)置
由于NetIP_API靜態(tài)庫主要是面向C開發(fā)環(huán)境下使用,對于采用其它開發(fā)工具,如C#、Labview等就不能直接使用,因而需要一種更為通用而簡便的方法來對網(wǎng)絡(luò)參數(shù)進(jìn)行配置。這里采用的方法是將NetIP_API靜態(tài)庫封裝成一個(gè)標(biāo)準(zhǔn)的COM組件,來支持各種開發(fā)平臺的調(diào)用,本文主要介紹的是ASP動態(tài)網(wǎng)頁對COM組件的調(diào)用。這種方法只需通過IE瀏覽器訪問即可實(shí)現(xiàn)對網(wǎng)絡(luò)參數(shù)的設(shè)置,因而特別適合用于工程現(xiàn)場的設(shè)備配置。本文的以下部分主要介紹了COM組件的生產(chǎn)以及調(diào)用方法。
1、建立COM組件
1、新建EVC工程,選擇WCE ATL COM AppWizard,工程名字為Scripting。
2、選擇支持MFC。
3、通過ATL向?qū)砑咏涌?Insert-》New ATL Objcet…,在該對話框中選擇Simple Object項(xiàng)添加一個(gè)COM對象,點(diǎn)擊Next按鈕來設(shè)置對象名和屬性。
對象名Names選項(xiàng)卡中主要包括兩類輸入信息:C++信息和COM信息。在這里,我們輸入名字COM_NetIP_API,其它信息會自動生成。
在Attributes選項(xiàng)卡中,我們要設(shè)置COM對象的底層特征。由于在CE中,目前只支持Free模型,所以,必須選中這一項(xiàng)。其它選項(xiàng)意義請參考相應(yīng)的書籍。
4、為COM_NetIP_API對象添加接口方法。選中ICOM_NetIP_API接口,右擊,在彈出的快捷菜單中選擇Add Method…項(xiàng),為COM_NetIP_API對象添加接口方法。
5、為接口添加方法的對話框界面,只需在Method Name輸入框中輸入ChangParms,在Parameters輸入框中輸入 [in]VARIANT AdapterName,[in] VARIANT AdaptersParameter,[in] VARIANT AdaptersParameterVal, [out, retval] long * pVal然后點(diǎn)擊OK按鈕,即可添加一個(gè)COM_NetIP_API方法。這里,要注意參數(shù)的數(shù)據(jù)類型,選擇VARIANT類型,可以根據(jù)輸入的參數(shù)類型,靈活處理參數(shù)數(shù)據(jù)。在寫COM組件時(shí),可以把參變量設(shè)置為VARIANT類型,這樣,可以根據(jù)參數(shù)變量的類型進(jìn)行不同的處理。下面介紹一下兩個(gè)重要的類型轉(zhuǎn)換 。
// VARIANT轉(zhuǎn)換為CString類型
CComVariant v_1( v1 ); // V1是參變量VARIANT類型
v_1.ChangeType( VT_BSTR ); // 轉(zhuǎn)換為BSTR字符串
CString keyName(v_1.bstrVal); // 轉(zhuǎn)化為CString
// char 轉(zhuǎn)換為VARIANT pVal為VARIANT指針變量
char buf[100];
CString str;
str=buf;
pVal-》vt = VT_BSTR; // 指定pVal的類型為BSTR
pVal-》bstrVal = str.AllocSysString();// str轉(zhuǎn)換為BSTR
6、添加了ChangParms方法后,就要添ChangParms方法實(shí)現(xiàn)代碼了。在ClassView選項(xiàng)卡中,雙擊ChangParms,就可以在代碼窗口添加實(shí)現(xiàn)代碼了。具體代碼見EVC工程源碼。
7、把NETIP_API.lib和NETIP_API.h拷貝到當(dāng)前工程目錄下,在Projecting-》Setting-》link標(biāo)簽,增加netip_api.lib,在ChangIP.cpp包含頭文件NETIP_API.h。
8、以同樣的方法,添加ReadIP接口方法。詳見源碼。
2、注冊COM組件
COM組件編寫并編譯為DLL文件,只有向系統(tǒng)注冊此組件后,其它語言才能夠調(diào)用。注冊的方法有兩種。
1、用telnet登陸開發(fā)板,用regsvr32 SetIPParms.dll注冊
2、在程序中注冊。具體方法請參考例程一Regdll 工程源碼
3、在ASP中調(diào)用COM組件
以VBScript為例,調(diào)用COM組件對象,完成對文件的操作。
1、創(chuàng)建SetIPParms對象,并讀出現(xiàn)有ip地址的信息
set ipObj=CreateObject(‘SetIPParms.COM_NetIP_API’) // 創(chuàng)建ChangIP對象
emIPAddress=ipObj.ReadParms(‘DM9K21’,‘IPAddress’) // 讀ip地址第一個(gè)參數(shù)為網(wǎng)卡編號名DM9K21或者DM9K31,第二個(gè)參數(shù)為:IPAddress、DHCP、SubnetMask、DefaultGateway
ipObj.ChangIP ‘DM9K21’,‘DHCP’,emDHCP // 更改ip配置信息,前兩個(gè)參數(shù)和前面的定義相同,第三個(gè)參數(shù),為“Enable”或者“Disable”
2、詳細(xì)網(wǎng)頁代碼請參考ASP源文件。
4、綜合測試
至此,我們完成了COM組件的編寫和VBScript調(diào)用組件。我們提供了綜合例程,如圖9所示,通過網(wǎng)頁配置網(wǎng)絡(luò)參數(shù),具體步驟如下:
1、把regsvr32 .exe 和SetIPParms.dll拷貝到Nandflash的根目錄下
2、telnet登陸嵌入式主板,執(zhí)行regsvr32 SetIPParms.dll注冊
3、把ASP文件夾下的所有文件拷貝到 \nandflash\www目錄下
4、在瀏覽器中輸入 嵌入式主板的ip地址/nand/SetIPParms.asp就可以看到配置網(wǎng)頁。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6085瀏覽量
35402
發(fā)布評論請先 登錄
相關(guān)推薦
評論