TSI_Config/dc_output_channel.cpp
2025-08-05 20:49:25 +08:00

79 lines
2.4 KiB
C++

#include "dc_output_channel.h"
#include "ui_dc_output_channel.h"
#include <QMessageBox>
#include "data_config.h"
#include <QDebug>
DC_Output_Channel::DC_Output_Channel(QString unit_str_,int current_index_,QWidget *parent) :
QWidget(parent),
ui(new Ui::DC_Output_Channel)
{
ui->setupUi(this);
unit_str = unit_str_;
current_index = current_index_;
ui->label_min_unit->setText(unit_str);
ui->label_max_unit->setText(unit_str);
radiobtn[0] = ui->radioButton;
radiobtn[1] = ui->radioButton_2;
radiobtn[2] = ui->radioButton_3;
radiobtn[3] = ui->radioButton_4;
radiobtn[4] = ui->radioButton_5;
int not_used = 0;
for (int i = 0; i < 22; i++) {
for (int j = 0; j < 4; j++){
if(ch_used[i].used[j] && current_index == i){
radiobtn[j]->setEnabled(true);
radiobtn[j]->setChecked(true);
first_used = j;
}else if(ch_used[i].used[j] && current_index != i){
radiobtn[j]->setEnabled(false);
}else if(!ch_used[i].used[j] && current_index == i){
not_used ++;
}
}
}
if(not_used == 4){
ui->radioButton_5->setChecked(true);
}
}
DC_Output_Channel::~DC_Output_Channel()
{
delete ui;
}
void DC_Output_Channel::on_pushButton_confirm_clicked()
{
int channel = 0;
if(!ui->radioButton_5->isChecked() && ((ui->lineEdit_minmum->text().toFloat() >= ui->lineEdit_maxmum->text().toFloat()) ||
(ui->lineEdit_minmum->text().toFloat() == 0 && ui->lineEdit_maxmum->text().toFloat() == 0))){
QMessageBox::information(this, QStringLiteral("提示"), "请填写正确的最小值和最大值");
return;
}
if(ui->radioButton->isChecked()){
channel = 1;
}else if(ui->radioButton_2->isChecked()){
channel = 2;
}else if(ui->radioButton_3->isChecked()){
channel = 3;
}else if(ui->radioButton_4->isChecked()){
channel = 4;
}else if(ui->radioButton_5->isChecked()){
ch_used[current_index].used[first_used] = false;
channel = 5;
}else {
QMessageBox::information(this, QStringLiteral("提示"), "请选择正确的通道");
return;
}
emit output_channel_data_sg(channel,ui->lineEdit_minmum->text().toFloat(),ui->lineEdit_maxmum->text().toFloat(),first_used);
this->close();
}
void DC_Output_Channel::on_pushButton_cancel_clicked()
{
this->close();
}