fix server bug

master
UnknownObject 3 years ago
parent d1101ffe10
commit ce9c8fd630

@ -5,6 +5,7 @@ ACIMode::ACIMode(QWidget* parent) : QMainWindow(parent)
client = nullptr; client = nullptr;
server = nullptr; server = nullptr;
OperationMode = -3; OperationMode = -3;
ServerRunning = false;
ui.setupUi(this); ui.setupUi(this);
ui.Workmode_Client->setChecked(true); ui.Workmode_Client->setChecked(true);
ui.Workmode_Server->setChecked(false); ui.Workmode_Server->setChecked(false);
@ -46,20 +47,33 @@ void ACIMode::CleanUp()
void ACIMode::StartACISystem() void ACIMode::StartACISystem()
{ {
CleanUp();
OperationMode = ProcessRadio(ui.Workmode_Client->isChecked(), ui.Workmode_Server->isChecked()); OperationMode = ProcessRadio(ui.Workmode_Client->isChecked(), ui.Workmode_Server->isChecked());
switch (OperationMode) switch (OperationMode)
{ {
case 0: case 0:
{ {
CleanUp();
OperationMode = 0;
client = new ACIClient(ui.PortNumber->toPlainText().toInt()); client = new ACIClient(ui.PortNumber->toPlainText().toInt());
this->hide();
break; break;
} }
case 1: case 1:
{ {
server = new ACIServer(ui.PortNumber->toPlainText().toInt()); if (ServerRunning)
ServerDataStorage::DDROutputAdd("start-timer", RequestedTimerStart); {
server->ThreadRun(); CleanUp();
ServerRunning = false;
ui.BtnStart->setText("启动通信系统");
}
else
{
server = new ACIServer(ui.PortNumber->toPlainText().toInt());
ServerDataStorage::DDROutputAdd("start-timer", RequestedTimerStart);
server->ThreadRun();
ServerRunning = true;
ui.BtnStart->setText("关闭通信系统");
}
break; break;
} }
default: default:
@ -68,8 +82,6 @@ void ACIMode::StartACISystem()
break; break;
} }
} }
if (OperationMode == 0)
this->hide();
} }
int ACIMode::GetOperationMode() int ACIMode::GetOperationMode()

@ -30,6 +30,7 @@ private:
int OperationMode; int OperationMode;
ACIClient* client; ACIClient* client;
ACIServer* server; ACIServer* server;
bool ServerRunning;
Ui::ACIModeWindow ui; Ui::ACIModeWindow ui;
}; };

@ -56,7 +56,10 @@ void ClockCounter::StartTimer()
{ {
MouseClick(PreClickCount, PreClickPosition); MouseClick(PreClickCount, PreClickPosition);
if (aci_mode_window.GetOperationMode() == 0) if (aci_mode_window.GetOperationMode() == 0)
{
aci_mode_window.RequestRemoteTimer(); aci_mode_window.RequestRemoteTimer();
this->setWindowTitle("软件执行计时器: 远程计时请求已发出");
}
else else
{ {
CountTimer.start(); CountTimer.start();
@ -69,6 +72,11 @@ void ClockCounter::StartTimer()
void ClockCounter::StopTimer() void ClockCounter::StopTimer()
{ {
CountTimer.stop(); CountTimer.stop();
if (GlobalVari::ServerRequested && (aci_mode_window.GetOperationMode() == 1))
{
GlobalVari::ServerRequested = false;
ServerStatusChecker.start();
}
ui.BtnStartTimer->setText("重置计时器"); ui.BtnStartTimer->setText("重置计时器");
this->setWindowTitle("软件执行计时器: 计时已停止"); this->setWindowTitle("软件执行计时器: 计时已停止");
} }
@ -81,8 +89,6 @@ void ClockCounter::ShowACIModeWindow()
aci_mode_window.activateWindow(); aci_mode_window.activateWindow();
aci_mode_window.setWindowState((aci_mode_window.windowState() & ~Qt::WindowMinimized) | Qt::WindowActive); aci_mode_window.setWindowState((aci_mode_window.windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);
ServerStatusChecker.start(); ServerStatusChecker.start();
/*this->hide();
WindowUpdater.start();*/
} }
} }
@ -146,10 +152,7 @@ void ClockCounter::WindowUpdateCallback()
void ClockCounter::ServerStatusCallback() void ClockCounter::ServerStatusCallback()
{ {
if (aci_mode_window.GetOperationMode() == 0) if (aci_mode_window.GetOperationMode() == 0)
{
ServerStatusChecker.stop(); ServerStatusChecker.stop();
this->hide();
}
else if (aci_mode_window.GetOperationMode() == 1) else if (aci_mode_window.GetOperationMode() == 1)
{ {
if (GlobalVari::ServerRequested) if (GlobalVari::ServerRequested)

Loading…
Cancel
Save