MNE-CPP  beta 0.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mnertclientsetupwidget.cpp
Go to the documentation of this file.
1 //=============================================================================================================
36 //*************************************************************************************************************
37 //=============================================================================================================
38 // INCLUDES
39 //=============================================================================================================
40 
41 #include "mnertclientsetupwidget.h"
42 #include "mnertclientaboutwidget.h"
43 
45 //#include "mnertclientsquidcontroldgl.h"
46 
47 #include "../mnertclient.h"
48 
49 
50 //*************************************************************************************************************
51 //=============================================================================================================
52 // QT INCLUDES
53 //=============================================================================================================
54 
55 #include <QDir>
56 #include <QDebug>
57 #include <QComboBox>
58 
59 
60 //*************************************************************************************************************
61 //=============================================================================================================
62 // USED NAMESPACES
63 //=============================================================================================================
64 
65 using namespace MneRtClientPlugin;
66 
67 
68 //*************************************************************************************************************
69 //=============================================================================================================
70 // DEFINE MEMBER METHODS
71 //=============================================================================================================
72 
74 : QWidget(parent)
75 , m_pMneRtClient(p_pMneRtClient)
76 , m_bIsInit(false)
77 , m_pMneRtClientSetupFiffFileSimulatorWidget(new MneRtClientSetupFiffFileSimulatorWidget)
78 , m_pMneRtClientSetupNeuromagWidget(new MneRtClientSetupNeuromagWidget)
79 , m_pMneRtClientSetupBabyMegWidget(new MneRtClientSetupBabyMegWidget(p_pMneRtClient))
80 {
81  ui.setupUi(this);
82 
83  //Record data checkbox
84  connect(ui.m_qCheckBox_RecordData, &QCheckBox::stateChanged, this, &MneRtClientSetupWidget::checkedRecordDataChanged);
85 
86  //Fiff record file
87  connect(ui.m_qPushButton_FiffRecordFile, &QPushButton::released, this, &MneRtClientSetupWidget::pressedFiffRecordFile);
88 
89  //Select connector
90  connect(ui.m_qComboBox_Connector, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
92 
93  //Configure connector
94  connect(ui.m_qPushButton_Configure, &QCheckBox::released, this, &MneRtClientSetupWidget::pressedConfigure);
95 
96  //rt server connection
97  this->ui.m_qLineEdit_Ip->setText(m_pMneRtClient->m_sMneRtClientIP);
98 
99  connect(ui.m_qPushButton_Connect, &QPushButton::released, this, &MneRtClientSetupWidget::pressedConnect);
100 
101  connect(m_pMneRtClient, &MneRtClient::cmdConnectionChanged, this, &MneRtClientSetupWidget::cmdConnectionChanged);
102 
103  //rt server fiffInfo received
105 
106  //Buffer
107  connect(ui.m_qLineEdit_BufferSize, &QLineEdit::editingFinished, this, &MneRtClientSetupWidget::bufferSizeEdited);
108 
109  //CLI
110  connect(ui.m_qPushButton_SendCLI, &QPushButton::released, this, &MneRtClientSetupWidget::pressedSendCLI);
111 
112  //About
113  connect(ui.m_qPushButton_About, &QPushButton::released, this, &MneRtClientSetupWidget::showAboutDialog);
114 
115 // //SQUID Control
116 // connect(ui.m_qPushButton_SQUIDControl, &QPushButton::released, this, &MneRtClientSetupWidget::SQUIDControlDialog);
117 
118  this->init();
119 }
120 
121 
122 //*************************************************************************************************************
123 
125 {
126 
127 }
128 
129 
130 //*************************************************************************************************************
131 
133 {
135  cmdConnectionChanged(m_pMneRtClient->m_bCmdClientIsConnected);
136 }
137 
138 
139 //*************************************************************************************************************
140 
142 {
143  bool t_bSuccess = false;
144  qint32 t_iBufferSize = ui.m_qLineEdit_BufferSize->text().toInt(&t_bSuccess);
145 
146  if(t_bSuccess && t_iBufferSize > 0)
147  m_pMneRtClient->m_iBufferSize = t_iBufferSize;
148  else
149  ui.m_qLineEdit_BufferSize->setText(QString("%1").arg(m_pMneRtClient->m_iBufferSize));
150 }
151 
152 
153 //*************************************************************************************************************
154 
156 {
157  if(ui.m_qCheckBox_RecordData->checkState() == Qt::Checked)
158  {
159  ui.m_qComboBox_SubjectSelection->setEnabled(true);
160  ui.m_qPushButton_NewSubject->setEnabled(true);
161  ui.m_qLineEdit_FiffRecordFile->setEnabled(true);
162  ui.m_qPushButton_FiffRecordFile->setEnabled(true);
163  }
164  else
165  {
166  ui.m_qComboBox_SubjectSelection->setEnabled(false);
167  ui.m_qPushButton_NewSubject->setEnabled(false);
168  ui.m_qLineEdit_FiffRecordFile->setEnabled(false);
169  ui.m_qPushButton_FiffRecordFile->setEnabled(false);
170  }
171 }
172 
173 
174 //*************************************************************************************************************
175 
177 {
178  if(ui.m_qComboBox_Connector->itemData(idx).toInt() != m_pMneRtClient->m_iActiveConnectorId && m_bIsInit)
179  m_pMneRtClient->changeConnector(ui.m_qComboBox_Connector->itemData(idx).toInt());
180 }
181 
182 
183 //*************************************************************************************************************
184 
186 {
187  QString fileName = QFileDialog::getSaveFileName(this, tr("Save Fiff Record File"), "", tr("Fiff Record File (*.fif)"));
188 
189  ui.m_qLineEdit_FiffRecordFile->setText(fileName);
190 }
191 
192 
193 //*************************************************************************************************************
194 
196 {
197  if(m_pMneRtClient->m_bCmdClientIsConnected)
198  m_pMneRtClient->disconnectCmdClient();
199  else
200  {
201  m_pMneRtClient->m_sMneRtClientIP = this->ui.m_qLineEdit_Ip->text();
202  m_pMneRtClient->connectCmdClient();
203  }
204 }
205 
206 
207 //*************************************************************************************************************
208 
210 {
211  if(m_pMneRtClient->m_bCmdClientIsConnected)
212  {
213  this->printToLog(this->ui.m_qLineEdit_SendCLI->text());
214  QString t_sReply = m_pMneRtClient->m_pRtCmdClient->sendCLICommand(this->ui.m_qLineEdit_SendCLI->text());
215  this->printToLog(t_sReply);
216  }
217 }
218 
219 
220 //*************************************************************************************************************
221 
223 {
224  QString t_sConnector = ui.m_qComboBox_Connector->currentText();
225  if(t_sConnector == QString("Fiff File Simulator"))
226  m_pMneRtClientSetupFiffFileSimulatorWidget->show();
227  else if(t_sConnector == QString("Neuromag Connector"))
228  m_pMneRtClientSetupNeuromagWidget->show();
229  else if(t_sConnector == QString("BabyMEG"))
230  m_pMneRtClientSetupBabyMegWidget->show();
231 }
232 
233 //*************************************************************************************************************
234 
236 {
237  ui.m_qTextBrowser_ServerMessage->insertPlainText(logMsg+"\n");
238  //scroll down to the newest entry
239  QTextCursor c = ui.m_qTextBrowser_ServerMessage->textCursor();
240  c.movePosition(QTextCursor::End);
241  ui.m_qTextBrowser_ServerMessage->setTextCursor(c);
242 }
243 
244 
245 //*************************************************************************************************************
246 
247 void MneRtClientSetupWidget::cmdConnectionChanged(bool p_bConnectionStatus)
248 {
249  m_bIsInit = false;
250 
251  if(p_bConnectionStatus)
252  {
253  //
254  // set frequency txt
255  //
256  if(m_pMneRtClient->m_pFiffInfo)
257  this->ui.m_qLabel_sps->setText(QString("%1").arg(m_pMneRtClient->m_pFiffInfo->sfreq));
258 
259  //
260  // set buffer size txt
261  //
262  this->ui.m_qLineEdit_BufferSize->setText(QString("%1").arg(m_pMneRtClient->m_iBufferSize));
263 
264  //
265  // set connectors
266  //
267  QMap<qint32, QString>::ConstIterator it = m_pMneRtClient->m_qMapConnectors.begin();
268  qint32 idx = 0;
269 
270  for(; it != m_pMneRtClient->m_qMapConnectors.end(); ++it)
271  {
272  if(this->ui.m_qComboBox_Connector->findData(it.key()) == -1)
273  {
274  this->ui.m_qComboBox_Connector->insertItem(idx, it.value(), it.key());
275  ++idx;
276  }
277  else
278  idx = this->ui.m_qComboBox_Connector->findData(it.key()) + 1;
279  }
280  this->ui.m_qComboBox_Connector->setCurrentIndex(this->ui.m_qComboBox_Connector->findData(m_pMneRtClient->m_iActiveConnectorId));
281 
282  //UI enables/disables
283  this->ui.m_qLabel_ConnectionStatus->setText(QString("Connected"));
284  this->ui.m_qLineEdit_Ip->setEnabled(false);
285  this->ui.m_qPushButton_Connect->setText(QString("Disconnect"));
286  this->ui.m_qLineEdit_SendCLI->setEnabled(true);
287  this->ui.m_qPushButton_SendCLI->setEnabled(true);
288 
289  m_bIsInit = true;
290  }
291  else
292  {
293  //clear connectors --> ToDO create a clear function
294  m_pMneRtClient->m_qMapConnectors.clear();
295  this->ui.m_qComboBox_Connector->clear();
296  m_pMneRtClient->m_iBufferSize = -1;
297 
298  //UI enables/disables
299  this->ui.m_qLabel_ConnectionStatus->setText(QString("Not connected"));
300  this->ui.m_qLineEdit_Ip->setEnabled(true);
301  this->ui.m_qPushButton_Connect->setText(QString("Connect"));
302  this->ui.m_qLineEdit_SendCLI->setEnabled(false);
303  this->ui.m_qPushButton_SendCLI->setEnabled(false);
304 
305  this->ui.m_qLineEdit_BufferSize->setText(QString(""));
306 
307  }
308 }
309 
310 
311 //*************************************************************************************************************
312 
314 {
315  if(m_pMneRtClient->m_pFiffInfo)
316  this->ui.m_qLabel_sps->setText(QString("%1").arg(m_pMneRtClient->m_pFiffInfo->sfreq));
317 }
318 
319 
320 //*************************************************************************************************************
321 
322 void MneRtClientSetupWidget::showAboutDialog()
323 {
324  MneRtClientAboutWidget aboutDialog(this);
325  aboutDialog.exec();
326 }
327 
328 
330 
331 //void MneRtClientSetupWidget::SQUIDControlDialog()
332 //{
333 // mnertclientSQUIDControlDgl SQUIDCtrlDlg(m_pMneRtClient,this);
334 // SQUIDCtrlDlg.exec();
335 //}
The MneRtClientSetupBabyMegWidget class provides the BabyMEG configuration window.
The MneRtClient class provides a RT server connection.
Definition: mnertclient.h:115
Contains the declaration of the MneRtClientSetupBabyMegWidget class.
The MneRtClientSetupFiffFileSimulatorWidget class provides the Fiff File Simulator configuration wind...
Contains the declaration of the MneRtClientSetupWidget class.
The MneRtClientAboutWidget class provides the about dialog for the MneRtClient.
The MneRtClientSetupNeuromagWidget class provides the Neuromag configuration window.
MneRtClientSetupWidget(MneRtClient *p_pMneRtClient, QWidget *parent=0)
Contains the declaration of the MneRtClientAboutWidget class.
void changeConnector(qint32 p_iNewConnectorId)
void cmdConnectionChanged(bool p_bStatus)