2

TCPIP Demo App 中的所有示例都是使用自定义程序构建的,该程序设计了一个网页,当网页更改时会触发回调。是否可以每 X 秒从传感器获取一个值并通过 HTTP POST 发送数据?

4

2 回答 2

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");
于 2010-01-21T14:48:00.513 回答
0

我很确定您的网页必须从服务器请求数据。我从未见过服务器可以强制页面更新的地方。您可以尝试使用元标记来刷新页面或构建一个 Java 小程序来请求包含您要读取的传感器数据的动态变量的文件。我还考虑过编写自己的基于 telnet 的协议,该协议会将数据推送到通过 TCP/IP 端口连接到它的应用程序,但我认为这不会比使用已经支持提供的 HTTP 协议好多少数据到我的小程序。它可能会更快,但也需要更多的工作。这实际上取决于您希望数据更新的频率。如果它大约需要 5-10 秒并且您只有一个连接,那么使用 HTTP 应该可以正常工作。如果您有多个连接并且希望每秒更新一次数据,您可能需要使用 Telnet 路由。我还没有看到任何演示应用程序可以做到这一点,但是 Microchip 最好为此提供演示应用程序,因为我遇到了同样的问题。

于 2010-01-21T14:33:03.457 回答