當(dāng)在WinCE系統(tǒng)中添加一個(gè)網(wǎng)卡時(shí),操作系統(tǒng)會(huì)自動(dòng)生成相關(guān)的路由信息,利用CE系統(tǒng)自帶的route命令可以查看系統(tǒng)當(dāng)前所有的路由記錄。下圖是預(yù)裝WEC7的ESM6802工控主板的路由表,其中Destination和Netmask為0.0.0.0的記錄表明這是系統(tǒng)缺省路由,缺省路由的意思是當(dāng)要發(fā)送數(shù)據(jù)包的目標(biāo)網(wǎng)絡(luò)地址不在系統(tǒng)的路由記錄中時(shí),系統(tǒng)會(huì)將該數(shù)據(jù)包通過缺省路由對(duì)應(yīng)的接口(網(wǎng)卡)發(fā)送出去。
路由記錄中的Metric為躍點(diǎn)數(shù),當(dāng)系統(tǒng)中有多個(gè)缺省路由時(shí),數(shù)據(jù)包會(huì)通過Metric更低的接口傳輸。如果系統(tǒng)中有多個(gè)網(wǎng)絡(luò)接口,則可利用Metric來選擇網(wǎng)絡(luò)數(shù)據(jù)的優(yōu)先傳輸路徑。使用WinCE系統(tǒng)自帶route命令即可修改路由記錄的Metric值,但通過命令行執(zhí)行route命令相對(duì)來講不夠直觀,因此我們實(shí)現(xiàn)了一個(gè)帶界面的路由表編輯程序GRoute,如下圖是在ESM6802上運(yùn)行GRoute后,程序顯示的系統(tǒng)路由表,路由表中同時(shí)指明了每條記錄對(duì)應(yīng)的網(wǎng)絡(luò)接口名稱。GRoute程序支持添加、修改和刪除路由記錄等功能。
上圖GRoute程序顯示的路由表中,網(wǎng)絡(luò)目標(biāo)和網(wǎng)絡(luò)掩碼為0.0.0.0的缺省路由ENET1和ENET2是ESM6802的兩個(gè)以太網(wǎng)接口,除此之前還有3條缺省路由:
COM1:當(dāng)WinCE主板通過ActiveSync與電腦連接時(shí)生成的虛擬網(wǎng)絡(luò)連接,實(shí)際使用時(shí)可忽略。
HUAWEI EM770W MODEM:華為EM770W 3G模塊撥號(hào)上網(wǎng)后生成的路由記錄。
ETA6210 WIFI MODEM:ETA6210 WiFi模塊連接到網(wǎng)絡(luò)后生成的路由路由記錄。
上面的缺省路由記錄中,有線以太網(wǎng)NENT1、NENT2和Metric分別為21和31,WiFi連接和EM770W 3G撥號(hào)連接的Metric為11。基于當(dāng)前的路由表,網(wǎng)絡(luò)數(shù)據(jù)會(huì)優(yōu)先選擇3G撥號(hào)連接或WiFi網(wǎng)絡(luò)路徑。在實(shí)際應(yīng)用中,通常希望數(shù)據(jù)優(yōu)先從有線以太網(wǎng)接口傳輸,然后是WiFi,最后才走4G/3G網(wǎng)絡(luò),此時(shí)就需要手動(dòng)修改路由表以實(shí)現(xiàn)選路需求。為了方便用戶使用, GRoute程序直接提供了網(wǎng)絡(luò)優(yōu)先級(jí)配置功能,如下圖,一旦勾選了“配置網(wǎng)絡(luò)優(yōu)先級(jí)”,GRoute程序會(huì)自動(dòng)修改WiFi和PPP撥號(hào)連接的Metric值,實(shí)現(xiàn)網(wǎng)絡(luò)優(yōu)先級(jí)的配置。
當(dāng)網(wǎng)絡(luò)狀態(tài)發(fā)生變化時(shí)(比如PPP撥號(hào)斷線重連),系統(tǒng)會(huì)重新生成新的路由記錄,可以在勾選GRoute程序“配置網(wǎng)絡(luò)優(yōu)先級(jí)”的同時(shí)勾選“定時(shí)刷新”功能,GRoute程序就會(huì)每隔幾秒檢查一下路由表并配置網(wǎng)絡(luò)優(yōu)先級(jí)。
GRoute也可以作為控制臺(tái)程序啟動(dòng)運(yùn)行,當(dāng)通過命令行執(zhí)行GRoute程序并帶上刷新時(shí)間參數(shù)時(shí), GRoute啟動(dòng)后不顯示界面,保持在后臺(tái)每隔一定時(shí)間檢查/設(shè)置網(wǎng)絡(luò)優(yōu)先級(jí)。
在應(yīng)用程序中可以通過CreateProcess啟動(dòng)GRoute程序,此時(shí)同樣需要帶上刷新時(shí)間參數(shù),如果用戶不希望GRoute在屏幕上顯示任何信息,可以增加/d或-d參數(shù),相關(guān)的信息就會(huì)從系統(tǒng)的COM_DBG口輸出。應(yīng)用程序中調(diào)用GRoute方法比下:
PROCESS_INFORMATION procInfo;
TCHAR szCmdLine[20] = L"5 -d"; // 注意參數(shù)之間需要至少一個(gè)空格分隔
if( !CreateProcess( L"\\edisk\\groute.exe", szCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, NULL, &procInfo ) )
TRACE( L"CreateProcess failure!" );
WinCE自帶的tracer命令用于跟蹤網(wǎng)絡(luò)數(shù)據(jù)的傳輸路徑,可以驗(yàn)證上面設(shè)置Metric值選路的方法是否有效,感興趣的用戶可以自行測(cè)試。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6097瀏覽量
36143
發(fā)布評(píng)論請(qǐng)先 登錄
CyU3PDebugPrint的最高優(yōu)先級(jí)和最低優(yōu)先級(jí)是什么?
信創(chuàng)浪潮下,國(guó)產(chǎn)主板有什么新的發(fā)展機(jī)遇?

配電柜—斷電危機(jī)?配電柜故障排查優(yōu)先級(jí)指南

中科創(chuàng)達(dá)榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)
用國(guó)產(chǎn)化硬件守護(hù)信息安全,飛騰D2000網(wǎng)絡(luò)安全主板應(yīng)用優(yōu)勢(shì)
瑞芯微RK3399開發(fā)板Android7.1修改網(wǎng)絡(luò)優(yōu)先級(jí)方法,觸覺智能SBC3968開發(fā)板演示

使用CH32V103C8TC設(shè)置中斷優(yōu)先級(jí)分組時(shí),編譯報(bào)錯(cuò)的原因?
CH32V103 使用中斷優(yōu)先級(jí)分組0時(shí)報(bào)錯(cuò)
信創(chuàng)國(guó)產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀
車載以太網(wǎng)交換機(jī)入門基本功(4)—優(yōu)先級(jí)設(shè)計(jì)與VLAN測(cè)試

在汽車區(qū)域模塊中使用理想二極管的優(yōu)先級(jí)電源多路復(fù)用器

freertos中斷優(yōu)先級(jí)在哪設(shè)置
APS智能優(yōu)化排產(chǎn)軟件的優(yōu)先級(jí)應(yīng)用

評(píng)論