Сервер ESP-CoAP вызывает обработчик ресурсов без получения пакетов - PullRequest
0 голосов
/ 16 октября 2019

Я реализовал сервер coap:

#include <coap_server.h>
coapServer coap;
void getListOfWiFi(coapPacket *packet, IPAddress ip, int port, int obs) //id = 0 GET
{
  Serial.println("hello");
    int numberOfNetworks = WiFi.scanNetworks();

    String WifiList = "";
    for (int i = 0; i < numberOfNetworks - 1; i++)
    {
        WifiList += WiFi.SSID(i) + "####";
    }
    WifiList += WiFi.SSID(numberOfNetworks - 1);
    char *temp = new char[WifiList.length() + 1];
    WifiList.toCharArray(temp, WifiList.length() + 1);

    coap.sendResponse(ip, port, temp);
    Serial.println("goodbye");
}
void setup()
{
       coap.server(getListOfWiFi, "wifilist");
       coap.start(5683);
}
void loop()
{
     coap.loop();
}

Когда запускается esp, вывод последовательного монитора:

hello
goodbye
hello
goodbye
hello
goodbye
hello
goodbye
hello
goodbye
hello
goodbye

И он продолжает печатать это без каких-либо принимаемых пакетов или запросов... почему это происходит? Спасибо.

Я использую эту библиотеку coap:
https://github.com/automote/ESP-CoAP на esp8266

Вывод ip и порта:

(IP unset)
port : 
0

1 Ответ

0 голосов
/ 16 октября 2019

Похоже, что эта конкретная библиотека CoAP внутренне регулярно опрашивает первый зарегистрированный ресурс для изменений с последним полученным сообщением CoAP, когда бы ни был получен какой-либо пакет, возможно, чтобы обнаружить, должно ли быть отправлено наблюдение.

Возможно, вы захотите обсудить это с авторами библиотеки, когда это называется, это похоже на ошибку в библиотеке.

...