add,计划采集7:

实现部分计划采集功能:定时任务可完整执行
This commit is contained in:
tangchao0503
2026-06-05 11:36:38 +08:00
parent 41a1a938b9
commit 467bebe9dd
3 changed files with 65 additions and 12 deletions

View File

@ -604,7 +604,7 @@ void HPPA::initTimedDataCollection()
// 相机/马达 → 定时采集控制器 // 相机/马达 → 定时采集控制器
connect(m_tmc, &TwoMotorControl::sequenceComplete, mTimedDataCollectionWindow, &TimedDataCollection::subTaskCompleted); 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: case 3:
{ {
//m_tmc->setImager(m_Imager); m_tmc->run3(m_depthCameraWindow);
//m_tmc->run2();
break; break;
} }
} }

View File

@ -114,16 +114,65 @@ void TwoMotorControl::run2(SingleLensReflexCameraWindow* window)
return; return;
} }
m_coordinator = new TwoMotionCaptureCoordinator(m_multiAxisController); m_coordinator_TimedDataCollection = new TwoMotionCaptureCoordinator(m_multiAxisController);
connect(this, SIGNAL(start(QVector<PathLine>)), m_coordinator, SLOT(start(QVector<PathLine>))); connect(this, SIGNAL(start(QVector<PathLine>)), m_coordinator_TimedDataCollection, SLOT(start(QVector<PathLine>)));
connect(m_coordinator, &TwoMotionCaptureCoordinator::startRecordLineNumSignal, this, &TwoMotorControl::receiveStartRecordLineNum); connect(m_coordinator_TimedDataCollection, &TwoMotionCaptureCoordinator::startRecordLineNumSignal, this, &TwoMotorControl::receiveStartRecordLineNum);
connect(m_coordinator, &TwoMotionCaptureCoordinator::finishRecordLineNumSignal, this, &TwoMotorControl::receiveFinishRecordLineNum); connect(m_coordinator_TimedDataCollection, &TwoMotionCaptureCoordinator::finishRecordLineNumSignal, this, &TwoMotorControl::receiveFinishRecordLineNum);
connect(m_coordinator, &TwoMotionCaptureCoordinator::startRecordLineNumSignal, window, &SingleLensReflexCameraWindow::onStartTimedDataCollection); connect(m_coordinator_TimedDataCollection, &TwoMotionCaptureCoordinator::startRecordLineNumSignal, window, &SingleLensReflexCameraWindow::onStartTimedDataCollection);
connect(m_coordinator, &TwoMotionCaptureCoordinator::sequenceComplete, window, &SingleLensReflexCameraWindow::onStopTimedDataCollection); 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; QVector<PathLine> pathLines;
//int columnCount = ui.recordLine_tableWidget->columnCount(); //int columnCount = ui.recordLine_tableWidget->columnCount();
@ -154,8 +203,9 @@ void TwoMotorControl::run2(SingleLensReflexCameraWindow* window)
void TwoMotorControl::onBack2Origin2() void TwoMotorControl::onBack2Origin2()
{ {
m_coordinator->deleteLater(); m_coordinator_TimedDataCollection->deleteLater();
emit back2OriginSignal(); m_coordinator_TimedDataCollection = nullptr;
emit back2OriginSignal_TimedDataCollection();
} }
void TwoMotorControl::run() void TwoMotorControl::run()
@ -334,6 +384,7 @@ void TwoMotorControl::onBack2Origin()
m_coordinator = nullptr; m_coordinator = nullptr;
emit back2OriginSignal(); emit back2OriginSignal();
emit back2OriginSignal_TimedDataCollection();
} }
bool TwoMotorControl::getMotorsConnectionStatus() bool TwoMotorControl::getMotorsConnectionStatus()

View File

@ -77,6 +77,7 @@ public Q_SLOTS:
void onBack2Origin(); void onBack2Origin();
void run2(SingleLensReflexCameraWindow* w); void run2(SingleLensReflexCameraWindow* w);
void run3(DepthCameraWindow* window);
void onBack2Origin2(); void onBack2Origin2();
void stop_record(); void stop_record();
@ -97,6 +98,7 @@ signals:
void startLineNumSignal(int lineNum); void startLineNumSignal(int lineNum);
void sequenceComplete(int status);//所有采集线正常运行完成 void sequenceComplete(int status);//所有采集线正常运行完成
void back2OriginSignal(); void back2OriginSignal();
void back2OriginSignal_TimedDataCollection();
void broadcastLocationSignal(std::vector<double>); void broadcastLocationSignal(std::vector<double>);
@ -104,6 +106,7 @@ private:
Ui::twoMotorControl_UI ui; Ui::twoMotorControl_UI ui;
QThread m_coordinatorThread; QThread m_coordinatorThread;
TwoMotionCaptureCoordinator* m_coordinator = nullptr; TwoMotionCaptureCoordinator* m_coordinator = nullptr;
TwoMotionCaptureCoordinator* m_coordinator_TimedDataCollection = nullptr;
DarkAndWhiteCaptureCoordinator* m_darkCaptureCoordinator = nullptr; DarkAndWhiteCaptureCoordinator* m_darkCaptureCoordinator = nullptr;
DarkAndWhiteCaptureCoordinator* m_whiteCaptureCoordinator = nullptr; DarkAndWhiteCaptureCoordinator* m_whiteCaptureCoordinator = nullptr;