11#include " chip_db_table_model.h"
22#include < limits>
33
4+ #define CHIP_DB_TABLE_MODEL_MIN_CYCLES 1
45#define CHIP_DB_TABLE_MODEL_MAX_CYCLES 4
56
67ChipDbTableModel::ChipDbTableModel (ChipDb *chipDb, QObject *parent) :
@@ -22,6 +23,7 @@ int ChipDbTableModel::columnCount(const QModelIndex & /*parent*/) const
2223QVariant ChipDbTableModel::data (const QModelIndex &index, int role) const
2324{
2425 int column;
26+ QString paramStr;
2527
2628 if (role != Qt::DisplayRole && role != Qt::EditRole)
2729 return QVariant ();
@@ -51,17 +53,23 @@ QVariant ChipDbTableModel::data(const QModelIndex &index, int role) const
5153 case CHIP_PARAM_T_REA:
5254 case CHIP_PARAM_ROW_CYCLES:
5355 case CHIP_PARAM_COL_CYCLES:
56+ case CHIP_PARAM_BB_MARK_OFF:
57+ return (*chipDb)[index.row ()]->params [column];
5458 case CHIP_PARAM_READ1_CMD:
55- case CHIP_PARAM_READ2_CMD:
5659 case CHIP_PARAM_READ_ID_CMD:
5760 case CHIP_PARAM_RESET_CMD:
5861 case CHIP_PARAM_WRITE1_CMD:
59- case CHIP_PARAM_WRITE2_CMD:
6062 case CHIP_PARAM_ERASE1_CMD:
61- case CHIP_PARAM_ERASE2_CMD:
6263 case CHIP_PARAM_STATUS_CMD:
63- case CHIP_PARAM_BB_MARK_OFF:
64- return (*chipDb)[index.row ()]->params [column];
64+ chipDb->getStringFromParam ((*chipDb)[index.row ()]->params [column],
65+ paramStr);
66+ return paramStr;
67+ case CHIP_PARAM_READ2_CMD:
68+ case CHIP_PARAM_WRITE2_CMD:
69+ case CHIP_PARAM_ERASE2_CMD:
70+ chipDb->getStringFromOptParam ((*chipDb)[index.row ()]->params [column],
71+ paramStr);
72+ return paramStr;
6573 }
6674
6775 return QVariant ();
@@ -190,7 +198,6 @@ Qt::ItemFlags ChipDbTableModel::flags (const QModelIndex &index) const
190198bool ChipDbTableModel::setData (const QModelIndex &index, const QVariant &value,
191199 int role)
192200{
193- bool convOk;
194201 uint32_t paramVal;
195202
196203 if (role != Qt::EditRole)
@@ -219,34 +226,40 @@ bool ChipDbTableModel::setData(const QModelIndex &index, const QVariant &value,
219226 case CHIP_PARAM_T_WC:
220227 case CHIP_PARAM_T_RC:
221228 case CHIP_PARAM_T_REA:
222- paramVal = value. toUInt (&convOk);
223- if (!convOk )
229+ case CHIP_PARAM_BB_MARK_OFF:
230+ if (chipDb-> getParamFromString (value. toString (), paramVal) )
224231 return false ;
225232 (*chipDb)[index.row ()]->params [index.column ()] = paramVal;
226233 return true ;
227234 case CHIP_PARAM_ROW_CYCLES:
228235 case CHIP_PARAM_COL_CYCLES:
229- paramVal = value.toUInt (&convOk);
230- if (!convOk)
236+ if (chipDb->getParamFromString (value.toString (), paramVal))
231237 return false ;
232- if (paramVal > CHIP_DB_TABLE_MODEL_MAX_CYCLES)
238+ if (!chipDb->isParamValid (paramVal, CHIP_DB_TABLE_MODEL_MIN_CYCLES,
239+ CHIP_DB_TABLE_MODEL_MAX_CYCLES))
240+ {
233241 return false ;
242+ }
234243 (*chipDb)[index.row ()]->params [index.column ()] = paramVal;
235244 return true ;
236245 case CHIP_PARAM_READ1_CMD:
237- case CHIP_PARAM_READ2_CMD:
238246 case CHIP_PARAM_READ_ID_CMD:
239247 case CHIP_PARAM_RESET_CMD:
240248 case CHIP_PARAM_WRITE1_CMD:
241- case CHIP_PARAM_WRITE2_CMD:
242249 case CHIP_PARAM_ERASE1_CMD:
243- case CHIP_PARAM_ERASE2_CMD:
244250 case CHIP_PARAM_STATUS_CMD:
245- case CHIP_PARAM_BB_MARK_OFF:
246- paramVal = value.toUInt (&convOk);
247- if (!convOk)
251+ if (chipDb->getParamFromString (value.toString (), paramVal))
252+ return false ;
253+ if (!chipDb->isParamValid (paramVal, 0x00 , 0xFF ))
254+ return false ;
255+ (*chipDb)[index.row ()]->params [index.column ()] = paramVal;
256+ return true ;
257+ case CHIP_PARAM_READ2_CMD:
258+ case CHIP_PARAM_WRITE2_CMD:
259+ case CHIP_PARAM_ERASE2_CMD:
260+ if (chipDb->getOptParamFromString (value.toString (), paramVal))
248261 return false ;
249- if (paramVal > std::numeric_limits< uint8_t >:: max ( ))
262+ if (!chipDb-> isOptParamValid ( paramVal, 0x00 , 0xFF ))
250263 return false ;
251264 (*chipDb)[index.row ()]->params [index.column ()] = paramVal;
252265 return true ;
0 commit comments