早期推出的開發闆并不具備網口,是以.NET Micro Framework很多基于網絡的功能,便無從研究了,其實在物聯網時代,具備網絡功能才是王道。
新開發闆除了具備以太網子產品以外,還增加了USB Host子產品,當然還增加了其它相關接口,詳情請參見下圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yMjF2N2QGM0EWYjBTNzIjY2EDZ0MWOygjN1MmMhRTOw8CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
由于該開發闆是基于Cortex-M3核心,MF核心程式(TinyCLR)部署在片内Flash上,但是片内Flash一般容量有限,是以就沒有移植TinyBooter,這樣官方MFDeploy的網絡配置功能便無法使用了,是以我在TinyCLR代碼中增加了網絡配置的代碼子產品,此外同步又更新了YFAccessFlash工具,以友善使用者配置開發闆的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.rar3、必須用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.rarMF論壇:
http://space.cnblogs.com/group/MFSoft/MF開發闆:
http://item.taobao.com/item.htm?id=7117999726網絡開發闆:
http://item.taobao.com/item.htm?id=10919470266