Добрый вечер! Научился по GPRS отправлять данные на сервер. Код (C++): numdata=inet.httpGET(www.c_str(), 80, www_patch_data.c_str(), msg, 50); А теперь нужно прочитать файл не более 2-5 Кб, и весь результат отправить так же с помощью httpGET или другим способом. www = site.ru www_patch_data = /log.php?data= и тут значение переменной. Файл читаю следующим образом, но вывод добился только в Serial Код (C++): void read_sd_logs() { int h = 0; char symbol = 0; File r_loggs; String filename_logs = "log.txt"; r_loggs = SD.open(filename_logs.c_str()); char array[]={}; if (r_loggs) { // читаем из файла, пока не достигнем конца файла: while (r_loggs.available()) { //Serial.write(r_loggs.read()); // считываем байт входящего файла symbol = r_loggs.read(); array[h]=symbol; h++; delay(1); } array[h]='\0'; // закрываем файл: r_loggs.close(); Serial.println("+++++*************++++++"); Serial.println(array); } else { debug_log("error opening test.txt"); } } Serial.println(array) ничего толком не выдает, а если раскоментировать Код (C++): //Serial.write(r_loggs.read()); то файл полностью выводится . Спасибо за помощь.
тогда отвечу я Код (C++): // чтение лога работы с SD void read_sd_logs() { String sd_logs; char symbol = 0; File r_loggs; String filename_logs = "/logs/log" + String(day()) + String(month()) + ".txt"; r_loggs = SD.open(filename_logs.c_str()); if (r_loggs) { // читаем из файла, пока не достигнем конца файла: while (r_loggs.available()) { // считываем байт входящего файла symbol = r_loggs.read(); sd_logs += symbol; delay(10); } // закрываем файл: r_loggs.close(); gprs_sending_data("FILE READ: " +String(sd_logs)); } else { debug_log("error opening test.txt"); } } в отправке по GRPS - gprs_sending_data так как используем Код (C++): numdata=inet.httpGET(www.c_str(), 80, www_patch_data.c_str(), msg, 50); в www_patch_data - нужно вместо пробелов и перевод на новую строку сделать следующее Код (C++): www_patch_data.replace(" ","%20"); www_patch_data.replace("\r\n","%0a"); И данные грузятся на сервер без проблем.