создание строки для передачи на удаленный webserver

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
leaner
Сержант
Сообщения: 104
Зарегистрирован: 08.11.2017{, 13:13}
Репутация: 4

создание строки для передачи на удаленный webserver

#1

Сообщение leaner » 10.07.2018{, 10:33}

Начал делать новый проект для дачи
и вот дошел до момента передачи данных на удаленный сервер.
Строка должна выглядеть вот так:

Код: Выделить всё

"GET /objects/?script=espdata&idesp=ESP826600182272&hostname=ESP00182272&dhtt1=15.2&dhth1=61.2&bmpt=16.7&bmpp=754.91&dsw1=14.5&uptime=1444200&errconn=41&wanip=192.168.2.119&freemem=33696&ver=0.1.1_19:37:43_30.04.2018&vdd=940&rssi=-73 HTTP/1.1" 200 203 "-" "ESP8266"
создал блок сложения строки (во вложении и проект )

при компиляцмм получаем смущает одно... лишние символы в строке передачи

Код: Выделить всё

if (_SVFC1needSend) {
if (_SVFC1needSend) {
Udp.beginPacket( _destIp1, 80);
if(_SVFC1needSend) {
_SVFC1needSend = 0;
 Udp.write (1);
 Udp.print (1);
 Udp.write (2);
 Udp.print (((String(""GET /objects/?script=espdata&idesp=ESP826600182290&hostname=ESP00182290")) + (String("&dsw1=")) + (_gtv1) + (String("&dsw2=")) + (_gtv2) + (String("&dsw2=")) + (_gtv3) + (String("&bmpp=")) + (_gtv6) + (String("&pol=")) + (_gtv5) + (String("&chA=")) + (_gtv4) + (String("""))));
 Udp.write (3);
 Udp.print (134208981);
 Udp.write (4);
}
Udp.endPacket();
Как правильно формировать строку для передачи?
Проверить пока нечем, все комплектующшие пока едет
Вложения
dacha02.flp
(402.26 КБ) 72 скачивания
блок передачи_Лист1.png

Berserker
Рядовой
Сообщения: 58
Зарегистрирован: 17.05.2018{, 16:13}
Репутация: 0
Имя: Александр

создание строки для передачи на удаленный webserver

#2

Сообщение Berserker » 10.07.2018{, 10:47}

Была такая же проблема пришлось ручками редактировать, блок сложения больше 10 входов почему-то не захотел работать. Складывал в строку просто print и последний делал println

Аватара пользователя
Cancertanly
Сержант
Сообщения: 214
Зарегистрирован: 06.04.2016{, 19:59}
Репутация: 20
Откуда: bish
Имя: Антон

создание строки для передачи на удаленный webserver

#3

Сообщение Cancertanly » 10.07.2018{, 11:00}

ну так вы из константы на первом входе сложения уберите лишние символы
СпойлерПоказать
2018-07-10 (4).png
FLProg_ru
https://t.me/flrog_ru ...................................................FLProg_v7.3.4
https://t.me/soft_duino

НовыйUser
Сержант
Сообщения: 154
Зарегистрирован: 26.11.2015{, 22:05}
Репутация: 8

создание строки для передачи на удаленный webserver

#4

Сообщение НовыйUser » 10.07.2018{, 11:21}

Есть тема "баг двойных кавычек" )

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

создание строки для передачи на удаленный webserver

#5

Сообщение Sancho » 10.07.2018{, 11:27}

Berserker писал(а):
10.07.2018{, 10:47}
Была такая же проблема пришлось ручками редактировать, блок сложения больше 10 входов почему-то не захотел работать. Складывал в строку просто print и последний делал println
Думаю, дело не в количестве переменных, а в количестве символов, т.е. размере буфера UART.
Для лечения подобного в I2C "лечил" библиотеку.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Berserker
Рядовой
Сообщения: 58
Зарегистрирован: 17.05.2018{, 16:13}
Репутация: 0
Имя: Александр

создание строки для передачи на удаленный webserver

#6

Сообщение Berserker » 11.07.2018{, 06:00}

Sancho писал(а):
10.07.2018{, 11:27}
Berserker писал(а):
10.07.2018{, 10:47}
Была такая же проблема пришлось ручками редактировать, блок сложения больше 10 входов почему-то не захотел работать. Складывал в строку просто print и последний делал println
Думаю, дело не в количестве переменных, а в количестве символов, т.е. размере буфера UART.
Для лечения подобного в I2C "лечил" библиотеку.
Хорошо бы тогда это описать в хелпе, а то сделал и получил фигню - расстройство, если не знаешь основ программирования.

Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17.07.2017{, 18:39}
Репутация: 55
Откуда: Днепр. UA
Имя: Григорий

создание строки для передачи на удаленный webserver

#7

Сообщение grin-mpx » 11.07.2018{, 08:58}

Проблемы начинаются еще на этапе создания страниц и переменных на сервере. Я тоже столкнулся с подобным. Сейчас стараюсь
максимально сокращать имена переменных , там где к примеру Ваша строка:
String(""GET /objects/?script=espdata&idesp=ESP826600182290&hostname=ESP00182290
может как минимум выглядеть так:
String(""GET /obj/?script=esd&id=ES800182290&hn=ES00182290
Когда были проблемы с отправкой 8 данных графиков на thingspeak.com, то из-за большой длины я делил отправку на 2 части по 4 значения.
Еще стараюсь не собирать строку непосредственно на (перед) пользовательским блоком, а сначала при сборке на верхней плате записываю в промежуточную переменную, а ее уже подключаю к передаче. Так-же приходилось менять размер буфера, главное не забыть в проекте на плате сделать текстовую сноску, что размер буфера изменен, а то откроешь спустя пол года на другом компе и будешь долго вспоминать почему данные принимаются не полностью :D

Ответить

Вернуться в «Спросить у знатоков»