Skip to content

Commit 28026cd

Browse files
author
sanny
committed
Merge remote-tracking branch 'origin/dev'
2 parents d3aef69 + 3da19fd commit 28026cd

16 files changed

Lines changed: 470 additions & 325 deletions

omodsim/controls/mainstatusbar.cpp

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,37 @@
22
#include <QMdiSubWindow>
33
#include "mainstatusbar.h"
44

5+
///
6+
/// \brief Parity_toString
7+
/// \param parity
8+
/// \return
9+
///
10+
QString Parity_toString(QSerialPort::Parity parity)
11+
{
12+
switch(parity)
13+
{
14+
case QSerialPort::NoParity:
15+
return MainStatusBar::tr("NONE");
16+
17+
case QSerialPort::EvenParity:
18+
return MainStatusBar::tr("EVEN");
19+
20+
case QSerialPort::OddParity:
21+
return MainStatusBar::tr("ODD");
22+
23+
case QSerialPort::SpaceParity:
24+
return MainStatusBar::tr("SPACE");
25+
26+
case QSerialPort::MarkParity:
27+
return MainStatusBar::tr("MARK");
28+
29+
default:
30+
break;
31+
}
32+
33+
return QString();
34+
}
35+
536
///
637
/// \brief MainStatusBar::MainStatusBar
738
/// \param parent
@@ -80,7 +111,11 @@ void MainStatusBar::updateConnectionInfo(QLabel* label, const ConnectionDetails&
80111
break;
81112

82113
case ConnectionType::Serial:
83-
label->setText(QString(tr("Port %1: %2")).arg(cd.SerialParams.PortName, QString::number(cd.SerialParams.BaudRate)));
114+
label->setText(QString(tr("Port %1:%2:%3:%4:%5 ")).arg(cd.SerialParams.PortName,
115+
QString::number(cd.SerialParams.BaudRate),
116+
QString::number(cd.SerialParams.WordLength),
117+
Parity_toString(cd.SerialParams.Parity),
118+
QString::number(cd.SerialParams.StopBits)));
84119
break;
85120
}
86121
}

omodsim/controls/outputwidget.cpp

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
struct ListItemData
99
{
1010
int Row;
11-
quint16 Address;
11+
quint32 Address;
1212
QVariant Value;
1313
};
1414
Q_DECLARE_METATYPE(ListItemData)
@@ -71,11 +71,12 @@ QVector<quint16> OutputWidget::data() const
7171
///
7272
/// \brief OutputWidget::setup
7373
/// \param dd
74+
/// \param data
7475
///
75-
void OutputWidget::setup(const DisplayDefinition& dd)
76+
void OutputWidget::setup(const DisplayDefinition& dd, const QModbusDataUnit& data)
7677
{
7778
_displayDefinition = dd;
78-
updateDataWidget(QModbusDataUnit());
79+
updateDataWidget(data);
7980
}
8081

8182
///
@@ -268,7 +269,6 @@ void OutputWidget::updateTraffic(const QModbusResponse& response, int server)
268269
void OutputWidget::updateData(const QModbusDataUnit& data)
269270
{
270271
updateDataWidget(data);
271-
_lastData = data;
272272
}
273273

274274
///
@@ -585,6 +585,14 @@ void OutputWidget::setNotConnectedStatus()
585585
setStatus(tr("NOT CONNECTED!"));
586586
}
587587

588+
///
589+
/// \brief OutputWidget::setInvalidLengthStatus
590+
///
591+
void OutputWidget::setInvalidLengthStatus()
592+
{
593+
setStatus(tr("Invalid Data Length Specified"));
594+
}
595+
588596
///
589597
/// \brief OutputWidget::updateDataWidget
590598
/// \param data
@@ -600,7 +608,7 @@ void OutputWidget::updateDataWidget(const QModbusDataUnit& data)
600608
}
601609

602610
QStringList capstr;
603-
for(quint16 i = 0; i < _displayDefinition.Length; i++)
611+
for(quint32 i = 0; i < _displayDefinition.Length; i++)
604612
{
605613
ListItemData itemData;
606614
itemData.Row = i;
@@ -658,6 +666,8 @@ void OutputWidget::updateDataWidget(const QModbusDataUnit& data)
658666
item->setText(QString(format).arg(addr, valstr));
659667
item->setData(Qt::UserRole, QVariant::fromValue(itemData));
660668
}
669+
670+
_lastData = data;
661671
}
662672

663673
///

omodsim/controls/outputwidget.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class OutputWidget : public QWidget
2525

2626
QVector<quint16> data() const;
2727

28-
void setup(const DisplayDefinition& dd);
28+
void setup(const DisplayDefinition& dd, const QModbusDataUnit& data = QModbusDataUnit());
2929

3030
DisplayMode displayMode() const;
3131
void setDisplayMode(DisplayMode mode);
@@ -49,6 +49,8 @@ class OutputWidget : public QWidget
4949
void setFont(const QFont& font);
5050

5151
void setStatus(const QString& status);
52+
void setNotConnectedStatus();
53+
void setInvalidLengthStatus();
5254

5355
void paint(const QRect& rc, QPainter& painter);
5456

@@ -66,7 +68,6 @@ private slots:
6668
void on_listWidget_itemDoubleClicked(QListWidgetItem *item);
6769

6870
private:
69-
void setNotConnectedStatus();
7071
void updateDataWidget(const QModbusDataUnit& data);
7172
void updateTrafficWidget(bool request, int server, const QModbusPdu& pdu);
7273

0 commit comments

Comments
 (0)