cacicthread.cpp
2.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include "cacicthread.h"
CacicThread::CacicThread(QString applicationDirPath)
{
this->applicationDirPath = applicationDirPath;
iniciarInstancias();
}
void CacicThread::run(){
iniciarModulo();
}
void CacicThread::setModuloDirPath(const QString &value)
{
moduloDirPath = value;
}
void CacicThread::iniciarModulo()
{
registraInicioColeta();
QDir::setCurrent(this->applicationDirPath);
QProcess proc;
proc.setWorkingDirectory(this->applicationDirPath);
proc.execute(this->moduloDirPath);
if((proc.atEnd()) && (proc.exitStatus() == QProcess::NormalExit)){
registraFimColeta("SUCESSO");
if(enviarColeta()){
QLogger::QLog_Info("Cacic Daemon (Thread)", QString("Coleta enviada com sucesso."));
}else{
QLogger::QLog_Info("Cacic Daemon (Thread)", QString("Erro ao enviar a coleta."));
}
}else{
if((!proc.atEnd()) || (proc.exitStatus() == QProcess::CrashExit)){
registraFimColeta("ERRO");
proc.kill();
}
}
cMutex->unlock();
QLogger::QLog_Info("Cacic Daemon (Thread)", QString("Semáforo aberto com sucesso."));
}
void CacicThread::setOCacicComm(CacicComm *value)
{
OCacicComm = value;
}
void CacicThread::setCcacic(CCacic *value)
{
ccacic = value;
}
void CacicThread::setNomeModulo(const QString &value)
{
nomeModulo = value;
}
bool CacicThread::enviarColeta()
{
if(this->nomeModulo == "gercols" ){
//Envio do json gerado na coleta
bool ok = false;
QJsonObject jsonColeta = this->ccacic->getJsonFromFile(this->applicationDirPath + "/coleta.json");
this->OCacicComm->comm("/ws/neo/coleta", &ok, jsonColeta , false);
return &ok;
}
return false;
}
void CacicThread::setCMutex(QMutex *value)
{
cMutex = value;
}
void CacicThread::registraInicioColeta()
{
QLogger::QLog_Info("Cacic Daemon (Thread)","Coleta iniciada em: " + QDateTime::currentDateTime().toLocalTime().toString());
}
void CacicThread::registraFimColeta(QString msg)
{
QLogger::QLog_Info("Cacic Daemon (Thread)","Coleta finalizada com " + msg + " em: " + QDateTime::currentDateTime().toLocalTime().toString());
}
void CacicThread::iniciarInstancias(){
logManager = QLogger::QLoggerManager::getInstance();
logManager->addDestination(this->applicationDirPath + "/Logs/cacicLog.txt","Cacic Daemon (Thread)",QLogger::InfoLevel);
logManager->addDestination(this->applicationDirPath + "/Logs/cacicLog.txt","Cacic Daemon (Thread)",QLogger::ErrorLevel);
}