久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 淺談遠程診斷技術在電控發動機方面的應用

淺談遠程診斷技術在電控發動機方面的應用

作者: 時間:2016-12-20 來源:網絡 收藏

int pascal far listen( socket s, int backlog );

參 數: s:需要建立監聽的socket;

backlog:最大連接個數;

服務器端的socket調用完listen()后,如果此時客戶端調用connect()函數提出連接申請的話,server 端必須再調用accept() 函數,這樣服務器端和客戶端才算正式完成通信程序的連接動作。為了知道什么時候客戶端提出連接要求,從而服務器端的socket在恰當的時候調用accept()函數完成連接的建立,我們就要使用wsaasyncse-lect()函數,讓系統主動來通知我們有客戶端提出連接請求了。該函數調用成功返回0,否則返回socket_error。

int pascal far wsaasyncse-lect( socket s, hwnd hwnd,unsigned int wmsg, long levent );

參數: s:socket 對象;

hwnd :接收消息的窗口句柄;

wmsg:傳給窗口的消息;

levent:被注冊的網絡事件,也即是應用程序向窗口發送消息的網路事件,該值為下列值fd_read、fd_write、fd_oob、fd_accept、fd_connect、fd_close的組合,各個值的具體含意為fd_read:希望在套接字s收到數據時收到消息;fd_write:希望在套接字s上可以發送數據時收到消息;fd_accept:希望在套接字s上收到連接請求時收到消息;fd_connect:希望在套接字s上連接成功時收到消息;fd_close:希望在套接字s上連接關閉時收到消息;fd_oob:希望在套接字s上收到帶外數據時收到消息。

具體應用時,wmsg應是在應用程序中定義的消息名稱,而消息結構中的lparam則為以上各種網絡事件名稱。所以,可以在窗口處理自定義消息函數中使用以下結構來響應socket的不同事件:  

switch(lparam) 
{
case fd_read:
     …  
  break;
case fd_write、
    …
  break;
    …
}

電控單元(ECU)的通信協議主要就封裝在該消息響應函數當中。

(5)服務器端接受客戶端的連接請求

當client提出連接請求時,server 端hwnd視窗會收到winsock stack送來我們自定義的一個消息,這時,我們可以分析lparam,然后調用相關的函數來處理此事件。為了使服務器端接受客戶端的連接請求,就要使用accept() 函數,該函數新建一socket與客戶端的socket相通,原先監聽之socket繼續進入監聽狀態,等待他人的連接要求。該函數調用成功返回一個新產生的socket對象,否則返回invalid_socket。

socket pascal far accept( scoket s, struct sockaddr far *addr,int far *addrlen );
參數:s:socket的識別碼;
addr:存放來連接的客戶端的地址;
addrlen:addr的長度

(6)結束 socket 連接

結束服務器和客戶端的通信連接是很簡單的,這一過程可以由服務器或客戶機的任一端啟動,只要調用closesocket()就可以了,而要關閉server端監聽狀態的socket,同樣也是利用此函數。另外,與程序啟動時調用wsastartup()憨數相對應,程式結束前,需要調用 wsacleanup() 來通知winsock stack釋放socket所占用的資源。這兩個函數都是調用成功返回0,否則返回socket_error。

int pascal far closesocket( socket s );
參 數:s:socket 的識別碼;
int pascal far wsacleanup( void );
參 數: 無

3.系統實現與應用

遠程故障診斷系統要完成數據的傳輸需要建立一套完整的數據傳輸系統。系統中包括:DTU,電控單元(ECU)、移動網絡、后臺中心。

3.1網絡拓撲圖:

圖2 網絡結構

3.2系統實現方式

(1)終端設備,GPRS模塊(DTU)

首先通過AT命令對GPRS模塊進行設置,設置要連接的中心IP和端口及其它必要性的設置,設置好之后電控單元(ECU)通過RS232接口和GPRS模塊相連,GPRS模塊上電之后根據事先設置好的中心IP和端口進行連接,成功連接到服務中心后即可雙向傳輸數據。即可實現在線遠程監控電控單元(ECU)狀態與下載電控單元(ECU)程序。



評論


技術專區

關閉