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/WiFiManager/WiFiManager.cpp
lib/Crc16/Crc16.h
lib/nuki_ble/src/NukiTimeout.cpp
lib/nuki_ble/src/NukiBle.cpp
lib/nuki_ble/src/NukiOpener.cpp
lib/nuki_ble/src/NukiConstants.h

View File

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

View File

@@ -9,7 +9,7 @@
class NukiOpenerWrapper : public NukiOpener::SmartlockEventHandler
{
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();
void initialize();
@@ -46,6 +46,7 @@ private:
BleScanner::Scanner* _bleScanner;
NetworkOpener* _network;
Preferences* _preferences;
Nuki::NukiTimeout* _nukiTimeout;
int _intervalLockstate = 0; // seconds
int _intervalBattery = 0; // seconds
int _intervalConfig = 60 * 60; // seconds

View File

@@ -6,11 +6,12 @@
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),
_nukiBle(deviceName, id),
_nukiBle(deviceName, id, nukiTimeout),
_network(network),
_preferences(preferences)
_preferences(preferences),
_nukiTimeout(nukiTimeout)
{
nukiInst = this;

View File

@@ -9,7 +9,7 @@
class NukiWrapper : public Nuki::SmartlockEventHandler
{
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();
void initialize();
@@ -46,6 +46,7 @@ private:
BleScanner::Scanner* _bleScanner;
Network* _network;
Preferences* _preferences;
Nuki::NukiTimeout* _nukiTimeout;
int _intervalLockstate = 0; // seconds
int _intervalBattery = 0; // seconds
int _intervalConfig = 60 * 60; // seconds

View File

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