Files
IoTManager/src/Class/AsyncActions.cpp

41 lines
1.3 KiB
C++
Raw Normal View History

2020-08-24 13:56:12 +03:00
#include "Class/AsyncActions.h"
AsyncActions::AsyncActions(){};
void AsyncActions::loop() {
count++;
if (count > 5000) {
// Проверяем что переменная содержит указатель - не пустая не null
// и непосредственно вызываем то, на что это указывает
// просто пишем имя - без () - это указатель на фунецию.
// () - вызываем функцию - с пустым набором параметров
if (_cb != NULL) {
_cb();
}
//или ровно тоже самое
//if (_cb) _cb();
if (_pcb) {
if (_pcb("SomeTextValue")) {
Serial.println("Got true!");
} else {
Serial.println("Got false!");
}
}
2020-08-24 13:56:12 +03:00
count = 0;
}
}
//передаем внутрь класса функцию любую void функцию без агрументов
void AsyncActions::setCallback(AsyncActionCb cb) {
_cb = cb;
}
//передаем внутрь класса функцию любую void функцию с аргументами
void AsyncActions::setCallback(AsyncParamActionCb pcb) {
_pcb = pcb;
}
2020-08-24 13:56:12 +03:00
AsyncActions* async;