mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJClient.git
synced 2026-03-28 05:25:39 +03:00
Init commit
This commit is contained in:
100
Core/tcpclient.cpp
Normal file
100
Core/tcpclient.cpp
Normal file
@@ -0,0 +1,100 @@
|
||||
#include "tcpclient.h"
|
||||
#include "UpdateController.h"
|
||||
#include "externalexecuter.h"
|
||||
|
||||
#include <QDir>
|
||||
|
||||
TCPClient::TCPClient(QObject *parent) :
|
||||
QObject(parent)
|
||||
{
|
||||
socket = new QTcpSocket(this);
|
||||
|
||||
connect(socket,&QTcpSocket::readyRead,this,&TCPClient::onReadyRead);
|
||||
}
|
||||
|
||||
void TCPClient::Initialize(UpdateController *updateController,
|
||||
RecognizeSystem *recognize,
|
||||
ExternalExecuter *externalExecuter)
|
||||
{
|
||||
this->updateController = updateController;
|
||||
this->recognizeSystem = recognize;
|
||||
this->externalExecuter = externalExecuter;
|
||||
|
||||
recognize->SetSocket(socket);
|
||||
emit onSendDebugLog(Tools::GetTime() + " Client started");
|
||||
}
|
||||
|
||||
void TCPClient::SetConnect(ServerSettings *serverSettings)
|
||||
{
|
||||
socket->connectToHost(serverSettings->Address,serverSettings->Port.toShort());
|
||||
emit onSendDebugLog("Try connect...");
|
||||
|
||||
socket->waitForReadyRead();
|
||||
|
||||
if(socket->state() != QTcpSocket::ConnectedState){
|
||||
emit onSendDebugLog("Connect invalid");
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void TCPClient::WaitWrites()
|
||||
{
|
||||
socket->waitForBytesWritten();
|
||||
}
|
||||
|
||||
QTcpSocket *TCPClient::GetSocket()
|
||||
{
|
||||
return socket;
|
||||
}
|
||||
|
||||
TCPClient::~TCPClient()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void TCPClient::onMessageEntered(QString message)
|
||||
{
|
||||
QDataStream stream(socket);
|
||||
QByteArray data;
|
||||
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
||||
|
||||
if(!message.isEmpty() && socket->state() == QTcpSocket::ConnectedState){
|
||||
|
||||
socket->waitForBytesWritten();
|
||||
|
||||
if(message == "check")
|
||||
{
|
||||
stream << PacketType::TYPE_COMMAND;
|
||||
stream << message;
|
||||
socket->waitForBytesWritten();
|
||||
|
||||
updateController->SendFile(stream);
|
||||
emit onSendDebugLog(Tools::GetTime() + " Local checkFile sended");
|
||||
WaitWrites();
|
||||
socket->readyRead();
|
||||
}
|
||||
else if(message == "update"){
|
||||
emit onSendDebugLog("Update started");
|
||||
stream << PacketType::TYPE_COMMAND;
|
||||
stream << message;
|
||||
socket->waitForBytesWritten();
|
||||
}
|
||||
else if(message == "run"){
|
||||
externalExecuter->CallApp();
|
||||
}
|
||||
}else{
|
||||
emit onSendDebugLog("WRONG SOCKET AFTER ENTERED");
|
||||
}
|
||||
}
|
||||
|
||||
void TCPClient::onReadyRead()
|
||||
{
|
||||
if(!socket){
|
||||
emit onSendDebugLog("WRONG SOCKET");
|
||||
return;
|
||||
}
|
||||
//возврат на случай недоступного сокета
|
||||
|
||||
recognizeSystem->Recognize();
|
||||
}
|
||||
Reference in New Issue
Block a user