如何将大数据发送到客户端RAM有限的HTTP服务器?

时间:2015-06-17 07:12:13

标签: http http-headers

我正在设计一个使用微控制器和嵌入式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个数据集。如何以非常快的方式将这些内容发送到服务器?

1 个答案:

答案 0 :(得分:0)

我认为一个简单的for循环就可以做到。这是伪代码:

foreach(loggedRequest){
    loadTheRequestFromTheLogFile();
    sendTheDataForThisRequest(); // Hang here until the server returns a response
    clearMemoryFromPreviousRequest();
}

通过等待服务器的响应,您将确保数据到达服务器以及您没有ram已满。

您还可以使用固定数量的请求进行内部for循环,然后等待所有响应。这样会更快,但你必须做多次测试,以确保你没有达到ram限制。