/*! * \brief AbstractAnimationWindow::loadVisualization * loads the data and the xml scene description * \return */ bool AbstractAnimationWindow::loadVisualization() { VisType visType = VisType::NONE; // Get visualization type. if (isFMU(mFileName)) { visType = VisType::FMU; } else if (isMAT(mFileName)) { visType = VisType::MAT; } else if (isCSV(mFileName)) { visType = VisType::CSV; } else { MessagesWidget::instance()->addGUIMessage(MessageItem(MessageItem::Modelica, "", false, 0, 0, 0, 0, tr("Unknown visualization type."), Helper::scriptingKind, Helper::errorLevel)); return false; } //load the XML File, build osgTree, get initial values for the shapes bool xmlExists = checkForXMLFile(mFileName, mPathName); if (!xmlExists) { QString msg = tr("Could not find the visual XML file %1.").arg(QString(assembleXMLFileName(mFileName, mPathName).c_str())); MessagesWidget::instance()->addGUIMessage(MessageItem(MessageItem::Modelica, "", false, 0, 0, 0, 0, msg, Helper::scriptingKind, Helper::errorLevel)); return false; } else { //init visualizer if (visType == VisType::MAT) { mpVisualizer = new VisualizerMAT(mFileName, mPathName); } else if (visType == VisType::CSV) { mpVisualizer = new VisualizerCSV(mFileName, mPathName); } else if (visType == VisType::FMU) { mpVisualizer = new VisualizerFMU(mFileName, mPathName); } else { QString msg = tr("Could not init %1 %2.").arg(QString(mPathName.c_str())).arg(QString(mFileName.c_str())); MessagesWidget::instance()->addGUIMessage(MessageItem(MessageItem::Modelica, "", false, 0, 0, 0, 0, msg, Helper::scriptingKind, Helper::errorLevel)); return false; } connect(mpVisualizer->getTimeManager()->getUpdateSceneTimer(), SIGNAL(timeout()), SLOT(updateScene())); mpVisualizer->initData(); mpVisualizer->setUpScene(); mpVisualizer->initVisualization(); //add scene for the chosen visualization mpViewerWidget->getSceneView()->setSceneData(mpVisualizer->getOMVisScene()->getScene().getRootNode()); } //add window title setWindowTitle(QString::fromStdString(mFileName)); //open settings dialog for FMU simulation if (visType == VisType::FMU) { openFMUSettingsDialog(dynamic_cast<VisualizerFMU*>(mpVisualizer)); } return true; }
void CommitChangesDialog::generateFMUTraceabilityURI(QString activity, QString modelFileName, QString nameStructure, QString fmuFileName) { QString toolURI, activityURI, agentURI, sourceModelFileNameURI, fmuFileNameURI; QDir dir(OptionsDialog::instance()->getTraceabilityPage()->getGitRepository()->text()); //fmuURI; QFileInfo info(modelFileName); QFile uriFile(info.absolutePath() + "/" + nameStructure +".md"); // open the file for writing if (uriFile.open(QIODevice::WriteOnly | QIODevice::Text)) { QDateTime time = QDateTime::currentDateTime(); if(activity.compare("ModelDescription Import")== 0) { qDebug("something here"); fmuFileNameURI = "Entity.model: " + dir.relativeFilePath(modelFileName) + "#" + MainWindow::instance()->getGitCommands()->commitAndGetFileHash(modelFileName, activity); sourceModelFileNameURI = "Entity.modelDescription xml:" + dir.relativeFilePath(fmuFileName) + "#" + MainWindow::instance()->getGitCommands()->getGitHash(fmuFileName); }else { fmuFileNameURI = "Entity.fmu: " + dir.relativeFilePath(fmuFileName) + "#" + MainWindow::instance()->getGitCommands()->commitAndGetFileHash(fmuFileName, activity); sourceModelFileNameURI = "Entity.model:" + dir.relativeFilePath(modelFileName) + "#" + MainWindow::instance()->getGitCommands()->getGitHash(modelFileName); } toolURI = "Entity.softwareTool: " + MainWindow::instance()->getOMCProxy()->getVersion(); agentURI = "Agent:" + OptionsDialog::instance()->getTraceabilityPage()->getUserName()->text(); activityURI = "Activity."+ activity +":" + time.toString("yyyy-MM-dd-hh-mm-ss"); QTextStream textSstream(&uriFile); textSstream << activity << "," << toolURI << "," << fmuFileNameURI << "," << agentURI << "," << activityURI <<"," << sourceModelFileNameURI; uriFile.flush(); uriFile.close(); } else { MessagesWidget::instance()->addGUIMessage(MessageItem(MessageItem::CompositeModel, "", false, 0, 0, 0, 0, tr("The traceability information is not stored. One possible reason could be the model is not Modelica model"), Helper::scriptingKind, Helper::notificationLevel)); } }
void CommitChangesDialog::generateTraceabilityURI(QString nameStructure, QString absloutePath, QString fileName, QString activity, QString fileURI) { QString toolURI, fileNameURI, activityURI, agentURI, sourceFileNameURI; QFile file(absloutePath + "/" + nameStructure +".md"); // open the file for writing if (file.open(QIODevice::WriteOnly | QIODevice::Text)) { QDateTime time = QDateTime::currentDateTime(); /*for writing line by line to text file */ fileNameURI = "Entity.model:" + fileURI + "#"+ MainWindow::instance()->getGitCommands()->getGitHash(fileName); toolURI = "Entity.softwareTool:" + MainWindow::instance()->getOMCProxy()->getVersion(); agentURI = "Agent:" + OptionsDialog::instance()->getTraceabilityPage()->getUserName()->text(); activityURI = "Activity." + activity +":" + time.toString("yyyy-MM-dd-hh-mm-ss"); QTextStream textSstream(&file); if(activity.compare("Model Modification")== 0){ sourceFileNameURI = "Entity.model:" + fileURI + "#"+ MainWindow::instance()->getGitCommands()->getGitHash(fileName); textSstream << activity << "," << toolURI << "," << fileNameURI << "," << agentURI << "," << activityURI <<"," << sourceFileNameURI; }else { textSstream << activity << "," << toolURI << "," << agentURI << "," << activityURI <<"," << fileNameURI; } file.flush(); file.close(); } else { MessagesWidget::instance()->addGUIMessage(MessageItem(MessageItem::CompositeModel, "", false, 0, 0, 0, 0, tr("The traceability information is not created in a file. One possible reason could be the model is not Modelica model"), Helper::scriptingKind, Helper::notificationLevel)); } }
/*! * \brief GitCommands::createGitRepository * Creates a git repositoryt. * \param repositoryPath */ void GitCommands::createGitRepository(QString repositoryPath) { if(isGitInstalled()) { mpGitProcess->setWorkingDirectory(repositoryPath); //mpGitProcess->setProcessChannelMode(QProcess::MergedChannels); mpGitProcess->start("git", QStringList() << "init"); mpGitProcess->waitForFinished(); QString createRepo = mpGitProcess->readAllStandardOutput(); MessagesWidget::instance()->addGUIMessage(MessageItem(MessageItem::CompositeModel, "", false, 0, 0, 0, 0, createRepo, Helper::scriptingKind, Helper::notificationLevel)); addStructuresToRepository(repositoryPath); } else { QMessageBox *pMessageBox = new QMessageBox(); pMessageBox->setWindowTitle(QString(Helper::applicationName).append(" - ").append(Helper::information)); pMessageBox->setIcon(QMessageBox::Information); pMessageBox->setAttribute(Qt::WA_DeleteOnClose); pMessageBox->setText("Git not found in the system"); pMessageBox->exec(); } }
virtual bool specialLoadList(uint32 count, uint32 offset) { // Special code for message lists which are set at runtime (but otherwise constant) switch (offset) { // Scene 1002 rings case 0x004B4200: add(MessageItem(0x4800, 258)); add(MessageItem(0x100D, 0x4A845A00)); add(MessageItem(0x4805, 1)); return true; case 0x004B4218: add(MessageItem(0x4800, 297)); add(MessageItem(0x100D, 0x43807801)); add(MessageItem(0x4805, 2)); return true; case 0x004B4230: add(MessageItem(0x4800, 370)); add(MessageItem(0x100D, 0x46C26A01)); return true; case 0x004B4240: add(MessageItem(0x4800, 334)); add(MessageItem(0x100D, 0x468C7B11)); add(MessageItem(0x4805, 1)); return true; case 0x004B4258: add(MessageItem(0x4800, 425)); add(MessageItem(0x100D, 0x42845B19)); add(MessageItem(0x4805, 1)); return true; // Scene 1302 rings case 0x004B0888: add(MessageItem(0x4800, 218)); add(MessageItem(0x100D, 0x4A845A00)); add(MessageItem(0x4805, 1)); return true; case 0x004B08A0: add(MessageItem(0x4800, 218 + 32)); add(MessageItem(0x100D, 0x43807801)); return true; case 0x004B08B0: add(MessageItem(0x4800, 218 + 32 + 32)); add(MessageItem(0x100D, 0x46C26A01)); add(MessageItem(0x4805, 1)); return true; case 0x004B08C8: add(MessageItem(0x4800, 218 + 32 + 32 + 32)); add(MessageItem(0x100D, 0x468C7B11)); return true; case 0x004B08D8: add(MessageItem(0x4800, 218 + 32 + 32 + 32 + 32)); add(MessageItem(0x100D, 0x42845B19)); add(MessageItem(0x4805, 4)); return true; } return false; }