@@ -88,6 +88,7 @@ ComponentInfo::ComponentInfo(QObject *pParent)
8888 mTLMCausality = StringHandler::getTLMCausality (StringHandler::TLMBidirectional);
8989 mDomain = StringHandler::getTLMDomain (StringHandler::Mechanical);
9090 mOMSCausality = oms_causality_undefined;
91+ mOMSSignalType = oms_signal_type_real;
9192}
9293
9394/* !
@@ -139,6 +140,7 @@ void ComponentInfo::updateComponentInfo(const ComponentInfo *pComponentInfo)
139140 mTLMCausality = pComponentInfo->getTLMCausality ();
140141 mDomain = pComponentInfo->getDomain ();
141142 mOMSCausality = pComponentInfo->getOMSCausality ();
143+ mOMSSignalType = pComponentInfo->getOMSSignalType ();
142144}
143145
144146/* !
@@ -378,7 +380,8 @@ bool ComponentInfo::operator==(const ComponentInfo &componentInfo) const
378380 (componentInfo.getModelFile () == this ->getModelFile ()) && (componentInfo.getGeometryFile () == this ->getGeometryFile ()) &&
379381 (componentInfo.getPosition () == this ->getPosition ()) && (componentInfo.getAngle321 () == this ->getAngle321 ()) &&
380382 (componentInfo.getDimensions () == this ->getDimensions ()) && (componentInfo.getTLMCausality () == this ->getTLMCausality ()) &&
381- (componentInfo.getDomain () == this ->getDomain ()) && (componentInfo.getOMSCausality () == this ->getOMSCausality ());
383+ (componentInfo.getDomain () == this ->getDomain ()) && (componentInfo.getOMSCausality () == this ->getOMSCausality ()) &&
384+ (componentInfo.getOMSSignalType () == this ->getOMSSignalType ());
382385}
383386
384387/* !
@@ -467,7 +470,7 @@ Component::Component(QString name, LibraryTreeItem *pLibraryTreeItem, QString an
467470 } else if (mpGraphicsView->getModelWidget ()->getLibraryTreeItem ()->getLibraryType () == LibraryTreeItem::OMS) {
468471 mpDefaultComponentRectangle->setVisible (true );
469472 mpDefaultComponentText->setVisible (true );
470- drawSignals ();
473+ drawOMSElementConnectors ();
471474 } else {
472475 drawComponent ();
473476 }
@@ -722,9 +725,55 @@ Component::Component(ComponentInfo *pComponentInfo, LibraryTreeItem *pLibraryTre
722725 mpDefaultComponentText = 0 ;
723726 mpInputOutputComponentPolygon = new PolygonAnnotation (this );
724727 if (mpComponentInfo->getOMSCausality () == oms_causality_input) {
725- mpInputOutputComponentPolygon->setFillColor (QColor (0 , 0 , 127 ));
728+ switch (mpComponentInfo->getOMSSignalType ()) {
729+ case oms_signal_type_integer:
730+ mpInputOutputComponentPolygon->setLineColor (QColor (255 ,127 ,0 ));
731+ mpInputOutputComponentPolygon->setFillColor (QColor (255 ,127 ,0 ));
732+ break ;
733+ case oms_signal_type_boolean:
734+ mpInputOutputComponentPolygon->setLineColor (QColor (255 ,0 ,255 ));
735+ mpInputOutputComponentPolygon->setFillColor (QColor (255 ,0 ,255 ));
736+ break ;
737+ case oms_signal_type_string:
738+ qDebug () << " oms_signal_type_string not implemented yet." ;
739+ break ;
740+ case oms_signal_type_enum:
741+ qDebug () << " oms_signal_type_enum not implemented yet." ;
742+ break ;
743+ case oms_signal_type_bus:
744+ qDebug () << " oms_signal_type_bus not implemented yet." ;
745+ break ;
746+ case oms_signal_type_real:
747+ default :
748+ mpInputOutputComponentPolygon->setLineColor (QColor (0 , 0 , 127 ));
749+ mpInputOutputComponentPolygon->setFillColor (QColor (0 , 0 , 127 ));
750+ break ;
751+ }
726752 } else if (mpComponentInfo->getOMSCausality () == oms_causality_output) {
727- mpInputOutputComponentPolygon->setFillColor (QColor (255 , 255 , 255 ));
753+ switch (mpComponentInfo->getOMSSignalType ()) {
754+ case oms_signal_type_integer:
755+ mpInputOutputComponentPolygon->setLineColor (QColor (255 ,127 ,0 ));
756+ mpInputOutputComponentPolygon->setFillColor (QColor (255 ,255 ,255 ));
757+ break ;
758+ case oms_signal_type_boolean:
759+ mpInputOutputComponentPolygon->setLineColor (QColor (255 ,0 ,255 ));
760+ mpInputOutputComponentPolygon->setFillColor (QColor (255 ,255 ,255 ));
761+ break ;
762+ case oms_signal_type_string:
763+ qDebug () << " oms_signal_type_string not implemented yet." ;
764+ break ;
765+ case oms_signal_type_enum:
766+ qDebug () << " oms_signal_type_enum not implemented yet." ;
767+ break ;
768+ case oms_signal_type_bus:
769+ qDebug () << " oms_signal_type_bus not implemented yet." ;
770+ break ;
771+ case oms_signal_type_real:
772+ default :
773+ mpInputOutputComponentPolygon->setLineColor (QColor (0 , 0 , 127 ));
774+ mpInputOutputComponentPolygon->setFillColor (QColor (255 , 255 , 255 ));
775+ break ;
776+ }
728777 }
729778 mpStateComponentRectangle = 0 ;
730779 mHasTransition = false ;
@@ -1598,30 +1647,37 @@ void Component::drawInterfacePoints()
15981647 }
15991648}
16001649
1601- void Component::drawSignals ()
1650+ /* !
1651+ * \brief Component::drawOMSElementConnectors
1652+ * Draws the OMSimulator element connectors.
1653+ */
1654+ void Component::drawOMSElementConnectors ()
16021655{
1603- oms_signal_t ** pInterfaces = mpLibraryTreeItem->getOMSComponent ()->interfaces ;
1604- ComponentInfo *pComponentInfo = 0 ;
1605- QString name;
1606- for (int i = 0 ; pInterfaces[i] ; i++) {
1607- switch (pInterfaces[i]->causality ) {
1608- case oms_causality_input:
1609- case oms_causality_output:
1610- pComponentInfo = new ComponentInfo;
1611- name = StringHandler::getLastWordAfterDot (pInterfaces[i]->name );
1612- name = name.split (' :' , QString::SkipEmptyParts).last ();
1613- pComponentInfo->setName (name);
1614- // pComponentInfo->setClassName(pInterfaces[i]->type);
1615- pComponentInfo->setOMSCausality (pInterfaces[i]->causality );
1616- mComponentsList .append (new Component (pComponentInfo, mpLibraryTreeItem, this ));
1617- break ;
1618- case oms_causality_parameter:
1619- case oms_causality_undefined:
1620- default :
1621- break ;
1656+ if (mpLibraryTreeItem->getOMSElement ()) {
1657+ oms_connector_t ** pInterfaces = mpLibraryTreeItem->getOMSElement ()->interfaces ;
1658+ ComponentInfo *pComponentInfo = 0 ;
1659+ QString name;
1660+ for (int i = 0 ; pInterfaces[i] ; i++) {
1661+ switch (pInterfaces[i]->causality ) {
1662+ case oms_causality_input:
1663+ case oms_causality_output:
1664+ pComponentInfo = new ComponentInfo;
1665+ name = StringHandler::getLastWordAfterDot (pInterfaces[i]->name );
1666+ name = name.split (' :' , QString::SkipEmptyParts).last ();
1667+ pComponentInfo->setName (name);
1668+ // pComponentInfo->setClassName(pInterfaces[i]->type);
1669+ pComponentInfo->setOMSCausality (pInterfaces[i]->causality );
1670+ pComponentInfo->setOMSSignalType (pInterfaces[i]->type );
1671+ mComponentsList .append (new Component (pComponentInfo, mpLibraryTreeItem, this ));
1672+ break ;
1673+ case oms_causality_parameter:
1674+ case oms_causality_undefined:
1675+ default :
1676+ break ;
1677+ }
16221678 }
1679+ adjustOMSSignals ();
16231680 }
1624- adjustOMSSignals ();
16251681}
16261682
16271683/* !
0 commit comments