Files
CuboBmsTool/configparamsgetter.cpp
2022-08-01 21:53:36 +03:00

190 lines
5.7 KiB
C++

#include "configparamsgetter.h"
//bool BmsSettingsWidget::addParamRow(QLineEdit* edit, ConfigParams *params, QString paramName)
bool getSerialNumber(QLabel* lab, ConfigParams *params, QString paramName)
{
// (*) serial number is inside a DOUBLE value inside the BMS
// (**) But we need only the INT part of that double value
bool res = false;
QWidget *editor = params->getEditor(paramName);
QString name = params->getLongName(paramName);
if (editor && !name.isEmpty())
{
if(editor->property("type").toInt() == CFG_T_DOUBLE) // (*)
{
auto val = params->getParamDouble(paramName);
quint64 valUint64 = quint64(val); // (**)
lab->setText( QString::number(valUint64) );
res = true;
}
}
return res;
}
bool getSerialNumber(QLineEdit* edit, ConfigParams *params, QString paramName)
{
// (*) serial number is inside a DOUBLE value inside the BMS
// (**) But we need only the INT part of that double value
bool res = false;
QWidget *editor = params->getEditor(paramName);
QString name = params->getLongName(paramName);
if (editor && !name.isEmpty())
{
if(editor->property("type").toInt() == CFG_T_DOUBLE) // (*)
{
auto val = params->getParamDouble(paramName);
quint64 valUint64 = quint64(val); // (**)
edit->setText( QString::number(valUint64) );
res = true;
}
}
return res;
}
bool addParamRow(QLineEdit* edit, ConfigParams *params, QString paramName)
{
bool res = false;
QWidget *editor = params->getEditor(paramName);
//ConfigParam &p = params[paramName];
//ConfigParam &p = mParams[name];
QString name = params->getLongName(paramName);
if (editor && !name.isEmpty())
{
//int row = rowCount();
//setRowCount(row + 1);
//QTableWidgetItem *item = new QTableWidgetItem(name);
//item->setFlags(item->flags() & ~Qt::ItemIsEditable);
//setItem(row, 0, item);
//setCellWidget(row, 1, editor);
//edit->setText(editor->);
auto vtype = editor->property("type");
auto type = vtype.toInt();
//CFG_T_UNDEFINED = 0,
switch (type)
{
case CFG_T_INT:
case CFG_T_ENUM:
{
auto val = params->getParamInt(paramName);
edit->setText(QString::number(val));
break;
}
case CFG_T_DOUBLE:
{
auto val = params->getParamDouble(paramName);
edit->setText(QString::number(val));
break;
}
case CFG_T_QSTRING:
{
auto val = params->getParamQString(paramName);
edit->setText(val);
break;
}
case CFG_T_BOOL:
{
auto val = params->getParamBool(paramName);
edit->setText(val ? "true" : "false");
break;
}
default:
{
auto val = editor->property("value");
auto valString = val.toString();
edit->setText(valString.isEmpty() ? "Erro Read Value" : valString);
break;
}
}
auto vsuffix = editor->property("suffix");
auto suffix = vsuffix.toString();
auto veditorDecimalsDouble = editor->property("editorDecimalsDouble");
auto editorDecimalsDouble = veditorDecimalsDouble.toDouble();
auto veditAsPercentage = editor->property("editAsPercentage");
auto editAsPercentage = veditAsPercentage.toBool();
res = true;
//resizeColumnToContents(0);
//resizeRowsToContents();
}
return res;
}
bool addParamRowEx(QLineEdit* edit, ConfigParams *params, QString paramName)
{
bool res = false;
QWidget *editor = params->getEditor(paramName);
QString name = params->getLongName(paramName);
if (editor && !name.isEmpty()) {
//int row = rowCount();
//setRowCount(row + 1);
//QTableWidgetItem *item = new QTableWidgetItem(name);
//item->setFlags(item->flags() & ~Qt::ItemIsEditable);
//setItem(row, 0, item);
//setCellWidget(row, 1, editor);
//edit->setText(editor->);
auto vtype = editor->property("type");
auto type = vtype.toInt();
auto vval = editor->property("value");
//CFG_T_UNDEFINED = 0,
switch(type)
{
case(CFG_T_INT):
case(CFG_T_ENUM):
{
auto val = vval.toInt();
edit->setText(QString::number(val));
break;
}
case(CFG_T_DOUBLE):
{
auto val = vval.toDouble();
edit->setText(QString::number(val));
break;
}
case(CFG_T_QSTRING):
{
auto val = vval.toString();
edit->setText(val);
break;
}
case(CFG_T_BOOL):
{
auto val = vval.toBool();
edit->setText(val ? "true" : "false");
break;
}
default:
auto valString = vval.toString();
edit->setText(valString.isEmpty() ? "Erro Read Value" : valString);
break;
}
auto vsuffix = editor->property("suffix");
auto suffix = vsuffix.toString();
auto veditorDecimalsDouble = editor->property("editorDecimalsDouble");
auto editorDecimalsDouble = veditorDecimalsDouble.toDouble();
auto veditAsPercentage = editor->property("editAsPercentage");
auto editAsPercentage = veditAsPercentage.toBool();
res = true;
//resizeColumnToContents(0);
//resizeRowsToContents();
}
return res;
}