add,计划采集7:
实现部分计划采集功能:定时任务可完整执行
This commit is contained in:
@ -604,7 +604,7 @@ void HPPA::initTimedDataCollection()
|
||||
|
||||
// 相机/马达 → 定时采集控制器
|
||||
connect(m_tmc, &TwoMotorControl::sequenceComplete, mTimedDataCollectionWindow, &TimedDataCollection::subTaskCompleted);
|
||||
connect(m_tmc, &TwoMotorControl::back2OriginSignal, mTimedDataCollectionWindow, &TimedDataCollection::onBack2Origin);
|
||||
connect(m_tmc, &TwoMotorControl::back2OriginSignal_TimedDataCollection, mTimedDataCollectionWindow, &TimedDataCollection::onBack2Origin);
|
||||
|
||||
//连接马达控制和单反/深度
|
||||
}
|
||||
@ -696,8 +696,7 @@ void HPPA::onStartTimedDataCollection(int camType)
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
//m_tmc->setImager(m_Imager);
|
||||
//m_tmc->run2();
|
||||
m_tmc->run3(m_depthCameraWindow);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -114,16 +114,65 @@ void TwoMotorControl::run2(SingleLensReflexCameraWindow* window)
|
||||
return;
|
||||
}
|
||||
|
||||
m_coordinator = new TwoMotionCaptureCoordinator(m_multiAxisController);
|
||||
connect(this, SIGNAL(start(QVector<PathLine>)), m_coordinator, SLOT(start(QVector<PathLine>)));
|
||||
m_coordinator_TimedDataCollection = new TwoMotionCaptureCoordinator(m_multiAxisController);
|
||||
connect(this, SIGNAL(start(QVector<PathLine>)), m_coordinator_TimedDataCollection, SLOT(start(QVector<PathLine>)));
|
||||
|
||||
connect(m_coordinator, &TwoMotionCaptureCoordinator::startRecordLineNumSignal, this, &TwoMotorControl::receiveStartRecordLineNum);
|
||||
connect(m_coordinator, &TwoMotionCaptureCoordinator::finishRecordLineNumSignal, this, &TwoMotorControl::receiveFinishRecordLineNum);
|
||||
connect(m_coordinator_TimedDataCollection, &TwoMotionCaptureCoordinator::startRecordLineNumSignal, this, &TwoMotorControl::receiveStartRecordLineNum);
|
||||
connect(m_coordinator_TimedDataCollection, &TwoMotionCaptureCoordinator::finishRecordLineNumSignal, this, &TwoMotorControl::receiveFinishRecordLineNum);
|
||||
|
||||
connect(m_coordinator, &TwoMotionCaptureCoordinator::startRecordLineNumSignal, window, &SingleLensReflexCameraWindow::onStartTimedDataCollection);
|
||||
connect(m_coordinator, &TwoMotionCaptureCoordinator::sequenceComplete, window, &SingleLensReflexCameraWindow::onStopTimedDataCollection);
|
||||
connect(m_coordinator_TimedDataCollection, &TwoMotionCaptureCoordinator::startRecordLineNumSignal, window, &SingleLensReflexCameraWindow::onStartTimedDataCollection);
|
||||
connect(m_coordinator_TimedDataCollection, &TwoMotionCaptureCoordinator::sequenceComplete, window, &SingleLensReflexCameraWindow::onStopTimedDataCollection);
|
||||
|
||||
connect(m_coordinator, &TwoMotionCaptureCoordinator::back2OriginSignal, this, &TwoMotorControl::onBack2Origin2);
|
||||
connect(m_coordinator_TimedDataCollection, &TwoMotionCaptureCoordinator::back2OriginSignal, this, &TwoMotorControl::onBack2Origin2);
|
||||
|
||||
QVector<PathLine> pathLines;
|
||||
//int columnCount = ui.recordLine_tableWidget->columnCount();
|
||||
for (size_t i = 0; i < rowCount; i++)
|
||||
{
|
||||
PathLine tmp;
|
||||
|
||||
tmp.targetYPosition = ui.recordLine_tableWidget->item(i, 0)->text().toDouble();
|
||||
tmp.speedTargetYPosition = ui.recordLine_tableWidget->item(i, 1)->text().toDouble();
|
||||
tmp.targetXMinPosition = ui.recordLine_tableWidget->item(i, 2)->text().toDouble();
|
||||
tmp.speedTargetXMinPosition = ui.recordLine_tableWidget->item(i, 3)->text().toDouble();
|
||||
tmp.targetXMaxPosition = ui.recordLine_tableWidget->item(i, 4)->text().toDouble();
|
||||
tmp.speedTargetXMaxPosition = ui.recordLine_tableWidget->item(i, 5)->text().toDouble();
|
||||
|
||||
pathLines.append(tmp);
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < ui.recordLine_tableWidget->rowCount(); i++)
|
||||
{
|
||||
for (size_t j = 0; j < ui.recordLine_tableWidget->columnCount(); j++)
|
||||
{
|
||||
ui.recordLine_tableWidget->item(i, j)->setBackgroundColor(QColor("#0E1C4C"));
|
||||
}
|
||||
}
|
||||
|
||||
emit start(pathLines);
|
||||
}
|
||||
|
||||
void TwoMotorControl::run3(DepthCameraWindow* window)
|
||||
{
|
||||
int rowCount = ui.recordLine_tableWidget->rowCount();
|
||||
if (rowCount == 0)
|
||||
{
|
||||
QMessageBox::information(this, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("请至少添加一行采集线!"));
|
||||
|
||||
emit sequenceComplete(0);
|
||||
return;
|
||||
}
|
||||
|
||||
m_coordinator_TimedDataCollection = new TwoMotionCaptureCoordinator(m_multiAxisController);
|
||||
connect(this, SIGNAL(start(QVector<PathLine>)), m_coordinator_TimedDataCollection, SLOT(start(QVector<PathLine>)));
|
||||
|
||||
connect(m_coordinator_TimedDataCollection, &TwoMotionCaptureCoordinator::startRecordLineNumSignal, this, &TwoMotorControl::receiveStartRecordLineNum);
|
||||
connect(m_coordinator_TimedDataCollection, &TwoMotionCaptureCoordinator::finishRecordLineNumSignal, this, &TwoMotorControl::receiveFinishRecordLineNum);
|
||||
|
||||
connect(m_coordinator_TimedDataCollection, &TwoMotionCaptureCoordinator::startRecordLineNumSignal, window, &DepthCameraWindow::openDepthCamera);
|
||||
connect(m_coordinator_TimedDataCollection, &TwoMotionCaptureCoordinator::sequenceComplete, window, &DepthCameraWindow::closeDepthCamera);
|
||||
|
||||
connect(m_coordinator_TimedDataCollection, &TwoMotionCaptureCoordinator::back2OriginSignal, this, &TwoMotorControl::onBack2Origin2);
|
||||
|
||||
QVector<PathLine> pathLines;
|
||||
//int columnCount = ui.recordLine_tableWidget->columnCount();
|
||||
@ -154,8 +203,9 @@ void TwoMotorControl::run2(SingleLensReflexCameraWindow* window)
|
||||
|
||||
void TwoMotorControl::onBack2Origin2()
|
||||
{
|
||||
m_coordinator->deleteLater();
|
||||
emit back2OriginSignal();
|
||||
m_coordinator_TimedDataCollection->deleteLater();
|
||||
m_coordinator_TimedDataCollection = nullptr;
|
||||
emit back2OriginSignal_TimedDataCollection();
|
||||
}
|
||||
|
||||
void TwoMotorControl::run()
|
||||
@ -334,6 +384,7 @@ void TwoMotorControl::onBack2Origin()
|
||||
m_coordinator = nullptr;
|
||||
|
||||
emit back2OriginSignal();
|
||||
emit back2OriginSignal_TimedDataCollection();
|
||||
}
|
||||
|
||||
bool TwoMotorControl::getMotorsConnectionStatus()
|
||||
|
||||
@ -77,6 +77,7 @@ public Q_SLOTS:
|
||||
void onBack2Origin();
|
||||
|
||||
void run2(SingleLensReflexCameraWindow* w);
|
||||
void run3(DepthCameraWindow* window);
|
||||
void onBack2Origin2();
|
||||
|
||||
void stop_record();
|
||||
@ -97,6 +98,7 @@ signals:
|
||||
void startLineNumSignal(int lineNum);
|
||||
void sequenceComplete(int status);//所有采集线正常运行完成
|
||||
void back2OriginSignal();
|
||||
void back2OriginSignal_TimedDataCollection();
|
||||
|
||||
void broadcastLocationSignal(std::vector<double>);
|
||||
|
||||
@ -104,6 +106,7 @@ private:
|
||||
Ui::twoMotorControl_UI ui;
|
||||
QThread m_coordinatorThread;
|
||||
TwoMotionCaptureCoordinator* m_coordinator = nullptr;
|
||||
TwoMotionCaptureCoordinator* m_coordinator_TimedDataCollection = nullptr;
|
||||
|
||||
DarkAndWhiteCaptureCoordinator* m_darkCaptureCoordinator = nullptr;
|
||||
DarkAndWhiteCaptureCoordinator* m_whiteCaptureCoordinator = nullptr;
|
||||
|
||||
Reference in New Issue
Block a user