Commit 26fa00c5f232f2213f50bb6e19620676c3afc94e

Authored by 김태훈
1 parent c427bc0a3a
Exists in master and in 2 other branches fhd, fhd-demo

출력 형식 변경

app/gui/packet/mainwindow.cpp
... ... @@ -22,30 +22,58 @@ MainWindow::MainWindow(QWidget *parent) :
22 22 connect(sock, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams()));
23 23  
24 24 ui->controlTable->setRowCount(sizeof(oven_control_t) / sizeof(U16));
25   - ui->controlTable->setColumnCount(3);
26   - ui->controlTable->setHorizontalHeaderLabels(QString("Address,Value,Description").split(","));
  25 + ui->controlTable->setColumnCount(4);
  26 + ui->controlTable->setHorizontalHeaderLabels(QString("Addr,Value,Value,Description").split(","));
27 27  
28 28 for (int row = 0; row < ui->controlTable->rowCount(); row++)
29 29 {
30   - ui->controlTable->setItem(row, 0, new QTableWidgetItem(QString("").sprintf("0x%04X", row)));
  30 + QTableWidgetItem *witem = new QTableWidgetItem(QString("").sprintf("0x%04X", row));
  31 + witem->setTextAlignment(Qt::AlignCenter);
  32 +
  33 + ui->controlTable->setItem(row, 0, witem);
  34 +
31 35  
32 36 TableValue *item = new TableValue;
33 37 item->setText("0x0000");
  38 + item->setMargin(3);
  39 + item->setAlignment(Qt::AlignCenter);
34 40 ui->controlTable->setCellWidget(row, 1, item);
  41 +
  42 + item = new TableValue;
  43 + item->setText("0");
  44 + item->setMargin(3);
  45 + item->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
  46 + ui->controlTable->setCellWidget(row, 2, item);
35 47 }
36 48  
  49 + ui->controlTable->resizeColumnToContents(0);
  50 + ui->controlTable->resizeColumnToContents(1);
  51 +
37 52 ui->stateTable->setRowCount(sizeof(oven_state_t) / sizeof(U16));
38   - ui->stateTable->setColumnCount(3);
39   - ui->stateTable->setHorizontalHeaderLabels(QString("Address,Value,Description").split(","));
  53 + ui->stateTable->setColumnCount(4);
  54 + ui->stateTable->setHorizontalHeaderLabels(QString("Addr,Value,Value,Description").split(","));
40 55  
41 56 for (int row = 0; row < ui->stateTable->rowCount(); row++)
42 57 {
43   - ui->stateTable->setItem(row, 0, new QTableWidgetItem(QString().sprintf("0x%04X", row)));
  58 + QTableWidgetItem *witem = new QTableWidgetItem(QString("").sprintf("0x%04X", row));
  59 + witem->setTextAlignment(Qt::AlignCenter);
  60 + ui->stateTable->setItem(row, 0, witem);
44 61  
45 62 TableValue *item = new TableValue;
46 63 item->setText("0x0000");
  64 + item->setMargin(3);
  65 + item->setAlignment(Qt::AlignCenter);
47 66 ui->stateTable->setCellWidget(row, 1, item);
  67 +
  68 + item = new TableValue;
  69 + item->setText("0");
  70 + item->setMargin(3);
  71 + item->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
  72 + ui->stateTable->setCellWidget(row, 2, item);
48 73 }
  74 +
  75 + ui->stateTable->resizeColumnToContents(0);
  76 + ui->stateTable->resizeColumnToContents(1);
49 77 }
50 78  
51 79 MainWindow::~MainWindow()
... ... @@ -107,7 +135,7 @@ void MainWindow::updateControl(oven_control_t *control)
107 135 {
108 136 *(base + row) = o;
109 137 TableValue *val = (TableValue *) ui->controlTable->cellWidget(row, 1);
110   - val->setText(QString().sprintf("0x%04X", o));
  138 + val->setText(QString().sprintf("0x%04X - %d", o, o));
111 139 }
112 140 }
113 141 }
... ... @@ -124,7 +152,7 @@ void MainWindow::updateState(oven_state_t *state)
124 152 {
125 153 *(base + row) = o;
126 154 TableValue *val = (TableValue *) ui->stateTable->cellWidget(row, 1);
127   - val->setText(QString().sprintf("0x%04X", o));
  155 + val->setText(QString().sprintf("0x%04X - %d", o, o));
128 156 }
129 157 }
130 158 }
... ...
app/gui/packet/tablevalue.cpp
... ... @@ -4,31 +4,34 @@
4 4  
5 5 #include <QtDebug>
6 6  
  7 +TableValue::TableValue()
  8 +{
  9 +// timer.setSingleShot(true);
  10 + connect(&animationTimer, SIGNAL(timeout()), this, SLOT(updateColor()));
  11 +// connect(&timer, SIGNAL(timeout()), &animationTimer, SLOT(stop()));
  12 +// connect(&timer, SIGNAL(timeout()), this, SLOT(updateColor()));
  13 +// setAutoFillBackground(true);
  14 +}
  15 +
7 16 void TableValue::setText(const QString &str)
8 17 {
9 18 QLabel::setText(str);
10   - timer.start(2000);
  19 + time = QTime::currentTime().addSecs(2);
11 20 animationTimer.start(33);
12 21  
13   - updateColor();
  22 +// updateColor();
14 23 }
15 24  
16 25 void TableValue::updateColor()
17 26 {
18   - int remain = timer.remainingTime();
19   - if (remain < 0)
20   - remain = 0;
21   -
22   - if (remain > 2000)
23   - remain = 2000;
24   -
25   - qreal percentage = ((qreal) remain / 2000) * 0.5;
26   - int b = 255 * percentage;
27   - if (b < 0)
28   - b = 0;
29   -
30   - if (b > 255)
31   - b = 255;
32   -
33   - setStyleSheet(QString().sprintf("background-color: rgba(255, 0, 0, %d); color: rgb(0, 0, 0)", b));
  27 + int remain = qBound(0, QTime::currentTime().msecsTo(time), 2000);
  28 + int a = 255 * remain / 4000;
  29 +
  30 + if (a > 1)
  31 + setStyleSheet(QString().sprintf("background-color: rgba(255, 0, 0, %d)", a));
  32 + else
  33 + {
  34 + setStyleSheet("background-color: rgba(255, 0, 0, 0)");
  35 + animationTimer.stop();
  36 + }
34 37 }
... ...
app/gui/packet/tablevalue.h
... ... @@ -6,23 +6,19 @@
6 6 #include <QLabel>
7 7 #include <QTableWidgetItem>
8 8 #include <QTimer>
  9 +#include <QTime>
9 10  
10 11 class TableValue : public QLabel
11 12 {
12 13 Q_OBJECT
13 14  
14 15 public:
15   - explicit TableValue()
16   - {
17   - timer.setSingleShot(true);
18   - connect(&animationTimer, SIGNAL(timeout()), this, SLOT(updateColor()));
19   - connect(&timer, SIGNAL(timeout()), &animationTimer, SLOT(stop()));
20   - connect(&timer, SIGNAL(timeout()), this, SLOT(updateColor()));
21   - }
  16 + explicit TableValue();
22 17  
23 18 void setText(const QString &text);
24 19  
25 20 private:
  21 + QTime time;
26 22 QTimer timer;
27 23 QTimer animationTimer;
28 24  
... ...