使用微芯片通过tcpip发送数据';s PIC18F

使用微芯片通过tcpip发送数据';s PIC18F,tcp,ethernet,pic,microchip,Tcp,Ethernet,Pic,Microchip,TCPIP演示应用程序中的所有示例都是使用自定义程序构建的,该程序设计了一个网页,当网页发生更改时,该网页会触发回调。是否有可能每X秒从传感器获取一个值,并通过HTTP POST发送数据?我非常确定您的网页必须从服务器请求数据。我从未见过服务器可以强制页面更新。您可以尝试使用meta标记来刷新页面,或者构建一个java小程序来请求包含要读取的传感器数据的动态变量的文件。我还考虑过基于telnet编写自己的协议,将数据推送到通过TCP/IP端口连接到它的应用程序,但我认为这并不比使用已经支持的HT

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

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

我现在就这样做。每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");