Proyecto

General

Perfil

Descargar (2,88 KB) Estadísticas
| Rama: | Revisión:
29401061 Elisa
#include "optomaprojectormanagement.h"

OptomaProjectorManagement::OptomaProjectorManagement(QObject *parent, QString ProjectorSerialPortName)
{
currentData = new QString();
serialPort = new QSerialPort(ProjectorSerialPortName);
connect(serialPort, SIGNAL(readyRead()), this, SLOT(ProjectorDataReceived()));
connect(serialPort, SIGNAL(error(QSerialPort::SerialPortError)), this, SLOT(OnConnectionError(QSerialPort::SerialPortError)));
//serialPort->close();
}

void OptomaProjectorManagement::OnConnectionError(QSerialPort::SerialPortError err){
if (err == QSerialPort::TimeoutError){
emit IsAliveResponse(false);
}
}

void OptomaProjectorManagement::OpenConnection(){
serialPort->open(QSerialPort::ReadWrite);
serialPort->setBaudRate(QSerialPort::Baud9600);
serialPort->setParity(QSerialPort::NoParity);
serialPort->setDataBits(QSerialPort::Data8);
serialPort->write(SEND_QUERYPWR_CMD);
emit IsAliveResponse(serialPort->waitForReadyRead(2000));
}

OptomaProjectorManagement::~OptomaProjectorManagement()
{
/*currentData = new QString();
serialPort = new QSerialPort("/dev/tty0");
serialPort->open(QSerialPort::ReadWrite);
serialPort->setBaudRate(QSerialPort::Baud9600);
serialPort->setParity(QSerialPort::NoParity);
serialPort->setDataBits(QSerialPort::Data8);
connect(serialPort, SIGNAL(readyRead()), this, SLOT(ProjectorDataReceived()));*/
disconnect(serialPort, SIGNAL(readyRead()), this, SLOT(ProjectorDataReceived()));
serialPort->close();
}


void OptomaProjectorManagement::ProjectorDataReceived(){
emit IsAliveResponse(true);
QString serialPortPlainData = serialPort->readAll();
currentData->append(serialPortPlainData);
if (currentData->contains("\r")){
QString dataToComp = currentData->remove('\r').remove('\n');
if (dataToComp.isEmpty()) return;
if (dataToComp.contains(OFF_PROJECTOR_STATE)){
emit ProjectorStatusReceived(false);
} else
emit ProjectorStatusReceived(true);
currentData->clear();
}
}

void OptomaProjectorManagement::GetPowerState(){
//connect(serialPort, SIGNAL(readyRead()), this, SLOT(ProjectorDataReceived()));
serialPort->write(SEND_QUERYPWR_CMD);
//disconnect(serialPort, SIGNAL(readyRead()), this, SLOT(ProjectorDataReceived()));
}

void OptomaProjectorManagement::TurnOff(){
serialPort->write(SEND_TURN_OFF_CMD);
}

void OptomaProjectorManagement::TurnOn(){
//connect(serialPort, SIGNAL(readyRead()), this, SLOT(ProjectorDataReceived()));
serialPort->write(SEND_TURN_ON_CMD);
//disconnect(serialPort, SIGNAL(readyRead()), this, SLOT(ProjectorDataReceived()));
}

void OptomaProjectorManagement::Freeze(){
serialPort->write(SEND_FREEZE_CMD);
}

void OptomaProjectorManagement::Unfreeze(){
serialPort->write(SEND_UNFREEZE_CMD);
}