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

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

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

Сообщение leaner »

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

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

"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();
Как правильно формировать строку для передачи?
Проверить пока нечем, все комплектующшие пока едет
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Berserker
Рядовой
Сообщения: 58
Зарегистрирован: 17 май 2018, 16:13
Имя: Александр

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

Сообщение Berserker »

Была такая же проблема пришлось ручками редактировать, блок сложения больше 10 входов почему-то не захотел работать. Складывал в строку просто print и последний делал println
Аватара пользователя
Cancertanly
Сержант
Сообщения: 214
Зарегистрирован: 06 апр 2016, 19:59
Откуда: bish
Имя: Антон
Поблагодарили: 1 раз

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

Сообщение Cancertanly »

ну так вы из константы на первом входе сложения уберите лишние символы
[spoiler]
2018-07-10 (4).png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
FLProg_ru
https://t.me/flrog_ru ...................................................FLProg_v7.3.4
https://t.me/soft_duino
НовыйUser
Сержант
Сообщения: 154
Зарегистрирован: 26 ноя 2015, 22:05

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

Сообщение НовыйUser »

Есть тема "баг двойных кавычек" )
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

Berserker писал(а): 10 июл 2018, 10:47Была такая же проблема пришлось ручками редактировать, блок сложения больше 10 входов почему-то не захотел работать. Складывал в строку просто print и последний делал println
Думаю, дело не в количестве переменных, а в количестве символов, т.е. размере буфера UART.
Для лечения подобного в I2C "лечил" библиотеку.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Berserker
Рядовой
Сообщения: 58
Зарегистрирован: 17 май 2018, 16:13
Имя: Александр

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

Сообщение Berserker »

Sancho писал(а): 10 июл 2018, 11:27
Berserker писал(а): 10 июл 2018, 10:47Была такая же проблема пришлось ручками редактировать, блок сложения больше 10 входов почему-то не захотел работать. Складывал в строку просто print и последний делал println
Думаю, дело не в количестве переменных, а в количестве символов, т.е. размере буфера UART.
Для лечения подобного в I2C "лечил" библиотеку.
Хорошо бы тогда это описать в хелпе, а то сделал и получил фигню - расстройство, если не знаешь основ программирования.
Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17 июл 2017, 18:39
Откуда: Днепр. UA
Имя: Григорий

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

Сообщение grin-mpx »

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

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей