2010-01-20 67 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为此提供演示应用程序。