From b1318de1dcab6f9efd2f5c793dfb43261a91547e Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Tue, 25 Aug 2020 15:45:06 +0300 Subject: [PATCH] call back test class --- .../Class/{AsyncActions.h => CallBackTest.h} | 10 ++++----- .../{AsyncActions.cpp => CallBackTest.cpp} | 22 +++++++++++++------ src/main.cpp | 6 ++--- 3 files changed, 23 insertions(+), 15 deletions(-) rename include/Class/{AsyncActions.h => CallBackTest.h} (80%) rename src/Class/{AsyncActions.cpp => CallBackTest.cpp} (74%) diff --git a/include/Class/AsyncActions.h b/include/Class/CallBackTest.h similarity index 80% rename from include/Class/AsyncActions.h rename to include/Class/CallBackTest.h index 6d639752..7b014ad2 100644 --- a/include/Class/AsyncActions.h +++ b/include/Class/CallBackTest.h @@ -7,20 +7,20 @@ // должен быть метод без результата и без параметров. // Новый тип мы называем AsynсActionCb - хотя можешь назвать вообще как нравиться а что значит callBack -typedef std::function AsyncActionCb; //метод без результата и параметров - +typedef std::function AsyncActionCb; //метод без результата и параметров typedef std::function AsyncParamActionCb; //метод без результата и параметров -class AsyncActions { +class CallBackTest { private: long count; AsyncActionCb _cb; AsyncParamActionCb _pcb; + public: - AsyncActions(); + CallBackTest(); void loop(); void setCallback(AsyncActionCb cb); void setCallback(AsyncParamActionCb pcb); }; -extern AsyncActions* async; \ No newline at end of file +extern CallBackTest* CB; \ No newline at end of file diff --git a/src/Class/AsyncActions.cpp b/src/Class/CallBackTest.cpp similarity index 74% rename from src/Class/AsyncActions.cpp rename to src/Class/CallBackTest.cpp index 821152b0..30b7f7cf 100644 --- a/src/Class/AsyncActions.cpp +++ b/src/Class/CallBackTest.cpp @@ -1,11 +1,10 @@ -#include "Class/AsyncActions.h" +#include "Class/CallBackTest.h" -AsyncActions::AsyncActions(){}; +CallBackTest::CallBackTest(){}; -void AsyncActions::loop() { +void CallBackTest::loop() { count++; if (count > 5000) { - // Проверяем что переменная содержит указатель - не пустая не null // и непосредственно вызываем то, на что это указывает // просто пишем имя - без () - это указатель на фунецию. @@ -30,12 +29,21 @@ void AsyncActions::loop() { } //передаем внутрь класса функцию любую void функцию без агрументов -void AsyncActions::setCallback(AsyncActionCb cb) { +void CallBackTest::setCallback(AsyncActionCb cb) { _cb = cb; } //передаем внутрь класса функцию любую void функцию с аргументами -void AsyncActions::setCallback(AsyncParamActionCb pcb) { +void CallBackTest::setCallback(AsyncParamActionCb pcb) { _pcb = pcb; } -AsyncActions* async; \ No newline at end of file +CallBackTest* CB; + +//CB->setCallback([]() { +// Serial.println("123"); +//}); +// +//CB->setCallback([](const String str) { +// Serial.println(str); +// return true; +//}); \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 78f0c39c..93605b1f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -75,13 +75,13 @@ void setup() { just_load = false; initialized = true; - async = new AsyncActions(); + CB = new CallBackTest(); - async->setCallback([]() { + CB->setCallback([]() { Serial.println("123"); }); - async->setCallback([](const String str) { + CB->setCallback([](const String str) { Serial.println(str); return true; });