desarrollosconsejeria/siaticControl/3.3-13/SIATICControl/optomaprojectormanagement.cpp @ 29401061
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);
|
|||
}
|