|
#include <QCoreApplication>
|
|
#include "redrelaylibrary.h"
|
|
#include "relayportdefinitions.h"
|
|
#include <QFile>
|
|
#include <QDebug>
|
|
#include <QThread>
|
|
|
|
|
|
RedRelayLibrary *redRelayDevice;
|
|
void cierraCorrientePuntoAcceso()
|
|
{
|
|
redRelayDevice->SetRelayState(OFF, (RelayPort) WIFI_PORT);
|
|
QThread::msleep(1000);
|
|
|
|
|
|
}
|
|
void abreCorrientePuntoAcceso()
|
|
{
|
|
redRelayDevice->SetRelayState(ON, (RelayPort) WIFI_PORT);
|
|
QThread::msleep(1000);
|
|
|
|
|
|
}
|
|
|
|
void reiniciaCorrientePuntoAcceso()
|
|
{
|
|
redRelayDevice->SetRelayState(OFF, (RelayPort) WIFI_PORT);
|
|
QThread::msleep(2000);
|
|
redRelayDevice->SetRelayState(ON, (RelayPort) WIFI_PORT);
|
|
QThread::msleep(1000);
|
|
}
|
|
|
|
void cierraCorrienteProyector()
|
|
{
|
|
redRelayDevice->SetRelayState(OFF, (RelayPort) PROJECTOR_PORT);
|
|
QThread::msleep(1000);
|
|
|
|
|
|
}
|
|
void abreCorrienteProyector()
|
|
{
|
|
redRelayDevice->SetRelayState(ON, (RelayPort) PROJECTOR_PORT);
|
|
QThread::msleep(1000);
|
|
|
|
|
|
}
|
|
|
|
void reiniciaCorrienteProyector()
|
|
{
|
|
redRelayDevice->SetRelayState(OFF, (RelayPort) PROJECTOR_PORT);
|
|
QThread::msleep(2000);
|
|
redRelayDevice->SetRelayState(ON, (RelayPort) PROJECTOR_PORT);
|
|
QThread::msleep(1000);
|
|
}
|
|
|
|
void cierraCorrienteSonido()
|
|
{
|
|
redRelayDevice->SetRelayState(OFF, (RelayPort) SOUND_PORT);
|
|
QThread::msleep(1000);
|
|
|
|
|
|
}
|
|
void abreCorrienteSonido()
|
|
{
|
|
redRelayDevice->SetRelayState(ON, (RelayPort) SOUND_PORT);
|
|
QThread::msleep(1000);
|
|
|
|
|
|
}
|
|
|
|
void reiniciaCorrienteSonido()
|
|
{
|
|
redRelayDevice->SetRelayState(OFF, (RelayPort) SOUND_PORT);
|
|
QThread::msleep(2000);
|
|
redRelayDevice->SetRelayState(ON, (RelayPort) SOUND_PORT);
|
|
QThread::msleep(1000);
|
|
}
|
|
|
|
void cierraCorrienteMotor()
|
|
{
|
|
redRelayDevice->SetRelayState(OFF, (RelayPort) MOTOR_PORT);
|
|
QThread::msleep(200);
|
|
redRelayDevice->SetRelayState(OFF, (RelayPort) MOTOR_UP_PORT);
|
|
QThread::msleep(200);
|
|
redRelayDevice->SetRelayState(OFF, (RelayPort) MOTOR_DOWN_PORT);
|
|
QThread::msleep(200);
|
|
|
|
|
|
}
|
|
void abreCorrienteMotor()
|
|
{
|
|
redRelayDevice->SetRelayState(ON, (RelayPort) MOTOR_PORT);
|
|
QThread::msleep(200);
|
|
redRelayDevice->SetRelayState(ON, (RelayPort) MOTOR_UP_PORT);
|
|
QThread::msleep(200);
|
|
redRelayDevice->SetRelayState(ON, (RelayPort) MOTOR_DOWN_PORT);
|
|
QThread::msleep(200);
|
|
|
|
|
|
}
|
|
|
|
void reiniciaCorrienteMotor()
|
|
{
|
|
cierraCorrienteMotor();
|
|
QThread::msleep(1000);
|
|
abreCorrienteMotor();
|
|
QThread::msleep(1000);
|
|
|
|
}
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
|
|
QCoreApplication a(argc, argv);
|
|
QString textoParmaetros="Nombre o número de parámetros incorrectos. Los parámetros deben ser sonido up|down|reboot, motor up|down|reboot, pa up|down|reboot o proyector up|down|reboot";
|
|
QString usuario =getenv("USER");
|
|
if (usuario != "root"){
|
|
qDebug() <<"Sólo el root puede usar la aplicación";
|
|
return 1;
|
|
}
|
|
QStringList args = a.arguments();
|
|
|
|
if (args.count() != 3)
|
|
{
|
|
qDebug() <<textoParmaetros;
|
|
return 1;
|
|
}
|
|
redRelayDevice = new RedRelayLibrary();
|
|
if (! redRelayDevice->ConnectRelay()){
|
|
qDebug() <<"Error al conectar con la placa del siatic";
|
|
delete redRelayDevice;
|
|
return -1;
|
|
}
|
|
QString dispositivo= argv[1];
|
|
QString accion= argv[2];
|
|
if (dispositivo =="pa"){
|
|
if (accion=="up"){
|
|
qDebug() <<"Abriendo la corriente eléctrica punto acceso";
|
|
abreCorrientePuntoAcceso();
|
|
}else if(accion=="down"){
|
|
qDebug() <<"Cerrando la corriente eléctrica punto acceso";
|
|
cierraCorrientePuntoAcceso();
|
|
}else if(accion=="reboot"){
|
|
qDebug() <<"reinciando punto acceso";
|
|
reiniciaCorrientePuntoAcceso();
|
|
} else {
|
|
qDebug() << textoParmaetros;
|
|
return 1;
|
|
}
|
|
}else if (dispositivo =="sonido"){
|
|
if (accion=="up"){
|
|
qDebug() <<"Abriendo la corriente eléctrica sonido";
|
|
abreCorrienteSonido();
|
|
}else if(accion=="down"){
|
|
qDebug() <<"Cerrando la corriente eléctrica sonido";
|
|
cierraCorrienteSonido();
|
|
}else if(accion=="reboot"){
|
|
qDebug() <<"reinciando sonido";
|
|
reiniciaCorrienteSonido();
|
|
} else {
|
|
qDebug() << textoParmaetros;
|
|
}
|
|
}else if (dispositivo =="motor"){
|
|
if (accion=="up"){
|
|
qDebug() <<"Abriendo la corriente eléctrica motor";
|
|
abreCorrienteMotor();
|
|
}else if(accion=="down"){
|
|
qDebug() <<"Cerrando la corriente eléctrica motor";
|
|
cierraCorrienteMotor();
|
|
}else if(accion=="reboot"){
|
|
qDebug() <<"reinciando motor";
|
|
reiniciaCorrienteMotor();
|
|
} else {
|
|
qDebug() << textoParmaetros;
|
|
}
|
|
}else if (dispositivo =="proyector"){
|
|
if (accion=="up"){
|
|
qDebug() <<"Abriendo la corriente eléctrica proyectro";
|
|
abreCorrienteProyector();
|
|
}else if(accion=="down"){
|
|
qDebug() <<"Cerrando la corriente eléctrica proyector";
|
|
cierraCorrienteProyector();
|
|
}else if(accion=="reboot"){
|
|
qDebug() <<"reinciando proyector";
|
|
reiniciaCorrienteProyector();
|
|
} else {
|
|
qDebug() << textoParmaetros;
|
|
return 1;
|
|
}
|
|
}else {
|
|
qDebug() <<textoParmaetros;
|
|
return 1;
|
|
}
|
|
|
|
|
|
delete redRelayDevice;
|
|
return 0;
|
|
|
|
}
|
|
|