#include "port_com.h"

#include <QDebug>

Port_Com::Port_Com()
{
    portCom = new QextSerialPort();

    portCom->setPortName("COM1");
    portCom->setBaudRate(BAUD9600);

}

/******************** SLOTS ********************/
/*!
  \brief Slot appelé lorsque le signal sig_baud_Changed est émis
*
*        Mets à jour le paramètre BaudRate
  */
void Port_Com::set_baudRate(BaudRateType baud)
{
    portCom->setBaudRate(baud);

    qDebug() << "Port_Com::get_baudRate";

}

/*!
  \brief Slot appelé lorsque le signal sig_portName_Changed est émis
*
*        Mets à jour l'attribut port
  */
void Port_Com::set_portName(QString name)
{
    portCom->setPortName(name);

    qDebug() << "Port_Com::set_portName";

}

/******************** END SLOTS ********************/


/*!
  \fn int Port_Com::open_Serial()
  \brief Appelé pour l'ouverture du port série
  \return int resul RS232_NOT_OPENED, RS232_OPENED
  */
int Port_Com::open_Serial()
{
    int resul;

    portCom->setDataBits(DATA_8);
    portCom->setStopBits(STOP_1);
    portCom->setParity(PAR_EVEN);

    portCom->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
    if(portCom->isOpen())
        resul = RS232_OPENED;
    else
        resul = RS232_NOT_OPENED;

    qDebug() << "Port_Com::open_Serial";

    return resul;
}

/*!
  \fn int Port_Com::close_Serial()
  \brief Appelé pour la fermeture du port série
  \return int resul RS232_NOT_OPENED, RS232_OPENED
  */
int Port_Com::close_Serial()
{
    int resul;

    portCom->close();

    if(!portCom->isOpen())
        resul = RS232_NOT_OPENED;
    else
        resul = RS232_OPENED;

    return resul;
}
