From 4ce3f53171bb6ea539c97bdeed6d38532ec4779d Mon Sep 17 00:00:00 2001 From: krivoshein Date: Tue, 27 Jan 2026 12:34:20 +0300 Subject: [PATCH] cfiController 1 + fix bug BUSY FREE not for Unity --- LibServer/Systems/commonclienthandler.cpp | 13 ++++++-- LibServer/Systems/commonclienthandler.h | 2 +- LibServer/Systems/processingsystem.cpp | 4 +-- LibServer/Systems/updatecontroller.cpp | 6 ++-- LibServer/cficontroller/cficontroller.cpp | 33 ++++++++++--------- LibServer/cficontroller/cficontroller.h | 3 ++ .../multithreadserver/multithreadserver.cpp | 6 ++-- .../multithreadserver/multithreadserver.h | 2 +- LibServer/serverlmswidget.cpp | 2 +- 9 files changed, 43 insertions(+), 28 deletions(-) diff --git a/LibServer/Systems/commonclienthandler.cpp b/LibServer/Systems/commonclienthandler.cpp index 7e3bb5d..80b372a 100644 --- a/LibServer/Systems/commonclienthandler.cpp +++ b/LibServer/Systems/commonclienthandler.cpp @@ -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()) { ClientHandler *handler = clientsMap->value(idSocket); + if(flOnlyGUI) + { + if(handler->getClient()->getTypeClient() != TypeClientAutorization::TYPE_GUI) + continue; + } + //if(packetType != PacketType::BUSY && packetType != PacketType::FREE) if (!handler->getClient()->getIsLoggedIn()) continue; 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); diff --git a/LibServer/Systems/commonclienthandler.h b/LibServer/Systems/commonclienthandler.h index 763668c..f2dddb7 100644 --- a/LibServer/Systems/commonclienthandler.h +++ b/LibServer/Systems/commonclienthandler.h @@ -29,7 +29,7 @@ public: void slot_DocsChanged(); public slots: - void slot_sendPacketToAllClients(PacketType packetType); + void slot_sendPacketToAllClients(PacketType packetType, bool flOnlyGUI); signals: //void sigSetServerState(PacketType packetType); diff --git a/LibServer/Systems/processingsystem.cpp b/LibServer/Systems/processingsystem.cpp index 154af0f..28d15a5 100644 --- a/LibServer/Systems/processingsystem.cpp +++ b/LibServer/Systems/processingsystem.cpp @@ -98,12 +98,12 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien client->sendVersion(); //Отправляем состояние блокировки - /**/ + /* if(server->getStateBlockAutorization() == EStateBlockAutorization::blocked) client->sendPacketType(PacketType::BUSY); else client->sendPacketType(PacketType::FREE); - +*/ //client->sendPacketType(PacketType::BUSY); //client->sendPacketType(PacketType::FREE); diff --git a/LibServer/Systems/updatecontroller.cpp b/LibServer/Systems/updatecontroller.cpp index aeb0394..5d921fa 100644 --- a/LibServer/Systems/updatecontroller.cpp +++ b/LibServer/Systems/updatecontroller.cpp @@ -50,7 +50,7 @@ void UpdateController::changeAssetVersion(QString versionName) currentStreamingPath = assetManager->setVersion(versionName); setUpCurrentServerHash(); emit sigUpdateDocs(); - commonClientHandler->slot_sendPacketToAllClients(PacketType::HASH_READY); + commonClientHandler->slot_sendPacketToAllClients(PacketType::HASH_READY, false); commonClientHandler->sendCurrentVersionToAllClient(); //commonClientHandler->slot_sendPacketToAllClients(PacketType::FREE); @@ -118,10 +118,10 @@ void UpdateController::calculateFullHash() void UpdateController::calculateFullHashWithSetup() { bool res = emit signal_BlockAutorization(true, "SERVER", "CalculateFullHashWithSetup"); - commonClientHandler->slot_sendPacketToAllClients(PacketType::RECALCULATE_HASH); + commonClientHandler->slot_sendPacketToAllClients(PacketType::RECALCULATE_HASH, false); calculateCurrentSharedHash(); setUpCurrentServerHash(); - commonClientHandler->slot_sendPacketToAllClients(PacketType::HASH_READY); + commonClientHandler->slot_sendPacketToAllClients(PacketType::HASH_READY, false); res = emit signal_BlockAutorization(false, "SERVER", "CalculateFullHashWithSetup"); } diff --git a/LibServer/cficontroller/cficontroller.cpp b/LibServer/cficontroller/cficontroller.cpp index 3d0e6ee..21a2490 100644 --- a/LibServer/cficontroller/cficontroller.cpp +++ b/LibServer/cficontroller/cficontroller.cpp @@ -2,9 +2,10 @@ CfiController::CfiController(UpdateController* updateController, QObject *parent) : QObject(parent), - updateController(updateController) + updateController(updateController), + germanLocale(nullptr) { - + germanLocale = new QLocale(QLocale::German); } CfiController::~CfiController() @@ -84,15 +85,15 @@ bool CfiController::parsingCfiXML() setCamPos.state = nodeMapSetcamerapos.namedItem("state").nodeValue(); setCamPos.panelName = nodeMapSetcamerapos.namedItem("panelName").nodeValue(); - setCamPos.prevCamOffsetMARposY = nodeMapSetcamerapos.namedItem("prevCamOffsetMARposY").nodeValue().toFloat(); - setCamPos.camOffsetMARposY = nodeMapSetcamerapos.namedItem("camOffsetMARposY").nodeValue().toFloat(); - setCamPos.prevCharControlerHeight = nodeMapSetcamerapos.namedItem("prevCharControlerHeight").nodeValue().toFloat(); - setCamPos.charControlerHeight = nodeMapSetcamerapos.namedItem("charControlerHeight").nodeValue().toFloat(); - setCamPos.FOV = nodeMapSetcamerapos.namedItem("FOV").nodeValue().toFloat(); - setCamPos.moveSpeed = nodeMapSetcamerapos.namedItem("moveSpeed").nodeValue().toFloat(); - setCamPos.projectionSize = nodeMapSetcamerapos.namedItem("projectionSize").nodeValue().toFloat(); - setCamPos.offset = nodeMapSetcamerapos.namedItem("offset").nodeValue().toFloat(); - setCamPos.prevPlayerRot = nodeMapSetcamerapos.namedItem("prevPlayerRot").nodeValue().toFloat(); + setCamPos.prevCamOffsetMARposY = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("prevCamOffsetMARposY").nodeValue()); + setCamPos.camOffsetMARposY = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("camOffsetMARposY").nodeValue()); + setCamPos.prevCharControlerHeight = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("prevCharControlerHeight").nodeValue()); + setCamPos.charControlerHeight = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("charControlerHeight").nodeValue()); + setCamPos.FOV = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("FOV").nodeValue()); + setCamPos.moveSpeed = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("moveSpeed").nodeValue()); + setCamPos.projectionSize = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("projectionSize").nodeValue()); + setCamPos.offset = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("offset").nodeValue()); + setCamPos.prevPlayerRot = germanLocale->toFloat(nodeMapSetcamerapos.namedItem("prevPlayerRot").nodeValue()); //childs setcamerapos QDomElement loc_Element; @@ -132,9 +133,9 @@ QVector3D CfiController::getXYZfromElement(QDomElement element) { QVector3D vector3D; QDomNamedNodeMap nodeMap = element.attributes(); - vector3D.setX(nodeMap.namedItem("x").nodeValue().toFloat()); - vector3D.setY(nodeMap.namedItem("y").nodeValue().toFloat()); - vector3D.setZ(nodeMap.namedItem("z").nodeValue().toFloat()); + vector3D.setX(germanLocale->toFloat(nodeMap.namedItem("x").nodeValue())); + vector3D.setY(germanLocale->toFloat(nodeMap.namedItem("y").nodeValue())); + vector3D.setZ(germanLocale->toFloat(nodeMap.namedItem("z").nodeValue())); return vector3D; } @@ -142,7 +143,7 @@ QVector2D CfiController::getXYfromElement(QDomElement element) { QVector2D vector2D; QDomNamedNodeMap nodeMap = element.attributes(); - vector2D.setX(nodeMap.namedItem("x").nodeValue().toFloat()); - vector2D.setY(nodeMap.namedItem("y").nodeValue().toFloat()); + vector2D.setX(germanLocale->toFloat(nodeMap.namedItem("x").nodeValue())); + vector2D.setY(germanLocale->toFloat(nodeMap.namedItem("y").nodeValue())); return vector2D; } diff --git a/LibServer/cficontroller/cficontroller.h b/LibServer/cficontroller/cficontroller.h index 9c08fd0..f5ac475 100644 --- a/LibServer/cficontroller/cficontroller.h +++ b/LibServer/cficontroller/cficontroller.h @@ -3,6 +3,7 @@ #include #include +#include #include "updatecontroller.h" #include "cfiobject.h" @@ -30,6 +31,8 @@ private: QMutex mtxAccess; QList listCfiObjects; + + QLocale* germanLocale; }; #endif // CFICONTROLLER_H diff --git a/LibServer/multithreadserver/multithreadserver.cpp b/LibServer/multithreadserver/multithreadserver.cpp index bb4fb18..ed9cf31 100644 --- a/LibServer/multithreadserver/multithreadserver.cpp +++ b/LibServer/multithreadserver/multithreadserver.cpp @@ -239,10 +239,12 @@ bool MultiThreadServer::slot_BlockAutorization(bool block, QString whoFullName, if(res) { + /**/ if(blockRes) - emit signal_sendPacketToAllClients(PacketType::BUSY); + emit signal_sendPacketToAllClients(PacketType::BUSY, true); else - emit signal_sendPacketToAllClients(PacketType::FREE); + emit signal_sendPacketToAllClients(PacketType::FREE, true); + for(QString keyLocal : blockersMap.keys()) { diff --git a/LibServer/multithreadserver/multithreadserver.h b/LibServer/multithreadserver/multithreadserver.h index 1dabd79..ca206c8 100644 --- a/LibServer/multithreadserver/multithreadserver.h +++ b/LibServer/multithreadserver/multithreadserver.h @@ -47,7 +47,7 @@ signals: void signalStopSendFile(); void signal_BlockAutorizationIndicate(bool block, QString blocker, QString types); - void signal_sendPacketToAllClients(PacketType packetType); + void signal_sendPacketToAllClients(PacketType packetType, bool flOnlyGUI); public slots: void slotDisconnectClient(QString peerAddress, QString peerPort); diff --git a/LibServer/serverlmswidget.cpp b/LibServer/serverlmswidget.cpp index e033920..7b66404 100644 --- a/LibServer/serverlmswidget.cpp +++ b/LibServer/serverlmswidget.cpp @@ -155,7 +155,7 @@ void ServerLMSWidget::slot_UpdateDocs() QApplication::restoreOverrideCursor(); //TODO для теста - slot_ParsingCfiXML(); + //slot_ParsingCfiXML(); } void ServerLMSWidget::slot_ParsingCfiXML()