Arduino Ethernet WebServer library

miks69
Offline
Зарегистрирован: 16.02.2020

Многочисленным поклонникам ESP-шных устройств наверняка хорошо знакома библиотека <ESP8266WebServer>, которая позволяет программисту легко и удобно работать с HTML.

Появилась идея адаптировать указанную библиотеку для работы в варианте Arduino+Ethernet Shield (w5100/w5200/w5500), т.е. с библиотекой <Ethernet> вместо <ESPWiFi>. Логика работы в обоих вариантах очень похожа и достаточно проста для понимания. Вот только с отладкой кода возникли некоторые проблемы.

В частности, в указанной библиотеке используется следующее объявление типа:

typedef std::function<void (void)> THandlerFunction;

которое в варианте с ESP компилируется без проблем, а вот при попытке скомпилировать в варианте с Arduino выдает такую ошибку:

error: 'function' in namespace 'std' does not name a template type

Может у кого есть мысли о причинах такого поведения компилятора или хотя бы мысли куда копать?

rkit
Offline
Зарегистрирован: 23.11.2016

Компилятор авр не линкует всю стандартную библиотеку C++ в целях экономии памяти. Копать никуда не надо, потому что не получится.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Как бы между AVR и ESP есть небольшая разница. В частности, в размере памяти.

sadman41
Offline
Зарегистрирован: 19.10.2016

Лучше на ESP портируй Ethernet.h - штоп есп-шка прикидывалась эзернет-модулем.