Используете WifiUdp.h на Arduino Mega и ESP8266?

Я пытался запустить эту библиотеку на Arduino Mega, используя ESP8266 в качестве замены Wi-Fi Shield, как было предложено в моей старой теме.

Проблема в том, что после этого кода у меня возникла ошибка при компиляции:

#include <WiFiEsp.h>
#include <WiFiEspClient.h>
#include <WiFiEspUdp.h>


#include "AppleMidi.h"
APPLEMIDI_CREATE_INSTANCE(WiFiUDP, appleMIDI1);
....

статус выхода 1

WiFiUDP не был объявлен в этой области

если бы я изменил код так:

#include <WiFiEsp.h>
#include <WiFiUdp.h>


#include "AppleMidi.h"
APPLEMIDI_CREATE_INSTANCE(WiFiUDP, appleMIDI1);
....

Вместо этого я получил эту ошибку

C:\Program Files (x86)\Arduino\libraries\WiFi\src\utility\server_drv.cpp:313:40: ошибка: «WARN» не было объявлено в этой области

WARN("error waitResponse isDataSent");

                                    ^

статус выхода 1

Полный код здесь, на Pastebin. Я уже почти застрял. Пожалуйста, помогите! :(

Спасибо :D

, 👍1

Обсуждение

WiFiUdp.h — это часть библиотеки WiFi для Arduino WiFi Shield. Вы не можете ее использовать., @Juraj


1 ответ


Лучший ответ:

2

Класс WiFiEsp для UDP — WiFiEspUDP

#include <WiFiEsp.h>
#include <WiFiEspUdp.h>
#include "AppleMidi.h"

APPLEMIDI_CREATE_INSTANCE(WiFiEspUDP, AppleMIDI);
,

То есть мне просто нужно изменить WiFiUDP на WiFiEspUDP, и все готово?, @Rinaldo Jonathan

да, макрос создает объект с шаблонным типом AppleMidi_Class<WiFiEspUDP> AppleMIDI;, @Juraj

проверю сегодня вечером. если сработает, приму как ответ. спасибо, что снова мне помогли :D, @Rinaldo Jonathan

Вместо этого я использовал #include "WiFiEsp.h" и #include "WiFiEspUdp.h", и все скомпилировалось. Спасибо!, @Rinaldo Jonathan