• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Отправка сообщения всем клиентам

Konstantin

New member
Посоветуйте как отправить сообщение сразу всем пользователям, не зная сколько подключено.
  • Возможно ли узнать количество подключённых пользователей?
  • Как отправить сообщение этим пользователям?
Настройка ESP:
Код:
AT+CIPMUX=1
AT+CIPSERVER=1,8888

AT+CIPSEND=0,8
AT+CIPSEND=1,8
...
Управляю ESP с Atmega, пишу на C.
 
Последнее редактирование:

Andy Korg

Moderator
Команда форума
На AT прошивке вроде как 4 клиента максимум, поэтому предлагаю тупо перебирать.
 

Konstantin

New member
На AT прошивке вроде как 4 клиента максимум, поэтому предлагаю тупо перебирать.
Вы правы. Но перебор не слишком то быстр. Не посоветуете как перебрать циклом. Исходя из того, что на атмеги функция передачи строки по UART с параметрами char.
Код:
for(int i =0; i<5;i++){
strUART("AT+CIPSEND= i , 8");
}
вот там где в функции i как её вставить в выражение char???
 

Andy Korg

Moderator
Команда форума
Исходя из того, что на атмеги функция передачи строки по UART с параметрами char.
Наверно имелось в виду "передачи строки по UART с параметром в виде указателя на char"? Если да, то как-то так:
Код:
#include <string.h>
char s[20], s1[2]="0";
for(; s1[0]<(0x30+5);s1[0]++){\\0x30 - отсюда начинаются коды ascii для цифр
    strcat(s, "AT+CIPSEND=");\\Начало команды
    strcat(s, s1);\\Добавляем индекс
    strcat(s, ",8");\\конец команды
    strUART(s);\\посылаем :)
    s[0]=0;\\Подготовить строку для следующей команды
}
 

Konstantin

New member
Наверно имелось в виду "передачи строки по UART с параметром в виде указателя на char"? Если да, то как-то так:
Код:
#include <string.h>
char s[20], s1[2]="0";
for(; s1[0]<(0x30+5);s1[0]++){\\0x30 - отсюда начинаются коды ascii для цифр
    strcat(s, "AT+CIPSEND=");\\Начало команды
    strcat(s, s1);\\Добавляем индекс
    strcat(s, ",8");\\конец команды
    strUART(s);\\посылаем :)
    s[0]=0;\\Подготовить строку для следующей команды
}
Хорошая идея, еще отчистил массив первый, а то не ровно работало. А как узнать количество подсоединённых клиентов, а то всем 5 отправлять, только процесс грузить.
 
Сверху Снизу