cfiController 1 + fix bug BUSY FREE not for Unity

This commit is contained in:
2026-01-27 12:34:20 +03:00
parent b452ef347d
commit 4ce3f53171
9 changed files with 43 additions and 28 deletions

View File

@@ -105,17 +105,26 @@ void CommonClientHandler::slot_StatusTasksFIMofTraineeChanged(int trainee_id)
}*/ }*/
} }
void CommonClientHandler::slot_sendPacketToAllClients(PacketType packetType) void CommonClientHandler::slot_sendPacketToAllClients(PacketType packetType, bool flOnlyGUI)
{ {
foreach(int idSocket, clientsMap->keys()) foreach(int idSocket, clientsMap->keys())
{ {
ClientHandler *handler = clientsMap->value(idSocket); ClientHandler *handler = clientsMap->value(idSocket);
if(flOnlyGUI)
{
if(handler->getClient()->getTypeClient() != TypeClientAutorization::TYPE_GUI)
continue;
}
//if(packetType != PacketType::BUSY && packetType != PacketType::FREE) //if(packetType != PacketType::BUSY && packetType != PacketType::FREE)
if (!handler->getClient()->getIsLoggedIn()) continue; if (!handler->getClient()->getIsLoggedIn()) continue;
handler->sendPacketType(packetType); handler->sendPacketType(packetType);
Logger::instance().log("AllSending " + handler->getClient()->getLogin() + " " + enumToString(packetType)); if(flOnlyGUI)
Logger::instance().log("All GUI Sending " + handler->getClient()->getLogin() + " " + enumToString(packetType));
else
Logger::instance().log("All Sending " + handler->getClient()->getLogin() + " " + enumToString(packetType));
} }
//emit sigSetServerState(packetType); //emit sigSetServerState(packetType);

View File

@@ -29,7 +29,7 @@ public:
void slot_DocsChanged(); void slot_DocsChanged();
public slots: public slots:
void slot_sendPacketToAllClients(PacketType packetType); void slot_sendPacketToAllClients(PacketType packetType, bool flOnlyGUI);
signals: signals:
//void sigSetServerState(PacketType packetType); //void sigSetServerState(PacketType packetType);

View File

@@ -98,12 +98,12 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien
client->sendVersion(); client->sendVersion();
//Отправляем состояние блокировки //Отправляем состояние блокировки
/**/ /*
if(server->getStateBlockAutorization() == EStateBlockAutorization::blocked) if(server->getStateBlockAutorization() == EStateBlockAutorization::blocked)
client->sendPacketType(PacketType::BUSY); client->sendPacketType(PacketType::BUSY);
else else
client->sendPacketType(PacketType::FREE); client->sendPacketType(PacketType::FREE);
*/
//client->sendPacketType(PacketType::BUSY); //client->sendPacketType(PacketType::BUSY);
//client->sendPacketType(PacketType::FREE); //client->sendPacketType(PacketType::FREE);

View File

@@ -50,7 +50,7 @@ void UpdateController::changeAssetVersion(QString versionName)
currentStreamingPath = assetManager->setVersion(versionName); currentStreamingPath = assetManager->setVersion(versionName);
setUpCurrentServerHash(); setUpCurrentServerHash();
emit sigUpdateDocs(); emit sigUpdateDocs();
commonClientHandler->slot_sendPacketToAllClients(PacketType::HASH_READY); commonClientHandler->slot_sendPacketToAllClients(PacketType::HASH_READY, false);
commonClientHandler->sendCurrentVersionToAllClient(); commonClientHandler->sendCurrentVersionToAllClient();
//commonClientHandler->slot_sendPacketToAllClients(PacketType::FREE); //commonClientHandler->slot_sendPacketToAllClients(PacketType::FREE);
@@ -118,10 +118,10 @@ void UpdateController::calculateFullHash()
void UpdateController::calculateFullHashWithSetup() void UpdateController::calculateFullHashWithSetup()
{ {
bool res = emit signal_BlockAutorization(true, "SERVER", "CalculateFullHashWithSetup"); bool res = emit signal_BlockAutorization(true, "SERVER", "CalculateFullHashWithSetup");
commonClientHandler->slot_sendPacketToAllClients(PacketType::RECALCULATE_HASH); commonClientHandler->slot_sendPacketToAllClients(PacketType::RECALCULATE_HASH, false);
calculateCurrentSharedHash(); calculateCurrentSharedHash();
setUpCurrentServerHash(); setUpCurrentServerHash();
commonClientHandler->slot_sendPacketToAllClients(PacketType::HASH_READY); commonClientHandler->slot_sendPacketToAllClients(PacketType::HASH_READY, false);
res = emit signal_BlockAutorization(false, "SERVER", "CalculateFullHashWithSetup"); res = emit signal_BlockAutorization(false, "SERVER", "CalculateFullHashWithSetup");
} }

View File

@@ -2,9 +2,10 @@
CfiController::CfiController(UpdateController* updateController, QObject *parent) : CfiController::CfiController(UpdateController* updateController, QObject *parent) :
QObject(parent), QObject(parent),
updateController(updateController) updateController(updateController),
germanLocale(nullptr)
{ {
germanLocale = new QLocale(QLocale::German);
} }
CfiController::~CfiController() CfiController::~CfiController()
@@ -84,15 +85,15 @@ bool CfiController::parsingCfiXML()
setCamPos.state = nodeMapSetcamerapos.namedItem("state").nodeValue(); setCamPos.state = nodeMapSetcamerapos.namedItem("state").nodeValue();
setCamPos.panelName = nodeMapSetcamerapos.namedItem("panelName").nodeValue(); setCamPos.panelName = nodeMapSetcamerapos.namedItem("panelName").nodeValue();
setCamPos.prevCamOffsetMARposY = nodeMapSetcamerapos.namedItem("prevCamOffsetMARposY").nodeValue().toFloat(); setCamPos.prevCamOffsetMARposY = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("prevCamOffsetMARposY").nodeValue());
setCamPos.camOffsetMARposY = nodeMapSetcamerapos.namedItem("camOffsetMARposY").nodeValue().toFloat(); setCamPos.camOffsetMARposY = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("camOffsetMARposY").nodeValue());
setCamPos.prevCharControlerHeight = nodeMapSetcamerapos.namedItem("prevCharControlerHeight").nodeValue().toFloat(); setCamPos.prevCharControlerHeight = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("prevCharControlerHeight").nodeValue());
setCamPos.charControlerHeight = nodeMapSetcamerapos.namedItem("charControlerHeight").nodeValue().toFloat(); setCamPos.charControlerHeight = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("charControlerHeight").nodeValue());
setCamPos.FOV = nodeMapSetcamerapos.namedItem("FOV").nodeValue().toFloat(); setCamPos.FOV = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("FOV").nodeValue());
setCamPos.moveSpeed = nodeMapSetcamerapos.namedItem("moveSpeed").nodeValue().toFloat(); setCamPos.moveSpeed = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("moveSpeed").nodeValue());
setCamPos.projectionSize = nodeMapSetcamerapos.namedItem("projectionSize").nodeValue().toFloat(); setCamPos.projectionSize = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("projectionSize").nodeValue());
setCamPos.offset = nodeMapSetcamerapos.namedItem("offset").nodeValue().toFloat(); setCamPos.offset = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("offset").nodeValue());
setCamPos.prevPlayerRot = nodeMapSetcamerapos.namedItem("prevPlayerRot").nodeValue().toFloat(); setCamPos.prevPlayerRot = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("prevPlayerRot").nodeValue());
//childs setcamerapos //childs setcamerapos
QDomElement loc_Element; QDomElement loc_Element;
@@ -132,9 +133,9 @@ QVector3D CfiController::getXYZfromElement(QDomElement element)
{ {
QVector3D vector3D; QVector3D vector3D;
QDomNamedNodeMap nodeMap = element.attributes(); QDomNamedNodeMap nodeMap = element.attributes();
vector3D.setX(nodeMap.namedItem("x").nodeValue().toFloat()); vector3D.setX(germanLocale->toFloat(nodeMap.namedItem("x").nodeValue()));
vector3D.setY(nodeMap.namedItem("y").nodeValue().toFloat()); vector3D.setY(germanLocale->toFloat(nodeMap.namedItem("y").nodeValue()));
vector3D.setZ(nodeMap.namedItem("z").nodeValue().toFloat()); vector3D.setZ(germanLocale->toFloat(nodeMap.namedItem("z").nodeValue()));
return vector3D; return vector3D;
} }
@@ -142,7 +143,7 @@ QVector2D CfiController::getXYfromElement(QDomElement element)
{ {
QVector2D vector2D; QVector2D vector2D;
QDomNamedNodeMap nodeMap = element.attributes(); QDomNamedNodeMap nodeMap = element.attributes();
vector2D.setX(nodeMap.namedItem("x").nodeValue().toFloat()); vector2D.setX(germanLocale->toFloat(nodeMap.namedItem("x").nodeValue()));
vector2D.setY(nodeMap.namedItem("y").nodeValue().toFloat()); vector2D.setY(germanLocale->toFloat(nodeMap.namedItem("y").nodeValue()));
return vector2D; return vector2D;
} }

