UDP передача переменных по локальной сети

Пользовательские блоки для коммкникации и связи GSM, GPRS, IR, Bluetooth и другие
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
Phazz
Полковник
Сообщения: 3110
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

UDP передача переменных по локальной сети

Сообщение Phazz »

[ref]Sio[/ref], да без проблем, два блока один команду on обрабатывает включая пин через rs trig. Другая off - выключает.
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

UDP передача переменных по локальной сети

Сообщение WildCat »

[ref=#808080]Phazz[/ref], здравствуйте.

поясните, пожалуйста, какой смысл во входе "топик"? На что он влияет и для чего нужен?

если мне нужно передать несколько переменных, как их разделить?
Правильно ли я понимаю, что топик и есть параметр для разделения переменных?
Например, нужно передать 10 значений температур.
Значит будет 10 топиков и 10 блоков приема/отправки с топиками (например): Т1, Т2, Т3... Т10 ?

Или не так?
Аватара пользователя
Phazz
Полковник
Сообщения: 3110
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

UDP передача переменных по локальной сети

Сообщение Phazz »

[ref]WildCat[/ref], правильно, в передаче и приеме топики должны быть одинаковые
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

UDP передача переменных по локальной сети

Сообщение WildCat »

[ref=#808080]Phazz[/ref], спасибо.

Ещё вопрос.
У меня один МК - клиент (выходит в инет через комп/мобилу для синхронизации RTC.). Может быть безболезненно отлучён от интернета, и переходит сам в режим точки доступа.
Как мне настроить второй МК? Тоже клиентом?
Им параметры сети какие следует указывать?
Аватара пользователя
Phazz
Полковник
Сообщения: 3110
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

UDP передача переменных по локальной сети

Сообщение Phazz »

Если мк является точкой, то сообщения он может получать только по обращении по ip. То есть нужно в блоке отправки включить соответствующий параметр.
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

UDP передача переменных по локальной сети

Сообщение WildCat »

Примерно понял, буду пробовать. Спасибо.
Аватара пользователя
Phazz
Полковник
Сообщения: 3110
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

UDP передача переменных по локальной сети

Сообщение Phazz »

[ref]WildCat[/ref], viewtopic.php?p=120892#p120892
Оказывается я не обновил шапку. Актуальные блоки по этой ссылке
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

UDP передача переменных по локальной сети

Сообщение WildCat »

[ref=#808080]Phazz[/ref], ничего страшного, когда я увидел сообщение про отправку по IP, и не нашел этого в базовом блоке, скачал проект из сообщения)

Спасибо
Аватара пользователя
Phazz
Полковник
Сообщения: 3110
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

UDP передача переменных по локальной сети

Сообщение Phazz »

31.03.23 - версия блока 2.0 Добавил отправку по IP
У вас нет необходимых прав для просмотра вложений в этом сообщении.
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

UDP передача переменных по локальной сети

Сообщение WildCat »

[ref=#808080]Phazz[/ref],
Попробовал, работает )
Но есть вопросы.
При передаче относительно большого количества переменых (в моем случае 15) существенно снижается быстродействие МК.
С диспетчером увы, не работает.
Есть ли какие-то способы разгрузить МК?
Может отправку разных параметров вразнобой делать?
У меня сейчас отправка раз в 5сек (для всех переменных). Tick - это ж по сути и есть таймер отправки?
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

UDP передача переменных по локальной сети

Сообщение WildCat »

[ref=#808080]Phazz[/ref],
А вот ещё вопрос:
Какой реально допустимый тайминг отправки можно использовать?
Сколько времени длится передача одной переменой (допустим, стринг 4..10 знаков)?
Понятно, что в пакете ещё есть 32 бита IP адрес, 12 бит - номер порта, сколько-то на топик и несколько байт на сами данные. Итого- около сотни бит в одном пакете отправки (если не передавать целые текстовые предложения).
Если время на передачу одной переменной по UART я могу посчитать, то здесь немного теряюсь.
ecoins
Полковник
Сообщения: 3999
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 136 раз
Поблагодарили: 149 раз

UDP передача переменных по локальной сети

Сообщение ecoins »

WildCat писал(а): 04 апр 2023, 00:50 Phazz,
А вот ещё вопрос:
Какой реально допустимый тайминг отправки можно использовать?
Сколько времени длится передача одной переменой (допустим, стринг 4..10 знаков)?
Понятно, что в пакете ещё есть 32 бита IP адрес, 12 бит - номер порта, сколько-то на топик и несколько байт на сами данные. Итого- около сотни бит в одном пакете отправки (если не передавать целые текстовые предложения).
Если время на передачу одной переменной по UART я могу посчитать, то здесь немного теряюсь.
В новой версии 8.2.1 появилась возможность измерить быстродействие платы. Это значение можно вывести как в монитор порта, так и на LCD.
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

UDP передача переменных по локальной сети

Сообщение WildCat »

ecoins писал(а): 04 апр 2023, 01:56 быстродействие платы
Спасибо.
Но быстродействие выполнения равно ли физическому времени отправки данных?
Для WiFi другое ядро используется же?
Не может быть такого, что из платы (ядро 1) отправляется команда в ядро 0 (управление WiFi)? И по факту, плата отработала, а переменная ещё в буфере отправки?

Или я ошибаюсь?

И, кстати, а есть информация, есть ли вообще буфер у WiFi , и какого он размера?
Я с наскоку не нашёл. Видел только информацию, что скорость обмена по UDP до 20 Мбит/с.
То есть, те же 100 бит улетят за 5 мкс.
ecoins
Полковник
Сообщения: 3999
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 136 раз
Поблагодарили: 149 раз

UDP передача переменных по локальной сети

Сообщение ecoins »

WildCat писал(а): 04 апр 2023, 02:12 Для WiFi другое ядро используется же?
Не может быть такого, что из платы (ядро 1) отправляется команда в ядро 0 (управление WiFi)?
То, что ядро 0 используется для WiFi для меня не очевидно. Из Arduino IDE следует, что по умолчанию скетч грузится ядро 1.
WildCat писал(а): 04 апр 2023, 02:12 И, кстати, а есть информация, есть ли вообще буфер у WiFi , и какого он размера?
Полагаю все гораздо проблематичнее и это связано с архитектурой контроллеров ESP32 - в них нет внутреннего FLesh под программы, связь с которой реализуется через SPI.
waswas
Рядовой
Сообщения: 44
Зарегистрирован: 04 апр 2023, 18:39
Имя: Вася

UDP передача переменных по локальной сети

Сообщение waswas »

WildCat писал(а): 13 ноя 2022, 17:52 И, кстати, а есть информация, есть ли вообще буфер у WiFi , и какого он размера
буфер (размер/длина) для сообщений по udp составляет:

AsyncUDPMessage::AsyncUDPMessage(size_t size)
{
_index = 0;
if(size > 1460) {
size = 1460;
}
_size = size;
_buffer = (uint8_t *)malloc(size);
}
vladi5700
Рядовой
Сообщения: 7
Зарегистрирован: 27 июн 2023, 07:59
Имя: Влад

UDP передача переменных по локальной сети

Сообщение vladi5700 »

Подскажите, а можно этим блоком как-то отправить пакет с содержимым " GL,0,1 " на определенный порт? Чтобы ничего кроме в пакете не было. Хочу включать и выключать GyverLamp2 по UDP. C компа успешно включается и выключается пакетом как на скрине
test.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

UDP передача переменных по локальной сети

Сообщение WildCat »

Блок отправляет строку (string). Что там напишите, то и отправит.
vladi5700
Рядовой
Сообщения: 7
Зарегистрирован: 27 июн 2023, 07:59
Имя: Влад

UDP передача переменных по локальной сети

Сообщение vladi5700 »

WildCat писал(а): 18 июл 2023, 13:44 Блок отправляет строку (string). Что там напишите, то и отправит.
В лоб пробовал, не работает. А ID, топик и т д он в пакет не вставляет разве? Мне надо чтобы строка ушла в чистом виде, тоесть чтобы кроме строки в пакете ничего не было. Можно так как-то реализовать отправку?
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

UDP передача переменных по локальной сети

Сообщение WildCat »

vladi5700 писал(а): 18 июл 2023, 14:07 Можно так как-то реализовать отправку?

Гайвер лампа - готовое устройство?
Может в топик записать GL, а в данные 0,1?

В лампе нет возможности из пакета UDP только данные вытащить?
vladi5700
Рядовой
Сообщения: 7
Зарегистрирован: 27 июн 2023, 07:59
Имя: Влад

UDP передача переменных по локальной сети

Сообщение vladi5700 »

WildCat писал(а): 18 июл 2023, 14:13 Гайвер лампа - готовое устройство?
Да, там проект довольно сложный от Алекса Гайвера, что либо менять там знаний не хватает, но у него есть подробное описание его протокола, откуда я вытащил эту строку GL,0,1 и GL,0,0 на вкл/выкл. Попробовал с компьютера отправлять эти строки и все работает. Теперь ищу способ как с ЕСП этим рулить :smile37: С данным блоком я так понимаю вся проблема в том, что он отправляет не только строку, но и служебную информацию. Возможно можно что-то из кода блока удалить, чтобы отправлялась только строка без всех остальных атрибутов
Ответить

Вернуться в «Коммуникация и связь»

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

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