<strike id="kiyse"></strike>
  • <tr id="kiyse"></tr>
  • <strike id="kiyse"></strike><samp id="kiyse"><tbody id="kiyse"></tbody></samp>
    <strike id="kiyse"><s id="kiyse"></s></strike>
    <tr id="kiyse"></tr>
    <noframes id="kiyse"><code id="kiyse"></code></noframes>
    <th id="kiyse"></th>
    <samp id="kiyse"></samp>
  • <th id="kiyse"><s id="kiyse"></s></th>
  • WinCE工控主板多網(wǎng)口使用方法

     2022-7-22     作者:楊陽(yáng)         

    簡(jiǎn)介


      英創(chuàng)公司ESMARC系列工控主板支持8位數(shù)據(jù)/地址復(fù)用的精簡(jiǎn)ISA總線(xiàn),通過(guò)精簡(jiǎn)ISA總線(xiàn)可以擴(kuò)展更多網(wǎng)口,如ETA728和ETA528,本文將介紹如何使用經(jīng)過(guò)擴(kuò)展的多路網(wǎng)口。


    WinCE工控主板的多網(wǎng)口多串口擴(kuò)展WinCE工控主板的多網(wǎng)口多串口擴(kuò)展
    ETA528:8路串口+2路網(wǎng)口擴(kuò)展模塊ETA728:2路網(wǎng)口擴(kuò)展模塊


    加載驅(qū)動(dòng)


      ESMARC WinCE系統(tǒng)中已經(jīng)集成了擴(kuò)展模塊的驅(qū)動(dòng)程序,在使用擴(kuò)展模塊之前需要通過(guò)系統(tǒng)自帶的命令使能相應(yīng)的驅(qū)動(dòng)程序。具體操作方法是通過(guò)telnet命令登陸WinCE主板(或打開(kāi)WinCE系統(tǒng)的命令提示行)后執(zhí)行相應(yīng)的命令,例如:

      >ETA728Set 2 ; 使能ETA728 兩路網(wǎng)口擴(kuò)展模塊驅(qū)動(dòng)

      >ETA728Set 1 ; 使能ETA728 一路網(wǎng)口擴(kuò)展模塊驅(qū)動(dòng)

      >ETA728Set 0 ; 禁止ETA728驅(qū)動(dòng)程序加載

      重啟板子后生效。


    新增網(wǎng)絡(luò)查看及配置


      以ESM335X為例, 連接模塊ETA728,并執(zhí)行命令ETA728Set 2加載模塊驅(qū)動(dòng)后。進(jìn)入控制面板->網(wǎng)絡(luò)連接,可以看到板子多出了兩個(gè)網(wǎng)絡(luò),DM9K3和DM9K4。可以查看及配置其網(wǎng)絡(luò)IP,網(wǎng)關(guān)等參數(shù)。


    WINCE工控主板多網(wǎng)口擴(kuò)展使用方法.png


      通過(guò)telnet或打開(kāi)WINCE系統(tǒng)命令提示行,使用ipconfig也可以查看新增網(wǎng)絡(luò)的參數(shù)(未插網(wǎng)線(xiàn)時(shí)IP為0.0.0.0)。


    WINCE工控主板多網(wǎng)口擴(kuò)展使用方法.png


      注意:在系統(tǒng)中有多個(gè)網(wǎng)絡(luò)時(shí),一定要注意各個(gè)網(wǎng)絡(luò)不應(yīng)同時(shí)設(shè)置到一個(gè)網(wǎng)段內(nèi),會(huì)影響系統(tǒng)路由。


    代碼控制


      查詢(xún)網(wǎng)絡(luò)


    #include <iphlpapi.h>
    IP_ADAPTER_INFO AdapterInfo[8];
    ULONG OutBufLen = sizeof(IP_ADAPTER_INFO);
    GetAdaptersInfo(AdapterInfo, &OutBufLen); 
    GetAdaptersInfo(AdapterInfo, &OutBufLen);   //調(diào)兩次,可以百度下這個(gè)API


      板子所有網(wǎng)絡(luò)的信息就存儲(chǔ)在AdapterInfo結(jié)構(gòu)體數(shù)組中了,其中包括,網(wǎng)絡(luò)名,如:判斷是否為ETA728擴(kuò)展的第一個(gè)網(wǎng)絡(luò)


    if (strcmp(AdapterInfo[0].AdapterName, “DM9K3”) == 0)
    {
      //第一個(gè)網(wǎng)絡(luò)網(wǎng)口名為”DM9K3” 
    }


      獲得第二個(gè)網(wǎng)絡(luò)的MAC

      BYTE *mac =  AdapterInfo[1].Address;


      獲得第三個(gè)網(wǎng)絡(luò)的IP

      BYTE *mac =  AdapterInfo[2].IpAddressList;


      修改IP

      

      參考光盤(pán)中提供的例程,以設(shè)置網(wǎng)絡(luò)名為”DM9K3”的網(wǎng)口參數(shù)為例,代碼如下。

    #include "netip_api.h"
    #include <iphlpapi.h>
     
    NETWORK_ADPTS_NAME   AdaptersName;
    NETWORK_ADPT_INFO AdptInfo;
    DWORD             NewIPAddr;
    DWORD             NewMask;
    DWORD             NewGateWay;
    DWORD             dwType;
    int               i1;
     
       
    StringToIPAddr(L"192.168.1.248", &NewIPAddr );
     
    StringToIPAddr(L"255.255.255.0", &NewMask);
    StringToIPAddr(L"192.168.1.1", &NewGateWay);
     
    bRes = GetNetWorkAdaptersName( &AdaptersName );
     
    memset ((char *)&AdptInfo, 0, sizeof(AdptInfo));
    for(int i1=0; i1<AdaptersName.NumOfAdapters; i1++ )
    {
        if (wcscmp(AdaptersName.szAdapterName[i1],L"DM9K3") == 0)
        {
            bRes = GetNetWorkAdapterInfo( AdaptersName.szAdapterName[i1], &AdptInfo );
            AdptInfo.IPAddr = NewIPAddr;
            AdptInfo.SubnetMask = NewMask;
            AdptInfo.Gateway = NewGateWay;
            SetNetWorkAdapterInfo( AdaptersName.szAdapterName[i1], &AdptInfo );
            break;
        }
    }

      

      Socket調(diào)用


      參考光盤(pán)中網(wǎng)絡(luò)例程,當(dāng)系統(tǒng)只有一個(gè)網(wǎng)絡(luò)時(shí),可以設(shè)置socket的IP為0.0.0.0,即默認(rèn)的網(wǎng)口進(jìn)行通信。當(dāng)系統(tǒng)中有多個(gè)網(wǎng)絡(luò)時(shí),需要指定的網(wǎng)口進(jìn)行通信時(shí),綁定端口時(shí)就需要設(shè)置該網(wǎng)口的IP,參考例程第3步。


      比如希望使用ETA728的第一個(gè)網(wǎng)口進(jìn)行通信時(shí),則需要先獲得網(wǎng)口名為”DM9K3”的網(wǎng)絡(luò)IP,綁定時(shí)綁定該IP。


    WSADATA wsa;
    //1.初始化socket資源
    if (WSAStartup(MAKEWORD(1,1),&wsa) != 0)
    {
    	return -1;//代表失敗
    }
    
    //2.創(chuàng)建套接字
    if ((m_socketServer = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP))<0)
    {
    	return -2;
    }
    
    //3.綁定端口
    SOCKADDR_IN  serverAddr;
    ZeroMemory((char *)&serverAddr,sizeof(serverAddr));
    serverAddr.sin_family = AF_INET;
    serverAddr.sin_port = htons(m_dwPort);
    //serverAddr.sin_addr.s_addr = htonl(INADDR_ANY); //單網(wǎng)絡(luò)時(shí)
    serverAddr.sin_addr.s_addr = htonl(m_dwIP); //綁定指定網(wǎng)口IP
    if (bind(m_socketServer, (struct sockaddr *)&serverAddr, sizeof(serverAddr))<0)
    {
    	return -3 ;
    }
    
    //4.設(shè)置為偵聽(tīng)套接字
    if (listen(m_socketServer, 8)!=0)
    {
    	return -4;
    }
    
    //4.設(shè)置監(jiān)聽(tīng)套接字通訊模式
    //DWORD ul= 1;
    //ioctlsocket(m_socketServer,FIONBIO,&ul);
    
    //5.創(chuàng)建偵聽(tīng)通訊線(xiàn)程,在線(xiàn)程里,等待客戶(hù)端連接請(qǐng)求
    m_bListenThreadStop = FALSE;
    m_hListenThread = CreateThread(NULL , 0, SocketListenThread, this, 0, NULL);
    if (m_hListenThread == NULL)
    {
    	closesocket(m_socketServer);
    	return -5; 
    }


      通過(guò)綁定socket,可以實(shí)現(xiàn)應(yīng)用程序同時(shí)在多個(gè)網(wǎng)絡(luò)中進(jìn)行通信的目的。


      路由設(shè)置


      在一個(gè)系統(tǒng)中有多個(gè)網(wǎng)絡(luò)時(shí),系統(tǒng)通過(guò)路由表決定網(wǎng)絡(luò)數(shù)據(jù)經(jīng)哪個(gè)網(wǎng)絡(luò)的網(wǎng)口進(jìn)行通信。當(dāng)代碼無(wú)法連通網(wǎng)絡(luò)時(shí),可以檢查下是否是路由設(shè)置的問(wèn)題。

      通過(guò)route print命令可以查看系統(tǒng)路由表。

      使用route help查看其它指令的使用說(shuō)明。

      可以增加路由,減少路由,修改路由優(yōu)先級(jí)等。


      英創(chuàng)提供了文章內(nèi)所述程序及源代碼,有需要的客戶(hù)可以聯(lián)系英創(chuàng)工程師獲得。

    国产精品嫩草影院一二三区入口| 国产精品午夜国产小视频| 久久精品视频网站| 亚洲AV永久无码精品一区二区国产 | 久久夜色精品国产尤物| 国产成人综合精品一区| 国产精品麻豆成人AV网| 精品欧洲AV无码一区二区男男 | 精品欧洲av无码一区二区三区| 亚洲精品国精品久久99热一| 国产成人精品福利网站人| 国产精品亚洲精品| 久久丝袜精品综合网站| 色妞www精品视频| 亚洲人成电影网站国产精品| 日韩精品亚洲专区在线影视| 国产精品香蕉一区二区三区| 久久国产精品成人片免费| 久久精品一区二区免费看| 91精品国产色综合久久| 国产成人精品久久亚洲高清不卡 | 国产精品特级露脸AV毛片| 国产精品久久久福利| 精品福利视频导航| 亚洲精品中文字幕无乱码| 日本一卡精品视频免费| 久久国产精品自由自在| 精品国内片67194| 亚洲精品无码国产| 亚洲国产另类久久久精品黑人| 久久国产精品无码网站| 国产精品伦理久久久久久| vvvv99日韩精品亚洲| 精品福利视频第一| 日韩精品免费一线在线观看| 精品一区二区三区在线播放| 国产三级精品三级男人的天堂| 国产精品99re| 亚洲精品尤物yw在线影院| 亚洲欧洲久久久精品| 国产视频精品免费视频|