View File

@@ -3,6 +3,7 @@
#include <QObject> #include <QObject>
#include <QMutex> #include <QMutex>
#include <QLocale>
#include "updatecontroller.h" #include "updatecontroller.h"
#include "cfiobject.h" #include "cfiobject.h"
@@ -30,6 +31,8 @@ private:
QMutex mtxAccess; QMutex mtxAccess;
QList<CfiObject> listCfiObjects; QList<CfiObject> listCfiObjects;
QLocale* germanLocale;
}; };
#endif // CFICONTROLLER_H #endif // CFICONTROLLER_H

View File

@@ -239,10 +239,12 @@ bool MultiThreadServer::slot_BlockAutorization(bool block, QString whoFullName,
if(res) if(res)
{ {
/**/
if(blockRes) if(blockRes)
emit signal_sendPacketToAllClients(PacketType::BUSY); emit signal_sendPacketToAllClients(PacketType::BUSY, true);
else else
emit signal_sendPacketToAllClients(PacketType::FREE); emit signal_sendPacketToAllClients(PacketType::FREE, true);
for(QString keyLocal : blockersMap.keys()) for(QString keyLocal : blockersMap.keys())
{ {

View File

@@ -47,7 +47,7 @@ signals:
void signalStopSendFile(); void signalStopSendFile();
void signal_BlockAutorizationIndicate(bool block, QString blocker, QString types); void signal_BlockAutorizationIndicate(bool block, QString blocker, QString types);
void signal_sendPacketToAllClients(PacketType packetType); void signal_sendPacketToAllClients(PacketType packetType, bool flOnlyGUI);
public slots: public slots:
void slotDisconnectClient(QString peerAddress, QString peerPort); void slotDisconnectClient(QString peerAddress, QString peerPort);

View File

@@ -155,7 +155,7 @@ void ServerLMSWidget::slot_UpdateDocs()
QApplication::restoreOverrideCursor(); QApplication::restoreOverrideCursor();
//TODO для теста //TODO для теста
slot_ParsingCfiXML(); //slot_ParsingCfiXML();
} }
void ServerLMSWidget::slot_ParsingCfiXML() void ServerLMSWidget::slot_ParsingCfiXML()