From 5aea8b730b921c05f50419811e78214586d2a432 Mon Sep 17 00:00:00 2001 From: Jochen Vothknecht <jochen3120@gmail.com> Date: Tue, 7 Jun 2022 08:42:53 +0200 Subject: [PATCH] =?UTF-8?q?Polishing=20things=20=F0=9F=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLC-qthing/CMakeLists.txt | 2 +- .../SiliconTorch/FxCyanF-configureFromNVS.cpp | 16 +- CLC-qthing/SiliconTorch/NVSExplorer.cpp | 208 +++++++++--------- CLC-qthing/SiliconTorch/NVSExplorer.hpp | 84 +++---- CLC-qthing/SpiderLib/ObjectTypes.hpp | 10 + CLC-qthing/SpiderLib/Types.hpp | 4 + 6 files changed, 166 insertions(+), 158 deletions(-) create mode 100644 CLC-qthing/SpiderLib/ObjectTypes.hpp create mode 100644 CLC-qthing/SpiderLib/Types.hpp diff --git a/CLC-qthing/CMakeLists.txt b/CLC-qthing/CMakeLists.txt index 2daa6ed..8449b2a 100644 --- a/CLC-qthing/CMakeLists.txt +++ b/CLC-qthing/CMakeLists.txt @@ -3,7 +3,7 @@ idf_component_register( "." "SiliconTorch" "SpiderLib" INCLUDE_DIRS - "." + "." "SpiderLib" REQUIRES main diff --git a/CLC-qthing/SiliconTorch/FxCyanF-configureFromNVS.cpp b/CLC-qthing/SiliconTorch/FxCyanF-configureFromNVS.cpp index 20fa96f..f4c5dd7 100644 --- a/CLC-qthing/SiliconTorch/FxCyanF-configureFromNVS.cpp +++ b/CLC-qthing/SiliconTorch/FxCyanF-configureFromNVS.cpp @@ -8,8 +8,6 @@ // #include <functional> // ESP32 specific -#include "nvs.h" -#include "nvs_flash.h" #include "esp_log.h" // misc @@ -20,6 +18,7 @@ // #include <qthing/mqtt_common.hpp> // project specific +#include "NVSExplorer.hpp" #include "SpiderLib/NumberTypes.hpp" // #include "FxVSync.hpp" // #include "CyanBus.hpp" @@ -41,18 +40,13 @@ namespace SiliconTorch { } - nvs_flash_init(); - - nvs_handle_t nvs; - nvs_open(nvsNameSpace, NVS_READONLY, &nvs); - + std::string ns = "fxCyan"; u32 frq = 0; - nvs_get_u32(nvs, "frequency", &frq); - u8 res = 0; - nvs_get_u8(nvs, "resolution", &res); + frq = NVSExplorer::NVSExplorer::instance().getUnsignedInt(ns, "frequency", frq); + res = NVSExplorer::NVSExplorer::instance().getUnsignedInt(ns, "resolution", res); if (frq == 0 || res == 0) { ESP_LOGW(TAG, "No config for CyanLight found"); // TODO: Log-Level Debug @@ -69,7 +63,7 @@ namespace SiliconTorch { char channel[32]; snprintf(channel, 32, "ch%d_gpio", ch); - nvs_get_i8(nvs, channel, &gpio); + //nvs_get_i8(nvs, channel, &gpio); if (gpio >= 0) { diff --git a/CLC-qthing/SiliconTorch/NVSExplorer.cpp b/CLC-qthing/SiliconTorch/NVSExplorer.cpp index 0f3c3de..65ffb10 100644 --- a/CLC-qthing/SiliconTorch/NVSExplorer.cpp +++ b/CLC-qthing/SiliconTorch/NVSExplorer.cpp @@ -16,8 +16,8 @@ // #include "driver/uart.h" // project specific +#include <Types.hpp> #include <SpiderLib/Util.hpp> -#include "SpiderLib/NumberTypes.hpp" // qthing stuff #include <qthing> @@ -52,12 +52,12 @@ namespace SiliconTorch { u16 deviceTopicLEN = requestTopic("").length(); - auto wrapMessageHandler = [deviceTopicLEN](std::function<void(std::vector<std::string>&, qthing::multipart_message_t)> handler) { + auto wrapMessageHandler = [deviceTopicLEN](std::function<void(std::vector<str>&, qthing::multipart_message_t)> handler) { return [handler, deviceTopicLEN](qthing::multipart_message_t msg) { if (msg.length == msg.total_length && msg.offset == 0) { - std::string localTopic(msg.topic.c_str() + deviceTopicLEN); - std::vector<std::string> topicParts = SpiderLib::Util::split(localTopic, '/'); + str localTopic(msg.topic.c_str() + deviceTopicLEN); + std::vector<str> topicParts = SpiderLib::Util::split(localTopic, '/'); handler(topicParts, msg); } else { @@ -70,19 +70,19 @@ namespace SiliconTorch { // TODO: publish error if NS not found…?! qthing::add_binary_message_callback(requestTopic("ls/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { - std::string delimiter = " "; + str delimiter = " "; char* buffer = NULL; if (msg.length > 0) { buffer = new char[msg.length + 1]; snprintf(buffer, msg.length + 1, "%s", msg.payload); - delimiter = std::string(buffer); + delimiter = str(buffer); } auto keys = listKeys(topic[1]); - std::string msgOut = SpiderLib::Util::join(keys, delimiter); + str msgOut = SpiderLib::Util::join(keys, delimiter); qthing::publish_message(responseTopic(topic[1]), msgOut); @@ -92,19 +92,19 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("ls"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { - std::string delimiter = " "; + str delimiter = " "; char* buffer = NULL; if (msg.length > 0) { buffer = new char[msg.length + 1]; snprintf(buffer, msg.length + 1, "%s", msg.payload); - delimiter = std::string(buffer); + delimiter = str(buffer); } auto nameSpaces = listNamespaces(); - std::string msgOut = SpiderLib::Util::join(nameSpaces, delimiter); + str msgOut = SpiderLib::Util::join(nameSpaces, delimiter); qthing::publish_message(responseTopic("ls"), msgOut); @@ -114,7 +114,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("rm/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { this->rmKey(topic[1], topic[2]); // publish error…? @@ -123,7 +123,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("get_float/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { float value = this->getFloat(topic[1], topic[2]); if (!std::isnan(value)) { @@ -131,7 +131,7 @@ namespace SiliconTorch { char buffer[64]; snprintf(buffer, 64, "%f", value); - qthing::publish_message(responseTopic("get_float", topic[1], topic[2]), std::string(buffer)); + qthing::publish_message(responseTopic("get_float", topic[1], topic[2]), str(buffer)); } else { // publish error…? @@ -142,7 +142,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("get_double/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { double value = this->getDouble(topic[1], topic[2]); if (!std::isnan(value)) { @@ -150,7 +150,7 @@ namespace SiliconTorch { char buffer[64]; snprintf(buffer, 64, "%f", value); - qthing::publish_message(responseTopic("get_double", topic[1], topic[2]), std::string(buffer)); + qthing::publish_message(responseTopic("get_double", topic[1], topic[2]), str(buffer)); } else { // publish error…? @@ -161,7 +161,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("set_float/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { char* buffer = new char[msg.length + 1]; snprintf(buffer, msg.length + 1, "%s", msg.payload); @@ -178,7 +178,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("set_double/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { char* buffer = new char[msg.length + 1]; snprintf(buffer, msg.length + 1, "%s", msg.payload); @@ -195,7 +195,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("get_u8/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { nvs_handle_t nvs; if ( nvs_open(topic[1].c_str(), NVS_READONLY, &nvs) == ESP_OK ) { @@ -205,7 +205,7 @@ namespace SiliconTorch { char buffer[32]; snprintf(buffer, 32, "%d", value); - qthing::publish_message(responseTopic("get_u8", topic[1], topic[2]), std::string(buffer)); + qthing::publish_message(responseTopic("get_u8", topic[1], topic[2]), str(buffer)); } else { // publish error…? @@ -218,7 +218,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("get_u16/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { nvs_handle_t nvs; if ( nvs_open(topic[1].c_str(), NVS_READONLY, &nvs) == ESP_OK ) { @@ -228,7 +228,7 @@ namespace SiliconTorch { char buffer[32]; snprintf(buffer, 32, "%d", value); - qthing::publish_message(responseTopic("get_u16", topic[1], topic[2]), std::string(buffer)); + qthing::publish_message(responseTopic("get_u16", topic[1], topic[2]), str(buffer)); } else { // publish error…? @@ -241,7 +241,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("get_u32/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { nvs_handle_t nvs; if ( nvs_open(topic[1].c_str(), NVS_READONLY, &nvs) == ESP_OK ) { @@ -251,7 +251,7 @@ namespace SiliconTorch { char buffer[32]; snprintf(buffer, 32, "%d", value); - qthing::publish_message(responseTopic("get_u32", topic[1], topic[2]), std::string(buffer)); + qthing::publish_message(responseTopic("get_u32", topic[1], topic[2]), str(buffer)); } else { // publish error…? @@ -264,7 +264,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("get_u64/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { nvs_handle_t nvs; if ( nvs_open(topic[1].c_str(), NVS_READONLY, &nvs) == ESP_OK ) { @@ -274,7 +274,7 @@ namespace SiliconTorch { char buffer[32]; snprintf(buffer, 32, "%lld", value); - qthing::publish_message(responseTopic("get_u64", topic[1], topic[2]), std::string(buffer)); + qthing::publish_message(responseTopic("get_u64", topic[1], topic[2]), str(buffer)); } else { // publish error…? @@ -287,7 +287,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("get_i8/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { nvs_handle_t nvs; if ( nvs_open(topic[1].c_str(), NVS_READONLY, &nvs) == ESP_OK ) { @@ -297,7 +297,7 @@ namespace SiliconTorch { char buffer[32]; snprintf(buffer, 32, "%d", value); - qthing::publish_message(responseTopic("get_i8", topic[1], topic[2]), std::string(buffer)); + qthing::publish_message(responseTopic("get_i8", topic[1], topic[2]), str(buffer)); } else { // publish error…? @@ -310,7 +310,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("get_i16/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { nvs_handle_t nvs; if ( nvs_open(topic[1].c_str(), NVS_READONLY, &nvs) == ESP_OK ) { @@ -320,7 +320,7 @@ namespace SiliconTorch { char buffer[32]; snprintf(buffer, 32, "%d", value); - qthing::publish_message(responseTopic("get_i16", topic[1], topic[2]), std::string(buffer)); + qthing::publish_message(responseTopic("get_i16", topic[1], topic[2]), str(buffer)); } else { // publish error…? @@ -333,7 +333,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("get_i32/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { nvs_handle_t nvs; if ( nvs_open(topic[1].c_str(), NVS_READONLY, &nvs) == ESP_OK ) { @@ -343,7 +343,7 @@ namespace SiliconTorch { char buffer[32]; snprintf(buffer, 32, "%d", value); - qthing::publish_message(responseTopic("get_i32", topic[1], topic[2]), std::string(buffer)); + qthing::publish_message(responseTopic("get_i32", topic[1], topic[2]), str(buffer)); } else { // publish error…? @@ -356,7 +356,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("get_i64/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { nvs_handle_t nvs; if ( nvs_open(topic[1].c_str(), NVS_READONLY, &nvs) == ESP_OK ) { @@ -366,7 +366,7 @@ namespace SiliconTorch { char buffer[32]; snprintf(buffer, 32, "%lld", value); - qthing::publish_message(responseTopic("get_i64", topic[1], topic[2]), std::string(buffer)); + qthing::publish_message(responseTopic("get_i64", topic[1], topic[2]), str(buffer)); } else { // publish error…? @@ -386,12 +386,12 @@ namespace SiliconTorch { u16 deviceTopicLEN = requestTopic("").length(); - auto wrapMessageHandler = [deviceTopicLEN](std::function<void(std::vector<std::string>&, qthing::multipart_message_t)> handler) { + auto wrapMessageHandler = [deviceTopicLEN](std::function<void(std::vector<str>&, qthing::multipart_message_t)> handler) { return [handler, deviceTopicLEN](qthing::multipart_message_t msg) { if (msg.length == msg.total_length && msg.offset == 0) { - std::string localTopic(msg.topic.c_str() + deviceTopicLEN); - std::vector<std::string> topicParts = SpiderLib::Util::split(localTopic, '/'); + str localTopic(msg.topic.c_str() + deviceTopicLEN); + std::vector<str> topicParts = SpiderLib::Util::split(localTopic, '/'); handler(topicParts, msg); } else { @@ -403,7 +403,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("set_u8/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { char* buffer = new char[msg.length + 1]; snprintf(buffer, msg.length + 1, "%s", msg.payload); @@ -421,7 +421,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("set_u16/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { char* buffer = new char[msg.length + 1]; snprintf(buffer, msg.length + 1, "%s", msg.payload); @@ -439,7 +439,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("set_u32/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { char* buffer = new char[msg.length + 1]; snprintf(buffer, msg.length + 1, "%s", msg.payload); @@ -457,7 +457,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("set_u64/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { char* buffer = new char[msg.length + 1]; snprintf(buffer, msg.length + 1, "%s", msg.payload); @@ -472,7 +472,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("set_i8/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { char* buffer = new char[msg.length + 1]; snprintf(buffer, msg.length + 1, "%s", msg.payload); @@ -493,7 +493,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("set_i16/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { char* buffer = new char[msg.length + 1]; snprintf(buffer, msg.length + 1, "%s", msg.payload); @@ -514,7 +514,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("set_i32/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { char* buffer = new char[msg.length + 1]; snprintf(buffer, msg.length + 1, "%s", msg.payload); @@ -535,7 +535,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("set_i64/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { char* buffer = new char[msg.length + 1]; snprintf(buffer, msg.length + 1, "%s", msg.payload); @@ -551,7 +551,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("get_strLen/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { size_t testValue = 1337000; // way too big for NVS size_t length = getStringLength(topic[1], topic[2], testValue); @@ -561,7 +561,7 @@ namespace SiliconTorch { char buffer[32]; std::snprintf(&buffer[0], 32, "%d", length); - std::string value(&buffer[0]); + str value(&buffer[0]); qthing::publish_message(responseTopic("get_strLen", topic[1], topic[2]), value); } else { // publish error…? @@ -572,13 +572,13 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("get_str/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { size_t testValue = 1337000; // way too big for NVS if ( getStringLength(topic[1], topic[2], testValue) < testValue ) { // key exists and is of type string - std::string value = getString(topic[1], topic[2]); + str value = getString(topic[1], topic[2]); qthing::publish_message(responseTopic("get_str", topic[1], topic[2]), value); } else { @@ -590,11 +590,11 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("set_str/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { char* buffer = new char[msg.length + 1]; snprintf(buffer, msg.length + 1, "%s", msg.payload); - std::string value(buffer); + str value(buffer); if ( this->setString(topic[1], topic[2], value) ) ESP_LOGI(TAG, "Set namespace[ %s ] key[ %s ] to str[ %s ]", topic[1].c_str(), topic[2].c_str(), value.c_str()); // TODO: do we REALLY wanna log the payloads?! @@ -604,7 +604,7 @@ namespace SiliconTorch { qthing::add_binary_message_callback(requestTopic("get_type/+/+"), wrapMessageHandler( - [&](std::vector<std::string>& topic, qthing::multipart_message_t msg) { + [&](std::vector<str>& topic, qthing::multipart_message_t msg) { qthing::publish_message(responseTopic("get_type", topic[1], topic[2]), getTypeStr(topic[1], topic[2])); } )); @@ -613,7 +613,7 @@ namespace SiliconTorch { - u8 NVSExplorer::getU8(const std::string& nameSpace, const std::string& key, u8 defaultValue) { + u8 NVSExplorer::getU8(const str& nameSpace, const str& key, u8 defaultValue) { u8 value = defaultValue; @@ -626,7 +626,7 @@ namespace SiliconTorch { return value; } - u16 NVSExplorer::getU16(const std::string& nameSpace, const std::string& key, u16 defaultValue) { + u16 NVSExplorer::getU16(const str& nameSpace, const str& key, u16 defaultValue) { u16 value = defaultValue; @@ -639,7 +639,7 @@ namespace SiliconTorch { return value; } - u32 NVSExplorer::getU32(const std::string& nameSpace, const std::string& key, u32 defaultValue) { + u32 NVSExplorer::getU32(const str& nameSpace, const str& key, u32 defaultValue) { u32 value = defaultValue; @@ -652,7 +652,7 @@ namespace SiliconTorch { return value; } - u64 NVSExplorer::getU64(const std::string& nameSpace, const std::string& key, u64 defaultValue) { + u64 NVSExplorer::getU64(const str& nameSpace, const str& key, u64 defaultValue) { u64 value = defaultValue; @@ -665,7 +665,7 @@ namespace SiliconTorch { return value; } - i8 NVSExplorer::getI8(const std::string& nameSpace, const std::string& key, i8 defaultValue) { + i8 NVSExplorer::getI8(const str& nameSpace, const str& key, i8 defaultValue) { i8 value = defaultValue; @@ -678,7 +678,7 @@ namespace SiliconTorch { return value; } - i16 NVSExplorer::getI16(const std::string& nameSpace, const std::string& key, i16 defaultValue) { + i16 NVSExplorer::getI16(const str& nameSpace, const str& key, i16 defaultValue) { i16 value = defaultValue; @@ -691,7 +691,7 @@ namespace SiliconTorch { return value; } - i32 NVSExplorer::getI32(const std::string& nameSpace, const std::string& key, i32 defaultValue) { + i32 NVSExplorer::getI32(const str& nameSpace, const str& key, i32 defaultValue) { i32 value = defaultValue; @@ -704,7 +704,7 @@ namespace SiliconTorch { return value; } - i64 NVSExplorer::getI64(const std::string& nameSpace, const std::string& key, i64 defaultValue) { + i64 NVSExplorer::getI64(const str& nameSpace, const str& key, i64 defaultValue) { i64 value = defaultValue; @@ -719,7 +719,7 @@ namespace SiliconTorch { - bool NVSExplorer::setU8(const std::string& nameSpace, const std::string& key, u8 value) { + bool NVSExplorer::setU8(const str& nameSpace, const str& key, u8 value) { bool success = true; nvs_handle_t nvs; @@ -734,7 +734,7 @@ namespace SiliconTorch { } } - bool NVSExplorer::setU16(const std::string& nameSpace, const std::string& key, u16 value) { + bool NVSExplorer::setU16(const str& nameSpace, const str& key, u16 value) { bool success = true; nvs_handle_t nvs; @@ -749,7 +749,7 @@ namespace SiliconTorch { } } - bool NVSExplorer::setU32(const std::string& nameSpace, const std::string& key, u32 value) { + bool NVSExplorer::setU32(const str& nameSpace, const str& key, u32 value) { bool success = true; nvs_handle_t nvs; @@ -764,7 +764,7 @@ namespace SiliconTorch { } } - bool NVSExplorer::setU64(const std::string& nameSpace, const std::string& key, u64 value) { + bool NVSExplorer::setU64(const str& nameSpace, const str& key, u64 value) { bool success = true; nvs_handle_t nvs; @@ -779,7 +779,7 @@ namespace SiliconTorch { } } - bool NVSExplorer::setI8(const std::string& nameSpace, const std::string& key, i8 value) { + bool NVSExplorer::setI8(const str& nameSpace, const str& key, i8 value) { bool success = true; nvs_handle_t nvs; @@ -794,7 +794,7 @@ namespace SiliconTorch { } } - bool NVSExplorer::setI16(const std::string& nameSpace, const std::string& key, i16 value) { + bool NVSExplorer::setI16(const str& nameSpace, const str& key, i16 value) { bool success = true; nvs_handle_t nvs; @@ -809,7 +809,7 @@ namespace SiliconTorch { } } - bool NVSExplorer::setI32(const std::string& nameSpace, const std::string& key, i32 value) { + bool NVSExplorer::setI32(const str& nameSpace, const str& key, i32 value) { bool success = true; nvs_handle_t nvs; @@ -824,7 +824,7 @@ namespace SiliconTorch { } } - bool NVSExplorer::setI64(const std::string& nameSpace, const std::string& key, i64 value) { + bool NVSExplorer::setI64(const str& nameSpace, const str& key, i64 value) { bool success = true; nvs_handle_t nvs; @@ -841,7 +841,7 @@ namespace SiliconTorch { - float NVSExplorer::getFloat(const std::string& nameSpace, const std::string& key) { + float NVSExplorer::getFloat(const str& nameSpace, const str& key) { float value = std::nanf("1337"); u32* valptr = reinterpret_cast<u32*>(&value); @@ -855,7 +855,7 @@ namespace SiliconTorch { return value; } - double NVSExplorer::getDouble(const std::string& nameSpace, const std::string& key) { + double NVSExplorer::getDouble(const str& nameSpace, const str& key) { double value = std::nan("1337"); u64* valptr = reinterpret_cast<u64*>(&value); @@ -870,7 +870,7 @@ namespace SiliconTorch { } - bool NVSExplorer::setFloat(const std::string& nameSpace, const std::string& key, float value) { + bool NVSExplorer::setFloat(const str& nameSpace, const str& key, float value) { bool success = true; u32 intval = reinterpret_cast<u32*>(&value)[0]; @@ -887,7 +887,7 @@ namespace SiliconTorch { } } - bool NVSExplorer::setDouble(const std::string& nameSpace, const std::string& key, double value) { + bool NVSExplorer::setDouble(const str& nameSpace, const str& key, double value) { bool success = true; u64 intval = reinterpret_cast<u64*>(&value)[0]; @@ -905,7 +905,7 @@ namespace SiliconTorch { } - size_t NVSExplorer::getStringLength(const std::string& nameSpace, const std::string& key, size_t defaultValue) { + size_t NVSExplorer::getStringLength(const str& nameSpace, const str& key, size_t defaultValue) { size_t value = defaultValue; @@ -919,7 +919,7 @@ namespace SiliconTorch { } - std::string NVSExplorer::getString(const std::string& nameSpace, const std::string& key, const std::string& defaultValue) { + str NVSExplorer::getString(const str& nameSpace, const str& key, const str& defaultValue) { nvs_handle_t nvs; if ( nvs_open(nameSpace.c_str(), NVS_READONLY, &nvs) == ESP_OK ) { @@ -934,7 +934,7 @@ namespace SiliconTorch { nvs_close(nvs); - std::string out(&buffer[0]); + str out(&buffer[0]); return out; } } @@ -943,7 +943,7 @@ namespace SiliconTorch { } - bool NVSExplorer::setString(const std::string& nameSpace, const std::string& key, const std::string& value) { + bool NVSExplorer::setString(const str& nameSpace, const str& key, const str& value) { bool success = true; @@ -961,7 +961,7 @@ namespace SiliconTorch { - void NVSExplorer::rmKey(const std::string& nameSpace, const std::string& key) { + void NVSExplorer::rmKey(const str& nameSpace, const str& key) { nvs_handle_t _nvs; ESP_LOGW(TAG, "rmKey() -> %s / %s", nameSpace.c_str(), key.c_str()); ESP_LOGW(TAG, "open() -> %s", esp_err_to_name( nvs_open(nameSpace.c_str(), NVS_READWRITE, &_nvs) )); @@ -970,9 +970,9 @@ namespace SiliconTorch { ESP_LOGW(TAG, "erase²() -> %s", esp_err_to_name( nvs_erase_key(_nvs, key.c_str()) )); } - std::set<std::string> NVSExplorer::listKeys(const std::string& nameSpace) { + std::set<str> NVSExplorer::listKeys(const str& nameSpace) { - std::set<std::string> keys; + std::set<str> keys; nvs_iterator_t it = nvs_entry_find("nvs", nameSpace.c_str(), NVS_TYPE_ANY); @@ -989,9 +989,9 @@ namespace SiliconTorch { return keys; } - std::set<std::string> NVSExplorer::listNamespaces() { + std::set<str> NVSExplorer::listNamespaces() { - std::set<std::string> namespaces; + std::set<str> namespaces; nvs_iterator_t it = nvs_entry_find("nvs", NULL, NVS_TYPE_ANY); @@ -1009,7 +1009,7 @@ namespace SiliconTorch { } - i64 NVSExplorer::getSignedInt(const std::string& nameSpace, const std::string& key, i64 defaultValue) { + i64 NVSExplorer::getSignedInt(const str& nameSpace, const str& key, i64 defaultValue) { // Lets first test & evaluate the other function before duplication……… @@ -1017,7 +1017,7 @@ namespace SiliconTorch { } - u64 NVSExplorer::getUnsignedInt(const std::string& nameSpace, const std::string& key, u64 defaultValue) { + u64 NVSExplorer::getUnsignedInt(const str& nameSpace, const str& key, u64 defaultValue) { u64 value = defaultValue; nvs_type_t entryType = NVS_TYPE_ANY; @@ -1063,14 +1063,14 @@ namespace SiliconTorch { } - bool NVSExplorer::setSignedInt(const std::string& nameSpace, const std::string& key, i64 value, nvs_type_t entryType) { + bool NVSExplorer::setSignedInt(const str& nameSpace, const str& key, i64 value, nvs_type_t entryType) { // TODO: implementation! return false; } - bool NVSExplorer::setUnsignedInt(const std::string& nameSpace, const std::string& key, u64 value, nvs_type_t entryType) { + bool NVSExplorer::setUnsignedInt(const str& nameSpace, const str& key, u64 value, nvs_type_t entryType) { bool result = false; @@ -1105,7 +1105,7 @@ namespace SiliconTorch { /** * Converts IDF NVS types to strings */ - std::string NVSExplorer::type2str(nvs_type_t typ) { + str NVSExplorer::type2str(nvs_type_t typ) { switch (typ) { case NVS_TYPE_U8: return "u8"; case NVS_TYPE_U16: return "u16"; @@ -1125,7 +1125,7 @@ namespace SiliconTorch { /** * Get the type of the entry, NVS_TYPE_ANY if not found */ - nvs_type_t NVSExplorer::getType(const std::string& nameSpace, const std::string& key) { + nvs_type_t NVSExplorer::getType(const str& nameSpace, const str& key) { nvs_type_t entryType = NVS_TYPE_ANY; @@ -1151,7 +1151,7 @@ namespace SiliconTorch { * Like getType but converts them to string * non-existing keys are converted to `void` instead of `any` */ - std::string NVSExplorer::getTypeStr(const std::string& nameSpace, const std::string& key) { + str NVSExplorer::getTypeStr(const str& nameSpace, const str& key) { bool entryFound = false; nvs_type_t entryType = NVS_TYPE_ANY; @@ -1172,7 +1172,7 @@ namespace SiliconTorch { it = nvs_entry_next(it); } - std::string typ; + str typ; if (entryFound) typ = type2str(entryType); else typ = "void"; @@ -1181,34 +1181,34 @@ namespace SiliconTorch { } - std::string NVSExplorer::deviceTopic(const std::string& suffix) { - return std::string(DEVICE_NAMESPACE + "NVS/") + suffix; + str NVSExplorer::deviceTopic(const str& suffix) { + return str(DEVICE_NAMESPACE + "NVS/") + suffix; } - std::string NVSExplorer::requestTopic(const std::string& cmd) { - return deviceTopic( std::string("rq/") + cmd ); + str NVSExplorer::requestTopic(const str& cmd) { + return deviceTopic( str("rq/") + cmd ); } - std::string NVSExplorer::requestTopic(const std::string& cmd, const std::string& nameSpace) { - return deviceTopic( std::string("rq/") + cmd + std::string("/") + nameSpace ); + str NVSExplorer::requestTopic(const str& cmd, const str& nameSpace) { + return deviceTopic( str("rq/") + cmd + str("/") + nameSpace ); } - std::string NVSExplorer::requestTopic(const std::string& cmd, const std::string& nameSpace, const std::string& key) { - return deviceTopic( std::string("rq/") + cmd + std::string("/") + nameSpace + std::string("/") + key ); + str NVSExplorer::requestTopic(const str& cmd, const str& nameSpace, const str& key) { + return deviceTopic( str("rq/") + cmd + str("/") + nameSpace + str("/") + key ); } - std::string NVSExplorer::responseTopic(const std::string& cmd) { - return deviceTopic( std::string("rs/") + cmd ); + str NVSExplorer::responseTopic(const str& cmd) { + return deviceTopic( str("rs/") + cmd ); } - std::string NVSExplorer::responseTopic(const std::string& cmd, const std::string& nameSpace) { - return deviceTopic( std::string("rs/") + cmd + std::string("/") + nameSpace ); + str NVSExplorer::responseTopic(const str& cmd, const str& nameSpace) { + return deviceTopic( str("rs/") + cmd + str("/") + nameSpace ); } - std::string NVSExplorer::responseTopic(const std::string& cmd, const std::string& nameSpace, const std::string& key) { - return deviceTopic( std::string("rs/") + cmd + std::string("/") + nameSpace + std::string("/") + key ); + str NVSExplorer::responseTopic(const str& cmd, const str& nameSpace, const str& key) { + return deviceTopic( str("rs/") + cmd + str("/") + nameSpace + str("/") + key ); } } diff --git a/CLC-qthing/SiliconTorch/NVSExplorer.hpp b/CLC-qthing/SiliconTorch/NVSExplorer.hpp index a281f6b..44bf20f 100644 --- a/CLC-qthing/SiliconTorch/NVSExplorer.hpp +++ b/CLC-qthing/SiliconTorch/NVSExplorer.hpp @@ -15,7 +15,7 @@ // #include "driver/uart.h" // project specific -#include "SpiderLib/NumberTypes.hpp" +#include <Types.hpp> // #include "SpiderLib/ManagedMutex.hpp" // qthing stuff @@ -34,74 +34,74 @@ namespace SiliconTorch { public: - std::set<std::string> listNamespaces(); - std::set<std::string> listKeys(const std::string& nameSpace); + std::set<str> listNamespaces(); + std::set<str> listKeys(const str& nameSpace); - void rmKey(const std::string& nameSpace, const std::string& key); + void rmKey(const str& nameSpace, const str& key); - bool setU8(const std::string& nameSpace, const std::string& key, u8 value); - bool setI8(const std::string& nameSpace, const std::string& key, i8 value); + bool setU8(const str& nameSpace, const str& key, u8 value); + bool setI8(const str& nameSpace, const str& key, i8 value); - bool setU16(const std::string& nameSpace, const std::string& key, u16 value); - bool setI16(const std::string& nameSpace, const std::string& key, i16 value); + bool setU16(const str& nameSpace, const str& key, u16 value); + bool setI16(const str& nameSpace, const str& key, i16 value); - bool setU32(const std::string& nameSpace, const std::string& key, u32 value); - bool setI32(const std::string& nameSpace, const std::string& key, i32 value); + bool setU32(const str& nameSpace, const str& key, u32 value); + bool setI32(const str& nameSpace, const str& key, i32 value); - bool setU64(const std::string& nameSpace, const std::string& key, u64 value); - bool setI64(const std::string& nameSpace, const std::string& key, i64 value); + bool setU64(const str& nameSpace, const str& key, u64 value); + bool setI64(const str& nameSpace, const str& key, i64 value); - u8 getU8(const std::string& nameSpace, const std::string& key, u8 defaultValue = 0); - i8 getI8(const std::string& nameSpace, const std::string& key, i8 defaultValue = 0); + u8 getU8(const str& nameSpace, const str& key, u8 defaultValue = 0); + i8 getI8(const str& nameSpace, const str& key, i8 defaultValue = 0); - u16 getU16(const std::string& nameSpace, const std::string& key, u16 defaultValue = 0); - i16 getI16(const std::string& nameSpace, const std::string& key, i16 defaultValue = 0); + u16 getU16(const str& nameSpace, const str& key, u16 defaultValue = 0); + i16 getI16(const str& nameSpace, const str& key, i16 defaultValue = 0); - u32 getU32(const std::string& nameSpace, const std::string& key, u32 defaultValue = 0); - i32 getI32(const std::string& nameSpace, const std::string& key, i32 defaultValue = 0); + u32 getU32(const str& nameSpace, const str& key, u32 defaultValue = 0); + i32 getI32(const str& nameSpace, const str& key, i32 defaultValue = 0); - u64 getU64(const std::string& nameSpace, const std::string& key, u64 defaultValue = 0); - i64 getI64(const std::string& nameSpace, const std::string& key, i64 defaultValue = 0); + u64 getU64(const str& nameSpace, const str& key, u64 defaultValue = 0); + i64 getI64(const str& nameSpace, const str& key, i64 defaultValue = 0); - float getFloat(const std::string& nameSpace, const std::string& key); - double getDouble(const std::string& nameSpace, const std::string& key); + float getFloat(const str& nameSpace, const str& key); + double getDouble(const str& nameSpace, const str& key); - bool setFloat(const std::string& nameSpace, const std::string& key, float value); - bool setDouble(const std::string& nameSpace, const std::string& key, double value); + bool setFloat(const str& nameSpace, const str& key, float value); + bool setDouble(const str& nameSpace, const str& key, double value); // Gets the key regardless of its type in flash - i64 getSignedInt(const std::string& nameSpace, const std::string& key, i64 defaultValue = 0); - u64 getUnsignedInt(const std::string& nameSpace, const std::string& key, u64 defaultValue = 0); + i64 getSignedInt(const str& nameSpace, const str& key, i64 defaultValue = 0); + u64 getUnsignedInt(const str& nameSpace, const str& key, u64 defaultValue = 0); // TODO: ⮦ Both unimplemented atm ⮧ - bool setSignedInt(const std::string& nameSpace, const std::string& key, i64 value, nvs_type_t entryType = NVS_TYPE_ANY); - bool setUnsignedInt(const std::string& nameSpace, const std::string& key, u64 value, nvs_type_t entryType = NVS_TYPE_ANY); + bool setSignedInt(const str& nameSpace, const str& key, i64 value, nvs_type_t entryType = NVS_TYPE_ANY); + bool setUnsignedInt(const str& nameSpace, const str& key, u64 value, nvs_type_t entryType = NVS_TYPE_ANY); - size_t getStringLength(const std::string& nameSpace, const std::string& key, size_t defaultValue = 0); - std::string getString(const std::string& nameSpace, const std::string& key, const std::string& defaultValue = ""); - // size_t getLongString(const std::string& nameSpace, const std::string& key, char* const buffer); + size_t getStringLength(const str& nameSpace, const str& key, size_t defaultValue = 0); + str getString(const str& nameSpace, const str& key, const str& defaultValue = ""); + // size_t getLongString(const str& nameSpace, const str& key, char* const buffer); - bool setString(const std::string& nameSpace, const std::string& key, const std::string& value); + bool setString(const str& nameSpace, const str& key, const str& value); - std::string type2str(nvs_type_t typ); - nvs_type_t getType(const std::string& nameSpace, const std::string& key); - std::string getTypeStr(const std::string& nameSpace, const std::string& key); + str type2str(nvs_type_t typ); + nvs_type_t getType(const str& nameSpace, const str& key); + str getTypeStr(const str& nameSpace, const str& key); - std::string deviceTopic(const std::string& suffix); + str deviceTopic(const str& suffix); - std::string requestTopic(const std::string& cmd); - std::string requestTopic(const std::string& cmd, const std::string& nameSpace); - std::string requestTopic(const std::string& cmd, const std::string& nameSpace, const std::string& key); + str requestTopic(const str& cmd); + str requestTopic(const str& cmd, const str& nameSpace); + str requestTopic(const str& cmd, const str& nameSpace, const str& key); - std::string responseTopic(const std::string& cmd); - std::string responseTopic(const std::string& cmd, const std::string& nameSpace); - std::string responseTopic(const std::string& cmd, const std::string& nameSpace, const std::string& key); + str responseTopic(const str& cmd); + str responseTopic(const str& cmd, const str& nameSpace); + str responseTopic(const str& cmd, const str& nameSpace, const str& key); // ⬇⬇ Singleton stuff ⬇⬇ diff --git a/CLC-qthing/SpiderLib/ObjectTypes.hpp b/CLC-qthing/SpiderLib/ObjectTypes.hpp new file mode 100644 index 0000000..a9a2ddb --- /dev/null +++ b/CLC-qthing/SpiderLib/ObjectTypes.hpp @@ -0,0 +1,10 @@ +#pragma once + +#include <string> + + + +using str = std::string; + + +// TODO: more useful types…? diff --git a/CLC-qthing/SpiderLib/Types.hpp b/CLC-qthing/SpiderLib/Types.hpp new file mode 100644 index 0000000..f183fbf --- /dev/null +++ b/CLC-qthing/SpiderLib/Types.hpp @@ -0,0 +1,4 @@ +#pragma once + +#include <NumberTypes.hpp> +#include <ObjectTypes.hpp> -- GitLab