Cosmetics

This commit is contained in:
Bertrand Songis
2019-09-04 08:08:10 +02:00
parent 82577ed621
commit e5d5f81787
2 changed files with 95 additions and 147 deletions
+92 -138
View File
@@ -22,23 +22,22 @@
#define _EEPROMIMPORTEXPORT_H_
#include "customdebug.h"
#include <QtCore>
#include <QBitArray>
#include <utility>
class DataField {
Q_DECLARE_TR_FUNCTIONS(DataField)
public:
DataField(DataField * parent, const char * name=""):
explicit DataField(DataField * parent, const char * name=""):
parent(parent),
name(name)
{
}
virtual ~DataField()
{
}
= default;
virtual const QString & getName()
{
@@ -49,7 +48,7 @@ class DataField {
virtual void ExportBits(QBitArray & output) = 0;
virtual void ImportBits(const QBitArray & input) = 0;
QBitArray bytesToBits(QByteArray bytes)
static QBitArray bytesToBits(QByteArray bytes)
{
QBitArray bits(bytes.count()*8);
// Convert from QByteArray to QBitArray
@@ -59,7 +58,7 @@ class DataField {
return bits;
}
QByteArray bitsToBytes(QBitArray bits, int offset=0)
static QByteArray bitsToBytes(QBitArray bits, int offset=0)
{
QByteArray bytes;
bytes.resize((offset+bits.count()+7)/8);
@@ -126,16 +125,16 @@ class DataField {
QString name;
};
class ProxyField: public DataField {
public:
explicit ProxyField(DataField * parent):
DataField(parent, "Proxy")
{
}
virtual DataField * getField() = 0;
};
//class ProxyField: public DataField {
// public:
// explicit ProxyField(DataField * parent):
// DataField(parent, "Proxy")
// {
// }
//
// virtual DataField * getField() = 0;
//
//};
template<class container, int N>
class BaseUnsignedField: public DataField {
@@ -164,7 +163,9 @@ class BaseUnsignedField: public DataField {
{
}
virtual void ExportBits(QBitArray & output)
BaseUnsignedField() = delete;
void ExportBits(QBitArray & output) override
{
container value = field;
if (value > max) value = max;
@@ -178,7 +179,7 @@ class BaseUnsignedField: public DataField {
}
}
virtual void ImportBits(const QBitArray & input)
void ImportBits(const QBitArray & input) override
{
field = 0;
for (int i=0; i<N; i++) {
@@ -188,7 +189,7 @@ class BaseUnsignedField: public DataField {
qCDebug(eepromImport) << QString("\timported %1<%2>: 0x%3(%4)").arg(name).arg(N).arg(field, 0, 16).arg(field);
}
virtual unsigned int size()
unsigned int size() override
{
return N;
}
@@ -197,9 +198,6 @@ class BaseUnsignedField: public DataField {
container & field;
container min;
container max;
private:
BaseUnsignedField();
};
template <int N>
@@ -231,7 +229,9 @@ class BoolField: public DataField {
{
}
virtual void ExportBits(QBitArray & output)
BoolField() = delete;
void ExportBits(QBitArray & output) override
{
output.resize(N);
if (field) {
@@ -239,22 +239,19 @@ class BoolField: public DataField {
}
}
virtual void ImportBits(const QBitArray & input)
void ImportBits(const QBitArray & input) override
{
field = input[0] ? true : false;
field = input[0];
qCDebug(eepromImport) << QString("\timported %1<%2>: 0x%3(%4)").arg(name).arg(N).arg(field, 0, 16).arg(field);
}
virtual unsigned int size()
unsigned int size() override
{
return N;
}
protected:
bool & field;
private:
BoolField();
};
template<int N>
@@ -262,17 +259,13 @@ class SignedField: public DataField {
public:
SignedField(DataField * parent, int & field):
DataField(parent, "Signed"),
field(field),
min(INT_MIN),
max(INT_MAX)
field(field)
{
}
SignedField(DataField * parent, int & field, const char *name):
DataField(parent, name),
field(field),
min(INT_MIN),
max(INT_MAX)
field(field)
{
}
@@ -284,7 +277,7 @@ class SignedField: public DataField {
{
}
virtual void ExportBits(QBitArray & output)
void ExportBits(QBitArray & output) override
{
int value = field;
if (value > max) value = max;
@@ -297,7 +290,7 @@ class SignedField: public DataField {
}
}
virtual void ImportBits(const QBitArray & input)
void ImportBits(const QBitArray & input) override
{
unsigned int value = 0;
for (int i=0; i<N; i++) {
@@ -315,25 +308,26 @@ class SignedField: public DataField {
qCDebug(eepromImport) << QString("\timported %1<%2>: 0x%3(%4)").arg(name).arg(N).arg(field, 0, 16).arg(field);
}
virtual unsigned int size()
unsigned int size() override
{
return N;
}
protected:
int & field;
int min;
int max;
int min = INT_MIN;
int max = INT_MAX;
};
template<int N>
class SpareBitsField: public UnsignedField<N> {
public:
SpareBitsField(DataField * parent):
explicit SpareBitsField(DataField * parent):
UnsignedField<N>(parent, spare, 0, 0, "Spare"),
spare(0)
{
}
protected:
unsigned int spare;
};
@@ -348,7 +342,7 @@ class CharField: public DataField {
{
}
virtual void ExportBits(QBitArray & output)
void ExportBits(QBitArray & output) override
{
output.resize(N*8);
int b = 0;
@@ -362,7 +356,7 @@ class CharField: public DataField {
}
}
virtual void ImportBits(const QBitArray & input)
void ImportBits(const QBitArray & input) override
{
unsigned int b = 0;
for (int i=0; i<N; i++) {
@@ -376,9 +370,9 @@ class CharField: public DataField {
qCDebug(eepromImport) << QString("\timported %1<%2>: '%3'").arg(name).arg(N).arg(field);
}
virtual unsigned int size()
unsigned int size() override
{
return 8*N;
return 8 * N;
}
protected:
@@ -423,7 +417,7 @@ class ZCharField: public DataField {
{
}
virtual void ExportBits(QBitArray & output)
void ExportBits(QBitArray & output) override
{
output.resize(N*8);
int b = 0;
@@ -437,7 +431,7 @@ class ZCharField: public DataField {
}
}
virtual void ImportBits(const QBitArray & input)
void ImportBits(const QBitArray & input) override
{
unsigned int b = 0;
for (int i=0; i<N; i++) {
@@ -459,7 +453,7 @@ class ZCharField: public DataField {
qCDebug(eepromImport) << QString("\timported %1<%2>: '%3'").arg(name).arg(N).arg(field);
}
virtual unsigned int size()
unsigned int size() override
{
return 8*N;
}
@@ -470,12 +464,12 @@ class ZCharField: public DataField {
class StructField: public DataField {
public:
StructField(DataField * parent, const char * name="Struct"):
explicit StructField(DataField * parent, const char * name = "Struct"):
DataField(parent, name)
{
}
~StructField() {
~StructField() override {
foreach(DataField * field, fields) {
delete field;
}
@@ -486,7 +480,7 @@ class StructField: public DataField {
fields.append(field);
}
virtual void ExportBits(QBitArray & output)
void ExportBits(QBitArray & output) override
{
int offset = 0;
output.resize(size());
@@ -498,7 +492,7 @@ class StructField: public DataField {
}
}
virtual void ImportBits(const QBitArray & input)
void ImportBits(const QBitArray & input) override
{
qCDebug(eepromImport) << QString("\timporting %1[%2]:").arg(name).arg(fields.size());
int offset = 0;
@@ -512,7 +506,7 @@ class StructField: public DataField {
}
}
virtual unsigned int size()
unsigned int size() override
{
unsigned int result = 0;
foreach(DataField *field, fields) {
@@ -543,17 +537,16 @@ class TransformedField: public DataField {
{
}
virtual ~TransformedField()
{
}
~TransformedField() override
= default;
virtual void ExportBits(QBitArray & output)
void ExportBits(QBitArray & output) override
{
beforeExport();
field.ExportBits(output);
}
virtual void ImportBits(const QBitArray & input)
void ImportBits(const QBitArray & input) override
{
qCDebug(eepromImport) << QString("\timporting TransformedField %1:").arg(field.getName());
field.ImportBits(input);
@@ -561,12 +554,12 @@ class TransformedField: public DataField {
}
virtual const QString & getName()
const QString & getName() override
{
return field.getName();
}
virtual unsigned int size()
unsigned int size() override
{
return field.size();
}
@@ -575,7 +568,7 @@ class TransformedField: public DataField {
virtual void afterImport() = 0;
virtual int dump(int level=0, int offset=0)
int dump(int level, int offset) override
{
beforeExport();
return field.dump(level, offset);
@@ -591,7 +584,7 @@ class UnionField: public DataField {
class UnionMember {
public:
virtual ~UnionMember() {}
virtual ~UnionMember() = default;
virtual bool select(const selectorT& attr) const = 0;
virtual DataField* getField() = 0;
};
@@ -602,6 +595,7 @@ class UnionField: public DataField {
TransformedField(parent, field)
{
}
virtual DataField* getField()
{
return this;
@@ -613,7 +607,7 @@ class UnionField: public DataField {
{
}
~UnionField() {
~UnionField() override {
foreach(UnionMember *member, members) {
delete member;
}
@@ -625,7 +619,7 @@ class UnionField: public DataField {
maxSize = member->getField()->size();
}
virtual void ExportBits(QBitArray & output)
void ExportBits(QBitArray & output) override
{
foreach(UnionMember *member, members) {
if (member->select(selectField)) {
@@ -636,7 +630,7 @@ class UnionField: public DataField {
output.resize(maxSize);
}
virtual void ImportBits(const QBitArray & input)
void ImportBits(const QBitArray & input) override
{
foreach(UnionMember *member, members) {
if (member->select(selectField)) {
@@ -646,7 +640,7 @@ class UnionField: public DataField {
}
}
virtual unsigned int size()
unsigned int size() override
{
return maxSize;
}
@@ -664,8 +658,7 @@ class ConversionTable {
{
after = 0;
for (std::list<ConversionTuple>::iterator it=exportTable.begin(); it!=exportTable.end(); it++) {
ConversionTuple & tuple = *it;
for (auto & tuple : exportTable) {
if (before == tuple.a) {
after = tuple.b;
return true;
@@ -679,8 +672,7 @@ class ConversionTable {
{
after = 0;
for (std::list<ConversionTuple>::iterator it=importTable.begin(); it!=importTable.end(); it++) {
ConversionTuple & tuple = *it;
for (auto & tuple : importTable) {
if (before == tuple.b) {
after = tuple.a;
return true;
@@ -711,15 +703,15 @@ class ConversionTable {
exportTable.push_back(conversion);
}
void addImportConversion(const int a, const int b)
{
importTable.push_back(ConversionTuple(a, b));
}
void addExportConversion(const int a, const int b)
{
exportTable.push_back(ConversionTuple(a, b));
}
// void addImportConversion(const int a, const int b)
// {
// importTable.push_back(ConversionTuple(a, b));
// }
//
// void addExportConversion(const int a, const int b)
// {
// exportTable.push_back(ConversionTuple(a, b));
// }
std::list<ConversionTuple> importTable;
std::list<ConversionTuple> exportTable;
@@ -728,35 +720,21 @@ class ConversionTable {
template<class T>
class ConversionField: public TransformedField {
public:
ConversionField(DataField * parent, int & field, ConversionTable *table, const char *name, const QString & error = ""):
ConversionField(DataField * parent, int & field, ConversionTable *table, const char *name, QString error = ""):
TransformedField(parent, internalField),
internalField(this, _field, name),
field(field),
_field(0),
table(table),
shift(0),
scale(1),
min(INT_MIN),
max(INT_MAX),
exportFunc(NULL),
importFunc(NULL),
error(error)
error(std::move(error))
{
}
ConversionField(DataField * parent, unsigned int & field, ConversionTable *table, const char *name, const QString & error = ""):
ConversionField(DataField * parent, unsigned int & field, ConversionTable *table, const char *name, QString error = ""):
TransformedField(parent, internalField),
internalField(this, (unsigned int &)_field, name),
field((int &)field),
_field(0),
table(table),
shift(0),
scale(0),
min(INT_MIN),
max(INT_MAX),
exportFunc(NULL),
importFunc(NULL),
error(error)
error(std::move(error))
{
}
@@ -764,15 +742,8 @@ class ConversionField: public TransformedField {
TransformedField(parent, internalField),
internalField(this, _field),
field(field),
_field(0),
table(NULL),
shift(0),
scale(0),
min(INT_MIN),
max(INT_MAX),
exportFunc(exportFunc),
importFunc(importFunc),
error("")
importFunc(importFunc)
{
}
@@ -780,15 +751,10 @@ class ConversionField: public TransformedField {
TransformedField(parent, internalField),
internalField(this, _field, name),
field(field),
_field(0),
table(NULL),
shift(shift),
scale(scale),
min(min),
max(max),
exportFunc(NULL),
importFunc(NULL),
error("")
max(max)
{
}
@@ -796,25 +762,14 @@ class ConversionField: public TransformedField {
TransformedField(parent, internalField),
internalField(this, (unsigned int &)_field),
field((int &)field),
_field(0),
table(NULL),
shift(shift),
scale(scale),
min(INT_MIN),
max(INT_MAX),
exportFunc(NULL),
importFunc(NULL),
error("")
scale(scale)
{
}
virtual void beforeExport()
void beforeExport() override
{
_field = field;
if (scale) {
_field /= scale;
}
_field = field / scale;
if (table) {
if (!table->exportValue(_field, _field)) {
@@ -837,7 +792,7 @@ class ConversionField: public TransformedField {
}
}
virtual void afterImport()
void afterImport() override
{
field = _field;
@@ -854,24 +809,23 @@ class ConversionField: public TransformedField {
field = importFunc(field);
}
if (scale) {
field *= scale;
}
field *= scale;
qCDebug(eepromImport) << QString("\timported ConversionField<%1>:").arg(internalField.getName()) << QString(" before: %1, after: %2").arg(_field).arg(field);
}
protected:
T internalField;
int & field;
int _field;
ConversionTable * table;
int shift;
int scale;
int min;
int max;
int (*exportFunc)(int);
int (*importFunc)(int);
const QString error;
int _field = 0;
ConversionTable * table = nullptr;
int shift = 0;
int scale = 1;
int min = INT_MIN;
int max = INT_MAX;
int (*exportFunc)(int) = nullptr;
int (*importFunc)(int) = nullptr;
const QString error = "";
};
#endif // _EEPROMIMPORTEXPORT_H_
@@ -2120,16 +2120,13 @@ class ModuleUnionField: public UnionField<unsigned int> {
void beforeExport() override
{
if (module.protocol == PULSES_ACCST_ISRM_D16 ||
module.protocol == PULSES_ACCESS_ISRM) {
if (module.protocol == PULSES_ACCST_ISRM_D16 || module.protocol == PULSES_ACCESS_ISRM) {
module.subType = module.protocol - PULSES_ACCESS_ISRM;
}
for (int i=0; i<PXX2_MAX_RECEIVERS_PER_MODULE; i++) {
for (int pos=0; pos<PXX2_LEN_RX_NAME+1; pos++) {
if (pos == PXX2_LEN_RX_NAME
|| module.access.receiverName[i][pos] == '\0') {
if (pos == PXX2_LEN_RX_NAME || module.access.receiverName[i][pos] == '\0') {
memset(module.access.receiverName[i]+pos,'\0',PXX2_LEN_RX_NAME-pos);
break;
}
@@ -2145,10 +2142,7 @@ class ModuleUnionField: public UnionField<unsigned int> {
}
for (int i=0; i<PXX2_MAX_RECEIVERS_PER_MODULE; i++) {
for (int pos=0; pos<PXX2_LEN_RX_NAME+1; pos++) {
if (pos == PXX2_LEN_RX_NAME || receiverName[i][pos] == ' '
|| receiverName[i][pos] == '\0') {
if (pos == PXX2_LEN_RX_NAME || receiverName[i][pos] == ' ' || receiverName[i][pos] == '\0') {
module.access.receiverName[i][pos] = '\0';
break;
}