feat: Add recon state in GUI.

This commit is contained in:
sunwen
2024-05-29 14:29:58 +08:00
parent a0feff11e2
commit 23a747bde4
6 changed files with 89 additions and 23 deletions

View File

@@ -24,19 +24,19 @@ UsctStateManager::UsctStateManager(QObject* aParent)
void UsctStateManager::setState(int aStateCode, bool aState)
{
bool stateTemp = mState[aStateCode];
mState[aStateCode] = aState;
if(stateTemp != aState)
if(aState == mState[aStateCode])
{
bool UsctState = getUsctState();
EventCenter::Default()->triggerEvent(UsctStateUpdated, nullptr, (QObject*)&UsctState);
return;
}
mState[aStateCode] = aState;
bool UsctState = getUsctState();
EventCenter::Default()->triggerEvent(UsctStateUpdated, nullptr, (QObject*)&UsctState);
if(aState)
{
int msg = aStateCode;
EventCenter::Default()->triggerEvent(ErrorStateUnactive, nullptr, (QObject*)&msg);
}
else
{
QPair<int, QString> msg(QPair<int, QString>(aStateCode, getStateErrorMessage(aStateCode)));
EventCenter::Default()->triggerEvent(ErrorStateActive, nullptr, (QObject*)&msg);
@@ -65,6 +65,38 @@ QString UsctStateManager::getStateErrorMessage(int aStateCode)
case ReconPacsState : return "Recon Pacs Connection Error";
case ReconEmptyScanState : return "Recon Empty Scan Data Error";
case ReconDBState : return "Recon Database Connection Error";
case ReconConnectionState : return "Recon Connection Error";
default: return "Unknow Error";
}
}
void UsctStateManager::updateReconState(bool aIsConnected,int aState)
{
setState(ReconConnectionState, aIsConnected);
for (int i = 0; i < 5; ++i)
{
int mask = 1 << i;
bool result = true;
if (aState & mask)
{
result = false;
}
switch(i)
{
case ReconState: setState(ReconState, result); break;
case ReconDBState: setState(ReconDBState, result); break;
case ReconEmptyScanState: setState(ReconEmptyScanState, result); break;
case ReconPacsState: setState(ReconPacsState, result); break;
case ReconMppsState: setState(ReconMppsState, result); break;
default: break;
}
}
}
bool UsctStateManager::getState(UsctState aStateCode)
{
return mState[aStateCode];
}