#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(aAccession, aPostion)); } QPair 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(); }