mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
call back test class
This commit is contained in:
@@ -8,19 +8,19 @@
|
||||
// Новый тип мы называем AsynсActionCb - хотя можешь назвать вообще как нравиться а что значит callBack
|
||||
|
||||
typedef std::function<void()> AsyncActionCb; //метод без результата и параметров
|
||||
|
||||
typedef std::function<bool(const String)> 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;
|
||||
extern CallBackTest* CB;
|
||||
@@ -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;
|
||||
CallBackTest* CB;
|
||||
|
||||
//CB->setCallback([]() {
|
||||
// Serial.println("123");
|
||||
//});
|
||||
//
|
||||
//CB->setCallback([](const String str) {
|
||||
// Serial.println(str);
|
||||
// return true;
|
||||
//});
|
||||
@@ -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;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user