Files
vx4-GuiLin-Gear/DacDisplayAndEdit.cpp
T

97 lines
3.5 KiB
C++

#include "DacDisplayAndEdit.h"
#include "ui_dacdisplayandedit.h"
#include "QLatin1Char"
#include "qdebug.h"
#include "qmessagebox.h"
DacDisplayAndEdit::DacDisplayAndEdit(QWidget *parent) :
QWidget(parent),
ui(new Ui::DacDisplayAndEdit)
{
ui->setupUi(this);
for(int i = 0; i < DAC_GRID_MAX_ROW*DAC_GRID_MAX_COL; i++){
memLineEdit[i] = new QLineEdit(this);
memLineEdit[i]->setAccessibleName(QString::number(i));
memLineEdit[i]->setEnabled(false);
ui->gridLayoutMem->addWidget(memLineEdit[i],(i/DAC_GRID_MAX_COL) + 1,(i%DAC_GRID_MAX_COL) + 1);
connect(memLineEdit[i],SIGNAL(editingFinished ()),this,SLOT(onLineEditEditingFinished()));
}
for(int i = 0; i < DAC_GRID_MAX_ROW; i++){
rowLabel[i] = new QLabel(this);
ui->gridLayoutMem->addWidget(rowLabel[i],i + 1,0);
}
editFlag = false;
writeMemBaseAddr = 0;
readMemBaseAddr = 0;
setEnabled(1);
}
DacDisplayAndEdit::~DacDisplayAndEdit()
{
delete ui;
}
// updateSysStatusToUI
void DacDisplayAndEdit::updateSysStatusToUI(void){
//
}
void DacDisplayAndEdit::updateAuthorization(int auth)
{
//qDebug ()<<auth;
}
void DacDisplayAndEdit::updateSysParaToUI(void){
if(sysPara && !editFlag){
memLineEdit[0]->setText(QString(" "));
for(int i = 1; i < DAC_GRID_MAX_ROW*DAC_GRID_MAX_COL; i++){
if(sysPara->para.adjVolDacRate[i&MAX_RD_DAC_SIZE_MASK]>25)sysPara->para.adjVolDacRate[i&MAX_RD_DAC_SIZE_MASK]=25;
if(sysPara->para.adjVolDacRate[i&MAX_RD_DAC_SIZE_MASK]<5) sysPara->para.adjVolDacRate[i&MAX_RD_DAC_SIZE_MASK]=5;
memLineEdit[i]->setText(QString("%1").arg(sysPara->para.adjVolDacRate[i&MAX_RD_DAC_SIZE_MASK],2,10/*,QLatin1Char('0')*/));
}
}
}
void DacDisplayAndEdit::on_pushButtonEdit_pressed()
{//ddd
if(sysPara){
editFlag = !editFlag;
for(int i = 1; i < DAC_GRID_MAX_ROW*DAC_GRID_MAX_COL; i++){
memLineEdit[i]->setEnabled(editFlag);
if(editFlag) memLineEdit[i]->setText(QString("%1").arg(sysPara->para.adjVolDacRate[i&MAX_RD_DAC_SIZE_MASK],2,10,QLatin1Char('0')));
}
ui->pushButtonEdit->setText(editFlag?tr("完成"):tr("编辑"));
}
}
void DacDisplayAndEdit::on_pushButtonDefault_pressed()// pushButtonDefault pushButtonDefault
{
if(sysPara){
QMessageBox msgBox(QMessageBox::Information,tr("提示"),tr("是否将点距微调参数设置为默认值?"));
QPushButton *saveButton = msgBox.addButton(tr("是"), QMessageBox::ActionRole);
QPushButton *cancleSaveButton = msgBox.addButton(tr("否"), QMessageBox::ActionRole);
QPushButton *abortButton = msgBox.addButton(QMessageBox::Cancel);
msgBox.exec();
if (msgBox.clickedButton() == saveButton) {
for(int i = 1; i < DAC_GRID_MAX_ROW*DAC_GRID_MAX_COL; i++){
sysPara->para.adjVolDacRate[i&MAX_RD_DAC_SIZE_MASK]=15;
memLineEdit[i]->setText(tr("%1").arg(sysPara->para.adjVolDacRate[i&MAX_RD_DAC_SIZE_MASK],2,10,QLatin1Char('0')));
}
}
}
else qDebug()<<"sysPara not bind!";
}
void DacDisplayAndEdit::onLineEditEditingFinished(){
int val,addr=0;
bool ok;
QLineEdit * edit = qobject_cast<QLineEdit *>(sender());
QString name = edit->accessibleName();
val = edit->text().toInt(&ok,10);
if(sysPara){
addr = name.toInt(&ok);
if(val>25)val=25;
if(val<5) val =5;
sysPara->para.adjVolDacRate[(addr)&MAX_RD_DAC_SIZE_MASK] = (unsigned char)val;
}
}