X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdialogs%2Fconnect.cpp;h=af01b6cf6e47e6f07ae251b5104d90d7d3e6b599;hp=d2cb2a313e24b8932c48a6e9ddb957f97109854c;hb=26f209b713171014a4f6dc3546b64bf691727cfd;hpb=744aa24fc5a7084461e4e70595b96f1c3eac65e4 diff --git a/pv/dialogs/connect.cpp b/pv/dialogs/connect.cpp index d2cb2a31..af01b6cf 100644 --- a/pv/dialogs/connect.cpp +++ b/pv/dialogs/connect.cpp @@ -22,6 +22,8 @@ #include +#include + #include "connect.hpp" #include @@ -47,13 +49,17 @@ namespace dialogs { Connect::Connect(QWidget *parent, pv::DeviceManager &device_manager) : QDialog(parent), + tcp_endpoint_(&form_), + tcp_endpoint_layout_(&tcp_endpoint_), + tcp_host_(&tcp_endpoint_), + tcp_port_(&tcp_endpoint_), device_manager_(device_manager), layout_(this), form_(this), form_layout_(&form_), drivers_(&form_), serial_devices_(&form_), - scan_button_(tr("&Scan for Devices"), this), + scan_button_(tr("&Scan for devices using driver above"), this), device_list_(this), button_box_(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this) @@ -73,6 +79,15 @@ Connect::Connect(QWidget *parent, pv::DeviceManager &device_manager) : form_layout_.addRow(tr("Serial &Port"), &serial_devices_); serial_devices_.setEditable(true); + tcp_host_.setPlaceholderText("192.168.1.100"); + tcp_endpoint_layout_.addWidget(&tcp_host_); + tcp_endpoint_layout_.addWidget(new QLabel(":")); + tcp_port_.setRange(1, 65535); + tcp_port_.setValue(5555); + tcp_endpoint_layout_.addWidget(&tcp_port_); + tcp_endpoint_layout_.setContentsMargins(0, 0, 0, 0); + form_layout_.addRow(tr("TCP &Endpoint"), &tcp_endpoint_); + unset_connection(); connect(&scan_button_, SIGNAL(pressed()), @@ -132,6 +147,8 @@ void Connect::unset_connection() device_list_.clear(); serial_devices_.hide(); form_layout_.labelForField(&serial_devices_)->hide(); + tcp_endpoint_.hide(); + form_layout_.labelForField(&tcp_endpoint_)->hide(); button_box_.button(QDialogButtonBox::Ok)->setDisabled(true); } @@ -142,6 +159,14 @@ void Connect::set_serial_connection(shared_ptr driver) form_layout_.labelForField(&serial_devices_)->show(); } +void Connect::set_tcp_connection(shared_ptr driver) +{ + (void)driver; + + tcp_endpoint_.show(); + form_layout_.labelForField(&tcp_endpoint_)->show(); +} + void Connect::scan_pressed() { device_list_.clear(); @@ -169,6 +194,16 @@ void Connect::scan_pressed() serial.toUtf8().constData()); } + if (tcp_endpoint_.isVisible()) { + QString host = tcp_host_.text(); + QString port = tcp_port_.text(); + if(!host.isEmpty()) { + QString conn = QString("tcp-raw/%1/%2").arg(host, port); + drvopts[ConfigKey::CONN] = Variant::create( + conn.toUtf8().constData()); + } + } + const list< shared_ptr > devices = device_manager_.driver_scan(driver, drvopts); @@ -199,6 +234,9 @@ void Connect::device_selected(int index) if (driver->scan_options().count(ConfigKey::SERIALCOMM)) set_serial_connection(driver); + + if (driver->name() == "rigol-ds") // NBNB + set_tcp_connection(driver); } } // namespace dialogs