00001 #include "mainwindow.h"
00002 #include "ui_mainwindow.h"
00003
00004 #include "serie.h"
00005
00006 #include <QDialog>
00007
00008
00009 MainWindow::MainWindow(QWidget *parent) :
00010 QMainWindow(parent),
00011 ui(new Ui::MainWindow)
00012 {
00013 ui->setupUi(this);
00014
00015 this->setWindowTitle(tr("Plantilla practicas comunicaciones serie para DSII"));
00016
00017
00018 timer = new QTimer();
00019
00020
00021 ui->btPuertoAbrir->setEnabled(true);
00022 ui->btPuertoCerrar->setEnabled(false);
00023 ui->btPuertoEnviarTexto->setEnabled(false);
00024
00025
00026 connect(ui->btPuertoAbrir,SIGNAL(clicked()),this,SLOT(btPuertoAbrir_pulsado()));
00027 connect(ui->btPuertoCerrar,SIGNAL(clicked()),this,SLOT(btPuertoCerrar_pulsado()));
00028 connect(ui->btPuertoEnviarTexto,SIGNAL(clicked()),this,SLOT(btPuertoEnviarTexto_pulsado()));
00029
00030 connect(timer, SIGNAL(timeout()), this, SLOT(timer_Tick()));
00031 }
00032
00033
00034 MainWindow::~MainWindow()
00035 {
00036 delete ui;
00037 }
00038
00039
00040 void MainWindow::changeEvent(QEvent *e)
00041 {
00042 QMainWindow::changeEvent(e);
00043 switch (e->type()) {
00044 case QEvent::LanguageChange:
00045 ui->retranslateUi(this);
00046 break;
00047 default:
00048 break;
00049 }
00050 }
00051
00052
00053 void MainWindow::btPuertoAbrir_pulsado(void) {
00054 if (serie_openConnection(ui->lePuertoNombre->text().toAscii().data()) == false) {
00055
00056
00057 ui->lePuertoNombre->setText(tr("NO EXISTE"));
00058 } else {
00059 ui->btPuertoAbrir->setEnabled(false);
00060 ui->btPuertoCerrar->setEnabled(true);
00061 ui->btPuertoEnviarTexto->setEnabled(true);
00062
00063 timer->start(500);
00064 }
00065 }
00066
00067
00068 void MainWindow::btPuertoCerrar_pulsado(void) {
00069
00070 timer->stop();
00071
00072
00073 ui->btPuertoAbrir->setEnabled(true);
00074 ui->btPuertoCerrar->setEnabled(false);
00075 ui->btPuertoEnviarTexto->setEnabled(false);
00076
00077 serie_closeConnection();
00078 }
00079
00080
00081
00082 void MainWindow::btPuertoEnviarTexto_pulsado(void){
00083 serie_sendStr(ui->leTextoEnviar->text().toAscii().data());
00084 }
00085
00086
00087
00088 void MainWindow::timer_Tick(void) {
00089
00090 char tmp_buff[1000];
00091 int num_bytes;
00092
00093 num_bytes = serie_receiveData(tmp_buff, 999);
00094 if (num_bytes > 0) {
00095 tmp_buff[num_bytes] = '\0';
00096 ui->leRecibido->setText(tmp_buff);
00097 printf("Rebuts %d bytes\n", num_bytes);
00098 }
00099 }
00100
00101