From b92474679916dfb0521797b0a6a46bba71a46160 Mon Sep 17 00:00:00 2001 From: technyon Date: Sun, 18 Aug 2024 07:20:00 +0200 Subject: [PATCH] add NetworkUtil, move NetworkDeviceType to seperate file --- clion/CMakeLists.txt | 2 ++ src/NukiNetwork.cpp | 67 ++++------------------------------- src/NukiNetwork.h | 17 ++------- src/enums/NetworkDeviceType.h | 16 +++++++++ src/util/NetworkUtil.cpp | 53 +++++++++++++++++++++++++++ src/util/NetworkUtil.h | 9 +++++ 6 files changed, 88 insertions(+), 76 deletions(-) create mode 100644 src/enums/NetworkDeviceType.h create mode 100644 src/util/NetworkUtil.cpp create mode 100644 src/util/NetworkUtil.h diff --git a/clion/CMakeLists.txt b/clion/CMakeLists.txt index 1ce88d9..a8225ff 100644 --- a/clion/CMakeLists.txt +++ b/clion/CMakeLists.txt @@ -54,6 +54,8 @@ set(SRCFILES ../lib/BleScanner/src/BleScanner.cpp ../lib/MqttLogger/src/MqttLogger.cpp ../lib/AsyncTCP/src/AsyncTCP.cpp + ../src/util/NetworkUtil.cpp + ../src/enums/NetworkDeviceType.h ) file(GLOB_RECURSE SRCFILESREC diff --git a/src/NukiNetwork.cpp b/src/NukiNetwork.cpp index 2130afc..6ce3729 100644 --- a/src/NukiNetwork.cpp +++ b/src/NukiNetwork.cpp @@ -116,66 +116,7 @@ void NukiNetwork::setupDevice() } else { - Log->print(F("Network device: ")); - switch (hardwareDetect) - { - case 1: - Log->println(F("Wi-Fi only")); - _networkDeviceType = NetworkDeviceType::WiFi; - break; - case 2: - Log->println(F("Generic W5500")); - _networkDeviceType = NetworkDeviceType::W5500; - break; - case 3: - Log->println(F("W5500 on M5Stack Atom POE")); - _networkDeviceType = NetworkDeviceType::W5500M5; - break; - case 4: - Log->println(F("Olimex ESP32-POE / ESP-POE-ISO")); - _networkDeviceType = NetworkDeviceType::Olimex_LAN8720; - break; - case 5: - Log->println(F("WT32-ETH01")); - _networkDeviceType = NetworkDeviceType::WT32_LAN8720; - break; - case 6: - Log->println(F("M5STACK PoESP32 Unit")); - _networkDeviceType = NetworkDeviceType::M5STACK_PoESP32_Unit; - break; - case 7: - Log->println(F("LilyGO T-ETH-POE")); - _networkDeviceType = NetworkDeviceType::LilyGO_T_ETH_POE; - break; - case 8: - Log->println(F("GL-S10")); - _networkDeviceType = NetworkDeviceType::GL_S10; - break; - case 9: - Log->println(F("ETH01-Evo")); - _networkDeviceType = NetworkDeviceType::ETH01_Evo; - break; - case 10: - Log->println(F("W5500 on M5Stack Atom POE S3")); - _networkDeviceType = NetworkDeviceType::W5500M5S3; - break; - case 11: - Log->println(F("Custom LAN Module")); - if(_preferences->getInt(preference_network_custom_phy, 0) > 0) - { - _networkDeviceType = NetworkDeviceType::CUSTOM; - } - else - { - Log->println(F("Custom LAN Module not setup correctly, falling back to Wi-Fi")); - _networkDeviceType = NetworkDeviceType::WiFi; - } - break; - default: - Log->println(F("Unknown hardware selected, falling back to Wi-Fi.")); - _networkDeviceType = NetworkDeviceType::WiFi; - break; - } + _networkDeviceType = NetworkUtil::GetDeviceTypeFromPreference(hardwareDetect, _preferences->getInt(preference_network_custom_phy, 0)); } switch (_networkDeviceType) @@ -378,7 +319,11 @@ void NukiNetwork::setupDevice() #endif } - #ifndef NUKI_HUB_UPDATER + Log->print(F("Network device: ")); + Log->print(_device->deviceName()); + + +#ifndef NUKI_HUB_UPDATER _device->mqttOnConnect([&](bool sessionPresent) { onMqttConnect(sessionPresent); diff --git a/src/NukiNetwork.h b/src/NukiNetwork.h index 2c5daad..3d8497d 100644 --- a/src/NukiNetwork.h +++ b/src/NukiNetwork.h @@ -5,6 +5,7 @@ #include #include "networkDevices/NetworkDevice.h" #include "networkDevices/IPConfiguration.h" +#include "util/NetworkUtil.h" #ifndef NUKI_HUB_UPDATER #include "MqttReceiver.h" @@ -13,23 +14,9 @@ #include #include "NukiConstants.h" #include "PresenceDetection.h" +#include "enums/NetworkDeviceType.h" #endif -enum class NetworkDeviceType -{ - WiFi, - W5500, - W5500M5, - W5500M5S3, - Olimex_LAN8720, - WT32_LAN8720, - M5STACK_PoESP32_Unit, - LilyGO_T_ETH_POE, - GL_S10, - ETH01_Evo, - CUSTOM -}; - #define JSON_BUFFER_SIZE 1024 class NukiNetwork diff --git a/src/enums/NetworkDeviceType.h b/src/enums/NetworkDeviceType.h new file mode 100644 index 0000000..ea326c8 --- /dev/null +++ b/src/enums/NetworkDeviceType.h @@ -0,0 +1,16 @@ +#pragma once + +enum class NetworkDeviceType +{ + WiFi, + W5500, + W5500M5, + W5500M5S3, + Olimex_LAN8720, + WT32_LAN8720, + M5STACK_PoESP32_Unit, + LilyGO_T_ETH_POE, + GL_S10, + ETH01_Evo, + CUSTOM +}; \ No newline at end of file diff --git a/src/util/NetworkUtil.cpp b/src/util/NetworkUtil.cpp new file mode 100644 index 0000000..96c2416 --- /dev/null +++ b/src/util/NetworkUtil.cpp @@ -0,0 +1,53 @@ +#include "NetworkUtil.h" +#include + +NetworkDeviceType NetworkUtil::GetDeviceTypeFromPreference(int hardwareDetect, int customPhy) +{ + switch (hardwareDetect) + { + case 1: + return NetworkDeviceType::WiFi; + break; + case 2: + return NetworkDeviceType::W5500; + break; + case 3: + return NetworkDeviceType::W5500M5; + break; + case 4: + return NetworkDeviceType::Olimex_LAN8720; + break; + case 5: + return NetworkDeviceType::WT32_LAN8720; + break; + case 6: + return NetworkDeviceType::M5STACK_PoESP32_Unit; + break; + case 7: + return NetworkDeviceType::LilyGO_T_ETH_POE; + break; + case 8: + return NetworkDeviceType::GL_S10; + break; + case 9: + return NetworkDeviceType::ETH01_Evo; + break; + case 10: + return NetworkDeviceType::W5500M5S3; + break; + case 11: + if(customPhy> 0) + { + return NetworkDeviceType::CUSTOM; + } + else + { + return NetworkDeviceType::WiFi; + } + break; + default: + Log->println(F("Unknown hardware selected, falling back to Wi-Fi.")); + return NetworkDeviceType::WiFi; + break; + } +} diff --git a/src/util/NetworkUtil.h b/src/util/NetworkUtil.h new file mode 100644 index 0000000..7ff0629 --- /dev/null +++ b/src/util/NetworkUtil.h @@ -0,0 +1,9 @@ +#pragma once + +#include + +class NetworkUtil +{ +public: + static NetworkDeviceType GetDeviceTypeFromPreference(int hardwareDetect, int customPhy); +}; \ No newline at end of file