ESP-link и библиотека ELClient

Обсуждаем контроллеры компании Atmel.
Ответить
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

Сообщение melandr »

Добрый день, уважаемые коты!! Всех с наступающим Новым годом и Рождеством!!!
Пусть в этом году вас ждет только радость, здоровье и удача! Пусть он будет годом исполнения желаний и претворения в жизнь всех планов!

Теперь по делу. Возможно не в тему, но Ардуиновского раздела не нашел. А вопрос больше по С++
Установил на ESP8266 прошивку ESP-link https://github.com/jeelabs/esp-link. В Ардуино пытаюсь прошить пример из библиотеки ELClient - webserver_controls. До этого получилось установить этот пример в Ардуино, но сейчас пытаюсь компилировать, выдает ошибки. Уже не знаю куда копать. Есть подозрения, что из-за обновления IDE Arduino выдает ошибки на этапе компиляции. Может кто сможет подсказать куда копать. А то пытаюсь лопатить код библиотеки ELClient - https://github.com/jeelabs/el-client, но с шаблонами не сильно дружу, поэтому тяжело дается код.
Вот сообщения из компилятора об ошибках
СпойлерJ:\Documents\AVR\Project\ARDUINO\webserver_controls\LedPage.ino: In function 'void ledInit()':

LedPage:222:47: error: no matching function for call to 'FP<void, char*>::attach(void (&)(const char*))'

