MNE-CPP  beta 1.0
triggercontrolsetupwidget.cpp
Go to the documentation of this file.
1 //=============================================================================================================
37 //*************************************************************************************************************
38 //=============================================================================================================
39 // INCLUDES
40 //=============================================================================================================
41 
44 #include "settingswidget.h"
45 
46 #include "serialport.h"
47 
48 #include "../triggercontrol.h"
49 
50 
51 //*************************************************************************************************************
52 //=============================================================================================================
53 // QT INCLUDES
54 //=============================================================================================================
55 
56 #include <iostream>
57 
58 
59 //*************************************************************************************************************
60 //=============================================================================================================
61 // USED NAMESPACES
62 //=============================================================================================================
63 
64 using namespace TriggerControlPlugin;
65 
66 
67 //*************************************************************************************************************
68 //=============================================================================================================
69 // DEFINE MEMBER METHODS
70 //=============================================================================================================
71 
73 : QWidget(parent)
74 , m_pTriggerControl(toolbox)
75 {
76  ui.setupUi(this);
77  connect(ui.m_qPushButton_Settings, &QPushButton::released, this, &TriggerControlSetupWidget::showSettings);
78 
79  connect(ui.m_qPushButton_About, &QPushButton::released, this, &TriggerControlSetupWidget::showAboutDialog);
80  // initialize Buttons
81  ui.m_qPushButton_Connect->setEnabled(true);
82  ui.m_qPushButton_Disconnect->setEnabled(false);
83  ui.m_qPushButton_Send->setEnabled(false);
84  ui.m_qPushButton_Sendanalog->setEnabled(false);
85 
86  ui.m_qComboBox_AnalogSelect->addItem(QLatin1String("Kanal 1"));
87  ui.m_qComboBox_AnalogSelect->addItem(QLatin1String("Kanal 2"));
88 
89  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 1"));
90  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 2"));
91  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 3"));
92  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 4"));
93  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 5"));
94  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 6"));
95  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 7"));
96  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 8"));
97  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 9"));
98  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 10"));
99  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 11"));
100  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 12"));
101  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 13"));
102  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 14"));
103  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 15"));
104  ui.m_qComboBox_ChannelList->addItem(QLatin1String("Kanal 16"));
105 
106 }
107 
108 //*************************************************************************************************************
109 
111 {
112 
113 }
114 
115 
116 //*************************************************************************************************************
117 
118 void TriggerControlSetupWidget::showAboutDialog()
119 {
120  TriggerControlAboutWidget aboutDialog(this);
121  aboutDialog.exec();
122 }
123 
124 
125 //*************************************************************************************************************
126 
127 void TriggerControlSetupWidget::showSettings()
128 {
129  SettingsWidget settingsWidget(this);
130  settingsWidget.exec();
131 }
132 
133 
134 //*************************************************************************************************************
135 
136 void TriggerControlSetupWidget::on_m_qPushButton_Connect_released()
137 {
138  if (m_pTriggerControl->m_pSerialPort->open())
139  {
140  std::cout << "Port opened" << std::endl;
141  ui.m_qPushButton_Connect->setEnabled(false);
142  ui.m_qPushButton_Disconnect->setEnabled(true);
143  ui.m_qPushButton_Send->setEnabled(true);
144  ui.m_qPushButton_Sendanalog->setEnabled(true);
145  ui.m_qPushButton_Settings->setEnabled(false);
146  }
147  else
148  {
149  std::cout << "Port cannot be opened" << std::endl;
150  }
151 }
152 
153 
154 //*************************************************************************************************************
155 
156 void TriggerControlSetupWidget::on_m_qPushButton_Disconnect_released()
157 {
158 
159  m_pTriggerControl->m_pSerialPort->close();
160  std::cout << "Port closed" << std::endl;
161  ui.m_qPushButton_Connect->setEnabled(true);
162  ui.m_qPushButton_Disconnect->setEnabled(false);
163  ui.m_qPushButton_Send->setEnabled(false);
164  ui.m_qPushButton_Sendanalog->setEnabled(false);
165  ui.m_qPushButton_Settings->setEnabled(true);
166 
167 
168 }
169 
170 
171 //*************************************************************************************************************
172 
173 void TriggerControlPlugin::TriggerControlSetupWidget::on_m_qPushButton_Send_released()
174 {
175 
176  // retrieve current configuration of digital channels
177  if (ui.m_qRadioButton_1->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(0,1); // 0000 0100
178  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(0,0);
179  if (ui.m_qRadioButton_2->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(1,1); // 0000 1000
180  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(1,0);
181  if (ui.m_qRadioButton_3->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(2,1); // 0001 0000
182  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(2,0);
183  if (ui.m_qRadioButton_4->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(3,1); // 0010 0000
184  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(3,0);
185  if (ui.m_qRadioButton_5->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(4,1); // 0100 0000
186  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(4,0);
187  if (ui.m_qRadioButton_6->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(5,1); // 1000 0000
188  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(5,0);
189 
190  // 7 - 12
191  if (ui.m_qRadioButton_7->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(6,1); // 0000 0100
192  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(6,0);
193  if (ui.m_qRadioButton_8->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(7,1); // 0000 1000
194  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(7,0);
195  if (ui.m_qRadioButton_9->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(8,1); // 0001 0000
196  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(8,0);
197  if (ui.m_qRadioButton_10->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(9,1); // 0010 0000
198  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(9,0);
199  if (ui.m_qRadioButton_11->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(10,1); // 0100 0000
200  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(10,0);
201  if (ui.m_qRadioButton_12->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(11,1); // 1000 0000
202  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(11,0);
203 
204  // 13 - 18
205  if (ui.m_qRadioButton_13->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(12,1); // 0000 0100
206  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(12,0);
207  if (ui.m_qRadioButton_14->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(13,1); // 0000 1000
208  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(13,0);
209  if (ui.m_qRadioButton_15->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(14,1); // 0001 0000
210  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(14,0);
211  if (ui.m_qRadioButton_16->isChecked()) m_pTriggerControl->m_pSerialPort->m_digchannel.replace(15,1); // 0010 0000
212  else m_pTriggerControl->m_pSerialPort->m_digchannel.replace(15,0);
213 
214  // encode information according to data transfer protocol
215  m_pTriggerControl->m_pSerialPort->encodedig();
216 
217  // send data
218  m_pTriggerControl->m_pSerialPort->sendData(m_pTriggerControl->m_pSerialPort->m_data);
219 
220  std::cout << "Digital data sent" << std::endl;
221 }
222 
223 
224 //*************************************************************************************************************
225 
226 void TriggerControlPlugin::TriggerControlSetupWidget::on_m_qPushButton_Sendanalog_released()
227 {
228 
229  // retrieve current configuration
230  // retrieve motor selection
231  if(ui.m_qRadioButton_motor1->isChecked()) m_pTriggerControl->m_pSerialPort->m_motor = 1;
232  if(ui.m_qRadioButton_motor2->isChecked()) m_pTriggerControl->m_pSerialPort->m_motor = 2;
233  if(ui.m_qRadioButton_motor3->isChecked()) m_pTriggerControl->m_pSerialPort->m_motor = 3;
234  if(ui.m_qRadioButton_motor4->isChecked()) m_pTriggerControl->m_pSerialPort->m_motor = 4;
235 
236  // retrieve analog value
237  m_pTriggerControl->m_pSerialPort->m_analval = ui.m_qAnalogDisp->intValue();
238 
239  // encode information according to data transfer protocol
240  m_pTriggerControl->m_pSerialPort->encodeana();
241 
242  // send data
243  m_pTriggerControl->m_pSerialPort->sendData(m_pTriggerControl->m_pSerialPort->m_data);
244 
245  std::cout << "Analog data sent" << std::endl;
246 
247 }
248 
249 void TriggerControlPlugin::TriggerControlSetupWidget::on_m_qPushButton_RetrieveDigitalInfo_released()
250 {
251  m_pTriggerControl->m_pSerialPort->m_retrievetyp = 0; // digital channel desired
252  m_pTriggerControl->m_pSerialPort->encoderetr();
253  m_pTriggerControl->m_pSerialPort->sendData(m_pTriggerControl->m_pSerialPort->m_data);
254 }
255 
256 
257 //*************************************************************************************************************
258 
259 void TriggerControlPlugin::TriggerControlSetupWidget::on_m_qPushButton_RetrieveAnalogInfo_released()
260 {
261  m_pTriggerControl->m_pSerialPort->m_retrievetyp = 1; // analog channel desired
262 
263  if (ui.m_qComboBox_AnalogSelect->currentIndex() == 0)
264  m_pTriggerControl->m_pSerialPort->m_retrievechan = 1;
265  else
266  std::cout << "check desired channel" << std::endl;
267 
268  if (ui.m_qComboBox_AnalogSelect->currentIndex() == 1)
269  m_pTriggerControl->m_pSerialPort->m_retrievechan = 2;
270  else
271  std::cout << "check desired channel" << std::endl;
272 
273  m_pTriggerControl->m_pSerialPort->encoderetr();
274 
275  m_pTriggerControl->m_pSerialPort->sendData(m_pTriggerControl->m_pSerialPort->m_data);
276 }
277 
278 
279 //*************************************************************************************************************
280 
281 void TriggerControlPlugin::TriggerControlSetupWidget::on_m_qPushButton_ConnectChannel_released()
282 {
283  m_pTriggerControl->m_pSerialPort->m_wiredChannel = ui.m_qComboBox_ChannelList->currentIndex();
284 }
Contains the declaration of the TriggerControlSetupWidget class.
The TriggercontrolAboutWidget class provides the about dialog for the TriggercontrolToolbox.
The TriggerControl is a MNE-X plugin which contains an intuitive terminal for manual configurations o...
Contains the declaration of the SerialPort class.
The TriggerControlSetupWidget class provides the TriggerControlToolbox configuration window...
Contains the declaration of the TriggercontrolAboutWidget class.
TriggerControlSetupWidget(TriggerControl *toolbox, QWidget *parent=0)