Windows CE操作系統(tǒng)的遠(yuǎn)程訪問服務(wù)RAS(Remote Access Server)功能,允許用戶從遠(yuǎn)程地點(diǎn)將自己的計(jì)算機(jī)設(shè)備連接到一個(gè)計(jì)算機(jī)網(wǎng)絡(luò),一旦建立了連接,就可以像與局域網(wǎng)中一樣與其他計(jì)算機(jī)進(jìn)行通訊。英創(chuàng)公司ARM系列工控主板,預(yù)裝了正版WinCE5.0操作系統(tǒng),支持采用RAS撥號(hào)方式,通過GPRS或3G信道,把設(shè)備直接接入到Internet。關(guān)于GPRS撥號(hào)建立的文章,請參考《基于WINCE平臺(tái)eVC編程要點(diǎn)之二——WinCE下的GPRS 應(yīng)用》,本文介紹如何自動(dòng)建立一個(gè)3G撥號(hào)連接并實(shí)現(xiàn)自動(dòng)撥號(hào)。
1、自動(dòng)創(chuàng)建3G撥號(hào)連接
創(chuàng)建3G撥號(hào)連接與創(chuàng)建GPRS撥號(hào)連接一樣,需要添加一個(gè)RASEntry到RAS 的電話薄中,并將其保存在注冊表中。RASEntry中需要設(shè)置作為調(diào)制解調(diào)器的設(shè)備屬性(端口設(shè)置、撥號(hào)選項(xiàng))以及指定電話號(hào)碼和用戶驗(yàn)證參數(shù)。在EM9000 嵌入式主板上,直接支持WinCE 桌面系統(tǒng),用戶可以通過界面中“控制面板”手動(dòng)添加3G撥號(hào)連接。具體的設(shè)置方法請參見技術(shù)文檔《EM9000 3G通訊網(wǎng)絡(luò)設(shè)置》一文,這里不再贅述。而EM9160、EM9260 嵌入式主板沒有支持WinCE 的界面,為了方便用戶的使用,英創(chuàng)專門設(shè)計(jì)了自動(dòng)創(chuàng)建3G撥號(hào)連接的程序3GEntry.exe,用戶將相應(yīng)的配置文件3GEntry.txt放在與3GEntry.exe同一目錄中,可以通過Telnet登錄到ARM工控主板,運(yùn)行一次3GEntry.exe,即可自動(dòng)創(chuàng)建3G 的撥號(hào)連接。需要注意的是3GEntry.exe只需運(yùn)行一次即可。
英創(chuàng)公司針對不同3G模塊和不同的3G運(yùn)營商提供了相對應(yīng)的配置文件3GEntry.txt,在3GEntry.txt中保存了RASEntry所需要的配置信息,用戶一般不需要修改配置文件,以免建立撥號(hào)連接失敗。
2、自動(dòng)運(yùn)行3G撥號(hào)連接
在建立撥號(hào)連接后,需要調(diào)用RasDial(…)函數(shù)來建立PPP連接,一但建立了PPP連接,就可以像在局域網(wǎng)上一樣,調(diào)用標(biāo)準(zhǔn)WinSockets API進(jìn)行網(wǎng)絡(luò)應(yīng)用層的處理與遠(yuǎn)端主機(jī)通信了。
RasDial是操作系統(tǒng)提供的一個(gè)自動(dòng)撥號(hào)函數(shù),用于在RAS客戶端與RAS服務(wù)器之間建立連接。RasDial函數(shù)可通過帶入?yún)?shù)來設(shè)置為同步調(diào)用或異步調(diào)用,當(dāng)RasDial函數(shù)作為同步調(diào)用時(shí),函數(shù)將阻塞,直到連接建立或產(chǎn)生錯(cuò)誤時(shí),函數(shù)才返回,同步調(diào)用的優(yōu)點(diǎn)是編程簡單,缺點(diǎn)是不能獲得連接過程的狀態(tài)信息。
當(dāng)RasDial執(zhí)行異步調(diào)用時(shí),進(jìn)行連接的同時(shí),函數(shù)調(diào)用會(huì)立即返回,然后通過窗口消息來監(jiān)視撥號(hào)連接的狀態(tài)。在進(jìn)行RAS連接時(shí),異步調(diào)用RasDial是優(yōu)選方法,因?yàn)榭梢詫B接過程進(jìn)行監(jiān)視。下面是異步調(diào)用RasDial,通過Windows消息來監(jiān)視撥號(hào)連接的程序片段。
int nFlag = 0; // 定義全局變量,用于判斷連接是否建立
// 異步調(diào)用RasDial,函數(shù)馬上返回,需通過監(jiān)視Windows消息判斷連接狀態(tài)
RasDial (NULL, NULL, &RasDialParams, 0xFFFFFFFF, v_hWnd, &hRasConn);
if(nFlag == 1 )
{
// 連接建立,可進(jìn)行網(wǎng)絡(luò)應(yīng)用層處理
}
// Windows消息處理函數(shù)
LRESULT CALLBACK WndProc (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
RASCONNSTATE RasState = (RASCONNSTATE)wParam;
switch (Msg)
{
case WM_RASDIALEVENT : // 收到撥號(hào)連接消息
OutputMessage (TEXT(‘RasDial: ’));
switch (RasState)
{
case RASCS_OpenPort: // 正在打開端口
OutputMessage (TEXT(‘On open port’));
break;
case RASCS_PortOpened: // 端口已打開
OutputMessage (TEXT(‘Port is opened’));
break;
case RASCS_ConnectDevice: // 正在連接設(shè)備
OutputMessage (TEXT(‘On Connect Device’));
break;
case RASCS_Connected : // 連接已建立
OutputMessage (TEXT(‘Connected’));
nFlag = 1; // 置標(biāo)志位
break;
case RASCS_Disconnected : // 連接斷開
OutputMessage (TEXT(‘Disconnected’));
nFlag = 0; // 置標(biāo)志位
break;
default :
break;
}
break;
default:
return DefWindowProc(hWnd, Msg, wParam, lParam);
}
return FALSE;
}
本文介紹的自動(dòng)創(chuàng)建撥號(hào)連接和自動(dòng)撥號(hào)的方法與英創(chuàng)主板是否擁有圖形顯示界面無關(guān),可以應(yīng)用于英創(chuàng)所有ARM9工控主板上。
-
WINDOWS
+關(guān)注
關(guān)注
4文章
3598瀏覽量
90709 -
嵌入式主板
+關(guān)注
關(guān)注
7文章
6095瀏覽量
36088
發(fā)布評論請先 登錄
相關(guān)推薦
英創(chuàng)嵌入式主板的無線通訊解決方案
WinCE工控主板4G/3G/GPRS通用撥號(hào)
英創(chuàng)信息技術(shù)WinCE工控主板簡介

英創(chuàng)信息技術(shù)ARM9工控主板WinCE應(yīng)用程序遠(yuǎn)程控制應(yīng)用
英創(chuàng)信息技術(shù)工控主板EM9360的GPIO介紹
英創(chuàng)信息技術(shù)工控主板的復(fù)位管理介紹

英創(chuàng)信息技術(shù)WinCE工控主板的數(shù)據(jù)庫配置簡介
英創(chuàng)信息技術(shù)Linux工控主板3G無線上網(wǎng)應(yīng)用示例
英創(chuàng)信息技術(shù)Linux工控主板支持3G網(wǎng)卡介紹

英創(chuàng)信息技術(shù)主板WinCE應(yīng)用程序的FTP遠(yuǎn)程更新介紹

英創(chuàng)信息技術(shù)WEC7 3G撥號(hào)連接的建立介紹
英創(chuàng)信息技術(shù)Windows Embedded Compact 2013 3G連接介紹
英創(chuàng)信息技術(shù)WinCE工控主板4G/3G/GPRS通用撥號(hào)介紹

評論