/*------------------------------------------------------------------------------ -- This file is a part of the SocExplorer Software -- Copyright (C) 2014, Plasma Physics Laboratory - CNRS -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -------------------------------------------------------------------------------*/ /*-- Author : Alexis Jeandet -- Mail : alexis.jeandet@member.fsf.org ----------------------------------------------------------------------------*/ #include "apbuart_plugin_ui.h" #include "ui_apbuart_plugin_ui.h" #include "apbuartterminal.h" #include APBUART_Plugin_ui::APBUART_Plugin_ui(QWidget *parent) : QWidget(parent), ui(new Ui::APBUART_Plugin_ui) { ui->setupUi(this); connect(this->ui->FIFODebugChkBx,SIGNAL(stateChanged(int)),this,SIGNAL(loopbackChkBxStateChanged(int))); connect(this,SIGNAL(apbUartTextReceived(QString)),this->ui->UART_TERM,SLOT(apbUartTextReceived(QString))); connect(this->ui->ConnectQpb,SIGNAL(clicked()),this,SIGNAL(connectPort())); connect(this->ui->UART_TERM,SIGNAL(sendChar(char)),this,SIGNAL(sendChar(char))); connect(this->ui->PortNameLineEdit,SIGNAL(textChanged(QString)),this,SIGNAL(PortNameChanged(QString))); connect(this->ui->UartSpeedLineEdit,SIGNAL(textChanged(QString)),this,SIGNAL(UartSpeedChanged(QString))); connect(this->ui->rescanQpb,SIGNAL(clicked()),this,SLOT(updatePortList())); connect(this->ui->APBUartsUpdateQpb,SIGNAL(clicked()),this,SIGNAL(updateAPBUartsList())); connect(this->ui->UARTSelector,SIGNAL(currentIndexChanged(int)),this,SIGNAL(curentAPBUartChanged(int))); this->portListcompleter = NULL; this->updatePortList(); } APBUART_Plugin_ui::~APBUART_Plugin_ui() { delete ui; } int APBUART_Plugin_ui::curentAPBUart() { return this->ui->UARTSelector->currentIndex(); } void APBUART_Plugin_ui::setEnableForLoopBack(bool enable) { this->ui->PortNameLineEdit->setEnabled(enable); this->ui->ConnectQpb->setEnabled(enable); this->ui->UartSpeedLineEdit->setEnabled(enable); this->ui->APBUartsUpdateQpb->setEnabled(enable); this->ui->rescanQpb->setEnabled(enable); this->ui->UARTSelector->setEnabled(enable); if(this->ui->FIFODebugChkBx->isChecked()==enable) this->ui->FIFODebugChkBx->toggle(); } void APBUART_Plugin_ui::setUartConnected(bool enable) { this->ui->PortNameLineEdit->setDisabled(enable); this->ui->UartSpeedLineEdit->setDisabled(enable); this->ui->FIFODebugChkBx->setDisabled(enable); this->ui->APBUartsUpdateQpb->setDisabled(enable); this->ui->rescanQpb->setDisabled(enable); this->ui->UARTSelector->setDisabled(enable); if(enable) { this->ui->ConnectQpb->setText("Close Port"); } else { this->ui->ConnectQpb->setText("Open Port"); } } #include void APBUART_Plugin_ui::updatePortList() { if(this->portListcompleter==(QCompleter*)NULL) { this->portListcompleter=new QCompleter(this); this->portListcompleter->setCaseSensitivity(Qt::CaseInsensitive); this->portListcompleterModel = new QStringListModel(this); this->portListcompleter->setModel(this->portListcompleterModel); this->ui->PortNameLineEdit->setCompleter(this->portListcompleter); } rs232portslist_t* portlist = rs232getportlist(); rs232portslist_t* portlistenum = portlist; QStringList wordList; while(portlistenum!=NULL) { wordList << portlistenum->name; portlistenum = portlistenum->next; } rs232deleteportlist(portlist); this->portListcompleterModel->setStringList(wordList); } void APBUART_Plugin_ui::updateAPBUartList(QList addresses) { this->ui->UARTSelector->clear(); for(int i=0;iui->UARTSelector->addItem(QString("APBUart %1 @0x%2").arg(i).arg(addresses.at(i),8,16)); } if(addresses.count()==0) this->ui->UARTSelector->addItem("None"); } void APBUART_Plugin_ui::setUartSpeed(int speed) { this->ui->UartSpeedLineEdit->setText(QString::number(speed)); } void APBUART_Plugin_ui::setUartPortName(QString name) { this->ui->PortNameLineEdit->setText(name); } void APBUART_Plugin_ui::setAPBUartIndex(int index) { if((indexui->UARTSelector->count()) && (index>0) ) this->ui->UARTSelector->setCurrentIndex(index); }