#include "flashtarget.h" #include #include #include #include // cursor pointer used to ensure a single instance of the class. flashTargetClass* flashTargetClass::s_instance = 0; /* This function is called to create an instance of the class. * Calling the constructor publicly is not allowed. The constructor * is private and is only called by this Instance function. */ flashTargetClass* flashTargetClass::instance() { // Only allow one instance of class to be generated. if (!s_instance) s_instance = new flashTargetClass; return s_instance; } flashTargetClass::flashTargetClass() { target_filedb = QApplication::applicationDirPath()+'/'+fileNameTarget; } flashTargetClass::~flashTargetClass() { } targetItem flashTargetClass::getTarget(unsigned int _idx) { return listTargets[_idx]; } /******************************************************** * Read targets from file ini * Input parameters: * Results: true if ok * false if error */ bool flashTargetClass::readTargets() { listModels.clear(); listTargets.clear(); if(!QFileInfo::exists(target_filedb)) { return false; } QSettings config(target_filedb, QSettings::IniFormat); //DEFAULT SECTION config.beginGroup("default"); def_ip = config.value("ip", QString("192.168.2.100")).toString(); def_port = config.value("port", 69).toUInt(); def_target = config.value("defTarget", QString("TGT-0")).toString(); config.endGroup(); //TARGET GROUP QStringList groups=config.childGroups(); QString idModel = ""; foreach(QString g, groups) { if (g.startsWith("MODEL", Qt::CaseInsensitive)) { modelItem entry_model; config.beginGroup(g); entry_model.idModel = config.value("idModel").toString(); entry_model.byte3_4 = config.value("3_4Byte", 0).toInt(); entry_model.description = config.value("description").toString(); entry_model.g = g; entry_model.model = config.value("model").toString(); entry_model.numSector = config.value("numSector", 128).toInt(); entry_model.type = config.value("type", 0).toInt(); entry_model.goldenAddressStopArea = config.value("goldenAddressStopArea", QString()).toString(); entry_model.golderAddressStartArea = config.value("golderAddressStartArea", QString()).toString(); entry_model.userAddressStartArea = config.value("userAddressStartArea", QString()).toString(); entry_model.userAddresStopArea = config.value("userAddresStopArea", QString()).toString(); config.endGroup(); listModels.append(entry_model); } else if (g.startsWith("TGT", Qt::CaseInsensitive)) { targetItem entry_target; config.beginGroup(g); entry_target.g = g; entry_target.idTgt = config.value("idTgt").toString(); entry_target.description = config.value("description").toString(); entry_target.slotAddress = config.value("slotAddress", QString()).toString(); entry_target.arch = config.value("arch", QString("?")).toString(); entry_target.name = config.value("name", QString("CPU")).toString(); entry_target.filePrefix = config.value("filePrefix").toString(); idModel = config.value("idModel", 0).toString(); copyDataFromModel(&(entry_target.model), idModel); config.endGroup(); listTargets.append(entry_target); } } qDebug()<<"models :"<byte3_4 = modelData->byte3_4; _model->description = modelData->description; _model->g = modelData->g; _model->idModel = modelData->idModel; _model->model = modelData->model; _model->numSector = modelData->numSector; _model->type = modelData->type; _model->goldenAddressStopArea = modelData->goldenAddressStopArea; _model->golderAddressStartArea = modelData->golderAddressStartArea; _model->userAddressStartArea = modelData->userAddressStartArea; _model->userAddresStopArea = modelData->userAddresStopArea; return true; }