我正在设计一个使用微控制器和嵌入式C语言的温湿度记录系统。每当从传感器采集到新的数据时,系统都会使用GET方法(也可以是POST )将数据发送到服务器。只要电源和/或互联网断了,它就会登录SD卡。
每当互联网恢复时,我想将这些记录的数据发送到服务器。当单独发送时,我的每个请求如下所示,即使在我的本地网络上也需要大约5秒才能完成。
GET /add.php?userID=0000mac=000:000:000:000:000:000&id=0000000000sensor=000&temp=%2B000.000&hum=000.000 HTTP/1.1\r\nHost: 192.168.10.25\r\n\r\n然而,由于我的可用RAM在这个微控制器中非常有限,只有大约400字节,我不能在一个请求中缓冲和发送所有记录的数据。
对于2天的电力/互联网丢失,记录了大约3000个数据集。如何以一种非常快速的方式将这些内容发送到服务器?
发布于 2015-06-18 22:13:06
嗯,我想一个简单的for循环就可以了。下面是伪代码:
foreach(loggedRequest){
loadTheRequestFromTheLogFile();
sendTheDataForThisRequest(); // Hang here until the server returns a response
clearMemoryFromPreviousRequest();
}通过等待服务器的响应,您将确保数据到达服务器,并且不会使ram满。
您还可以使用具有固定数量的请求的内部for循环,然后等待它们的所有响应。这会更快,但你必须做多次测试,以确保你不会达到内存限制。
https://stackoverflow.com/questions/30884643
复制相似问题