use shared timeout

This commit is contained in:
technyon
2022-06-01 18:44:55 +02:00
parent cc0dc230ec
commit 0061c9af63
6 changed files with 22 additions and 13 deletions

View File

@@ -42,6 +42,7 @@ file(GLOB SRCFILES
lib/ESP32_BLE_Arduino-1.0.1/src/*.h lib/ESP32_BLE_Arduino-1.0.1/src/*.h
lib/WiFiManager/WiFiManager.cpp lib/WiFiManager/WiFiManager.cpp
lib/Crc16/Crc16.h lib/Crc16/Crc16.h
lib/nuki_ble/src/NukiTimeout.cpp
lib/nuki_ble/src/NukiBle.cpp lib/nuki_ble/src/NukiBle.cpp
lib/nuki_ble/src/NukiOpener.cpp lib/nuki_ble/src/NukiOpener.cpp
lib/nuki_ble/src/NukiConstants.h lib/nuki_ble/src/NukiConstants.h

View File

@@ -6,12 +6,13 @@
NukiOpenerWrapper* nukiOpenerInst; NukiOpenerWrapper* nukiOpenerInst;
NukiOpenerWrapper::NukiOpenerWrapper(const std::string& deviceName, uint32_t id, BleScanner::Scanner* scanner, NetworkOpener* network, Preferences* preferences) NukiOpenerWrapper::NukiOpenerWrapper(const std::string& deviceName, uint32_t id, BleScanner::Scanner* scanner, NetworkOpener* network, Preferences* preferences, Nuki::NukiTimeout* nukiTimeout)
: _deviceName(deviceName), : _deviceName(deviceName),
_nukiOpener(deviceName, id), _nukiOpener(deviceName, id, nukiTimeout),
_bleScanner(scanner), _bleScanner(scanner),
_network(network), _network(network),
_preferences(preferences) _preferences(preferences),
_nukiTimeout(nukiTimeout)
{ {
nukiOpenerInst = this; nukiOpenerInst = this;

View File

@@ -9,7 +9,7 @@
class NukiOpenerWrapper : public NukiOpener::SmartlockEventHandler class NukiOpenerWrapper : public NukiOpener::SmartlockEventHandler
{ {
public: public:
NukiOpenerWrapper(const std::string& deviceName, uint32_t id, BleScanner::Scanner* scanner, NetworkOpener* network, Preferences* preferences); NukiOpenerWrapper(const std::string& deviceName, uint32_t id, BleScanner::Scanner* scanner, NetworkOpener* network, Preferences* preferences, Nuki::NukiTimeout* nukiTimeout);
virtual ~NukiOpenerWrapper(); virtual ~NukiOpenerWrapper();
void initialize(); void initialize();
@@ -46,6 +46,7 @@ private:
BleScanner::Scanner* _bleScanner; BleScanner::Scanner* _bleScanner;
NetworkOpener* _network; NetworkOpener* _network;
Preferences* _preferences; Preferences* _preferences;
Nuki::NukiTimeout* _nukiTimeout;
int _intervalLockstate = 0; // seconds int _intervalLockstate = 0; // seconds
int _intervalBattery = 0; // seconds int _intervalBattery = 0; // seconds
int _intervalConfig = 60 * 60; // seconds int _intervalConfig = 60 * 60; // seconds

View File

@@ -6,11 +6,12 @@
NukiWrapper* nukiInst; NukiWrapper* nukiInst;
NukiWrapper::NukiWrapper(const std::string& deviceName, uint32_t id, Network* network, Preferences* preferences) NukiWrapper::NukiWrapper(const std::string& deviceName, uint32_t id, Network* network, Preferences* preferences, Nuki::NukiTimeout* nukiTimeout)
: _deviceName(deviceName), : _deviceName(deviceName),
_nukiBle(deviceName, id), _nukiBle(deviceName, id, nukiTimeout),
_network(network), _network(network),
_preferences(preferences) _preferences(preferences),
_nukiTimeout(nukiTimeout)
{ {
nukiInst = this; nukiInst = this;

View File

@@ -9,7 +9,7 @@
class NukiWrapper : public Nuki::SmartlockEventHandler class NukiWrapper : public Nuki::SmartlockEventHandler
{ {
public: public:
NukiWrapper(const std::string& deviceName, uint32_t id, Network* network, Preferences* preferences); NukiWrapper(const std::string& deviceName, uint32_t id, Network* network, Preferences* preferences, Nuki::NukiTimeout* nukiTimeout);
virtual ~NukiWrapper(); virtual ~NukiWrapper();
void initialize(); void initialize();
@@ -46,6 +46,7 @@ private:
BleScanner::Scanner* _bleScanner; BleScanner::Scanner* _bleScanner;
Network* _network; Network* _network;
Preferences* _preferences; Preferences* _preferences;
Nuki::NukiTimeout* _nukiTimeout;
int _intervalLockstate = 0; // seconds int _intervalLockstate = 0; // seconds
int _intervalBattery = 0; // seconds int _intervalBattery = 0; // seconds
int _intervalConfig = 60 * 60; // seconds int _intervalConfig = 60 * 60; // seconds

View File

@@ -13,6 +13,7 @@
Network* network = nullptr; Network* network = nullptr;
NetworkOpener* networkOpener = nullptr; NetworkOpener* networkOpener = nullptr;
WebCfgServer* webCfgServer = nullptr; WebCfgServer* webCfgServer = nullptr;
Nuki::NukiTimeout* nukiTimeout = nullptr;
NukiWrapper* nuki = nullptr; NukiWrapper* nuki = nullptr;
NukiOpenerWrapper* nukiOpener = nullptr; NukiOpenerWrapper* nukiOpener = nullptr;
PresenceDetection* presenceDetection = nullptr; PresenceDetection* presenceDetection = nullptr;
@@ -36,6 +37,7 @@ void nukiTask(void *pvParameters)
{ {
nuki->update(); nuki->update();
nukiOpener->update(); nukiOpener->update();
nukiTimeout->update();
} }
} }
@@ -126,10 +128,12 @@ void setup()
initEthServer(networkDevice); initEthServer(networkDevice);
nuki = new NukiWrapper("NukiHub", deviceId, network, preferences); nukiTimeout = new Nuki::NukiTimeout();
nuki = new NukiWrapper("NukiHub", deviceId, network, preferences, nukiTimeout);
nuki->initialize(); nuki->initialize();
nukiOpener = new NukiOpenerWrapper("NukiHub", deviceId, nuki->bleScanner(), networkOpener, preferences); nukiOpener = new NukiOpenerWrapper("NukiHub", deviceId, nuki->bleScanner(), networkOpener, preferences, nukiTimeout);
nukiOpener->initialize(); nukiOpener->initialize();
webCfgServer = new WebCfgServer(nuki, network, ethServer, preferences, networkDevice == NetworkDeviceType::WiFi); webCfgServer = new WebCfgServer(nuki, network, ethServer, preferences, networkDevice == NetworkDeviceType::WiFi);