Вопрос с функциями в ESP8266
- Войдите на сайт для отправки комментариев
Пт, 02/11/2018 - 16:09
Почему вот так работает:
int test = 0; HTTP.on("/test", HTTP_GET, []() { if(test == LOW) { test = HIGH; HTTP.send(200, "text/html","ON"); } else { test = LOW; HTTP.send(200, "text/html","OFF"); } });
А если в функции, то не работает.....
int test = 0; HTTP.on("/test", HTTP_GET, []() { toggleTEST(test); }); void toggleTEST (int X) { if(X == LOW) { X = HIGH; HTTP.send(200, "text/html","ON"); } else { X = LOW; HTTP.send(200, "text/html","OFF"); } }
Где ошибка понять то не могу?
А Вы уверенеы, что Вам это надо, и что Вы знаете, что делаете? Точно уверены?
Здесь используются лямбда выражения, о которых 99% людей реально, профессионально работающих на С++ вообще никогда не слышали. И ничего, как-то работают.
Если Вы действительно хотите лезть в такие дебри, то изучайте - https://msdn.microsoft.com/ru-ru/library/dd293608.aspx, там помёте, что во втором случае нужен иной синтакис вызова. Если же Вы не профи, а просто случайно скачали этот код откуда-то, выбросьте и ищите другой - на этой дороге, это далеко не последние грабли.
Судя по Вашим другим вопросам на форуме, Вы не профессиональный программитс, а значит Вам реально лучше выбросить этот код и писать нормально, без лямбд.
Функция нужна, чтоб ~60 кнопок описать.
Нет, я не профи совсем.
Скилл по чуть поднимаю свой)
Ну, тогда забудьте про лямбды и пишите нормально (или ищите нормальный код). Нет, если хотите, исправьте то, что есть (по той ссылке, что я дал, там всё понятно), но потом не жалуйтесь - это не последние грабли.
Чушь короче.
ESP отправляет в Arduino mega, и обратно получает значение от меги.
И этот говнокод работает как надо. ХЗ вобшем.