2010-01-20 98 views
1

TCPIP演示應用程序中的所有示例都是使用自定義程序構建的,該程序設計了一個在更改網頁時觸發回調的網頁。是否有可能每隔X秒從傳感器獲取一個值並通過HTTP POST發送數據?使用Microchip的PIC18F通過tcpip發送數據

回答

4

我現在就這樣做。每x秒從傳感器讀取數值應該是不言而喻的,但用「POST」編碼消息有點棘手。

我不喜歡的東西下面的通用分組:

 TCPPutROMString(MySocket, (ROM BYTE*)"POST "); 
     TCPPutROMString(MySocket, RemoteURL); 
     TCPPutROMString(MySocket, (ROM BYTE*)" HTTP/1.1\r\nHost: "); 
     TCPPutROMString(MySocket, ServerName); 
     TCPPutROMString(MySocket, (ROM BYTE*)"\r\nContent-Length:   
         [put number of all following characters here]\r\n\r\n"); 
     TCPPutROMString(MySocket, (ROM BYTE*)"variable1=whatever"); 
     TCPPutROMString(MySocket, (ROM BYTE*)"&variable2=whatever"); 
     TCPPutROMString(MySocket, (ROM BYTE*)"&variable3=whatever"); 
0

我很確定你的網頁必須從服務器請求數據。我從來沒有見過服務器可以強制進行頁面更新的地方。您可以嘗試使用元標記來刷新頁面或構建一個Java小程序來請求包含要讀取的傳感器數據的動態變量的文件。我還曾考慮編寫基於telnet的自己的協議,它會將數據推送到與TCP/IP端口相連的應用程序,但決定不會比使用已支持供應的HTTP協議好得多數據到我的小程序。這可能會快得多,但也有很多工作要做。這實際上取決於你希望數據更新的頻率。如果大約5-10秒,並且只有一個連接,那麼使用HTTP應該可以正常工作。如果您有多個連接並希望每秒更新一次數據,則可能需要使用Telnet路由。我還沒有看到任何演示應用程序這樣做,但是由於我遇到了同樣的問題,所以很高興Microchip爲此提供演示應用程序。