#include "mainwindow.h" #include #include #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { setupUi(); enumerateDevices(); } MainWindow::~MainWindow() { // Clean up all channel widgets for (auto widget : channelWidgets) { delete widget; } } void MainWindow::setupUi() { // Create central widget and main layout centralWidget = new QWidget(this); mainLayout = new QVBoxLayout(centralWidget); // Create scroll area scrollArea = new QScrollArea(this); scrollContent = new QWidget(); scrollLayout = new QVBoxLayout(scrollContent); // Set up scroll area properties scrollArea->setWidget(scrollContent); scrollArea->setWidgetResizable(true); scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); // Add scroll area to main layout mainLayout->addWidget(scrollArea); // Set central widget setCentralWidget(centralWidget); setWindowTitle("EIS Multiplexer Controller"); } void MainWindow::onChannelAboutToBeTurnedOn(uint16_t deviceSerial, uint16_t channelNumber) {} void MainWindow::enumerateDevices() { size_t count = 0; uint16_t* serials = eismultiplexer_list_available_devices(&count); if (!serials || count == 0) { QMessageBox::warning(this, tr("No Devices Found"), tr("No EIS multiplexer devices were found. Please connect a device and try again.")); qWarning() << "No EIS multiplexer devices found"; close(); return; } for (size_t i = 0; i < count; i++) { uint16_t serial = serials[i]; std::shared_ptr multiplexer(new struct eismultiplexer); if (eismultiplexer_connect(multiplexer.get(), serial) >= 0) { uint16_t channelCount = 0; qDebug()<<"Adding channels from device "<= 0) { for (uint16_t channel = 0; channel < channelCount; channel++) { ChannelWidget* widget = new ChannelWidget(serial, channel, multiplexer.get()); qDebug()<<"Added widget from device "<addWidget(widget); } } } else { QMessageBox::warning(this, tr("Connection Failed"), tr("Failed to connect to device with serial %1").arg(serial)); qWarning() << "Failed to connect to device with serial" << serial; } } free(serials); }