Skip to content

Commit

Permalink
Set the TLM bus geometry
Browse files Browse the repository at this point in the history
Added new OMSimulator tags for syntax highlighting
  • Loading branch information
adeas31 committed Nov 5, 2018
1 parent 416a83b commit 3344d0e
Show file tree
Hide file tree
Showing 7 changed files with 49 additions and 15 deletions.
22 changes: 16 additions & 6 deletions OMEdit/OMEditGUI/Component/Component.cpp
Expand Up @@ -576,7 +576,13 @@ Component::Component(Component *pComponent, Component *pParentComponent, Compone
mHasTransition = false;
mIsInitialState = false;
if (mpLibraryTreeItem && mpLibraryTreeItem->getLibraryType() == LibraryTreeItem::OMS) {
mShapesList.append(new PolygonAnnotation(mpReferenceComponent->getInputOutputComponentPolygon(), this));
if (mpLibraryTreeItem->getOMSConnector() && mpReferenceComponent->getInputOutputComponentPolygon()) {
mShapesList.append(new PolygonAnnotation(mpReferenceComponent->getInputOutputComponentPolygon(), this));
} else if (mpLibraryTreeItem->getOMSBusConnector() && mpReferenceComponent->getBusComponentRectangle()) {
mShapesList.append(new RectangleAnnotation(mpReferenceComponent->getBusComponentRectangle(), this));
} else if (mpLibraryTreeItem->getOMSTLMBusConnector() && mpReferenceComponent->getTLMBusComponentPolygon()) {
mShapesList.append(new PolygonAnnotation(mpReferenceComponent->getTLMBusComponentPolygon(), this));
}
} else {
drawInheritedComponentsAndShapes();
}
Expand Down Expand Up @@ -1532,10 +1538,10 @@ void Component::drawOMSComponent()
// draw shapes first
drawOMSComponentShapes();
// draw connectors now
// foreach (Component *pComponent, mpLibraryTreeItem->getModelWidget()->getDiagramGraphicsView()->getComponentsList()) {
// Component *pNewComponent = new Component(pComponent, this, getRootParentComponent());
// mComponentsList.append(pNewComponent);
// }
foreach (Component *pComponent, mpLibraryTreeItem->getModelWidget()->getIconGraphicsView()->getComponentsList()) {
Component *pNewComponent = new Component(pComponent, this, getRootParentComponent());
mComponentsList.append(pNewComponent);
}
} else if (mpLibraryTreeItem->getOMSConnector()) { // if component is a signal i.e., input/output
if (mpLibraryTreeItem->getOMSConnector()->causality == oms_causality_input) {
mpInputOutputComponentPolygon = new PolygonAnnotation(this);
Expand Down Expand Up @@ -2210,14 +2216,18 @@ void Component::updatePlacementAnnotation()
elementGeometry.y2 = extent2.y();
elementGeometry.rotation = mTransformation.getRotateAngle();
OMSProxy::instance()->setElementGeometry(mpLibraryTreeItem->getNameStructure(), &elementGeometry);
} else if (mpLibraryTreeItem && (mpLibraryTreeItem->getOMSConnector() || mpLibraryTreeItem->getOMSBusConnector())) {
} else if (mpLibraryTreeItem && (mpLibraryTreeItem->getOMSConnector()
|| mpLibraryTreeItem->getOMSBusConnector()
|| mpLibraryTreeItem->getOMSTLMBusConnector())) {
ssd_connector_geometry_t connectorGeometry;
connectorGeometry.x = Utilities::mapToCoOrdinateSystem(mTransformation.getOrigin().x(), -100, 100, 0, 1);
connectorGeometry.y = Utilities::mapToCoOrdinateSystem(mTransformation.getOrigin().y(), -100, 100, 0, 1);
if (mpLibraryTreeItem->getOMSConnector()) {
OMSProxy::instance()->setConnectorGeometry(mpLibraryTreeItem->getNameStructure(), &connectorGeometry);
} else if (mpLibraryTreeItem->getOMSBusConnector()) {
OMSProxy::instance()->setBusGeometry(mpLibraryTreeItem->getNameStructure(), &connectorGeometry);
} else if (mpLibraryTreeItem->getOMSTLMBusConnector()) {
OMSProxy::instance()->setTLMBusGeometry(mpLibraryTreeItem->getNameStructure(), &connectorGeometry);
}
/* We have connector both on icon and diagram layer.
* If one connector is updated then update the other connector automatically.
Expand Down
2 changes: 2 additions & 0 deletions OMEdit/OMEditGUI/Component/Component.h
Expand Up @@ -198,6 +198,8 @@ class Component : public QObject, public QGraphicsItem
void setChoicesAnnotation(QStringList choicesAnnotation) {mChoicesAnnotation = choicesAnnotation;}
QStringList getChoicesAnnotation() {return mChoicesAnnotation;}
PolygonAnnotation* getInputOutputComponentPolygon() {return mpInputOutputComponentPolygon;}
RectangleAnnotation* getBusComponentRectangle() {return mpBusComponentRectangle;}
PolygonAnnotation* getTLMBusComponentPolygon() {return mpTLMBusComponentPolygon;}
CoOrdinateSystem getCoOrdinateSystem() const;
OriginItem* getOriginItem() {return mpOriginItem;}
QAction* getParametersAction() {return mpParametersAction;}
Expand Down
9 changes: 9 additions & 0 deletions OMEdit/OMEditGUI/Editors/OMSimulatorEditor.cpp
Expand Up @@ -236,6 +236,15 @@ void OMSimulatorHighlighter::initializeSettings()
elementPatterns << "\\bxml\\b"
<< "\\bssd:SystemStructureDescription\\b"
<< "\\bssd:System\\b"
<< "\\bssd:SimulationInformation\\b"
<< "\\bssd:Annotations\\b"
<< "\\bssd:Annotation\\b"
<< "\\btlm:Master\\b"
<< "\\bssd:Elements\\b"
<< "\\bOMSimulator:Bus\\b"
<< "\\bSignals\\b"
<< "\\bSignal\\b"
<< "\\bSignal\\b"
<< "\\bssd:Component\\b"
<< "\\bssd:ElementGeometry\\b"
<< "\\bssd:Connectors\\b"
Expand Down
5 changes: 4 additions & 1 deletion OMEdit/OMEditGUI/Modeling/LibraryTreeWidget.cpp
Expand Up @@ -3794,7 +3794,10 @@ void LibraryTreeView::mouseDoubleClickEvent(QMouseEvent *event)
setExpandsOnDoubleClick(false);
return;
}
} else if (pLibraryTreeItem->getLibraryType() == LibraryTreeItem::OMS && pLibraryTreeItem->getOMSConnector()) {
} else if (pLibraryTreeItem->getLibraryType() == LibraryTreeItem::OMS
&& (pLibraryTreeItem->getOMSConnector()
|| pLibraryTreeItem->getOMSBusConnector()
|| pLibraryTreeItem->getOMSTLMBusConnector())) {
return;
}
mpLibraryWidget->getLibraryTreeModel()->showModelWidget(pLibraryTreeItem);
Expand Down
12 changes: 4 additions & 8 deletions OMEdit/OMEditGUI/Modeling/ModelWidgetContainer.cpp
Expand Up @@ -3763,6 +3763,8 @@ void ModelWidget::createModelWidgetComponents()
if (mpLibraryTreeItem->isSystemElement() || mpLibraryTreeItem->isComponentElement()) {
pMainLayout->addWidget(mpIconGraphicsView, 1);
}
// show the diagram view
mpDiagramViewToolButton->setChecked(true);
}
if (mpEditor) {
connect(mpEditor->getPlainTextEdit()->document(), SIGNAL(undoAvailable(bool)), SLOT(handleCanUndoChanged(bool)));
Expand Down Expand Up @@ -6346,17 +6348,12 @@ void ModelWidgetContainer::addModelWidget(ModelWidget *pModelWidget, bool checkP
pModelWidget->getEditor()->show();
}
pModelWidget->getEditor()->getPlainTextEdit()->setFocus(Qt::ActiveWindowFocusReason);
} else if (pModelWidget->getLibraryTreeItem()->getLibraryType() == LibraryTreeItem::CompositeModel
|| (pModelWidget->getLibraryTreeItem()->getLibraryType() == LibraryTreeItem::OMS
&& pModelWidget->getLibraryTreeItem()->isTopLevel())) {
} else if (pModelWidget->getLibraryTreeItem()->getLibraryType() == LibraryTreeItem::CompositeModel) {
if (pModelWidget->getModelWidgetContainer()->getPreviousViewType() != StringHandler::NoView) {
loadPreviousViewType(pModelWidget);
} else {
pModelWidget->getDiagramViewToolButton()->setChecked(true);
}
} else if (pModelWidget->getLibraryTreeItem()->getLibraryType() == LibraryTreeItem::OMS
&& !pModelWidget->getLibraryTreeItem()->isTopLevel()) {
pModelWidget->getDiagramViewToolButton()->setChecked(true);
}
pModelWidget->updateViewButtonsBasedOnAccess();
if (!checkPreferedView || pModelWidget->getLibraryTreeItem()->getLibraryType() != LibraryTreeItem::Modelica) {
Expand Down Expand Up @@ -6665,8 +6662,7 @@ void ModelWidgetContainer::loadPreviousViewType(ModelWidget *pModelWidget)
pModelWidget->getDiagramViewToolButton()->setChecked(true);
break;
}
} else if (pModelWidget->getLibraryTreeItem()->getLibraryType() == LibraryTreeItem::CompositeModel
|| pModelWidget->getLibraryTreeItem()->getLibraryType() == LibraryTreeItem::OMS) {
} else if (pModelWidget->getLibraryTreeItem()->getLibraryType() == LibraryTreeItem::CompositeModel) {
switch (pModelWidget->getModelWidgetContainer()->getPreviousViewType()) {
case StringHandler::ModelicaText:
pModelWidget->getTextViewToolButton()->setChecked(true);
Expand Down
13 changes: 13 additions & 0 deletions OMEdit/OMEditGUI/OMS/OMSProxy.cpp
Expand Up @@ -648,6 +648,19 @@ bool OMSProxy::setBusGeometry(QString cref, const ssd_connector_geometry_t* pGeo
return statusToBool(status);
}

/*!
* \brief OMSProxy::setTLMBusGeometry
* Sets the tlm bus geometry.
* \param cref
* \param pGeometry
* \return
*/
bool OMSProxy::setTLMBusGeometry(QString cref, const ssd_connector_geometry_t* pGeometry)
{
oms_status_enu_t status = oms3_setTLMBusGeometry(cref.toStdString().c_str(), pGeometry);
return statusToBool(status);
}

/*!
* \brief OMSProxy::getConnections
* Get the model connections
Expand Down
1 change: 1 addition & 0 deletions OMEdit/OMEditGUI/OMS/OMSProxy.h
Expand Up @@ -92,6 +92,7 @@ class OMSProxy : public QObject
bool getFMUInfo(QString cref, const oms_fmu_info_t** pFmuInfo);
bool setConnectorGeometry(QString cref, const ssd_connector_geometry_t* pGeometry);
bool setBusGeometry(QString cref, const ssd_connector_geometry_t* pGeometry);
bool setTLMBusGeometry(QString cref, const ssd_connector_geometry_t* pGeometry);
bool getConnections(QString cref, oms_connection_t*** pConnections);
bool addConnection(QString cref, QString conA, QString conB);
bool deleteConnection(QString cref, QString conA, QString conB);
Expand Down

0 comments on commit 3344d0e

Please sign in to comment.