• Система автоматизации с открытым исходным кодом на базе 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 отправлять, только процесс грузить.
 
Сверху Снизу