Официальный сайт компании Arduino по адресу arduino.cc
как передать csv-файл при обращении к серверу
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ср, 12/06/2019 - 02:08
Доброго времени суток.
вопрос - есть сервер на ESP32
#include <WiFi.h> #include <WiFiClientSecure.h> WiFiServer wifi_server(80); WiFiClientSecure client;
в сетапе
... server.on("/LogV.csv", sendDataFile); server.begin();
датчики измеряют температуру и записывают в файл LogV.csv
File datafile = SPIFFS.open("/" + DataFile, FILE_APPEND); if (datafile == true) { // if the file is available, write to it datafile.println( GetTime() + char(44) + String(temp_water / 100.0)); } else LOG_output ( 0, "cant read the file"); datafile.close();
- при подключении к серверу отправляется html страничка которая рисует график по данным из файла LogV.csv:
<div class="div-temperature" id="graphdiv3"></div> <script type="text/javascript"> g3 = new Dygraph(document.getElementById("graphdiv3"), "LogV.csv", { rollPeriod: 7, showRoller: true } ); </script>
- так вот как передать этот файл вместе с html страничкой?
Сейчас для тестирования делаю таким образом
void sendDataFile() { webpage = ""; webpage += "Date,Temp\n"; File datafile = SPIFFS.open("/" + DataFile, FILE_READ); if (datafile == true) { // if the file is available, write to it while (datafile.available()) { //Lets read line by line from the file String line = datafile.readStringUntil('n'); LOG_output ( 0, "writed into file " + line); webpage += line + "\n"; } LOG_output ( 0, "110 writed into file" + GetTime() + char(44) + String(temp_water / 100.0)); } else LOG_output ( 0, "cant read the file"); datafile.close(); server.send(200, "text/plain", webpage); }
все работает - но не хочется перебирать файл в текстовую переменную webpage и отправлять ее, может есть способ отправить файл напрямую?
Всё правильно делаете, sendfile() из spiffs в есп32, насколько знаю, нет.
Чего то в esp может и нет, но все можно реализовать тупо ручной отправкой побайтно.
ЗЫ. Сам не пробовал, но уверен что все реально - читаем html http протоколы.