add NetworkUtil, move NetworkDeviceType to seperate file

This commit is contained in:
technyon
2024-08-18 07:20:00 +02:00
parent 2bd61b8f34
commit b924746799
6 changed files with 88 additions and 76 deletions

View File

@@ -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

View File

@@ -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);

View File

@@ -5,6 +5,7 @@
#include <map>
#include "networkDevices/NetworkDevice.h"
#include "networkDevices/IPConfiguration.h"
#include "util/NetworkUtil.h"
#ifndef NUKI_HUB_UPDATER
#include "MqttReceiver.h"
@@ -13,23 +14,9 @@
#include <ArduinoJson.h>
#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

View File

@@ -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
};

53
src/util/NetworkUtil.cpp Normal file
View File

@@ -0,0 +1,53 @@
#include "NetworkUtil.h"
#include <Logger.h>
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;
}
}

9
src/util/NetworkUtil.h Normal file
View File

@@ -0,0 +1,9 @@
#pragma once
#include <enums/NetworkDeviceType.h>
class NetworkUtil
{
public:
static NetworkDeviceType GetDeviceTypeFromPreference(int hardwareDetect, int customPhy);
};