Skip to content

Commit 5be4f45

Browse files
committed
Show sizes and commands as hex in chip DB
1 parent 4e6abbd commit 5be4f45

File tree

3 files changed

+55
-4
lines changed

3 files changed

+55
-4
lines changed

qt/chip_db.cpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,31 @@ int ChipDb::getParamFromString(const QString &value, uint32_t &param)
4444
return 0;
4545
}
4646

47+
int ChipDb::getParamFromHexString(const QString &value, uint32_t &param)
48+
{
49+
bool ok;
50+
51+
param = value.toUInt(&ok, 16);
52+
if (!ok)
53+
return -1;
54+
55+
return 0;
56+
}
57+
4758
int ChipDb::getStringFromParam(const uint32_t &param, QString &value)
4859
{
4960
value = QString("%1").arg(param);
5061

5162
return 0;
5263
}
5364

65+
int ChipDb::getHexStringFromParam(const uint32_t &param, QString &value)
66+
{
67+
value = QString("0x%1").arg(param, 0, 16, QLatin1Char('0'));
68+
69+
return 0;
70+
}
71+
5472
int ChipDb::getOptParamFromString(const QString &value, uint32_t &param)
5573
{
5674
if (value.trimmed() == CHIP_PARAM_NOT_DEFINED_SYMBOL)
@@ -62,6 +80,17 @@ int ChipDb::getOptParamFromString(const QString &value, uint32_t &param)
6280
return getParamFromString(value, param);
6381
}
6482

83+
int ChipDb::getOptParamFromHexString(const QString &value, uint32_t &param)
84+
{
85+
if (value.trimmed() == CHIP_PARAM_NOT_DEFINED_SYMBOL)
86+
{
87+
param = CHIP_PARAM_NOT_DEFINED_VALUE;
88+
return 0;
89+
}
90+
91+
return getParamFromHexString(value, param);
92+
}
93+
6594
int ChipDb::getStringFromOptParam(const uint32_t &param, QString &value)
6695
{
6796
if (param == CHIP_PARAM_NOT_DEFINED_VALUE)
@@ -73,6 +102,17 @@ int ChipDb::getStringFromOptParam(const uint32_t &param, QString &value)
73102
return getStringFromParam(param, value);
74103
}
75104

105+
int ChipDb::getHexStringFromOptParam(const uint32_t &param, QString &value)
106+
{
107+
if (param == CHIP_PARAM_NOT_DEFINED_VALUE)
108+
{
109+
value = CHIP_PARAM_NOT_DEFINED_SYMBOL;
110+
return 0;
111+
}
112+
113+
return getHexStringFromParam(param, value);
114+
}
115+
76116
bool ChipDb::isParamValid(uint32_t param, uint32_t min, uint32_t max)
77117
{
78118
return param >= min && param <= max;

qt/chip_db.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,13 @@ class ChipDb : public QObject
8989
void commit();
9090
void reset();
9191
int getParamFromString(const QString &value, uint32_t &param);
92+
int getParamFromHexString(const QString &value, uint32_t &param);
9293
int getStringFromParam(const uint32_t &param, QString &value);
94+
int getHexStringFromParam(const uint32_t &param, QString &value);
9395
int getOptParamFromString(const QString &value, uint32_t &param);
96+
int getOptParamFromHexString(const QString &value, uint32_t &param);
9497
int getStringFromOptParam(const uint32_t &param, QString &value);
98+
int getHexStringFromOptParam(const uint32_t &param, QString &value);
9599
bool isParamValid(uint32_t param, uint32_t min, uint32_t max);
96100
bool isOptParamValid(uint32_t param, uint32_t min, uint32_t max);
97101
ChipInfo *operator[](int index) { return &chipInfoVector[index]; }

qt/chip_db_table_model.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ QVariant ChipDbTableModel::data(const QModelIndex &index, int role) const
3737
case CHIP_PARAM_BLOCK_SIZE:
3838
case CHIP_PARAM_TOTAL_SIZE:
3939
case CHIP_PARAM_SPARE_SIZE:
40+
chipDb->getHexStringFromParam((*chipDb)[index.row()]->params[column],
41+
paramStr);
42+
return paramStr;
4043
case CHIP_PARAM_T_CS:
4144
case CHIP_PARAM_T_CLS:
4245
case CHIP_PARAM_T_ALS:
@@ -61,13 +64,13 @@ QVariant ChipDbTableModel::data(const QModelIndex &index, int role) const
6164
case CHIP_PARAM_WRITE1_CMD:
6265
case CHIP_PARAM_ERASE1_CMD:
6366
case CHIP_PARAM_STATUS_CMD:
64-
chipDb->getStringFromParam((*chipDb)[index.row()]->params[column],
67+
chipDb->getHexStringFromParam((*chipDb)[index.row()]->params[column],
6568
paramStr);
6669
return paramStr;
6770
case CHIP_PARAM_READ2_CMD:
6871
case CHIP_PARAM_WRITE2_CMD:
6972
case CHIP_PARAM_ERASE2_CMD:
70-
chipDb->getStringFromOptParam((*chipDb)[index.row()]->params[column],
73+
chipDb->getHexStringFromOptParam((*chipDb)[index.row()]->params[column],
7174
paramStr);
7275
return paramStr;
7376
}
@@ -212,6 +215,10 @@ bool ChipDbTableModel::setData(const QModelIndex &index, const QVariant &value,
212215
case CHIP_PARAM_BLOCK_SIZE:
213216
case CHIP_PARAM_TOTAL_SIZE:
214217
case CHIP_PARAM_SPARE_SIZE:
218+
if (chipDb->getParamFromHexString(value.toString(), paramVal))
219+
return false;
220+
(*chipDb)[index.row()]->params[index.column()] = paramVal;
221+
return true;
215222
case CHIP_PARAM_T_CS:
216223
case CHIP_PARAM_T_CLS:
217224
case CHIP_PARAM_T_ALS:
@@ -248,7 +255,7 @@ bool ChipDbTableModel::setData(const QModelIndex &index, const QVariant &value,
248255
case CHIP_PARAM_WRITE1_CMD:
249256
case CHIP_PARAM_ERASE1_CMD:
250257
case CHIP_PARAM_STATUS_CMD:
251-
if (chipDb->getParamFromString(value.toString(), paramVal))
258+
if (chipDb->getParamFromHexString(value.toString(), paramVal))
252259
return false;
253260
if (!chipDb->isParamValid(paramVal, 0x00, 0xFF))
254261
return false;
@@ -257,7 +264,7 @@ bool ChipDbTableModel::setData(const QModelIndex &index, const QVariant &value,
257264
case CHIP_PARAM_READ2_CMD:
258265
case CHIP_PARAM_WRITE2_CMD:
259266
case CHIP_PARAM_ERASE2_CMD:
260-
if (chipDb->getOptParamFromString(value.toString(), paramVal))
267+
if (chipDb->getOptParamFromHexString(value.toString(), paramVal))
261268
return false;
262269
if (!chipDb->isOptParamValid(paramVal, 0x00, 0xFF))
263270
return false;

0 commit comments

Comments
 (0)