Несколько пакетов данных с CIPSEND, связывают каждый с pathway

При использовании CIPSEND от Arduino Uno до ESP8266, подключенного к Uno, есть ли способ связать пакет данных, отправленный с путем, чтобы его можно было получить в указанном пути из браузера?

Например, ESP8266WebServer.h имеет такую команду:

server.on(“/specificArgs”, handleSpecificArg);   //Свяжите функцию обработчика с путем

где первым аргументом является путь/имя файла - что эквивалентно этому с помощью использования CIPSEND?

, 👍-1

Обсуждение

Arduino отправляет CIPSEND на ESP8266, а не наоборот. Трудно понять, о чем вы спрашиваете., @Majenko

Я перефразировал вопрос. См.пример ESP8266WebServer. h здесь https://techtutorialsx.com/2016/10/22/esp8266-webserver-getting-query-parameters/ и вы увидите, что я имею в виду, связывая пакет данных с путем/именем файла., @garrettlynchirl

Итак, вы используете Arduino и ESP8266 в качестве веб-сервера? Браузер отправляет запрос с указанием пути, и ваш CIPSEND-это то, что вы отправляете в ответ на него. "Ассоциация" - это тот факт, что вы отвечаете на запрос., @Majenko

https://github.com/khoih-prog/ESP8266_AT_WebServer, @Juraj

@Juraj полезен в крайнем случае, но я бы предпочел, чтобы он работал с командами AT, а не переходил от этого к библиотеке., @garrettlynchirl


1 ответ


0

Ваш "CIPSEND" уже связан с путем.

Последовательность, как правило, такова:

  1. Вы настраиваете ESP8266 в качестве сервера, включая включение нескольких подключений
  2. Вы переходите на IP-адрес
  3. Браузер отправляет HTTP-запрос, включающий путь. С ним связан номер "канала".
  4. Вы генерируете HTTP-ответ и отправляете его на канал, указанный в 3, используя AT+CIPSEND.

Тот факт, что вы отправляете ответ браузеру по каналу, по которому поступил запрос, "связывает" ответ с запросом.

Чтобы делать разные вещи в зависимости от пути, вы должны распознать этот путь в запросе и соответствующим образом сгенерировать другой ответ.

,

"Чтобы делать разные вещи в зависимости от пути, вы должны распознать этот путь в запросе и соответственно сгенерировать другой ответ". - Да, как? Если я хочу, чтобы первый пакет данных, отправленный на esp8266, был связан с " 192.168.4.1/", а второй-с "192.168.4.1/данные", как это сделать?, @garrettlynchirl

Когда вы получаете запрос на получение/, вы отправляете ответ на /. Когда вы получаете запрос на /данные, вы отправляете ответ на /данные., @Majenko

Хорошо, я думаю, что начинаю понимать, что вы имеете в виду - Если я правильно понимаю, я должен выполнить" esp8266.find ("/");" и " esp8266.find ("/данные") "в своем коде arduino, а затем" if ()", чтобы определить, какой путь был запрошен esp8266. Мне нужно это проверить, так как есть дополнительная сложность, о которой я не упоминал в своем вопросе. Пакет данных 1-это веб-страница с ajax, пакет данных 2-строка json. Json постоянно обновляется arduino, веб-страница ajax напрямую запрашивает ajax. Насколько я понимаю, это ничего не меняет, но нужно проверить..., @garrettlynchirl