mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Тайминг. Работает. Предварительно.
This commit is contained in:
@@ -11,7 +11,7 @@ void ProcessParser::initialize(ProcessingSystem *processingSystem)
|
||||
this->processingSystem = processingSystem;
|
||||
}
|
||||
|
||||
void ProcessParser::read(ClientHandler *client, QByteArray array)
|
||||
void ProcessParser::slot_read(ClientHandler *client, QByteArray array)
|
||||
{
|
||||
QXmlStreamReader xmlReader(array);
|
||||
|
||||
|
||||
@@ -12,8 +12,9 @@ class ProcessParser : public QObject
|
||||
public:
|
||||
explicit ProcessParser(QObject *parent = nullptr);
|
||||
void initialize(ProcessingSystem *processingSystem);
|
||||
void read(ClientHandler *client, QByteArray array);
|
||||
|
||||
public slots:
|
||||
void slot_read(ClientHandler *client, QByteArray array);
|
||||
|
||||
signals:
|
||||
void sigLogMessage(QString text);
|
||||
|
||||
@@ -58,6 +58,7 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien
|
||||
{//Авторизуется инструктор
|
||||
|
||||
client->getClient()->setLogin(clientAutorization.Login);
|
||||
client->getClient()->setAccessType("instructor");
|
||||
client->getClient()->setTypeClient(clientAutorization.TypeClient);
|
||||
emit sigUpdateListClients();
|
||||
|
||||
@@ -72,6 +73,7 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien
|
||||
{//Авторизуется обучаемый
|
||||
|
||||
client->getClient()->setLogin(clientAutorization.Login);
|
||||
client->getClient()->setAccessType("trainee");
|
||||
emit sigUpdateListClients();
|
||||
|
||||
//KAV redact
|
||||
@@ -120,6 +122,7 @@ void ProcessingSystem::processingClientDeAutorization(ClientHandler *client, Cli
|
||||
{//ДеАвторизуется обучаемый
|
||||
|
||||
client->getClient()->setLogin("");
|
||||
client->getClient()->setAccessType("");
|
||||
emit sigUpdateListClients();
|
||||
|
||||
arrayAnswer = dataParser->ClientAnswer()->deAuthorization(true, clientDeAutorization.Login);
|
||||
@@ -128,6 +131,7 @@ void ProcessingSystem::processingClientDeAutorization(ClientHandler *client, Cli
|
||||
{//ДеАвторизуется инструктор
|
||||
|
||||
client->getClient()->setLogin("");
|
||||
client->getClient()->setAccessType("");
|
||||
emit sigUpdateListClients();
|
||||
|
||||
arrayAnswer = dataParser->ClientAnswer()->deAuthorization(true, clientDeAutorization.Login);
|
||||
@@ -160,6 +164,38 @@ void ProcessingSystem::processingClientDeAutorization(QString login)
|
||||
}
|
||||
}
|
||||
|
||||
void ProcessingSystem::processingEntryUnityClient(ClientHandler *client)
|
||||
{
|
||||
QString login = client->getClient()->getLogin();
|
||||
QString accessType = client->getClient()->getAccessType();
|
||||
|
||||
if(accessType == "trainee")
|
||||
{
|
||||
int id_trainee = providerDBLMS->getIdTraineeByLogin(login);
|
||||
providerDBLMS->entryTraineeOnSimulator(id_trainee);
|
||||
}
|
||||
else if(accessType == "instructor")
|
||||
{
|
||||
//Здесь пока ничего не происходит
|
||||
}
|
||||
}
|
||||
|
||||
void ProcessingSystem::processingExitUnityClient(ClientHandler *client)
|
||||
{
|
||||
QString login = client->getClient()->getLogin();
|
||||
QString accessType = client->getClient()->getAccessType();
|
||||
|
||||
if(accessType == "trainee")
|
||||
{
|
||||
int id_trainee = providerDBLMS->getIdTraineeByLogin(login);
|
||||
providerDBLMS->exitTraineeFromSimulator(id_trainee);
|
||||
}
|
||||
else if(accessType == "instructor")
|
||||
{
|
||||
//Здесь пока ничего не происходит
|
||||
}
|
||||
}
|
||||
|
||||
void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQueryToDB clientQueryToDB, int id, void* data)
|
||||
{
|
||||
qDebug() << "ProcessingQueryThread " << QThread::currentThreadId();
|
||||
@@ -477,9 +513,24 @@ void ProcessingSystem::processingClientNotify(ClientHandler *client, ClientNotif
|
||||
sendTaskListToUnity(client);
|
||||
client->getSocket()->flush();
|
||||
}
|
||||
else if(clientNotify.Code == commandStartTimerClient)
|
||||
{
|
||||
//Фиксируем время входа Юнити-клиента
|
||||
if (client->getClient()->getIsUnity())
|
||||
{
|
||||
processingEntryUnityClient(client);
|
||||
}
|
||||
}
|
||||
else if(clientNotify.Code == commandDisableClient)
|
||||
{
|
||||
qDebug() << "processing thread: " << QThread::currentThreadId();
|
||||
|
||||
//Фиксируем время выхода Юнити-клиента
|
||||
if (client->getClient()->getIsUnity())
|
||||
{
|
||||
processingExitUnityClient(client);
|
||||
}
|
||||
|
||||
client->sendDisable();
|
||||
}
|
||||
else if(clientNotify.Code == commandGetServerDataList)
|
||||
|
||||
@@ -51,6 +51,9 @@ public:
|
||||
|
||||
ClientHandler* getUnityClientById(int id);
|
||||
void processingClientDeAutorization(QString login);
|
||||
|
||||
void processingEntryUnityClient(ClientHandler *client);
|
||||
void processingExitUnityClient(ClientHandler *client);
|
||||
signals:
|
||||
void sigUpdateListClients();
|
||||
void sigListsInstructorsTraineesChanged();
|
||||
|
||||
@@ -28,7 +28,7 @@ void RecognizeSystem::initialize(UpdateController *updateController,DataParser*
|
||||
connect(this,&RecognizeSystem::sigChangeVersion,updateController,&UpdateController::changeAssetVersion,Qt::AutoConnection);
|
||||
connect(this,&RecognizeSystem::sigDeleteVersion,updateController,&UpdateController::deleteAssetVersion,Qt::AutoConnection);
|
||||
connect(this,&RecognizeSystem::sigCopyVersion,updateController,&UpdateController::createCopyVersion,Qt::AutoConnection);
|
||||
connect(this,&RecognizeSystem::sigXmlParser,dataParser->getProcessParser(),&ProcessParser::read,Qt::DirectConnection);
|
||||
connect(this,&RecognizeSystem::sigXmlParser,dataParser->getProcessParser(),&ProcessParser::slot_read,Qt::DirectConnection);
|
||||
|
||||
qDebug() << "Recognize init thread ID " << QThread::currentThreadId();
|
||||
}
|
||||
@@ -435,7 +435,7 @@ void RecognizeSystem::recognize()
|
||||
|
||||
if(packetType == PacketType::TYPE_DISABLE)
|
||||
{
|
||||
clientHandler->sendDisable();
|
||||
clientHandler->sendDisable();
|
||||
}
|
||||
|
||||
packetType = PacketType::TYPE_NONE;
|
||||
@@ -455,6 +455,7 @@ void RecognizeSystem::packetTypeInit(PacketType packet,Client *client)
|
||||
else if (packet == PacketType::TYPE_UNITY)
|
||||
{
|
||||
client->setUnity(true);
|
||||
//Фиксируем время входа Юнити-клиента
|
||||
}
|
||||
|
||||
isPackageTypeInited = true;
|
||||
|
||||
@@ -59,7 +59,7 @@ private:
|
||||
bool isPackageTypeInited;
|
||||
|
||||
void packetTypeInit(PacketType packet,Client *client);
|
||||
void packetTypeInit(PacketType type);
|
||||
//void packetTypeInit(PacketType type);
|
||||
|
||||
bool checkIsChangeable();
|
||||
};
|
||||
|
||||
@@ -39,6 +39,7 @@ static const QString commandGetServerDataList = "GETSERVERDATALIST";
|
||||
static const QString commandCheckVersionList = "CHECKVERSIONLIST";
|
||||
static const QString commandReadyClient = "READY";
|
||||
static const QString commandDisableClient = "DISABLE";
|
||||
static const QString commandStartTimerClient = "UNITYSTARTTIMER";
|
||||
static const QString commandDuplicateVerName = "DUPLICATEVERNAME";
|
||||
static const QString commandHashCompleteClient = "HASHSENDCOMPLETE";
|
||||
static const QString commandCanChangeVersion = "CANCHANGE";
|
||||
|
||||
Reference in New Issue
Block a user