ledHandler->buttonCb.attach(ledButtonPressCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: candidate: template<class T> void FP<retT, argT>::attach(T*, retT (T::*)(argT)) [with T = T; retT = void; argT = char*]

void attach(T *item, retT (T::*method)(argT))

^

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: template argument deduction/substitution failed:

J:\Documents\AVR\Project\ARDUINO\webserver_controls\LedPage.ino:222:47: note: candidate expects 2 arguments, 1 provided

ledHandler->buttonCb.attach(ledButtonPressCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: candidate: void FP<retT, argT>::attach(retT (*)(argT)) [with retT = void; argT = char*] <near match>

void attach(retT (*function)(argT));

^

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: conversion of argument 1 would be ill-formed:

LedPage:223:46: error: no matching function for call to 'FP<void, char*>::attach(void (&)(const char*))'

ledHandler->setFieldCb.attach(ledSetFieldCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: candidate: template<class T> void FP<retT, argT>::attach(T*, retT (T::*)(argT)) [with T = T; retT = void; argT = char*]

void attach(T *item, retT (T::*method)(argT))

^

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: template argument deduction/substitution failed:

J:\Documents\AVR\Project\ARDUINO\webserver_controls\LedPage.ino:223:46: note: candidate expects 2 arguments, 1 provided

ledHandler->setFieldCb.attach(ledSetFieldCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: candidate: void FP<retT, argT>::attach(retT (*)(argT)) [with retT = void; argT = char*] <near match>

void attach(retT (*function)(argT));

^

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: conversion of argument 1 would be ill-formed:

LedPage:224:38: error: no matching function for call to 'FP<void, char*>::attach(void (&)(const char*))'

ledHandler->loadCb.attach(ledLoadCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: candidate: template<class T> void FP<retT, argT>::attach(T*, retT (T::*)(argT)) [with T = T; retT = void; argT = char*]

void attach(T *item, retT (T::*method)(argT))

^

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: template argument deduction/substitution failed:

J:\Documents\AVR\Project\ARDUINO\webserver_controls\LedPage.ino:224:38: note: candidate expects 2 arguments, 1 provided

ledHandler->loadCb.attach(ledLoadCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: candidate: void FP<retT, argT>::attach(retT (*)(argT)) [with retT = void; argT = char*] <near match>

void attach(retT (*function)(argT));

^

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: conversion of argument 1 would be ill-formed:

LedPage:225:44: error: no matching function for call to 'FP<void, char*>::attach(void (&)(const char*))'

ledHandler->refreshCb.attach(ledRefreshCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: candidate: template<class T> void FP<retT, argT>::attach(T*, retT (T::*)(argT)) [with T = T; retT = void; argT = char*]

void attach(T *item, retT (T::*method)(argT))

^

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: template argument deduction/substitution failed:

J:\Documents\AVR\Project\ARDUINO\webserver_controls\LedPage.ino:225:44: note: candidate expects 2 arguments, 1 provided

ledHandler->refreshCb.attach(ledRefreshCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: candidate: void FP<retT, argT>::attach(retT (*)(argT)) [with retT = void; argT = char*] <near match>

void attach(retT (*function)(argT));

^

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: conversion of argument 1 would be ill-formed:

J:\Documents\AVR\Project\ARDUINO\webserver_controls\UserPage.ino: In function 'void userInit()':

UserPage:93:52: error: no matching function for call to 'FP<void, char*>::attach(void (&)(const char*))'

userPageHandler->setFieldCb.attach(userSetFieldCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: candidate: template<class T> void FP<retT, argT>::attach(T*, retT (T::*)(argT)) [with T = T; retT = void; argT = char*]

void attach(T *item, retT (T::*method)(argT))

^

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: template argument deduction/substitution failed:

J:\Documents\AVR\Project\ARDUINO\webserver_controls\UserPage.ino:93:52: note: candidate expects 2 arguments, 1 provided

userPageHandler->setFieldCb.attach(userSetFieldCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: candidate: void FP<retT, argT>::attach(retT (*)(argT)) [with retT = void; argT = char*] <near match>

void attach(retT (*function)(argT));

^

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: conversion of argument 1 would be ill-formed:

UserPage:94:44: error: no matching function for call to 'FP<void, char*>::attach(void (&)(const char*))'

userPageHandler->loadCb.attach(userLoadCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: candidate: template<class T> void FP<retT, argT>::attach(T*, retT (T::*)(argT)) [with T = T; retT = void; argT = char*]

void attach(T *item, retT (T::*method)(argT))

^

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: template argument deduction/substitution failed:

J:\Documents\AVR\Project\ARDUINO\webserver_controls\UserPage.ino:94:44: note: candidate expects 2 arguments, 1 provided

userPageHandler->loadCb.attach(userLoadCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: candidate: void FP<retT, argT>::attach(retT (*)(argT)) [with retT = void; argT = char*] <near match>

void attach(retT (*function)(argT));

^

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: conversion of argument 1 would be ill-formed:

J:\Documents\AVR\Project\ARDUINO\webserver_controls\VoltagePage.ino: In function 'void voltageInit()':

VoltagePage:127:49: error: no matching function for call to 'FP<void, char*>::attach(void (&)(const char*))'

voltageHandler->loadCb.attach(voltageRefreshCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: candidate: template<class T> void FP<retT, argT>::attach(T*, retT (T::*)(argT)) [with T = T; retT = void; argT = char*]

void attach(T *item, retT (T::*method)(argT))

^

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: template argument deduction/substitution failed:

J:\Documents\AVR\Project\ARDUINO\webserver_controls\VoltagePage.ino:127:49: note: candidate expects 2 arguments, 1 provided

voltageHandler->loadCb.attach(voltageRefreshCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: candidate: void FP<retT, argT>::attach(retT (*)(argT)) [with retT = void; argT = char*] <near match>

void attach(retT (*function)(argT));

^

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: conversion of argument 1 would be ill-formed:

VoltagePage:128:52: error: no matching function for call to 'FP<void, char*>::attach(void (&)(const char*))'

voltageHandler->refreshCb.attach(voltageRefreshCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: candidate: template<class T> void FP<retT, argT>::attach(T*, retT (T::*)(argT)) [with T = T; retT = void; argT = char*]

void attach(T *item, retT (T::*method)(argT))

^

C:\AVR\Arduino\libraries\ELClient/FP.h:147:10: note: template argument deduction/substitution failed:

J:\Documents\AVR\Project\ARDUINO\webserver_controls\VoltagePage.ino:128:52: note: candidate expects 2 arguments, 1 provided

voltageHandler->refreshCb.attach(voltageRefreshCb);

^

In file included from C:\AVR\Arduino\libraries\ELClient/ELClient.h:12:0,

from J:\Documents\AVR\Project\ARDUINO\webserver_controls\webserver_controls.ino:17:

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: candidate: void FP<retT, argT>::attach(retT (*)(argT)) [with retT = void; argT = char*] <near match>

void attach(retT (*function)(argT));

^

C:\AVR\Arduino\libraries\ELClient/FP.h:157:10: note: conversion of argument 1 would be ill-formed:

exit status 1
no matching function for call to 'FP<void, char*>::attach(void (&)(const char*))'
Вложения
esp-link-v3.2.47.rar
(247.94 КБ) 169 скачиваний
el-client-3.0.alpha0.zip
(119.5 КБ) 179 скачиваний
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 333
Зарегистрирован: Ср мар 09, 2016 08:07:41

Сообщение JackSmith »

что-то вы не так делаете. у меня примеры rest и mqtt собрались без ошибок, а в примере webserver_controls выдало ошибку на отсутствие файла avr/io.h
Реклама
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

Сообщение melandr »

rest и mqtt у меня тоже собираются без ошибок. Но я хочу собрать webserver_controls. И при его сборке выходят ошибки не на отсутствие файлов а в самом коде
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

Сообщение melandr »

Короче, не знаю, правильно ли я сделал. Но я в местах реализации функций, которые выбивают ошибку убрал const
Было:
void ledButtonPressCb(const char * button)
Стало:
void ledButtonPressCb(char * button)
И все сообщения об ошибках пропали, и исходник нормально компилируется. Код залил в Ардуино, усе работает
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «AVR»