111 lines
3.3 KiB
C++
111 lines
3.3 KiB
C++
#include "mainwindow.h"
|
|
#include "ui_mainwindow.h"
|
|
|
|
MainWindow::MainWindow(QWidget *parent)
|
|
: QMainWindow(parent)
|
|
, ui(new Ui::MainWindow)
|
|
{
|
|
ui->setupUi(this);
|
|
cam.update_av_cams();
|
|
foreach (QString info, cam.av_cams_info)
|
|
ui->cam_selector->addItem(info);
|
|
handle_cam_selector(0);
|
|
|
|
ui->liveView->setPixmap(liveview_pixmap);
|
|
|
|
connect(ui->cam_selector, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &MainWindow::handle_cam_selector);
|
|
connect(ui->pixel_format_selector, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &MainWindow::handle_pixel_format_selector);
|
|
connect(ui->triggerSource, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &MainWindow::handle_new_trig);
|
|
|
|
connect(ui->exposureTime, &QDoubleSpinBox::editingFinished, this, &MainWindow::handle_new_exposure_time);
|
|
connect(ui->frameRate, &QDoubleSpinBox::editingFinished, this, &MainWindow::handle_new_frame_rate);
|
|
connect(ui->gain, &QDoubleSpinBox::editingFinished, this, &MainWindow::handle_new_gain);
|
|
|
|
connect(ui->startButton, &QPushButton::clicked, this, &MainWindow::handle_start_button);
|
|
|
|
connect(ui->statsButton, &QPushButton::clicked, &stats, &StatsView::show);
|
|
|
|
connect(&cam, &IdsCam::new_status_text, ui->infotext, &QLabel::setText);
|
|
connect(&cam, &IdsCam::vis_new_frame, this, &MainWindow::visualize_new_frame);
|
|
connect(&cam, &IdsCam::new_hist_av, stats.histogramm, &BarChart::new_batch_data);
|
|
connect(&cam, &IdsCam::new_batch_view, &stats, &StatsView::vis_new_batch_view);
|
|
connect(&cam, &IdsCam::new_avg_view, &stats, &StatsView::vis_new_avg_view);
|
|
|
|
}
|
|
|
|
MainWindow::~MainWindow()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void MainWindow::handle_cam_selector(int i)
|
|
{
|
|
cam.select_cam(i);
|
|
ui->pixel_format_selector->clear();
|
|
foreach(QString mode, cam.av_pixel_formats)
|
|
ui->pixel_format_selector->addItem(mode);
|
|
|
|
ui->triggerSource->clear();
|
|
foreach (QString trig, cam.av_trig_sources)
|
|
ui->triggerSource->addItem(trig);
|
|
|
|
ui->exposureTime->setValue(cam.exposure_time);
|
|
ui->frameRate->setValue(cam.frame_rate);
|
|
ui->gain->setValue(cam.gain);
|
|
}
|
|
|
|
void MainWindow::handle_pixel_format_selector(int i)
|
|
{
|
|
if(i != -1)
|
|
cam.set_pixel_format(i);
|
|
}
|
|
|
|
void MainWindow::handle_new_exposure_time()
|
|
{
|
|
cam.set_exposure_time(ui->exposureTime->value());
|
|
ui->exposureTime->setValue(cam.exposure_time);
|
|
}
|
|
|
|
void MainWindow::handle_new_frame_rate()
|
|
{
|
|
cam.set_frame_rate(ui->frameRate->value());
|
|
ui->frameRate->setValue(cam.frame_rate);
|
|
}
|
|
|
|
void MainWindow::handle_new_gain()
|
|
{
|
|
cam.set_gain(ui->gain->value());
|
|
ui->gain->setValue(cam.gain);
|
|
}
|
|
|
|
void MainWindow::handle_new_trig(int i)
|
|
{
|
|
if(i != -1)
|
|
cam.set_trig(i);
|
|
if(ui->triggerSource->itemText(i) != "Software")
|
|
ui->frameRate->setEnabled(0);
|
|
else
|
|
ui->frameRate->setEnabled(1);
|
|
}
|
|
|
|
void MainWindow::handle_start_button()
|
|
{
|
|
if (ui->startButton->text() == "Start")
|
|
{
|
|
qDebug("Setting up Buffering");
|
|
if(cam.setup_buffering())
|
|
ui->startButton->setText("Stop");
|
|
}
|
|
else
|
|
{
|
|
qDebug("Stopping Buffering");
|
|
if(cam.stop_buffering())
|
|
ui->startButton->setText("Start");
|
|
}
|
|
}
|
|
|
|
void MainWindow::visualize_new_frame(QImage img)
|
|
{
|
|
//QPixmap *map = ui->liveView->setPixmap();
|
|
ui->liveView->setPixmap(QPixmap::fromImage(img));
|
|
}
|