Add UsctStateManager and add DmsState in GUI.
This commit is contained in:
70
src/device/UsctStateManager.cpp
Normal file
70
src/device/UsctStateManager.cpp
Normal file
@@ -0,0 +1,70 @@
|
||||
#include "UsctStateManager.h"
|
||||
|
||||
#include "event/EventCenter.h"
|
||||
|
||||
UsctStateManager* UsctStateManager::getInstance()
|
||||
{
|
||||
static UsctStateManager instance;
|
||||
return &instance;
|
||||
}
|
||||
|
||||
UsctStateManager::UsctStateManager(QObject* aParent)
|
||||
: QObject (aParent)
|
||||
, mState()
|
||||
{
|
||||
mState.insert(DmsState, true);
|
||||
mState.insert(DmsConnectionState, true);
|
||||
mState.insert(ReconState, true);
|
||||
mState.insert(ReconMppsState, true);
|
||||
mState.insert(ReconPacsState, true);
|
||||
mState.insert(ReconConnectionState, true);
|
||||
mState.insert(ReconEmptyScanState, true);
|
||||
mState.insert(ReconDBState, true);
|
||||
}
|
||||
|
||||
void UsctStateManager::setState(int aStateCode, bool aState)
|
||||
{
|
||||
bool stateTemp = mState[aStateCode];
|
||||
mState[aStateCode] = aState;
|
||||
if(stateTemp != aState)
|
||||
{
|
||||
bool UsctState = getUsctState();
|
||||
EventCenter::Default()->triggerEvent(UsctStateUpdated, nullptr, (QObject*)&UsctState);
|
||||
}
|
||||
mState[aStateCode] = aState;
|
||||
if(aState)
|
||||
{
|
||||
int msg = aStateCode;
|
||||
EventCenter::Default()->triggerEvent(ErrorStateUnactive, nullptr, (QObject*)&msg);
|
||||
}
|
||||
{
|
||||
QPair<int, QString> msg(QPair<int, QString>(aStateCode, getStateErrorMessage(aStateCode)));
|
||||
EventCenter::Default()->triggerEvent(ErrorStateActive, nullptr, (QObject*)&msg);
|
||||
}
|
||||
}
|
||||
|
||||
bool UsctStateManager::getUsctState()
|
||||
{
|
||||
bool result = true;
|
||||
QMap<int, bool>::const_iterator it;
|
||||
for (it = mState.constBegin(); it != mState.constEnd(); ++it)
|
||||
{
|
||||
result = result & it.value();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
QString UsctStateManager::getStateErrorMessage(int aStateCode)
|
||||
{
|
||||
switch (aStateCode)
|
||||
{
|
||||
case DmsState : return "Dms Error";
|
||||
case DmsConnectionState : return "Dms Connection Error";
|
||||
case ReconState : return "Recon Fatal Error";
|
||||
case ReconMppsState : return "Recon Mpps Connection Error";
|
||||
case ReconPacsState : return "Recon Pacs Connection Error";
|
||||
case ReconEmptyScanState : return "Recon Empty Scan Data Error";
|
||||
case ReconDBState : return "Recon Database Connection Error";
|
||||
default: return "Unknow Error";
|
||||
}
|
||||
}
|
||||
42
src/device/UsctStateManager.h
Normal file
42
src/device/UsctStateManager.h
Normal file
@@ -0,0 +1,42 @@
|
||||
#ifndef USCTSTATEMANAGER_H
|
||||
#define USCTSTATEMANAGER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QMap>
|
||||
|
||||
enum UsctState
|
||||
{
|
||||
DmsState = 0, //Dms是否有致命错误,false代表存在致命错误
|
||||
DmsConnectionState,
|
||||
ReconState, //Recon是否有致命错误,false代表存在致命错误
|
||||
ReconMppsState,
|
||||
ReconPacsState,
|
||||
ReconConnectionState,
|
||||
ReconEmptyScanState,
|
||||
ReconDBState
|
||||
};
|
||||
|
||||
class UsctStateManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
static UsctStateManager* getInstance();
|
||||
|
||||
bool getUsctState();
|
||||
void setState(int aStateCode, bool aState);
|
||||
|
||||
private:
|
||||
QString getStateErrorMessage(int aStateCode);
|
||||
|
||||
|
||||
private:
|
||||
UsctStateManager(QObject* aParent = nullptr);
|
||||
UsctStateManager(const UsctStateManager&);
|
||||
UsctStateManager& operator=(const UsctStateManager&);
|
||||
|
||||
private:
|
||||
QMap<int, bool> mState;
|
||||
|
||||
};
|
||||
|
||||
#endif // USCTSTATEMANAGER_H
|
||||
Reference in New Issue
Block a user