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