mirror of https://github.com/EspoTek/Labrador.git
85 lines
2.8 KiB
C++
85 lines
2.8 KiB
C++
#include "daqform.h"
|
|
#include "ui_daqform.h"
|
|
#include "siprint.h"
|
|
#include "desktop_settings.h"
|
|
|
|
daqForm::daqForm(QWidget *parent, int initialAverage, qulonglong initialMaxFileSize) :
|
|
QDialog(parent),
|
|
ui(new Ui::daqForm)
|
|
{
|
|
ui->setupUi(this);
|
|
|
|
//Set the Initial Average settings
|
|
if(initialAverage != 1){
|
|
ui->sampleAveragingGroup->setChecked(true);
|
|
ui->numberOfPointsSpinBox->setValue(initialAverage);
|
|
}
|
|
|
|
//Initialise the file size box
|
|
if(initialMaxFileSize == 0){
|
|
ui->limitFileSizeGroupBox->setChecked(false);
|
|
} else {
|
|
ui->limitFileSizeGroupBox->setChecked(true);
|
|
ui->fileSizeSpinBox->setValue(initialMaxFileSize/1000000);
|
|
}
|
|
|
|
updateLabels();
|
|
//Internal Signal Connect
|
|
//Changed values
|
|
connect(ui->fileSizeSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateValues()));
|
|
connect(ui->numberOfPointsSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateValues()));
|
|
connect(ui->limitFileSizeGroupBox, SIGNAL(toggled(bool)), this, SLOT(updateValues()));
|
|
connect(ui->sampleAveragingGroup, SIGNAL(toggled(bool)), this, SLOT(updateValues()));
|
|
|
|
//Label
|
|
connect(ui->numberOfPointsSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateLabels()));
|
|
connect(ui->fileSizeSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateLabels()));
|
|
|
|
//Save Button
|
|
connect(ui->saveAsDefaultsButton, SIGNAL(clicked(bool)), this, SLOT(trigger_saveButtonPressed()));
|
|
|
|
}
|
|
|
|
daqForm::~daqForm()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void daqForm::updateLabels(){
|
|
double effective_sample_rate_single = 375000/((double)ui->numberOfPointsSpinBox->value());
|
|
double effective_sample_rate_double = 750000/((double)ui->numberOfPointsSpinBox->value());
|
|
int num_samples_stored = (ui->fileSizeSpinBox->value() * 1000000) / NUM_BYTES_STORED_PER_DAQ_SAMPLE;
|
|
|
|
//Print in SI units
|
|
char units[3] = "Hz";
|
|
siprint label_single_siprint(&units[0], effective_sample_rate_single);
|
|
siprint label_double_siprint(&units[0], effective_sample_rate_double);
|
|
|
|
//Shove commas in there, or decimal points if you're European!
|
|
QString label_numSamples = QLocale().toString(num_samples_stored);
|
|
|
|
ui->sampleRateLabel_val->setText(label_single_siprint.printVal());
|
|
ui->sampleRateLabel_Double_val->setText(label_double_siprint.printVal());
|
|
ui->numSamplesStoredLabel_Value->setText(label_numSamples);
|
|
}
|
|
|
|
void daqForm::updateValues(){
|
|
qDebug() << "daqForm::updateValues()";
|
|
|
|
//Averaging
|
|
if(ui->sampleAveragingGroup->isChecked()){
|
|
updatedAveraging(ui->numberOfPointsSpinBox->value());
|
|
} else updatedAveraging(1);
|
|
|
|
//File Size
|
|
if(ui->limitFileSizeGroupBox->isChecked()){
|
|
updatedMaxFileSize(ui->fileSizeSpinBox->value() * 1000000);
|
|
} else updatedMaxFileSize(0);
|
|
|
|
}
|
|
|
|
void daqForm::trigger_saveButtonPressed(){
|
|
saveButtonPressed();
|
|
}
|
|
|