From 0eb34eec259d30e2debefa0776e569bead77b962 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Mon, 11 Aug 2025 20:23:07 -0500 Subject: [PATCH] Store name in LEDStripController to avoid setting it in detector --- .../LEDStripController/LEDStripController.cpp | 13 +++++++++---- .../LEDStripController/LEDStripController.h | 4 +++- .../LEDStripControllerDetect.cpp | 3 +-- .../RGBController_LEDStrip.cpp | 18 +++++++++--------- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/Controllers/LEDStripController/LEDStripController.cpp b/Controllers/LEDStripController/LEDStripController.cpp index fa355ebb..e44b619c 100644 --- a/Controllers/LEDStripController/LEDStripController.cpp +++ b/Controllers/LEDStripController/LEDStripController.cpp @@ -15,9 +15,9 @@ #include "LEDStripController.h" #include "ResourceManager.h" -LEDStripController::LEDStripController() +LEDStripController::LEDStripController(std::string dev_name) { - + name = dev_name; } @@ -138,6 +138,11 @@ void LEDStripController::InitializeUDP(char * clientname, char * port) i2cport = NULL; } +char* LEDStripController::GetLEDString() +{ + return(led_string); +} + std::string LEDStripController::GetLocation() { if(serialport != NULL) @@ -158,9 +163,9 @@ std::string LEDStripController::GetLocation() } } -char* LEDStripController::GetLEDString() +std::string LEDStripController::GetName() { - return(led_string); + return(name); } void LEDStripController::SetLEDs(std::vector colors) diff --git a/Controllers/LEDStripController/LEDStripController.h b/Controllers/LEDStripController/LEDStripController.h index 8167c47e..e4dc184d 100644 --- a/Controllers/LEDStripController/LEDStripController.h +++ b/Controllers/LEDStripController/LEDStripController.h @@ -49,7 +49,7 @@ struct LEDStripDevice class LEDStripController { public: - LEDStripController(); + LEDStripController(std::string dev_name); ~LEDStripController(); void Initialize(char* ledstring, led_protocol proto); @@ -60,6 +60,7 @@ public: char* GetLEDString(); std::string GetLocation(); + std::string GetName(); void SetLEDs(std::vector colors); @@ -76,6 +77,7 @@ private: char led_string[1024]; std::string port_name; std::string client_name; + std::string name; serial_port *serialport; net_port *udpport; i2c_smbus_interface *i2cport; diff --git a/Controllers/LEDStripController/LEDStripControllerDetect.cpp b/Controllers/LEDStripController/LEDStripControllerDetect.cpp index 89f2775a..e9c61b03 100644 --- a/Controllers/LEDStripController/LEDStripControllerDetect.cpp +++ b/Controllers/LEDStripController/LEDStripControllerDetect.cpp @@ -121,11 +121,10 @@ void DetectLEDStripControllers() std::string value = dev.port + "," + std::to_string(dev.baud) + "," + std::to_string(dev.num_leds); - LEDStripController* controller = new LEDStripController(); + LEDStripController* controller = new LEDStripController(dev.name); controller->Initialize((char *)value.c_str(), dev.protocol); RGBController_LEDStrip* rgb_controller = new RGBController_LEDStrip(controller); - rgb_controller->name = dev.name; ResourceManager::get()->RegisterRGBController(rgb_controller); } diff --git a/Controllers/LEDStripController/RGBController_LEDStrip.cpp b/Controllers/LEDStripController/RGBController_LEDStrip.cpp index 31d7219b..13ab64a6 100644 --- a/Controllers/LEDStripController/RGBController_LEDStrip.cpp +++ b/Controllers/LEDStripController/RGBController_LEDStrip.cpp @@ -24,18 +24,18 @@ RGBController_LEDStrip::RGBController_LEDStrip(LEDStripController* controller_ptr) { - controller = controller_ptr; + controller = controller_ptr; - name = "LED Strip"; - type = DEVICE_TYPE_LEDSTRIP; - description = "Serial LED Strip Device"; - location = controller->GetLocation(); + name = controller->GetName(); + type = DEVICE_TYPE_LEDSTRIP; + description = "Serial LED Strip Device"; + location = controller->GetLocation(); mode Direct; - Direct.name = "Direct"; - Direct.value = 0; - Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Direct.color_mode = MODE_COLORS_PER_LED; + Direct.name = "Direct"; + Direct.value = 0; + Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; + Direct.color_mode = MODE_COLORS_PER_LED; modes.push_back(Direct); SetupZones();