MNE-CPP  beta 1.0
settingswidget.cpp
1 //=============================================================================================================
37 //*************************************************************************************************************
38 //=============================================================================================================
39 // INCLUDES
40 //=============================================================================================================
41 
42 #include "settingswidget.h"
43 #include "ui_settingswidget.h"
44 
45 #include "../triggercontrol.h"
46 
48 
49 #include "serialport.h"
50 
51 
52 //*************************************************************************************************************
53 //=============================================================================================================
54 // QT INCLUDES
55 //=============================================================================================================
56 
57 #include <QDebug>
58 #include <QtSerialPort/QSerialPort>
59 #include <QtSerialPort/QSerialPortInfo>
60 
61 
62 //*************************************************************************************************************
63 //=============================================================================================================
64 // USED NAMESPACES
65 //=============================================================================================================
66 
67 using namespace TriggerControlPlugin;
68 
69 
70 //*************************************************************************************************************
71 //=============================================================================================================
72 // DEFINE MEMBER METHODS
73 //=============================================================================================================
74 
76 : QDialog(parent)
77 , ui(new Ui::SettingsWidget)
78 {
79  ui->setupUi(this);
80 
81  connect(ui->m_qPushButton_apply,SIGNAL(released()),this, SLOT(apply()));
82 // connect(ui->m_qPushButton_apply, &QPushButton::released, this, SettingsWidget::apply());
83 
84  connect(ui->m_qComboBox_port, SIGNAL(currentIndexChanged(int)),this, SLOT(showPortInfo(int)));
85  // connect(ui->baudRateBox, SIGNAL(currentIndexChanged(int)),
86  // this, SLOT(checkCustomBaudRatePolicy(int)));
87 
88  fillPortsParameters();
89  fillPortsInfo();
90 
91  // initSettings(); --> eigentlich reicht es, wenn wir das hier weglassen, denn initial wurden die richtigen
92  // Parameter ja schon gesetzt. Eine Ă„nderung durch die comboboxen ruft weiterhin updatesettings auf
93 }
94 
95 
96 //*************************************************************************************************************
97 
99 {
100  delete ui;
101 }
102 
103 
104 //*************************************************************************************************************
105 
106 void SettingsWidget::apply()
107 {
108  updateSettings();
109  close();
110 }
111 
112 
113 //*************************************************************************************************************
114 
115 void SettingsWidget::fillPortsInfo()
116 {
117  ui->m_qComboBox_port->clear();
118 
119  foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {
120 
121  QStringList list;
122  list << info.portName()
123  << info.description()
124  << info.manufacturer()
125  << info.systemLocation();
126 // << (info.vendorIdentifier() ? QString::number(info.vendorIdentifier(), 16) : QString())
127  // << (info.productIdentifier() ? QString::number(info.productIdentifier(), 16) : QString());
128 
129  ui->m_qComboBox_port->addItem(list.first(), list);
130  }
131 }
132 
133 
134 //*************************************************************************************************************
135 
136 void SettingsWidget::fillPortsParameters()
137 {
138  ui->m_qComboBox_baudrate->addItem(QLatin1String("9600"), QSerialPort::Baud9600);
139  ui->m_qComboBox_baudrate->addItem(QLatin1String("19200"), QSerialPort::Baud19200);
140  ui->m_qComboBox_baudrate->addItem(QLatin1String("38400"), QSerialPort::Baud38400);
141  ui->m_qComboBox_baudrate->addItem(QLatin1String("115200"), QSerialPort::Baud115200);
142  ui->m_qComboBox_baudrate->setCurrentIndex(3);
143 
144  ui->m_qComboBox_databits->addItem(QLatin1String("7"),QSerialPort::Data7);
145  ui->m_qComboBox_databits->addItem(QLatin1String("8"),QSerialPort::Data8);
146  ui->m_qComboBox_databits->setCurrentIndex(1);
147 
148  ui->m_qComboBox_parity->addItem(QLatin1String("None"), QSerialPort::NoParity);
149  ui->m_qComboBox_parity->addItem(QLatin1String("Even"), QSerialPort::EvenParity);
150  ui->m_qComboBox_parity->addItem(QLatin1String("Odd"), QSerialPort::OddParity);
151  ui->m_qComboBox_parity->addItem(QLatin1String("Mark"), QSerialPort::MarkParity);
152  ui->m_qComboBox_parity->addItem(QLatin1String("Space"), QSerialPort::SpaceParity);
153 
154  ui->m_qComboBox_stopbits->addItem(QLatin1String("1"), QSerialPort::OneStop);
155  ui->m_qComboBox_stopbits->addItem(QLatin1String("2"), QSerialPort::TwoStop);
156  ui->m_qComboBox_stopbits->setCurrentIndex(1);
157 
158  ui->m_qComboBox_flowcontrol->addItem(QLatin1String("None"), QSerialPort::NoFlowControl);
159  ui->m_qComboBox_flowcontrol->addItem(QLatin1String("RTS/CTS"), QSerialPort::HardwareControl);
160  ui->m_qComboBox_flowcontrol->addItem(QLatin1String("XON/XOFF"), QSerialPort::SoftwareControl);
161 }
162 
163 //*************************************************************************************************************
164 
165 void SettingsWidget::showPortInfo(int idx)
166 {
167  if (idx != -1) {
168  QStringList list = ui->m_qComboBox_port->itemData(idx).toStringList();
169  ui->m_qLabel_description->setText(tr("Description: %1").arg(list.at(1)));
170  ui->m_qLabel_producer->setText(tr("Manufacturer: %1").arg(list.at(2)));
171  ui->m_qLabel_place->setText(tr("Location: %1").arg(list.at(3)));
172 
173  }
174 }
175 
176 
177 //*************************************************************************************************************
178 
179 void SettingsWidget::updateSettings()
180 {
181  TriggerControlSetupWidget* tcsWidget = static_cast<TriggerControlSetupWidget*> (this->parentWidget()); //Upcast from QWidget to TriggerControlSetupWidget
182 
183  tcsWidget->m_pTriggerControl->m_pSerialPort->settings().name = ui->m_qComboBox_port->currentText();
184 
185  // Baud Rate
186 
187  tcsWidget->m_pTriggerControl->m_pSerialPort->settings().baudRate = static_cast<QSerialPort::BaudRate>(
188  ui->m_qComboBox_baudrate->itemData(ui->m_qComboBox_baudrate->currentIndex()).toInt());
189  tcsWidget->m_pTriggerControl->m_pSerialPort->settings().stringBaudRate = QString::number(tcsWidget->m_pTriggerControl->m_pSerialPort->settings().baudRate);
190 
191  // Data bits
192  tcsWidget->m_pTriggerControl->m_pSerialPort->settings().dataBits = static_cast<QSerialPort::DataBits>(
193  ui->m_qComboBox_databits->itemData(ui->m_qComboBox_databits->currentIndex()).toInt());
194  tcsWidget->m_pTriggerControl->m_pSerialPort->settings().stringDataBits = ui->m_qComboBox_databits->currentText();
195 
196  // Parity
197  tcsWidget->m_pTriggerControl->m_pSerialPort->settings().parity = static_cast<QSerialPort::Parity>(
198  ui->m_qComboBox_parity->itemData(ui->m_qComboBox_parity->currentIndex()).toInt());
199  tcsWidget->m_pTriggerControl->m_pSerialPort->settings().stringParity = ui->m_qComboBox_parity->currentText();
200 
201  // Stop bits
202  tcsWidget->m_pTriggerControl->m_pSerialPort->settings().stopBits = static_cast<QSerialPort::StopBits>(
203  ui->m_qComboBox_stopbits->itemData(ui->m_qComboBox_stopbits->currentIndex()).toInt());
204  tcsWidget->m_pTriggerControl->m_pSerialPort->settings().stringStopBits = ui->m_qComboBox_stopbits->currentText();
205 
206  // Flow control
207  tcsWidget->m_pTriggerControl->m_pSerialPort->settings().flowControl = static_cast<QSerialPort::FlowControl>(
208  ui->m_qComboBox_flowcontrol->itemData(ui->m_qComboBox_flowcontrol->currentIndex()).toInt());
209  tcsWidget->m_pTriggerControl->m_pSerialPort->settings().stringFlowControl = ui->m_qComboBox_flowcontrol->currentText();
210 }
Contains the declaration of the TriggerControlSetupWidget class.
Definition: aboutwindow.h:52
Contains the declaration of the SerialPort class.
The TriggerControlSetupWidget class provides the TriggerControlToolbox configuration window...
The TriggerControlSetupWidget class provides the TriggerControlToolbox configuration window...