Added QMessageBox notifications for device connection errors and channel control errors
This commit is contained in:
parent
b2bd53be80
commit
64e01ea599
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "channelwidget.h"
|
||||
#include <QDebug>
|
||||
#include <QMessageBox>
|
||||
|
||||
ChannelWidget::ChannelWidget(uint16_t deviceSerial, uint16_t channelNumber, struct eismultiplexer* multiplexer,
|
||||
QWidget *parent)
|
||||
|
@ -36,13 +37,19 @@ void ChannelWidget::onChannelToggled(bool checked)
|
|||
channel_t channelFlag = static_cast<channel_t>(1 << channelNumber);
|
||||
if (checked) {
|
||||
if (eismultiplexer_connect_channel(multiplexer, channelFlag) < 0) {
|
||||
QMessageBox::warning(this, tr("Connection Failed"),
|
||||
tr("Failed to connect channel %1 on device %2").arg(channelNumber).arg(deviceSerial));
|
||||
qWarning() << "Failed to connect channel" << channelNumber << "on device" << deviceSerial;
|
||||
checkbox->setChecked(false);
|
||||
setEnabled(false); // Gray out the widget
|
||||
}
|
||||
} else {
|
||||
if (eismultiplexer_disconnect_channel(multiplexer, channelFlag) < 0) {
|
||||
QMessageBox::warning(this, tr("Disconnection Failed"),
|
||||
tr("Failed to disconnect channel %1 on device %2").arg(channelNumber).arg(deviceSerial));
|
||||
qWarning() << "Failed to disconnect channel" << channelNumber << "on device" << deviceSerial;
|
||||
checkbox->setChecked(true);
|
||||
setEnabled(false); // Gray out the widget
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ private:
|
|||
uint16_t channelNumber;
|
||||
struct eismultiplexer* multiplexer;
|
||||
QCheckBox* checkbox;
|
||||
QLabel* label;
|
||||
QLabel* label; // No need for tr() function, QObject already provides it
|
||||
};
|
||||
|
||||
#endif // CHANNELWIDGET_H
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include "mainwindow.h"
|
||||
#include <QDebug>
|
||||
#include <QMessageBox>
|
||||
#include <eismultiplexer.h>
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent)
|
||||
|
@ -48,7 +49,9 @@ void MainWindow::enumerateDevices()
|
|||
size_t count = 0;
|
||||
uint16_t* serials = eismultiplexer_list_available_devices(&count);
|
||||
|
||||
if (!serials) {
|
||||
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";
|
||||
return;
|
||||
}
|
||||
|
@ -67,6 +70,8 @@ void MainWindow::enumerateDevices()
|
|||
}
|
||||
eismultiplexer_disconnect(&multiplexer);
|
||||
} 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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,8 @@ public:
|
|||
explicit MainWindow(QWidget *parent = nullptr);
|
||||
~MainWindow() override;
|
||||
|
||||
// No need for tr() function, QObject already provides it
|
||||
|
||||
private:
|
||||
void enumerateDevices();
|
||||
void setupUi();
|
||||
|
|
Loading…
Reference in a new issue