面向物聯(lián)網(wǎng)的嵌入式以太網(wǎng)終端平臺設計與實(shí)現
3 WEB服務(wù)器的實(shí)現
HTTP定義了瀏覽器與服務(wù)器交互的不同方法,最基本的方法有4種。本系統的實(shí)現只涉及到GET和POST這兩種最基本的方法。GET一般用于向服務(wù)器獲取和查詢(xún)資源信息,而POST一般用于向服務(wù)器上傳和更新沒(méi)有長(cháng)度限制的、大容量的資源信息。一個(gè)基本的WEB服務(wù)器要實(shí)現動(dòng)態(tài)網(wǎng)頁(yè)服務(wù)的關(guān)鍵是要能夠對瀏覽器發(fā)送的GET或POST請求做出響應。一般情況下制作動(dòng)態(tài)網(wǎng)頁(yè)需要使用語(yǔ)言:HTML+ASP或HTML+PHP或HTML+ JSP等。要在資源有限的嵌入式系統上實(shí)現這樣的功能是不現實(shí)的,一種明智的辦法是通過(guò)使用回調函數的方式,為瀏覽器的每一種請求都設計一個(gè)服務(wù)函數與之對應。當有新增加的GET或POST請求時(shí),則只需要增加相應的服務(wù)函數即可。具體實(shí)現時(shí)可設計一個(gè)存放服務(wù)函數地址的結構體,其成員包括所請求服務(wù)參數的長(cháng)度、名稱(chēng)和對應服務(wù)函數的地址。然后將所有的結構體都初始化在一個(gè)數組中,代碼如下:

在編寫(xiě)應用程序的時(shí)候,只需抓取瀏覽器所發(fā)送的請求類(lèi)型和參數,即可根據不同的請求來(lái)調用相應的服務(wù)函數。當有新的GET或者POST請求增加時(shí),只需要增加與之對應的服務(wù)函數即可,這樣就實(shí)現了擴展性很強的動(dòng)態(tài)網(wǎng)頁(yè)服務(wù)。WEB服務(wù)器響應瀏覽器訪(fǎng)問(wèn)的流程如圖3所示。本文引用地址:http://dyxdggzs.com/article/148553.htm
POST請求分為帶參數和不帶參數兩類(lèi),帶參數的POST請求,如:設置IP地址,子網(wǎng)掩碼等操作,需要提取相關(guān)參數后再調用服務(wù)函數進(jìn)行處理。不帶參數的POST請求只需直接調用相應服務(wù)函數即可,如:重啟系統、恢復默認參數等操作。遠端PC可以通過(guò)該動(dòng)態(tài)WEB服務(wù)器來(lái)對平臺進(jìn)行訪(fǎng)問(wèn),完成上述幾項操作。在第一次啟動(dòng)本系統時(shí),系統通過(guò)運行DHCP客戶(hù)端程序,向DHCP服務(wù)器(路由器等設備)主動(dòng)申請IP地址,獲得IP后,遠端PC即可通過(guò)該IP地址對本系統進(jìn)行訪(fǎng)問(wèn)和設置。網(wǎng)頁(yè)界面如圖4所示。
4 結束語(yǔ)
平臺采用AT91SAM7X512處理器和DM9161以太網(wǎng)物理層芯片。兩者通過(guò)MII接口連接,高集成度的處理器提高了系統穩定性,降低了數據傳輸出錯機率。通過(guò)向終端平臺移植LwIP協(xié)議,使終端具備連入以太網(wǎng)的能力,并通過(guò)調用函數的方式在該低成本平臺上實(shí)現了動(dòng)態(tài)網(wǎng)頁(yè)服務(wù)器。在局域網(wǎng)條件下運行該終端和上位機PC進(jìn)行連接,能很好的通過(guò)網(wǎng)絡(luò )傳遞RFID讀卡器采集的信息,并且上位機PC能夠通過(guò)網(wǎng)頁(yè)對本終端進(jìn)行訪(fǎng)問(wèn)和參數設置。針對更復雜的遠程網(wǎng)絡(luò )連接和訪(fǎng)問(wèn),網(wǎng)絡(luò )延遲和丟包等問(wèn)題還有待進(jìn)一步的研究。
p2p機相關(guān)文章:p2p原理
評論