天天看點

【.Net MF網絡開發闆研究-01】IP位址設定及簡單web示範

早期推出的開發闆并不具備網口,是以.NET Micro Framework很多基于網絡的功能,便無從研究了,其實在物聯網時代,具備網絡功能才是王道。

新開發闆除了具備以太網子產品以外,還增加了USB Host子產品,當然還增加了其它相關接口,詳情請參見下圖:

【.Net MF網絡開發闆研究-01】IP位址設定及簡單web示範

由于該開發闆是基于Cortex-M3核心,MF核心程式(TinyCLR)部署在片内Flash上,但是片内Flash一般容量有限,是以就沒有移植TinyBooter,這樣官方MFDeploy的網絡配置功能便無法使用了,是以我在TinyCLR代碼中增加了網絡配置的代碼子產品,此外同步又更新了YFAccessFlash工具,以友善使用者配置開發闆的IP位址等相關參數。

具體配置方法如下:

【.Net MF網絡開發闆研究-01】IP位址設定及簡單web示範
單擊菜單【Network Config】進入IP配置界面,如下圖所示:
【.Net MF網絡開發闆研究-01】IP位址設定及簡單web示範

配置成功後,開發闆會自動重新開機,以使新配置生效。

1、固件版本必須高于V0.9.05 才支援IP配置

http://www.sky-walker.com.cn/MFRelease/firmware/mfv41_firmware_hy_redbull.rar 2、YFAccessFlash工具必須版本高于V2.0.2.1才支援IP配置 http://www.sky-walker.com.cn/MFRelease/Tools/YFAccessFlash.rar

3、必須用YFAccessFlash部署工具中的ER_Config,否則配置IP時,開發闆會出現異常。

請參考:

http://www.sky-walker.com.cn/MFRelease/document/MFManual_V2.0.pdf

該手冊中,有如何部署ER_Config的介紹

開發闆運作後,我們用PC機,進行ping測試,效果如下:

【.Net MF網絡開發闆研究-01】IP位址設定及簡單web示範

網絡通了,我們進行簡單的程式設計,來做一個簡單并且比較實用的Web Server。

我們直接在官方SocketServer進行修改,其修改後的代碼如下:

     private void ProcessRequest()

      {

            const Int32 c_microsecondsPerSecond = 1000000;

            // 'using' ensures that the client's socket gets closed.

            using (m_clientSocket)

            {

                // Wait for the client request to start to arrive.

                Byte[] buffer = new Byte[1024];

                if (m_clientSocket.Poll(5 * c_microsecondsPerSecond,

                    SelectMode.SelectRead))

                {

                    // If 0 bytes in buffer, then the connection has been closed,

                    // reset, or terminated.

                    if (m_clientSocket.Available == 0)  return;

                    // Read the first chunk of the request (we don't actually do

                    // anything with it).

                    Int32 bytesRead = m_clientSocket.Receive(buffer,

                        m_clientSocket.Available, SocketFlags.None);

 

                    // Return a static HTML document to the client.

                    String scrHtml = Resource1.GetString(Resource1.StringResources.webpage);

                    string[] scrHtml_lines = scrHtml.Split('\r');

                    string objHtml = "",strTemp="";

 

                    ADC.Start(0); //ADC0

                    ADC.Read(14, out MySocketServer.AD8, 2, 0);

                    ADC.Stop(0);

 

                    MySocketServer.AD7 = MySocketServer.AD8*490/4096;

                    MySocketServer.AD1 += 1;

                    if (MySocketServer.AD1 > 10) MySocketServer.AD1 = 0;

                    foreach (string line in scrHtml_lines)

                    {

                        if (line.Length > 0)

                        {

                            strTemp = line;

                            if (line.IndexOf("AD8%") > 0) strTemp = StringReplace(line, "AD8%", MySocketServer.AD8.ToString());

                            if (line.IndexOf("AD7%") > 0) strTemp = StringReplace(line, "AD7%", MySocketServer.AD7.ToString());

                            if (line.IndexOf("AD1%") > 0) strTemp = StringReplace(line, "AD1%", MySocketServer.AD1.ToString());

                            objHtml += strTemp + "\r";

                        }

                    }

                    m_clientSocket.Send(Encoding.UTF8.GetBytes(objHtml));

                }

            }

        }           

在IE浏覽器中輸入:

http://192.168.0.100/

則顯示如下界面:

【.Net MF網絡開發闆研究-01】IP位址設定及簡單web示範

選擇 開發闆上的模拟量輸入按鈕,上圖的進度條會動态變化。

下篇文章,我們将介紹Http Server相關的内容。

 -------------------------------------------------------------------------------------------------------------------------

源碼/文檔:

http://www.sky-walker.com.cn/MFRelease/Sample/YFSocketServer.rar

MF論壇:

http://space.cnblogs.com/group/MFSoft/

MF開發闆:

http://item.taobao.com/item.htm?id=7117999726

網絡開發闆:

http://item.taobao.com/item.htm?id=10919470266

繼續閱讀