diff --git a/Controllers/DMXController/DMXControllerDetect.cpp b/Controllers/DMXController/DMXControllerDetect.cpp index d2d5c575a..0ecba081f 100644 --- a/Controllers/DMXController/DMXControllerDetect.cpp +++ b/Controllers/DMXController/DMXControllerDetect.cpp @@ -50,6 +50,11 @@ void DetectDMXControllers() dev.name = dmx_settings["devices"][device_idx]["name"]; } + if(dmx_settings["devices"][device_idx].contains("port")) + { + dev.port = dmx_settings["devices"][device_idx]["port"]; + } + if(dmx_settings["devices"][device_idx].contains("keepalive_time")) { dev.keepalive_time = dmx_settings["devices"][device_idx]["keepalive_time"]; @@ -123,6 +128,7 @@ void DetectDMXControllers() } } + for(unsigned int list_idx = 0; list_idx < device_lists.size(); list_idx++) { RGBController_DMX* rgb_controller; diff --git a/Controllers/DMXController/RGBController_DMX.cpp b/Controllers/DMXController/RGBController_DMX.cpp index c83255710..2d0973cc9 100644 --- a/Controllers/DMXController/RGBController_DMX.cpp +++ b/Controllers/DMXController/RGBController_DMX.cpp @@ -32,7 +32,7 @@ RGBController_DMX::RGBController_DMX(std::vector device_list) name = "DMX Device Group"; type = DEVICE_TYPE_LEDSTRIP; description = "DMX Device"; - location = "DMX"; + location = "DMX: " + devices[0].port; /*-----------------------------------------*\ | If this controller only represents a | @@ -47,7 +47,7 @@ RGBController_DMX::RGBController_DMX(std::vector device_list) /*-----------------------------------------*\ | Open OpenDMX port | \*-----------------------------------------*/ - port = new serial_port("/dev/ttyUSB0", 250000, SERIAL_PORT_PARITY_NONE, SERIAL_PORT_SIZE_8, SERIAL_PORT_STOP_BITS_2, false); + port = new serial_port(devices[0].port.c_str(), 250000, SERIAL_PORT_PARITY_NONE, SERIAL_PORT_SIZE_8, SERIAL_PORT_STOP_BITS_2, false); /*-----------------------------------------*\ | Set up modes | diff --git a/Controllers/DMXController/RGBController_DMX.h b/Controllers/DMXController/RGBController_DMX.h index d93cf391d..ab38b4a37 100644 --- a/Controllers/DMXController/RGBController_DMX.h +++ b/Controllers/DMXController/RGBController_DMX.h @@ -16,6 +16,7 @@ struct DMXDevice { std::string name; + std::string port; unsigned int keepalive_time; unsigned int red_channel; unsigned int green_channel; diff --git a/qt/OpenRGBDMXSettingsPage/OpenRGBDMXSettingsEntry.ui b/qt/OpenRGBDMXSettingsPage/OpenRGBDMXSettingsEntry.ui index 24acbd14b..87334c8b6 100644 --- a/qt/OpenRGBDMXSettingsPage/OpenRGBDMXSettingsEntry.ui +++ b/qt/OpenRGBDMXSettingsPage/OpenRGBDMXSettingsEntry.ui @@ -26,19 +26,6 @@ - - - - - - - - - - Red Channel: - - - @@ -46,11 +33,21 @@ - - + + - - + + + + Blue Channel: + + + + + + + + @@ -66,26 +63,39 @@ - - + + - Blue Channel: + Red Channel: - - + + - + + + + Keepalive Time: - + + + + + Port: + + + + + + diff --git a/qt/OpenRGBDMXSettingsPage/OpenRGBDMXSettingsPage.cpp b/qt/OpenRGBDMXSettingsPage/OpenRGBDMXSettingsPage.cpp index 35d30daad..2a20cd6e4 100644 --- a/qt/OpenRGBDMXSettingsPage/OpenRGBDMXSettingsPage.cpp +++ b/qt/OpenRGBDMXSettingsPage/OpenRGBDMXSettingsPage.cpp @@ -31,6 +31,11 @@ OpenRGBDMXSettingsPage::OpenRGBDMXSettingsPage(QWidget *parent) : entry->ui->NameEdit->setText(QString::fromStdString(dmx_settings["devices"][device_idx]["name"])); } + if(dmx_settings["devices"][device_idx].contains("port")) + { + entry->ui->PortEdit->setText(QString::fromStdString(dmx_settings["devices"][device_idx]["port"])); + } + if(dmx_settings["devices"][device_idx].contains("red_channel")) { entry->ui->RedEdit->setText(QString::number((int)dmx_settings["devices"][device_idx]["red_channel"])); @@ -131,6 +136,7 @@ void Ui::OpenRGBDMXSettingsPage::on_SaveDMXConfigurationButton_clicked() | Required parameters | \*-------------------------------------------------*/ dmx_settings["devices"][device_idx]["name"] = entries[device_idx]->ui->NameEdit->text().toStdString(); + dmx_settings["devices"][device_idx]["port"] = entries[device_idx]->ui->PortEdit->text().toStdString(); dmx_settings["devices"][device_idx]["red_channel"] = entries[device_idx]->ui->RedEdit->text().toUInt(); dmx_settings["devices"][device_idx]["green_channel"] = entries[device_idx]->ui->GreenEdit->text().toUInt(); dmx_settings["devices"][device_idx]["blue_channel"] = entries[device_idx]->ui->BlueEdit->text().toUInt();