//int reParsing(int argc, char* argv[]) { //QCoreApplication a(argc, argv); #include int jsonConfiguration::reParsing() //jsonConfiguration::jsonConfiguration(QObject* parent) { clear(); QFile jsonFile(".//config//setting.json"); if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Failed to open JSON file."; return 1; } QByteArray jsonData = jsonFile.readAll(); jsonFile.close(); QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData); if (!jsonDoc.isObject()) { qDebug() << "Invalid JSON format."; return 1; } QJsonObject jsonObj = jsonDoc.object(); imgSavePath = jsonObj.value("imgSavePath").toString(); ////////////////////TABLE//LIST///////////////////// QJsonArray tableListArray = jsonObj["tablelist"].toArray(); for (const QJsonValue& tableListValue : tableListArray) { QJsonObject tableObj = tableListValue.toObject(); tableListCls::dataStruct data; data.key = tableObj.value("key").toString(); data.cName = tableObj.value("cName").toString(); data.eName = tableObj.value("eName").toString(); data.value = tableObj.value("value").toString(); tableList.datas.append(data); } /////////////////////TCP//////////////////////////// QJsonObject tcpObj = jsonObj.value("Tcp").toObject(); tcp.key = tcpObj.value("key").toString(); tcp.writetype = tcpObj.value("writetype").toString(); tcp.finstcp_sleeptime = tcpObj.value("finstcp_sleeptime").toString(); tcp.finstcp_init = tcpObj.value("finstcp_init").toString(); tcp.heartCmd = tcpObj.value("heartCmd").toString(); tcp.finstcp_readAllCmd = tcpObj.value("finstcp_readAllCmd").toString(); tcp.moduleName = tcpObj.value("moduleName").toString(); tcp.startPos = tcp.finstcp_readAllCmd.split("_")[1].split("DM")[1].toInt(); //////////////PIXEL//ACC////////////////////////// QJsonObject pixelAccuracyObj = jsonObj.value("PixelAccuracy").toObject(); QJsonObject::iterator itPixelAcc; for (itPixelAcc = pixelAccuracyObj.begin(); itPixelAcc != pixelAccuracyObj.end(); ++itPixelAcc) { PixelAccuracyCls::dataStruct data; data.key = itPixelAcc.key(); data.value = itPixelAcc.value().toDouble(); PixelAccuracy.datas.push_back(data); } /////////////////SHOW//////WIDGETS//////////// QJsonObject showWidgetsObj = jsonObj.value("ShowWidgets").toObject(); QJsonObject::iterator itShowWidget; for (itShowWidget = showWidgetsObj.begin(); itShowWidget != showWidgetsObj.end(); ++itShowWidget) { QString key = itShowWidget.key(); if (key == "basicView") { showWidgets.basicView = itShowWidget.value().toString(); } else { QJsonValue Array = itShowWidget.value(); QJsonArray cameraViewObj = Array.toArray(); QList list; for (const QJsonValue& widgetValue : cameraViewObj) { QJsonObject widgetObj = widgetValue.toObject(); ShowWidgetsCls::widgets widget; widget.Key = widgetObj.value("key").toString(); widget.cName = widgetObj.value("cName").toString(); widget.eName = widgetObj.value("eName").toString(); list.append(widget); } showWidgets.viewList.insert({ key, list }); } } ///////////////CAMERA//LIST///////////////////// QJsonArray cameraSettingArray = jsonObj["CameraSetting"].toArray(); int cameraIndex = 0; for (const QJsonValue& cameraValue : cameraSettingArray) { QJsonObject cameraObject = cameraValue.toObject(); CameraListCls::datastruct data; data.cameraKeyName = cameraObject.value("keyName").toString(); data.connectionName = cameraObject.value("connectionName").toString(); data.serialNum = cameraObject.value("serialNum").toString(); data.triggermode = cameraObject.value("triggermodel").toString(); data.moduleName = cameraObject.value("moduleName").toString(); data.showIndex = cameraObject.value("showIndex").toInt(); data.cameraIndex = cameraIndex; camera.cameraList.push_back(data); camera.cameraMap.insert({ data.cameraKeyName ,data}); cameraIndex++; } ///////////////LIGHT//SOURCE///////////////////// QJsonArray lightSourceArray = jsonObj["LightSource"].toArray(); for (const QJsonValue& lightSourceValue : lightSourceArray) { QJsonObject lightSourceObj = lightSourceValue.toObject(); LightSourceCls::LightSource data; data.name = lightSourceObj.value("name").toString(); data.comPort = lightSourceObj.value("com").toString(); data.baudRate = lightSourceObj.value("baudRate").toString().toInt(); data.initStr = lightSourceObj.value("initial").toString(); LightSources.LightSourceList.push_back(data); } ///////////////ALGOTHREAD//LIST///////////////////// QJsonArray algoThreadArray = jsonObj["algoThread"].toArray(); int threadIndex = 0; for (const QJsonValue& algoThreadValue : algoThreadArray) { QJsonObject algoThreadObject = algoThreadValue.toObject(); algoThreadCls::datastruct data; data.threadKeyName = algoThreadObject.value("KeyName").toString(); data.showIndex = algoThreadObject.value("showIndex").toInt(); data.cameraKey = algoThreadObject.value("cameraKey").toString(); data.imgAmountMin= algoThreadObject.value("imgAmountMin").toInt(); data.threadIndex = threadIndex; //algoThreads.algoThreadList.push_back(data); algoThreads.algoDataMap.insert({ data.threadKeyName ,data }); threadIndex++; } ///////////////SUMMARY//DATA//////////////////////// QJsonObject summaryDataObj = jsonObj.value("summaryData").toObject(); QJsonObject::iterator itSummary; for (itSummary = summaryDataObj.begin(); itSummary != summaryDataObj.end(); ++itSummary) { summaryData.datas.insert({ itSummary.key() ,itSummary.value().toString() }); } return 0; } void jsonConfiguration::clear() { camera.cameraList.clear(); camera.cameraMap.clear(); PixelAccuracy.datas.clear(); showWidgets.basicView.clear(); showWidgets.viewList.clear(); LightSources.LightSourceList.clear(); algoThreads.algoDataMap.clear(); tableList.datas.clear(); summaryData.datas.clear(); }