zoukankan      html  css  js  c++  java
  • 【.Net MF网络开发板研究01】IP地址设定及简单web演示

    早期推出的开发板并不具备网口,所以.NET Micro Framework很多基于网络的功能,便无从研究了,其实在物联网时代,具备网络功能才是王道。

    新开发板除了具备以太网模块以外,还增加了USB Host模块,当然还增加了其它相关接口,详情请参见下图:

      

    由于该开发板是基于Cortex-M3内核,MF内核程序(TinyCLR)部署在片内Flash上,但是片内Flash一般容量有限,所以就没有移植TinyBooter,这样官方MFDeploy的网络配置功能便无法使用了,因此我在TinyCLR代码中增加了网络配置的代码模块,此外同步又升级了YFAccessFlash工具,以方便用户配置开发板的IP地址等相关参数。

    具体配置方法如下:

     

    单击菜单【Network Config】进入IP配置界面,如下图所示:

     

    配置成功后,开发板会自动重启,以使新配置生效。

    注意:

    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测试,效果如下:

     

    网络通了,我们进行简单的编程,来做一个简单并且比较实用的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/ 则显示如下界面:

     

    选择 开发板上的模拟量输入按钮,上图的进度条会动态变化。

    下篇文章,我们将介绍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

    QQ群:127465602(已满) 146524112

  • 相关阅读:
    [APM] OneAPM 云监控部署与试用体验
    Elastic Stack 安装
    xBIM 综合使用案例与 ASP.NET MVC 集成(一)
    JQuery DataTables Selected Row
    力导向图Demo
    WPF ViewModelLocator
    Syncfusion SfDataGrid 导出Excel
    HTML Table to Json
    .net core 2.0 虚拟目录下载 Android Apk 等文件
    在BootStrap的modal中使用Select2
  • 原文地址:https://www.cnblogs.com/yefanqiu/p/2097013.html
Copyright © 2011-2022 走看看