From b6e6b4400c2618509c5e092d129acb7b79b20682 Mon Sep 17 00:00:00 2001 From: technyon Date: Mon, 6 Oct 2025 20:10:36 +0700 Subject: [PATCH] move code to get allowed weekdays code into helper class --- src/NukiNetworkLock.cpp | 46 +------------------------------------ src/NukiNetworkOpener.cpp | 47 ++------------------------------------ src/util/NukiHelper.cpp | 48 +++++++++++++++++++++++++++++++++++++++ src/util/NukiHelper.h | 3 +++ 4 files changed, 54 insertions(+), 90 deletions(-) diff --git a/src/NukiNetworkLock.cpp b/src/NukiNetworkLock.cpp index d50f4fe..1a2f093 100644 --- a/src/NukiNetworkLock.cpp +++ b/src/NukiNetworkLock.cpp @@ -1045,51 +1045,7 @@ void NukiNetworkLock::publishKeypad(const std::list& entr uint8_t allowedWeekdaysInt = entry.allowedWeekdays; JsonArray weekdays = jsonEntry["allowedWeekdays"].to(); - while(allowedWeekdaysInt > 0) - { - if(allowedWeekdaysInt >= 64) - { - weekdays.add("mon"); - allowedWeekdaysInt -= 64; - continue; - } - if(allowedWeekdaysInt >= 32) - { - weekdays.add("tue"); - allowedWeekdaysInt -= 32; - continue; - } - if(allowedWeekdaysInt >= 16) - { - weekdays.add("wed"); - allowedWeekdaysInt -= 16; - continue; - } - if(allowedWeekdaysInt >= 8) - { - weekdays.add("thu"); - allowedWeekdaysInt -= 8; - continue; - } - if(allowedWeekdaysInt >= 4) - { - weekdays.add("fri"); - allowedWeekdaysInt -= 4; - continue; - } - if(allowedWeekdaysInt >= 2) - { - weekdays.add("sat"); - allowedWeekdaysInt -= 2; - continue; - } - if(allowedWeekdaysInt >= 1) - { - weekdays.add("sun"); - allowedWeekdaysInt -= 1; - continue; - } - } + NukiHelper::weekdaysToJsonArray(allowedWeekdaysInt, weekdays); char allowedFromTimeT[5]; sprintf(allowedFromTimeT, "%02d:%02d", entry.allowedFromTimeHour, entry.allowedFromTimeMin); diff --git a/src/NukiNetworkOpener.cpp b/src/NukiNetworkOpener.cpp index 25f1a23..bed3cf7 100644 --- a/src/NukiNetworkOpener.cpp +++ b/src/NukiNetworkOpener.cpp @@ -6,6 +6,7 @@ #include "Config.h" #include #include "hal/wdt_hal.h" +#include "util/NukiHelper.h" #include "util/NukiOpenerHelper.h" NukiNetworkOpener::NukiNetworkOpener(NukiNetwork* network, Preferences* preferences, char* buffer, size_t bufferSize) @@ -1273,51 +1274,7 @@ void NukiNetworkOpener::publishAuth(const std::list(); - while(allowedWeekdaysInt > 0) - { - if(allowedWeekdaysInt >= 64) - { - weekdays.add("mon"); - allowedWeekdaysInt -= 64; - continue; - } - if(allowedWeekdaysInt >= 32) - { - weekdays.add("tue"); - allowedWeekdaysInt -= 32; - continue; - } - if(allowedWeekdaysInt >= 16) - { - weekdays.add("wed"); - allowedWeekdaysInt -= 16; - continue; - } - if(allowedWeekdaysInt >= 8) - { - weekdays.add("thu"); - allowedWeekdaysInt -= 8; - continue; - } - if(allowedWeekdaysInt >= 4) - { - weekdays.add("fri"); - allowedWeekdaysInt -= 4; - continue; - } - if(allowedWeekdaysInt >= 2) - { - weekdays.add("sat"); - allowedWeekdaysInt -= 2; - continue; - } - if(allowedWeekdaysInt >= 1) - { - weekdays.add("sun"); - allowedWeekdaysInt -= 1; - continue; - } - } + NukiHelper::weekdaysToJsonArray(allowedWeekdaysInt, weekdays); char allowedFromTimeT[5]; sprintf(allowedFromTimeT, "%02d:%02d", entry.allowedFromTimeHour, entry.allowedFromTimeMin); diff --git a/src/util/NukiHelper.cpp b/src/util/NukiHelper.cpp index 506364b..b37da09 100644 --- a/src/util/NukiHelper.cpp +++ b/src/util/NukiHelper.cpp @@ -446,6 +446,54 @@ void NukiHelper::fobActionToString(const int fobact, char* str) } } +void NukiHelper::weekdaysToJsonArray(int weekdaysInt, JsonArray& weekdays) +{ + while(weekdaysInt > 0) + { + if(weekdaysInt >= 64) + { + weekdays.add("mon"); + weekdaysInt -= 64; + continue; + } + if(weekdaysInt >= 32) + { + weekdays.add("tue"); + weekdaysInt -= 32; + continue; + } + if(weekdaysInt >= 16) + { + weekdays.add("wed"); + weekdaysInt -= 16; + continue; + } + if(weekdaysInt >= 8) + { + weekdays.add("thu"); + weekdaysInt -= 8; + continue; + } + if(weekdaysInt >= 4) + { + weekdays.add("fri"); + weekdaysInt -= 4; + continue; + } + if(weekdaysInt >= 2) + { + weekdays.add("sat"); + weekdaysInt -= 2; + continue; + } + if(weekdaysInt >= 1) + { + weekdays.add("sun"); + weekdaysInt -= 1; + } + } +} + void NukiHelper::printCommandResult(Nuki::CmdResult result) { diff --git a/src/util/NukiHelper.h b/src/util/NukiHelper.h index e2e6717..9cfc48d 100644 --- a/src/util/NukiHelper.h +++ b/src/util/NukiHelper.h @@ -2,6 +2,7 @@ #include "NukiConstants.h" #include "NukiLock.h" +#include class NukiHelper { @@ -19,5 +20,7 @@ public: static void homeKitStatusToString(const int hkstatus, char* str); static void fobActionToString(const int fobact, char* str); + static void weekdaysToJsonArray(int weekdaysInt, JsonArray& weekdays); + static void printCommandResult(Nuki::CmdResult result); }; \ No newline at end of file