压力算法移植前
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
#include "MemDisplayAndEdit.h"
|
||||
#include "ui_memdisplayandedit.h"
|
||||
#include "QLatin1Char"
|
||||
MemDisplayAndEdit::MemDisplayAndEdit(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::MemDisplayAndEdit)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
for(int i = 0; i < MEM_GRID_MAX_ROW*MEM_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/MEM_GRID_MAX_COL) + 1,(i%MEM_GRID_MAX_COL) + 1);
|
||||
connect(memLineEdit[i],SIGNAL(editingFinished ()),this,SLOT(onLineEditEditingFinished()));
|
||||
}
|
||||
for(int i = 0; i < MEM_GRID_MAX_ROW; i++){
|
||||
rowLabel[i] = new QLabel(this);
|
||||
ui->gridLayoutMem->addWidget(rowLabel[i],i + 1,0);
|
||||
}
|
||||
editFlag = false;
|
||||
writeMemMode = false;
|
||||
ui->radioButtonRead->setChecked(!writeMemMode);
|
||||
ui->radioButtonWrite->setChecked(writeMemMode);
|
||||
writeMemBaseAddr = 0;
|
||||
readMemBaseAddr = 0;
|
||||
}
|
||||
|
||||
MemDisplayAndEdit::~MemDisplayAndEdit()
|
||||
{
|
||||
delete ui;
|
||||
|
||||
|
||||
}
|
||||
|
||||
void MemDisplayAndEdit::updateSysStatusToUI(void){
|
||||
if(sysPara && !editFlag){
|
||||
for(int i = 0; i < MEM_GRID_MAX_ROW*MEM_GRID_MAX_COL; i++){
|
||||
if(writeMemMode)
|
||||
memLineEdit[i]->setText(QString("%1").arg(sysPara->devOp->memWrMap[(writeMemBaseAddr + i)&MAX_WR_MEM_SIZE_MASK],2,16,QLatin1Char('0')));
|
||||
else
|
||||
memLineEdit[i]->setText(QString("%1").arg(sysPara->devOp->memRdMap[(readMemBaseAddr + i)&MAX_RD_MEM_SIZE_MASK],2,16,QLatin1Char('0')));
|
||||
}
|
||||
for(int i = 0; i < MEM_GRID_MAX_ROW; i++){
|
||||
if(writeMemMode)
|
||||
rowLabel[i]->setText(QString("%1").arg((writeMemBaseAddr + i*MEM_GRID_MAX_COL)&MAX_WR_MEM_SIZE_MASK,4,16,QLatin1Char('0')));
|
||||
else
|
||||
rowLabel[i]->setText(QString("%1").arg((readMemBaseAddr + i*MEM_GRID_MAX_COL)&MAX_RD_MEM_SIZE_MASK,4,16,QLatin1Char('0')));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void MemDisplayAndEdit::on_comboBoxBaseAddress_activated(const QString &str)
|
||||
{
|
||||
bool ok;
|
||||
if(writeMemMode){
|
||||
writeMemBaseAddr = str.toInt(&ok,0);
|
||||
}
|
||||
else
|
||||
readMemBaseAddr = str.toInt(&ok,0);
|
||||
}
|
||||
|
||||
void MemDisplayAndEdit::on_radioButtonRead_pressed()
|
||||
{
|
||||
writeMemMode = false;
|
||||
if(sysPara){
|
||||
ui->pushButtonEdit->setEnabled(sysPara->devOp->fpgaDevOpenFlag?false:true);
|
||||
}
|
||||
if(editFlag)
|
||||
on_pushButtonEdit_pressed();
|
||||
ui->comboBoxBaseAddress->setEditText(QString("0x%1").arg(readMemBaseAddr,4,16,QLatin1Char('0')));
|
||||
}
|
||||
|
||||
void MemDisplayAndEdit::on_radioButtonWrite_pressed()
|
||||
{
|
||||
writeMemMode = true;
|
||||
ui->pushButtonEdit->setEnabled(true);
|
||||
if(editFlag)
|
||||
on_pushButtonEdit_pressed();
|
||||
ui->comboBoxBaseAddress->setEditText(QString("0x%1").arg(writeMemBaseAddr,4,16,QLatin1Char('0')));
|
||||
}
|
||||
|
||||
void MemDisplayAndEdit::on_pushButtonEdit_pressed()
|
||||
{
|
||||
editFlag = !editFlag;
|
||||
for(int i = 0; i < MEM_GRID_MAX_ROW*MEM_GRID_MAX_COL; i++){
|
||||
memLineEdit[i]->setEnabled(editFlag);
|
||||
}
|
||||
ui->pushButtonEdit->setText(editFlag?tr("完成"):tr("编辑"));
|
||||
}
|
||||
|
||||
void MemDisplayAndEdit::on_pushButtonLastPage_pressed()
|
||||
{
|
||||
if(writeMemMode){
|
||||
writeMemBaseAddr = (writeMemBaseAddr - MEM_GRID_MAX_ROW*MEM_GRID_MAX_COL)&MAX_WR_MEM_SIZE_MASK;
|
||||
}
|
||||
else
|
||||
readMemBaseAddr = (readMemBaseAddr - MEM_GRID_MAX_ROW*MEM_GRID_MAX_COL)&MAX_WR_MEM_SIZE_MASK;
|
||||
}
|
||||
|
||||
void MemDisplayAndEdit::on_pushButtonNextPage_pressed()
|
||||
{
|
||||
if(writeMemMode){
|
||||
writeMemBaseAddr = (writeMemBaseAddr + MEM_GRID_MAX_ROW*MEM_GRID_MAX_COL)&MAX_WR_MEM_SIZE_MASK;
|
||||
}
|
||||
else
|
||||
readMemBaseAddr = (readMemBaseAddr + MEM_GRID_MAX_ROW*MEM_GRID_MAX_COL)&MAX_RD_MEM_SIZE_MASK;
|
||||
}
|
||||
|
||||
unsigned char dataOfTempVal[1];
|
||||
|
||||
void MemDisplayAndEdit::onLineEditEditingFinished(){
|
||||
int val,addr;
|
||||
bool ok;
|
||||
QLineEdit * edit = qobject_cast<QLineEdit *>(sender());
|
||||
QString name ="" ;// edit->accessibleName();
|
||||
val = edit->text().toInt(&ok,16);
|
||||
dataOfTempVal[0]=val;
|
||||
if(sysPara){
|
||||
if(writeMemMode){
|
||||
addr = writeMemBaseAddr + name.toInt(&ok);
|
||||
sysPara->devOp->fpgaWr(addr,dataOfTempVal,1);
|
||||
}
|
||||
else {
|
||||
if(!sysPara->devOp->fpgaDevOpenFlag){
|
||||
addr = readMemBaseAddr + name.toInt(&ok);
|
||||
sysPara->devOp->memRdMap[(addr)&MAX_RD_MEM_SIZE_MASK] = (unsigned char)val;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void MemDisplayAndEdit::on_lineEditDec_editingFinished()
|
||||
{
|
||||
bool ok;
|
||||
QLineEdit * edit = qobject_cast<QLineEdit *>(sender());
|
||||
unsigned int val = edit->text().toUInt(&ok,10);
|
||||
ui->lineEditHex->setText(QString("%1").arg(val,0,16));
|
||||
}
|
||||
|
||||
void MemDisplayAndEdit::on_lineEditHex_editingFinished()
|
||||
{
|
||||
bool ok;
|
||||
QLineEdit * edit = qobject_cast<QLineEdit *>(sender());
|
||||
unsigned int val = edit->text().toUInt(&ok,16);
|
||||
ui->lineEditDec->setText(QString("%1").arg(val,0,10));
|
||||
}
|
||||
Reference in New Issue
Block a user