fix nullptr exception on camera disconnect

This commit is contained in:
Jan Grewe 2024-03-04 16:54:33 +01:00
parent 7b1d79ad70
commit 203063d83d
2 changed files with 10 additions and 7 deletions

View File

@ -199,6 +199,6 @@ CameraPreview::~CameraPreview(){
delete camera; delete camera;
camera = nullptr; camera = nullptr;
} }
qDebug() << "preview: deleted camera"; qDebug() << "deleted camera";
} }

View File

@ -582,14 +582,15 @@ void PylonRecorder::applyScaling(){
void PylonRecorder::quitApplication() { void PylonRecorder::quitApplication() {
qDebug() << "Quit Application!"; qDebug() << "QuitApplication: Quit Application!";
if (grabbing) { if (grabbing) {
std::cerr << "QuitApplication: Stop grabbing\n";
qDebug() << "QuitApplication: Stop grabbing"; qDebug() << "QuitApplication: Stop grabbing";
stopRecording(); stopRecording();
} }
qDebug() << "QuitApplication done!"; qDebug() << "QuitApplication done!";
this->close(); this->close();
std::cerr << "QuitApplication: done,\n";
} }
@ -606,12 +607,12 @@ void PylonRecorder::cameraConfiguration(){
} }
void PylonRecorder::camerasetup() { void PylonRecorder::camerasetup() {
std::cerr << "camera settings accepted" << std::endl; std::cerr << "camera settings accepted1" << std::endl;
std::cerr << d->result() << std::endl; std::cerr << d->result() << std::endl;
std::cerr << "camera settings accepted" << std::endl; std::cerr << "camera settings accepted2" << std::endl;
CameraLayout l = d->layout(); CameraLayout l = d->layout();
std::cerr << l.rois.size() << l.devices.size() << std::endl; std::cerr << l.rois.size() << l.devices.size() << std::endl;
std::cerr << "camera settings accepted" << std::endl; std::cerr << "camera settings accepted3" << std::endl;
delete d; delete d;
} }
@ -645,13 +646,15 @@ void PylonRecorder::connectCamera() {
void PylonRecorder::disconnectCamera() { void PylonRecorder::disconnectCamera() {
if (pyloncam->isOpen()) { qDebug() << "disconnecting camera";
if (pyloncam != nullptr && pyloncam->isOpen()) {
pyloncam->closeCamera(); pyloncam->closeCamera();
statusBar()->showMessage(tr("Camera closed!")); statusBar()->showMessage(tr("Camera closed!"));
cameraConnectedLabel->setText("not connected"); cameraConnectedLabel->setText("not connected");
cameraConnectedLabel->setStyleSheet("QLabel { font-size: 10px;font-family: Arial;color: red;}"); cameraConnectedLabel->setStyleSheet("QLabel { font-size: 10px;font-family: Arial;color: red;}");
updateActions(); updateActions();
} }
qDebug() << "disconnecting cameras done";
} }