63 lines
1.7 KiB
C++
63 lines
1.7 KiB
C++
#include "ScanProcessSequence.h"
|
|
|
|
#include "event/EventCenter.h"
|
|
#include "device/DeviceManager.h"
|
|
|
|
ScanProcessSequence* ScanProcessSequence::getInstance()
|
|
{
|
|
static ScanProcessSequence instance;
|
|
return &instance;
|
|
}
|
|
|
|
ScanProcessSequence::ScanProcessSequence(QObject* aParent)
|
|
: QObject(aParent)
|
|
, mScanProtocol()
|
|
{
|
|
connect(DeviceManager::Default(), &DeviceManager::startAutoLocateResult, this, &ScanProcessSequence::startAutoLocate);
|
|
connect(DeviceManager::Default(), &DeviceManager::updateAutoLocatePosition, this, &ScanProcessSequence::updateAutoLocatePosition);
|
|
connect(DeviceManager::Default(), &DeviceManager::autolocatePositionEffective, this, &ScanProcessSequence::stopAutoLocate);
|
|
connect(EventCenter::Default(), &EventCenter::StopScanProcess, this, &ScanProcessSequence::quitAutoLocate);
|
|
}
|
|
|
|
void ScanProcessSequence::updateAutoLocatePosition(int aX, int aY, int aZ)
|
|
{
|
|
emit autoLocateXYUpdated(aX, aY);
|
|
emit autoLocateZUpdated(aZ);
|
|
}
|
|
|
|
void ScanProcessSequence::pushAccession(AccessionInformation* aAccession, ScanPosition aPostion)
|
|
{
|
|
mScanProtocol.push(QPair<AccessionInformation*, ScanPosition>(aAccession, aPostion));
|
|
}
|
|
|
|
QPair<AccessionInformation*,ScanPosition> ScanProcessSequence::topAccession()
|
|
{
|
|
return mScanProtocol.top();
|
|
}
|
|
|
|
ScanPosition ScanProcessSequence::popPosition()
|
|
{
|
|
ScanPosition result = mScanProtocol.pop().second;
|
|
if(mScanProtocol.size() == 0)
|
|
{
|
|
emit ScanProcessSequenceFinished();
|
|
}
|
|
return result;
|
|
}
|
|
|
|
ScanPosition ScanProcessSequence::topPosition()
|
|
{
|
|
return mScanProtocol.top().second;
|
|
}
|
|
|
|
void ScanProcessSequence::clear()
|
|
{
|
|
return mScanProtocol.clear();
|
|
}
|
|
|
|
int ScanProcessSequence::getScanPositionSize()
|
|
{
|
|
return mScanProtocol.size();
|
|
}
|
|
|