DE112016005466T5 - Portmanagement für graphische Modellierung - Google Patents

Portmanagement für graphische Modellierung Download PDF

Info

Publication number
DE112016005466T5
DE112016005466T5 DE112016005466.1T DE112016005466T DE112016005466T5 DE 112016005466 T5 DE112016005466 T5 DE 112016005466T5 DE 112016005466 T DE112016005466 T DE 112016005466T DE 112016005466 T5 DE112016005466 T5 DE 112016005466T5
Authority
DE
Germany
Prior art keywords
port
components
client device
component
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112016005466.1T
Other languages
English (en)
Inventor
Mojdeh Shakeri
Tao Cheng
Robert Aberg
Michael Tocci
Jamieson Cobleigh
Haihua Feng
Kaushik Krishnasamy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MathWorks Inc
Original Assignee
MathWorks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MathWorks Inc filed Critical MathWorks Inc
Publication of DE112016005466T5 publication Critical patent/DE112016005466T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/18Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computational Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

Eine Vorrichtung kann eine Interaktion eines Benutzers, über eine Benutzerschnittstelle, mit einer bestimmten Komponente eines Modells erkennen. Die Vorrichtung kann eine Menge von Komponenten erzeugen, welche mit der bestimmten Komponente assoziiert sind, basierend auf dem Erkennen der Benutzerinteraktion mit der bestimmten Komponente des Modells. Die Vorrichtung kann veranlassen, dass eine Repräsentation der Menge von Komponenten über die Benutzerschnittstelle bereitgestellt wird, in Assoziation mit dem Modell. Die Repräsentation kann anzeigen, dass die Menge von Komponenten damit assoziiert sind, einer Interoperabilität zu ermöglichen.

Description

  • Figurenliste
    • 1A und 1B sind Übersichtsdiagramme einer hierin beschriebenen beispielhaften Implementierung;
    • 2 ist ein Diagramm einer beispielhaften Umgebung, in welcher hierin beschriebene Systeme und/oder Verfahren implementiert sein können;
    • 3 ist ein Diagramm beispielhafter Komponenten von einer oder mehreren Vorrichtungen von 2;
    • 4A und 4B sind Diagramme einer beispielhaften Implementierung zur Schnittstellenadaption;
    • 5A und 5B sind Diagramme einer anderen beispielhaften Implementierung zur Schnittstellenadaption;
    • 6A und 6B sind Diagramme einer anderen beispielhaften Implementierung zur Schnittstellenadaption;
    • 7A-7C sind Diagramme einer anderen beispielhaften Implementierung zur Schnittstellenadaption;
    • 8A-8D sind Diagramme einer anderen beispielhaften Implementierung zur Schnittstellenadaption;
    • 9 ist ein Flussdiagramm eines beispielhaften Prozesses zur Schnittstellenadaption; und
    • 10A-10D sind Diagramme einer anderen beispielhaften Implementierung zur Schnittstellenadaption; und
    • 11 ist ein Diagramm einer anderen beispielhaften Implementierung zur Schnittstellenadaption.
  • Detaillierte Beschreibung
  • Die folgende detaillierte Beschreibung beispielhafter Implementierungen bezieht sich auf die beigefügten Zeichnungen. In unterschiedlichen Zeichnungen können dieselben Bezugszeichen dieselben oder ähnliche Elemente bezeichnen.
  • Ein graphisches Modell kann eine Menge von Komponenten beinhalten. Eine Komponente kann ein Modellelement, ein Textelement oder ähnliches beinhalten. A Modellelement kann einen Blockdiagrammblock, einen Port, ein Subsystem, eine Verbindung, eine Funktion oder ähnliches beinhalten. Ähnlich kann ein Textelement einen Programmcodeabschnitt, eine Funktion oder ähnliches beinhalten. Information (zum Beispiel ein Signal) kann zwischen Teilen des graphischen Modells transferiert werden. Zum Beispiel kann ein Signal von einem Ausgangsport eines ersten Blocks zu einem Eingangsport eines zweiten Blocks bereitgestellt werden. Das Signal, das von dem Ausgangsport des ersten Blocks ausgegeben wird, mag jedoch mit einem Signaltyp inkompatibel, bzw. nicht kompatibel, sein, welchen der Eingangsport des zweiten Blocks zu empfangen konfiguriert ist. Der Ausgangsport kann zum Beispiel damit assoziiert sein, ein Signal mit einer ersten Menge von Signalattributen bereitzustellen, wie etwa eine erste Dimension, einen ersten Datentyp, eine erste Abtastrate oder ähnliches. In dem Beispiel mag weiter der Eingangsport damit assoziiert sein, ein Signal zu empfangen, das mit einer zweiten Menge von Signalattributen assoziiert ist, wie etwa einer zweiten Dimension, einem zweiten Datentyp, einer zweiten Abtastrate oder ähnliches. In diesem Fall können die erste Menge von Signalattributen und die zweite Menge von Signalattributen unterschiedlich sein, was eine Kommunikation zwischen dem Ausgangsport und dem Eingangsport verhindert.
  • Hierin beschriebene Implementierungen können einen Schnittstellenadapter bereitstellen, um eine Kommunikation zwischen inkompatiblen Teilen eines graphischen Modells zu ermöglichen, wie etwa zwischen mehreren verbundenen graphischen Blöcken, zwischen einem graphischen Block und einer ausführbaren Datei oder ähnliches. Beispielsweise kann eine Servervorrichtung eine Porterweiterungsschicht erzeugen, die eine Menge von Komponenten enthält, die damit assoziiert sind, einen Port anzupassen, um eine bestimmte Eingabe zu empfangen oder eine bestimmte Ausgabe bereitzustellen. Auf diese Weise kann die Servervorrichtung das graphische Modellieren verbessern, indem automatisch die Kompatibilität zwischen Komponenten eines graphischen Modells sichergestellt wird, wie etwa graphisch verbundenen Komponenten, hierarchisch verbundenen Komponenten oder ähnliches.
  • 1A and1B sind Übersichtsdiagramme einer beispielhaften Implementierung 100, die hierin beschrieben ist. Wie in 1A gezeigt, kann die beispielhafte Implementierung 100 eine Umgebung zum technischen Rechnen („technical computing environment“, TCE) beinhalten. Die TCE kann über eine Benutzerschnittstelle einer Clientvorrichtung sein. Die TCE kann einen Block 101 enthalten, welcher verbunden ist mit einem oder mit mehreren Quellblöcken, die damit assoziiert sind, eine Menge von Signalen 105 bereitzustellen. Der Block 101 kann mit einer Menge von Eingangsports (zum Beispiel „inports“) 107 zum Empfangen von Signalen assoziiert sein. Der Block 101 kann mit einer Menge von Parametern 110 (zum Beispiel Parameter „P1, P2, ..., PL“) eines übergeordneten Subsystems assoziiert sein. Der Block 101 kann verbunden sein mit einem oder mit mehreren Zielblöcken, die mit dem Empfangen einer Menge von Signalen 115 assoziiert sind. Der Block 101 kann mit einer Menge von Ausgangsports (zum Beispiel „outports“) 117 zum Bereitstellen der Signale assoziiert sein.
  • Die Clientvorrichtung kann einen Schnittstellenadapter konfigurieren, um es dem Block 101 zu ermöglichen, Signale 105 über Eingangsports 107 zu empfangen. Es sei angenommen, das seines oder mehrere der Signalattribute der Signale 105 nicht mit einem oder mehreren Signalattributen der Signale kompatibel sind, welcher die Eingangsports 107 zu empfangen konfiguriert sind. Zum Beispiel mag ein erster Quellblock 4 Signale der Signale 105 ausgeben und ein zweiter Quellblock mag 2 Signale der Signale 105 ausgeben. In diesem Fall können die Eingangsports 107 konfiguriert sein, 2 Gruppen von Signalen über 2 Eingangsports zu empfangen, anstelle der 6 separaten Signale, welche von dem ersten Quellblock und dem zweiten Quellblock bereitgestellt werden. Die Clientvorrichtung kann den Schnittstellenadapter konfigurieren, um zu veranlassen, dass die 6 Signale der Signale 105 partitioniert werden für den Empfang durch den Block 101. Das Partitionieren der 6 Signale in Gruppen kann beinhalten Erzeugen einer Menge von Komponenten, die mit dem Gruppieren und/oder Ändern der 6 Signale assoziiert sind. Als ein Beispiel kann die Clientvorrichtung die ersten 4 Signale in einen Vektor gruppieren, welcher von einem ersten Eingangsport der Eingangsports 107 empfangen wird. Weiter kann in dem Beispiel die Clientvorrichtung den Schnittstellenadapter konfigurieren, um zu veranlassen, dass die zweiten 2 Signale in einen zweiten Vektor gruppiert werden, welcher von einem zweiten Eingangsport der Eingangsports 107 empfangen wird. Auf diese Weise veranlasst die Clientvorrichtung, dass die Signale 105 von den Eingangsports 107 empfangen werden können.
  • Die Clientvorrichtung kann den Schnittstellenadapter konfigurieren, um Parameter 110 des Blocks 101 in einen Strukturparameter zu gruppieren, der mit einem übergeordneten System assoziiert ist. Anders gesagt ist der Block 101 ein Subsystem eines übergeordneten Systems, das einen Strukturparameter beinhaltet, welcher dem Parameter 110 entspricht. Ein Strukturparameter kann einen Parameter bezeichnen, der mehrere numerische Variablen als Felder enthält. Die Clientvorrichtung kann zum Beispiel „P1, P2, ..., PL“ in einen bestimmten Strukturparameter „Ps“ gruppieren. Auf diese Weise adaptiert die Clientvorrichtung eine Parameterdarstellung des Blocks 101 (zum Beispiel eine graphische Darstellung, eine Textdarstellung, etc.), um ein „Mapping“ bzw. eine Abbildung zu einem übergeordneten System zu schaffen, wodurch für eine verbesserte Klarheit des Verständnisses des graphischen Modells gesorgt wird.
  • Die Clientvorrichtung kann die Schnittstellenschicht konfigurieren, um es dem Block 101 zu ermöglichen, Signale 115 über Ausgangsports 117 bereitzustellen. Es sei angenommen, dass eines oder mehrere der Signalattribute der Signale 115 nicht von den Ausgangsports 117 bereitgestellt würden kann (zum Beispiel ist ein Signaltyp, den die Ausgangsports 117 auszugeben konfiguriert sind, nicht der Signaltyp, den ein oder mehrere Zielblöcke zu empfangen Konfiguriert sind). Zum Beispiel kann ein erster Zielblock damit assoziiert sein, einen ersten Vektor zu empfangen, der ein erstes Struktursignal enthält, das 5 Signale der Signale 115 umfasst, und ein zweiter Zielblock kann damit assoziiert sein, einen zweiten Vektor zu empfangen, der ein zweites Struktursignal enthält, das 2 Signale der Signale 115 umfasst. Die Clientvorrichtung kann die Signale 115 in das erste Struktursignal und das zweite Struktursignal packen. Das Packen der Signale 115 kann das erzeugen einer Menge von Komponenten umfassen, die mit dem Packen und/oder Gruppieren von Signalen 115 assoziiert sind.
  • Es sei angenommen, dass die Clientvorrichtung den Schnittstellenadapter graphisch als eine Menge von Schichten repräsentiert, welche eine Darstellung des Blocks 101 ändern. Der Schnittstellenadapter kann eine Mediationsschicht erzeugen, die mit der TCE assoziiert ist, welche eine oder mehrere Datenkonversionen ausführt, die damit assoziiert sind, die Interoperabilität zwischen inkompatiblen Teilen eines Modells zu erlauben(zum Beispiel inkompatible Blöcke oder ähnliches). Die Clientvorrichtung mag jedoch selektiv Information bereitstellen, welche die Mediationsschicht repräsentiert. Die Clientvorrichtung kann zum Beispiel ein Erscheinungsbild des Blocks 101 und/oder der Signale, die mit diesem assoziiert sind, ändern, um eine Wirkung der Schnittstellenschicht zur Herstellung der Interoperabilität zu identifizieren. In diesem Fall mag die Clientvorrichtung Signale 105 als gepackt oder gruppiert darstellen.
  • Zusätzlich oder alternativ kann die Clientvorrichtung ein Erscheinungsbild des Blocks 101 ändern, um eine Information bereitzustellen, welche Komponenten identifiziert, die mit dem Packen oder Gruppieren assoziiert sind, wie etwa Buskomponenten, interne Eingänge, interne Ausgänge oder ähnliches.
  • Wie in 1B gezeigt stellt die Clientvorrichtung eine graphische Repräsentation des Blocks 101 nach dem Konfigurieren des Schnittstellenadapters bereit. Wie mit dem Bezugszeichen 125 gezeigt, werden die Signale 105 partitioniert in eine erste Gruppe der Signale, welche über die Eingangsports 107 empfangen wird, und eine zweite Gruppe der Signale, welche über die Eingangsports 107 empfangen wird. Wie mit dem Bezugszeichen 135 gezeigt, werden Parameter 110 als in Strukturparameter 135 gruppiert dargestellt (zum Beispiel „[Ps]“). Wie mit dem Bezugszeichen 150 gezeigt stellt die Clientvorrichtung eine Repräsentation des ersten Struktursignals und des zweiten Struktursignals bereit. Die Clientvorrichtung stellt eine Repräsentation der Signale 115, die von dem Block 101 und den Ausgangsports 117 bereitgestellt werden, als das erste Struktursignal und das zweite Struktursignal bereit.
  • Auf diese Weise korrigiert die Clientvorrichtung ein Interoperabilitätsproblem, das mit einer Komponente assoziiert ist, durch Konfigurieren eines Schnittstellenadapters, der eine Ausgabeschnittstelle eines ersten Teils des graphischen Modells an eine Eingabeschnittstelle eines zweiten Teils des graphischen Modells adaptiert. Auf diese Weise ermöglicht es die Clientvorrichtung mehreren inkompatiblen Teilen eines graphischen Modells, eines textbasierten Modells oder ähnliches, kompatibel zu sein. Weiter kann die Clientvorrichtung eine geschichtete Ansicht des Schnittstellenadapters bereitstellen, indem unterschiedliche Repräsentationen des Schnittstellenadapters mit unterschiedlichen assoziierten Granularitäten bereitgestellt werden.
  • 2 ist ein Diagramm einer beispielhaften Umgebung 200, in welcher Systeme und/oder Verfahren, die hierin beschrieben sind, implementiert sein können. Wie in 2 gezeigt kann die Umgebung 200 eine Clientvorrichtung 210 beinhalten, die eine Umgebung zum technischen Rechnen (TCE) 220 beinhaltet.
  • Die Umgebung 200 kann weiter eine Servervorrichtung 230 beinhalten, welche eine TCE 220 beinhaltet, und ein Netzwerk 240. Vorrichtungen der Umgebung 200 können über drahtgebundene Verbindungen, drahtlose Verbindungen oder einer Kombination von drahtgebundenen und drahtlosen Verbindungen miteinander verbunden sein.
  • Die Clientvorrichtung 210 kann eine oder mehrere Vorrichtungen beinhalten, die eingerichtet sind zum Empfangen, Erzeugen, Speichern, Verarbeiten und/oder Bereitstellen von Information, die mit einem Schnittstellenadapter assoziiert ist. Die Clientvorrichtung 210 kann zum Beispiel eine Computervorrichtung beinhalten, wie etwa einen Arbeitsplatzcomputer, einen Laptopcomputer, einen Tabletcomputer, ein Mobiltelefon (wie etwa ein Smartphone, ein Funktelefon, etc.) oder eine ähnliche Vorrichtung. Die Clientvorrichtung 210 kann ein Modell erhalten (zum Beispiel ein graphisches Modell) und kann einen Schnittstellenadapter konfigurieren, um es Teilen des Modells (zum Beispiel Blöcke, Textelements, etc.) zu ermöglichen, Information auszutauschen. In einigen Implementierungen kann die Clientvorrichtung 210 Information von der Servervorrichtung 230 empfangen und/oder Information an diese senden.
  • Die Clientvorrichtung 210 kann die TCE 220 hosten. Die TCE 220 kann beliebige hardwarebasierte Komponenten, oder eine Kombination von hardware- und softwarebasierten Komponenten beinhalten, welche eine Rechnerumgebung bereitstellen, die es erlaubt, Tasks auszuführen (beispielsweise durch Benutzer), die sich auf Disziplinen wie etwa, ohne hierauf beschränkt zu sein, Mathematik, Wissenschaft, Ingenieurswesen, Medizin und Wirtschaft bzw. Unternehmen. Die TCE 220 kann eine textbasierte Umgebung (zum Beispiel MATLAB® Software von The MathWorks, Inc.; Octave; Python; JavaScript; Comsol Script; MATRTXx von National Instruments; Mathematica von Wolfram Research, Inc.; Mathcad von Mathsoft Engineering & Education Inc.; Maple von Maplesoft; Extend von Imagine That Inc.; Scilab von The French Institution for Research in Computer Science und Control (FRIA); Virtuoso von Cadence; Modelica oder Dymola von Dassault Systemes; etc.), eine graphische Umgebung (zum Beispiel Simulink® Software, Stateflow® Software, SimEvents® Software, Simscape™ Software etc., von The MathWorks, Inc.; VisSim von Visual Solutions; Lab View® von National Instruments; Agilent VEE von Agilent Technologies; Advanced Design System (ADS) von Agilent Technologies; Agilent Ptolemy von Agilent Technologies; etc.), oder eine andere Art von Umgebung, wie etwa einer hybriden Umgebung, welche zum Beispiel eine textbasierte Umgebung und eine graphische Umgebung beinhalten kann, beinhalten. In einigen Implementierungen kann die TCE 220 zum Beispiel eine Benutzerschnittstelle beinhalten und/oder die Simulation und Ausführung von Hardware- und/oder Softwaresystemen ermöglichen. In einigen Implementierungen kann die TCE 220 eine Architektur auf hoher Ebene („high-level architecture“, HLA) beinhalten, welche das Ausführen einer Simulation ermöglicht, wie etwa das Ausführen einer verteilten Simulation.
  • Die TCE 220 kann mit einer Modellierungsumgebung integriert sein, oder zusammen mit dieser arbeiten, welche graphische Werkzeuge zum Erstellen von Modellen (zum Beispiel graphische Modelle) von Systemen und/oder Prozessen bereitstellen kann. Die TCE 220 kann zusätzliche Werkzeuge bereitstellen, wie etwa Werkzeuge, die dazu entworfen sind, ein Modell in eine alternative Repräsentation umzuwandeln, wie etwa ein alternatives Modellformat, Code oder einen Codeabschnitt, der Computerquellcode und/oder kompilierten Computercode darstellt, eine Hardwarebeschreibung (zum Beispiel eine Spezifikation einer digitalen Schaltung, eine Beschreibung eines Schaltungslayouts, etc.) oder ähnliches. Die TCE 220 kann auch Werkzeuge enthalten, um ein Modell in Projektdateien zur Verwendung in einer integrierten Entwicklungsumgebung („integrated development environment“, IDE) umzuwandeln, wie etwa Eclipse von Eclipse Foundation, IntelliJ IDEA von JetBrains oder Visual Studio von Microsoft. Ein Modell (zum Beispiel ein graphisches Modell) kann ein oder mehrere Modellelemente enthalten, welche Eigenschaften eines Systems und/oder eines Prozesses simulieren. Jedes Modellelement kann mit einer graphischen Repräsentation desselben assoziiert sein, welche eine Menge von Objekten, wie einen oder mehrere Blöcke (zum Beispiel Blockdiagrammblöcke), Ports, Verbindungsleitungen oder ähnliches enthalten kann.
  • Die Servervorrichtung 230 kann eine oder mehrere Vorrichtungen beinhalten, die eingerichtet sind zum Empfangen, Erzeugen, Verarbeiten und/oder Bereitstellen von Information, die mit einem Schnittstellenadapter assoziiert ist. Die Servervorrichtung 230 kann zum Beispiel eine Rechnervorrichtung beinhalten, wie etwa einen Server, einen Arbeitsplatzcomputer, einen Laptopcomputer, einen Tabletcomputer oder eine ähnliche Vorrichtung. In einigen Implementierungen kann Servervorrichtung 230 die TCE 220 hosten. In einigen Implementierungen kann die Clientvorrichtung 210 verwendet werden, um auf eine oder mehrere TCEs 220 zuzugreifen, welche auf einer oder auf mehreren Servervorrichtungen 230 ausgeführt werden. Zum Beispiel können mehrere Servervorrichtungen 230 verwendet werden, um Programmcode auszuführen (zum Beispiel seriell oder parallel) und können jeweilige Ergebnisse der Ausführung des Programmcodes an die Clientvorrichtung 210 bereitstellen.
  • In einigen Implementierungen können die Clientvorrichtung 210 und die Servervorrichtung 230 im Eigentum unterschiedlicher Entitäten stehen. Ein Endbenutzer mag beispielsweise die Clientvorrichtung 210 besitzen und ein Dritter mag die Servervorrichtung 230 besitzen. In einigen Implementierungen kann die Servervorrichtung 230 eine Vorrichtung beinhalten, welche in einer Cloud-Computing-Umgebung arbeitet. Auf diese Weise können Front-End Anwendungen (zum Beispiel eine Benutzerschnittstelle) von Back-End Anwendungen (zum Beispiel Ausführung von Programmcode) getrennt werden.
  • Zusätzlich oder alternative kann die Servervorrichtung 230 eine, mehrere oder alle der Operationen ausführen, welche andernorts hierein als von der Clientvorrichtung 210 ausgeführt beschrieben sind.
  • Das Netzwerk 240 kann ein oder mehrere drahtgebundene und/oder drahtlose Netzwerke umfassen. Zum Beispiel kann das Netzwerk 240 ein Mobilfunknetz, ein öffentliches Mobilfunknetz („Public Land Mobile Network“, PLMN), ein lokales Netzwerk (LAN), ein Weitbereichsnetzwerk (WAN), ein Stadtbereichsnetzwerk („metropolitan area network“, MAN), ein Telefonnetz (zum Beispiel das öffentliche Telefonnetz („Public Switched Telephone Netzwerk“, PSTN)), ein Ad-hoc-Netzwerk, ein Intranet, das Internet, eine faseroptisches Network, ein privates Netzwerk, ein Cloud Computing Netzwerk und/oder eine Kombination dieser und anderer Arten von Netzwerken umfassen.
  • Die Anzahl und Anordnung von Vorrichtungen und Netzwerken, die in 2 gezeigt sind, sind als ein Beispiel gegeben. In der Praxis mag es zusätzliche Vorrichtungen und/oder Netzwerke, weniger Vorrichtungen und/oder Netzwerke, andere Vorrichtungen und/oder Netzwerke, oder anders angeordnete Vorrichtungen und/oder Netzwerke geben als in 2 gezeigt. Weiter können zwei oder mehr der in 2 gezeigten Vorrichtungen in einer einzelnen Vorrichtung implementiert sein, oder eine in 2 gezeigte einzelne Vorrichtung kann als mehrere verteilte Vorrichtungen implementiert sein. Zusätzlich oder alternativ kann eine Menge von Vorrichtungen (zum Beispiel eine oder mehrere Vorrichtungen) der Umgebung 200 eine oder mehrere Funktionen ausführen, welche als von einer anderen Menge von Vorrichtungen der Umgebung 200 ausgeführt beschrieben sind.
  • 3 ist ein Diagramm beispielhafter Komponenten einer Vorrichtung 300. Die Vorrichtung 300 kann der Clientvorrichtung 210 und/oder der Servervorrichtung 230 entsprechen. In einigen Implementierungen kann die Clientvorrichtung 210 und/oder die Servervorrichtung 230 eine oder mehrere Vorrichtungen 300 und/oder eine oder mehrere Komponenten der Vorrichtung 300 beinhalten. Wie in 3 gezeigt kann die Vorrichtung 300 einen Bus 310, einen Prozessor 320, einen Speicher 330, eine Speicherkomponente 340, eine Eingabekomponente 350, eine Ausgabekomponente 360 und eine Kommunikationsschnittstelle 370 beinhalten.
  • Der Bus 310 kann eine Komponente beinhalten, welche eine Kommunikation zwischen den Komponenten der Vorrichtung 300 ermöglicht. Der Prozessor 320 ist in Hardware, Firmware oder einer Kombination von Hardware und Software implementiert. Der Prozessor 320 kann einen Prozessor (zum Beispiel eine Zentralverarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU), eine „accelerated processing unit“ (APU), etc.), einen Mikroprozessor und/oder eine Verarbeitungskomponente (zum Beispiel eine feldprogrammierbare Logik (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC), etc.) beinhalten, welche Anweisungen interpretiert und/oder ausführt. In einigen Implementierungen kann der Prozessor 320 einen oder mehrere Prozessoren umfassen, der bzw. die programmiert werden können, eine Funktion auszuführen. Der Speicher 330 kann einen Speicher mit wahlfreiem Zugriff (RAM), einen Nur-Lese-Speicher (ROM) und/oder einen anderen Typ einer dynamischen oder statischen Speichervorrichtung (zum Beispiel einen Flash Speicher, einen Magnetspeicher, einen optischen Speicher, etc.) beinhalten, welcher Information und/oder Anweisungen zur Verwendung durch den Prozessor 320 speichert.
  • Die Speicherkomponente 340 kann Information und/oder Software speichern, die sich auf die Operation und Verwendung der Vorrichtung 300 bezieht. Die Speicherkomponente 340 kann beispielsweise eine Festplatte (zum Beispiel eine magnetische Platte, eine optische Platte, eine magneto-optische Platte, ein Halbleiterlaufwerk, etc.), eine CD, eine DVD, eine Floppy-Disk, eine Cartridge, ein Magnetband und/oder einen anderen Typ von computerlesbaren Medium umfassen, zusammen mit einem entsprechenden Laufwerk. In einigen Implementierungen kann die Speicherkomponente 340 die TCE 220 speichern.
  • Die Eingabekomponente 350 kann eine Komponente beinhalten, welche es der Vorrichtung 300 ermöglicht, Information zu empfangen, wie etwa mittels einer Benutzereingabe (zum Beispiel einen Berührungsbildschirm, eine Tastatur, eine Maus, eine Taste, einen Schalter, ein Mikrofon etc.). Zusätzlich oder alternativ kann die Eingabekomponente 350 einen Sensor zum Erfassen von Information beinhalten (zum Beispiel eine GPS Komponente, einen Beschleunigungssensor, ein Gyroskop, einen Aktuator, etc.). Die Ausgabekomponente 360 kann eine Komponente beinhalten, welche Ausgabeinformation von der Vorrichtung 300 bereitstellt (zum Beispiel eine Anzeige, ein Lautsprecher, eine oder mehrere Leuchtdioden (LEDs), etc.).
  • Die Kommunikationsschnittstelle 370 kann eine transceiverartige Komponente beinhalten (zum Beispiel einen Transceiver, separat vorgesehenen Sender und Empfänger, etc.), welche die Vorrichtung 300 in die Lage versetzt, mit anderen Vorrichtungen zu kommunizieren, wie etwa über eine drahtgebundene Verbindung, eine drahtlose Verbindung oder eine Kombination aus drahtgebundenen und drahtlosen Verbindungen. Die Kommunikationsschnittstelle 370 kann es der Vorrichtung 300 ermöglichen Information von einer anderen Vorrichtung zu empfangen und/oder Information an eine andere Vorrichtung bereitzustellen. Zum Beispiel kann die Kommunikationsschnittstelle 370 eine Ethernet Schnittstelle, eine optische Schnittstelle, eine Koaxschnittstelle, eine Infrarotschnittstelle, eine Funkschnittstelle, eine USB Schnittstelle, eine WLan Schnittstelle, eine Mobilfunkschnittstelle oder ähnliches umfassen.
  • Die Vorrichtung 300 kann einen oder mehrere Prozesse ausführen, die hierin beschrieben sind. Die Vorrichtung 300 kann diese Prozesse in Antwort darauf ausführen, dass der Prozessor 320 Softwareanweisungen ausführt, welche auf einem computerlesbaren Medium gespeichert sind, wie etwa dem Speicher 330 und/oder der Speicherkomponente 340. Ein computerlesbares Medium ist hierin al seine nichttransitorische Speichervorrichtung definiert. Eine Speichervorrichtung enthält Speicherplatz in einer einzelnen physischen Speichervorrichtung oder Speicherplatz, der über mehrere physische Speichervorrichtungen verteilt ist.
  • Die Softwareanweisungen können über die Kommunikationsschnittstelle 370 von einem anderen computerlesbaren Medium oder von einer anderen Vorrichtung in den Speicher 330 und/oder in die Speicherkomponente 340 gelesen werden. Wenn sie ausgeführt werden, können die Softwareanweisungen, die im Speicher 330 und/oder der Speicherkomponente 340 gespeichert sind, den Prozessor 320 dazu veranlassen, einen oder mehrere der hierin beschriebenen Prozesse auszuführen. Zusätzlich oder alternativ kann eine festverdrahtete Schaltung anstelle oder in Kombination mit Softwareanweisungen verwendet werden, um einen oder mehrere der hierin beschriebenen Prozesse auszuführen. Die hierin beschriebenen Implementierungen sind daher nicht auf eine spezifische Kombination von Hardwareschaltung und Software beschränkt.
  • Die Anzahl und Anordnung der in 3 gezeigten Komponenten ist al sein Beispiel gegeben. In der Praxis kann die Vorrichtung 300 zusätzliche Komponenten, weniger Komponenten, andere Komponenten, oder anders angeordnete Komponenten als die in 3 gezeigten aufweisen.
  • Zusätzlich oder alternativ kann eine Menge von Komponenten (zum Beispiel eine oder mehrere Komponenten) der Vorrichtung 300 eine oder mehrere Funktionen ausführen, welche hierein als durch eine andere Menge von Komponenten der Vorrichtung 300 ausgeführt beschrieben sind.
  • 4A und 4B sind Diagramme einer beispielhaften Implementierung 400 zur Schnittstellenadaption. Mit Bezug auf 4 A kann die Clientvorrichtung 210 über eine Benutzerschnittstelle der TCE 220 ein Benutzerschnittstellenelement 401 bereitstellen, um eine Drag-and-Drop Funktionalität zum Konfigurieren eines Schnittstellenadapters bereitzustellen. Der Block 405 kann in einem graphischen Modell etabliert sein, um Eingangssignale 410 (zum Beispiel 6 Signale) von einer Menge von Quellblöcken zu empfangen und um Ausgangssignale 415 (zum Beispiel 9 Signale) an eine Menge von Zielblöcken bereitzustellen. Der Block 405 kann eine Menge von Parametern 420 (zum Beispiel „P1, P2, ..., PL“) beinhalten. Wie mit dem Bezugszeichen 425 gezeigt, kann der Block 405 eine graphische Repräsentation eines Textelements enthalten (zum Beispiel Programmcode). Die Clientvorrichtung 210 kann die Programmcoderepräsentation des Blocks 405 parsen, um eine oder mehrere Informationsgruppierungen zu bestimmen, wenn eine Anweisung empfangen wird, die sich auf das Konfigurieren des Schnittstellenadapters bezieht.
  • Wie weiter in 4A mit dem Bezugszeichen 430-1 gezeigt, kann die Clientvorrichtung 210 über eine Benutzerschnittstelle eine Interaktion empfangen, welche die Clientvorrichtung 210 dazu veranlasst, einen Indikator, ‚V,‘ zu positionieren, in Assoziation mit einer Eingangsportion des Blocks 405. Die Interaktion kann eine Drag-and-Drop Anweisung, eine Ziehen-und-Klicken Anweisung oder ähnliches beinhalten.
  • Es sei angenommen, dass V eine [4 2] Vektorvariable identifiziert. Attribute des Vektors können über ein anderes Benutzerschnittstellenmodul spezifiziert werden (zum Beispiel ein Pop-Up Menü), können automatisch bestimmt werden (zum Beispiel durch Parsen des Programmcodes) oder ähnliches.
  • Die Clientvorrichtung 210 kann die Eingangssignale 410 in einen ersten Eingabevektor aus 4 Signalen und einen zweiten Eingabevektor aus 2 Signalen gruppieren, wodurch der Schnittstellenadapter für die Eingangssignale 410 konfiguriert wird. Die Clientvorrichtung 210 kann die 4 Signale der Eingangssignale 410 für den ersten Vektor und die 2 Signale der Eingangssignale 410 für den zweiten Vektor auswählen. Die Clientvorrichtung 210 kann die Signale auswählen basierend auf einer Menge von Auswahlkriterien auswählen, wie etwa basierend auf der Programmcoderepräsentation des Blocks 405. In einem anderen Beispiel kann die Clientvorrichtung 210 die Signale basierend auf einer Reihenfolge der Signale auswählen, wie etwa einer graphischen Reihenfolge (zum Beispiel in einer Reihenfolge der Eingangssignale 410 von oben nach unten), einer deskriptiven Reihenfolge (zum Beispiel einer alphabetischen Reihenfolge der Namen der Eingangssignale 410) oder ähnliches.
  • Wie weiter in 4A und mit Bezug auf Bezugszeichen 430-2 gezeigt, kann die Clientvorrichtung 210 über eine Benutzerschnittstelle eine Interaktion empfangen, welche die Clientvorrichtung 210 veranlasst, einen Indikator, ‚P,‘ zu platzieren, in Assoziation mit einem Parameterteil des Blocks 405 (zum Beispiel ein Teil des Blocks 405, der assoziiert ist mit dem Darstellen der Parameter des Blocks 405). Es sei angenommen, dass P eine Strukturvariable identifiziert. Dies kann die Clientvorrichtung 210 veranlassen, die Parameter 420 in einen oder mehrere Strukturparameter zu gruppieren, der bzw. die assoziiert mit der Strukturvariable ist bzw. sind. In einem anderen Beispiel kann die Clientvorrichtung 210 eine Anweisung empfangen, die mit einem Busobjekt assoziiert ist, statt einer Strukturvariablen, und kann die Parameter in Assoziation mit dem Busobjekt gruppieren. Wie weiter in 4A und mit den Bezugszeichen 430-3 und 430-4 gezeigt, kann die Clientvorrichtung 210 über eine Benutzerschnittstelle eine Interaktion empfangen, welche die Clientvorrichtung 210 veranlasst, einen ersten Indikator ‚A,‘ einer ersten Strukturvariable zu platzieren. Ähnlich kann die Clientvorrichtung 210 einen zweiten Indikator ‚B‘, einer zweiten Strukturvariable platzieren. A und B können an Ausgabeabschnitten des Blocks 405 positioniert sein. Dies kann die Clientvorrichtung 210 veranlassen, die Ausgangssignale 415 in jeweilige Struktursignale für die erste Strukturvariable und für die zweite Strukturvariable zu gruppieren. Die Clientvorrichtung 210 kann die jeweiligen Struktursignale basierend auf der Programmcoderepräsentation des Blocks 405 gruppieren. In einem anderen Beispiel kann die Clientvorrichtung 210 eine Anweisung empfangen, die mit einem Busobjekt assoziiert ist, anstatt einer Menge von Strukturvariablen, und kann Ausgangssignale 415 in Assoziation mit dem Busobjekt gruppieren.
  • In einem anderen Beispiel können, wenn die Clientvorrichtung 210 bestimmt, dass der Block 405 mehr interne Ausgänge hat, als mit Signalen assoziiert sind, nicht relevante Ausgangssignale terminiert werden. Zusätzlich oder alternativ kann, wenn die Clientvorrichtung 210 bestimmt, dass der Block 405 weniger interne Ausgänge hat, als mit Signalen 460 assoziiert sind, die Clientvorrichtung 210 veranlassen, dass zusätzliche Signale geerdete Signalelemente sind.
  • Wie in 4B gezeigt stellt, basierend auf dem Empfangen der Interaktionen zum Konfigurieren des Schnittstellenadapters, die Clientvorrichtung 210 eine Repräsentation des Blocks 405 mit dem konfigurierten Schnittstellenadapter bereit. Zum Beispiel stellt die Clientvorrichtung 210 Eingangssignale 410 als Eingangssignale 450 (zum Beispiel eine Menge von Eingabevektoren) dar, die mit einer Variablen 455 assoziiert sind. Ähnlich stellt die Clientvorrichtung 210 Ausgangssignale 415 als Ausgangssignale 460 (zum Beispiel eine Menge von Struktursignale) mit Strukturvariablen 465 (zum Beispiel ‚A‘ und ‚B‘) dar. Ähnlich stellt die Clientvorrichtung 210 Parameter 420 als einen oder mehrere Strukturparameter einer Variablen 470 (zum Beispiel eine Strukturvariable) dar.
  • Wie oben angegeben, sind 4A und 4B lediglich ein Beispiel. Andere Beispiele sind möglich und können sich von dem unterscheiden, was mit Bezug auf 4A und 4B beschrieben wurde.
  • 5A und 5B sind Diagramme einer beispielhaften Implementierung 500 zur Schnittstellenadaption.
  • Mit Bezug auf 5A kann die Clientvorrichtung 210 einen Schnittstellenadapter konfigurieren basierend auf einer Vererbung von einer Quelle, einem Ziel, einem übergeordneten Element bzw. „parent“ oder ähnliches. Eine Quelle kann sich auf eine Quelle eines Signals beziehen (zum Beispiel ein Quellblock). Ähnlich kann sich ein Ziel auf ein Ziel eines Signals (zum Beispiel ein Zielblock). Ein übergeordnetes Element bzw. „parent“ kann sich auf ein übergeordnetes Subsystem beziehen, mit dem ein bestimmter Block assoziiert ist. Der Block 505 ist assoziiert mit dem Empfangen von Daten, die in einer Menge von Signalen 510 enthalten sind, und dem Bereitstellen einer Menge von Signalen 515. Der Block 505 kann Signale 510 von einem ersten Quellblock S1 und einem zweiten Quellblock S2 empfangen. Der Block 505 kann Daten über Signale 515 an einen ersten Zielblock D1 und einen zweiten Zielblock D2 bereitstellen. Der Block 505 kann eine Menge von Parametern enthalten (zum Beispiel „P1, P2, ..., PL“). Der Block 505 kann ein Textelement enthalten, das mit der Darstellung von Programmcode 525 assoziiert ist.
  • Die Clientvorrichtung 210 kann den Programmcode 525 analysieren und kann bestimmen, dass S1 mit einer Ausgabe eines Vektors [4] assoziiert ist (zum Beispiel ein Vektor, der mit 4 Werten assoziiert ist, die 4 Signalen der Signale 510 entsprechen), und dass S2 mit einer Ausgabe eines Vektors [2] assoziiert ist. Die Clientvorrichtung 210 kann einen Schnittstellenadapter konfigurieren, um zu veranlassen, dass die insgesamt 6 Eingabeelemente von S1 und S2 in zwei Eingangsports des Blocks 505 partitioniert werden. Ähnlich kann die Clientvorrichtung 210 den Programmcode 525 analysieren und kann bestimmen, dass D1 mit dem Empfangen eines Struktursignal mit einer Menge von Feldnamen (zum Beispiel „y1, y2, y3“) assoziiert ist, und dass D2 mit dem Empfangen eines Struktursignals mit einer Menge von Feldnamen (zum Beispiel „y5, ..., yJ“) assoziiert ist. Die Clientvorrichtung 210 kann den Schnittstellenadapter konfigurieren, um Ausgabeelemente des Blocks 505 (zum Beispiel die Signale 515) in 2 Struktursignale zum Senden an D1 und D2 zu packen. Ähnlich kann die Clientvorrichtung 210 den Programmcode 525 analysieren und kann bestimmen, dass die Menge von Parametern mit einem Strukturparameter assoziiert ist. Die Clientvorrichtung 210 kann den Schnittstellenadapter konfigurieren, die Parameter P1, P2, ..., PL in einen Strukturparameter Ps zu gruppieren.
  • Mit Bezug auf 5B kann die Clientvorrichtung 210 eine Darstellung des Blocks 505 und des Schnittstellenadapters basierend auf dem Konfigurieren des Schnittstellenadapters bereitstellen. Wie mit dem Bezugszeichen 550 gezeigt, können die Blöcke S1 und S2 eine Eingabe für den Block 505 bereitstellen, die partitioniert ist in zwei Signale zum Empfang als Vektor 555 (zum Beispiel „[V]“) über Eingangsports des Blocks 505. Wie mit dem Bezugszeichen 560 gezeigt, können die Blöcke D1 und D2 eine Ausgabe vom Block 505 empfangen, die in zwei Struktursignale, die zwei Strukturvariablen 565 enthalten (zum Beispiel eine erste Strukturvariable „[A]“ bzw. eine zweite Strukturvariable „[B]“), gepackt ist. Wie mit dem Bezugszeichen 570 gezeigt, kann der Block 505 als einen einzigen Strukturparameter Ps beinhaltend dargestellt werden, welcher die Gruppe von Parametern 520 repräsentiert.
  • Wie oben angegeben sind 5A und 5B lediglich ein Beispiel. Andere Beispiele sind möglich und können sich unterscheiden von dem, was beschrieben wurde mit Bezug auf 5 A und 5B.
  • 6 A und 6B sind Diagramme einer beispielhaften Implementierung 600 zur Schnittstellenadaption. 6 A zeigt eine externe Repräsentation eines Modells. Die externe Repräsentation kann eine oder mehrere Funktionalitäten abstrahieren, die von einem Schnittstellenadapter ausgeführt werden (zum Beispiel eine Expansionsschicht). Das Modell kann ein Bussignal (zum Beispiel ein zusammengesetztes Signal) repräsentieren, das zu einem Block „Zu Arbeitsbereich“ aufgezeichnet wird. Wie mit Bezugszeichen 605-1, 605-2 und 605-3 gezeigt, kann das Modell eine Menge von Signalelementen des Bussignals enthalten (zum Beispiel „Sinuswelle“, „Sinuswelle 1“ und „Sinuswelle 2“). Die Menge von Signalelementen kann an einem Modellelement 610 kombiniert und dem Block 615 bereitgestellt werden (zum Beispiel dem Block „Zu Arbeitsbereich“). Jedes Signalelement des Bussignals kann mit einem oder mit mehreren Signalattributen assoziiert sein (zum Beispiel eine Dimension, einem Datentyp, einer Abtastrate oder ähnliches). Die Signalelemente des Bussignals können mit anderen Signalattributen assoziiert sein. Der Block 615 kann einen einzelnen graphischen Port enthalten, zu welchem das Bussignal geführt ist. Es sei angenommen, dass der einzelne graphische Port nicht dazu konfiguriert ist, das einzelne Bussignal zu empfangen.
  • 6B zeigt eine interne Repräsentation des Modells. Die interne Repräsentation stellt eine granulare Ansicht der Funktionalitäten bereit, welche von dem Schnittstellenadapter ausgeführt werden. Mit Bezug auf 6B kann die Clientvorrichtung 210 den Schnittstellenadapter konfigurieren, um eine Porterweiterungsschicht zu erzeugen, um dafür zu sorgen, dass der Block 625 konfiguriert wird, um das Bussignal über den einzelnen graphischen Port zu empfangen. Wie mit Bezugszeichen 620 und 625 gezeigt, kann die Clientvorrichtung 210 eine Subsystemerzeugungsprozedur ausführen. Die Clientvorrichtung 210 kann zum Beispiel automatisch ein Subsystem erzeugen, das einen Eingabeblock (zum Beispiel eine Eingabe zu Block 615), einen Busselektor (zum Beispiel zum Verarbeiten von Daten in dem Bussignal und zum Ausgeben der Daten als separate Signalelemente) und einen Multiport-Block „Zu Arbeitsbereich“ (welcher zum Beispiel die Eingangsports „in1“, „in2“ und „in3“ beinhaltet) zum Verarbeiten des Bussignals beinhaltet. Die Clientvorrichtung 210 „mappt“ bzw. bildet den graphischen Port auf die Menge interner Ports ab unter Verwendung einer Menge von Verbindungsleitungen (zum Beispiel über das Modellelement 610 und den Busselektor 620).
  • In einem anderen Beispiel kann die Clientvorrichtung 210 eine Expansionsschicht für andere Blöcke verwenden, wie etwa s-Funktionen, MATLAB Systeme, MATLAB Funktionen, Stateflow Diagramme, Modellreferenzblöcke oder ähnliches. Auf diese Weise erzeugt die Clientvorrichtung 210 eine Porterweiterungsschicht welche es dem Block 615 erlaubt, Funktionalitäten auszuführen, wie etwa das Verarbeiten eines Bussignals oder ähnliches.
  • Auf diese Weise verbessert die Clientvorrichtung 210 das graphische Modellieren, indem es überflüssig gemacht wird, dass ein Benutzer ein Subsystem entwerfen muss, um einen Bus zu erweitern und den Bus zu einem Block führen muss. Weiter verringert die Clientvorrichtung 210 die Buchhaltung, die mit dem Verwalten einer Schnittstellenerweiterung für Schnittstellen mit einer großen Anzahl an Ports (zum Beispiel größer als ein Schwellenwert) verbunden ist. Weiterhin verringert die Clientvorrichtung 210 eine Anzahl an Fehlern, die verbunden sind mit dem Adaptieren eines Blocks, um ein Bussignal zu empfangen, wenn verglichen mit einer manuellen Adaption.
  • Wie oben angegeben sind 6A und 6B lediglich als ein Beispiel gegeben. Andere Beispiele sind möglich und können sich unterscheiden von dem, was beschrieben wurde mit Bezug auf 6 A und 6B.
  • 7A-7C sind Diagramme einer beispielhaften Implementierung 700 zur Schnittstellenadaption.
  • Mit Bezug auf 7A kann die Clientvorrichtung 210 einen Schnittstellenadapter verwenden, um einen Block 705 automatisch anzupassen, um Information zu empfangen. Es sei angenommen, dass der Block 705 zwei graphische Eingangsports zum Empfangen von Signalen aufweist, welche die Information vermitteln. Die Information kann als ein erstes Bussignal 710 und ein zweites Bussignal 715 empfangen werden. Das erste Bussignal 710 enthält drei jeweilige Signalelemente 710-1, 710-2 und 710-3. Das zweite Bussignal 715 kann zwei Signalelemente 715-1 und 715-2 enthalten. Ein Signalelement kann sich auf einen Teil eines Signals beziehen, wie etwa ein bestimmtes Signal, das in einem Bussignal enthalten ist, ein Bussignal, das in einem anderen Bussignal enthalten ist, oder ähnliches. Die Clientvorrichtung 210 kann veranlassen, dass ein erster Busselektor 725-1 und ein zweiter Busselektor 725-2 erzeugt werden, um das Bussignal 710 bzw. das Bussignal 715 zu empfangen. Der Schnittstellenadapter kann den Busselektor 725-1 und 725-2 dazu veranlassen, die Signalelemente 710-1, 710-2, 710-3, 715-1 und 715-2 bis 5 auf interne Eingangsports des Subsystems 720 (welches von der Clientvorrichtung 210 erzeugt wurde) zu „mappen“ bzw. abzubilden. Auf diese Weise ermöglicht die Clientvorrichtung 210 dem Block 705, die in den Bussignalen 710 und 715 enthaltene Information zu empfangen und zu verarbeiten.
  • Wie in 7B gezeigt, kann die Clientvorrichtung 210 einen Schnittstellenadapter verwenden, um einen ähnlichen Block 705 zu adaptieren, um Information zu empfangen. Der Block 705 kann einen einzelnen graphischen Eingangsport aufweisen, der ein einzelnes Bussignal 710 empfängt, welches fünf Signalelemente enthält (zum Beispiel 710-1, 710-2, 710-3, 710-4 und 710-5). Die Clientvorrichtung 210 kann einen Busselektor 730 für den einzelnen graphischen Eingangsport erzeugen, der veranlasst, dass die fünf Signalelemente auf die fünf 5 internen Eingangsports des Subsystems 720 „gemappt“ bzw. abgebildet werden, wodurch es dem Block 705 erlaubt wird, die in dem Bussignal 710 enthaltene Information zu empfangen und zu verarbeiten.
  • Wie in 7C gezeigt, kann die Clientvorrichtung 210 einen Schnittstellenadapter verwenden, um auf automatische weise einen weiteren ähnlichen Block 705 zu adaptieren, um Information zu empfangen. Der Block 705 kann einen einzelnen graphischen Eingangsport aufweisen zum Empfangen eines einzelnen Bussignals 710, welches fünf Signalelemente beinhaltet (zum Beispiel 710-1, 710-2, 710-3, 710-4 und 710-5). Die fünf Signalelemente können in dem Bussignal in einer Reihenfolge enthalten sein, die sich von einer Reihenfolge unterscheidet, in welcher der Block 705 konfiguriert ist, die Signalelemente zu empfangen. Die Clientvorrichtung 210 kann Signalelementnamen parsen (zum Beispiel „<Daten>“, „<oberer_Saturationsgrenzwert>“, „<unterer_Saturationsgrenzwert>“, „<Reset>“ und „<Inkrement>“) und kann einen Busselektor 735 und eine Menge von Verbindungsleitungen erzeugen, um die Signalelemente auf entsprechende interne Ports des Subsystems 720 zu „mappen“ bzw. abzubilden (zum Beispiel mit Namen „Daten“, „oberer“, „unterer“, „Inkrement“ und „Reset“). Auf diese Weise ermöglicht die Clientvorrichtung 210 eine Umordnung der Signale, um die Signale automatisch auf entsprechende Eingänge zu „mappen“ bzw. abzubilden. In einem anderen Beispiel kann die Clientvorrichtung 210 andere Information verwenden, um ein „Mapping“ bzw. eine Abbildung zu ermöglichen, wie etwa basierend auf einem Abgleichen eine Menge von Identifikatoren, einem Abgleichen eines Attributs eines Ausgabeblocks (zum Beispiel dem Block 735) mit einem Attribut eines Eingabeblocks (zum Beispiel der Block 720), einer Eigenschaft eines Signals oder ähnliches.
  • Wie oben dargelegt, sind 7A-7C lediglich als ein Beispiel gegeben. Andere Beispiele sind möglich und können sich unterscheiden von dem, was beschrieben wurde mit Bezug auf 7A-7C.
  • 8A-8D sind Diagramme einer beispielhaften Implementierung 800 zur Schnittstellenadaption. 8A kann eine Ansicht eines Modells 805 zeigen (zum Beispiel „mtopl“), das einen Modellblock 810 enthält (zum Beispiel „ZählerA“). Der Modellblock 810 kann ein internes Modell enthalten (zum Beispiel „msubl“), welches mit dem Ausführen einer oder mehrerer Funktionalitäten des Modellblocks 810 assoziiert ist. Der Modellblock 810 kann mit dem Empfangen von Bussignalen 812-1 und 812-2 (zum Beispiel „ZÄHLERBUS“ bzw. „INKREMENTBUS“) assoziiert sein. Der Modellblock 810 kann zusammengesetzte Ports (das heißt graphische Eingänge) 815-1 und 815-2 aufweisen (zum Beispiel „Eingabe“ bzw. „Inkrement“). Die zusammengesetzten Ports 815-1 und 815-2 können die Bussignale 812-1 bzw. 812-2 empfangen. Wie mit dem Bezugszeichen 820 gezeigt, kann die Clientvorrichtung 210 einen Programmcode für die zusammengesetzten Ports erzeugen. In diesem Fall kann der Programmcode die Menge von Bussignalen referenzieren, wodurch ein Programmcode bereitgestellt wird, der für einen Benutzer, der die Ansicht des Modells 805 betrachtet, die in 8A gegeben ist, leicht verständlich ist.
  • In einigen Implementierungen kann der Programmcode ein editierbarer Programmcode sein und eine Änderung an dem Programmcode kann in eine Darstellung der zusammengesetzten Ports integriert werden. Die Clientvorrichtung 210 kann zum Beispiel eine Änderung des Programmcodes empfangen, wie etwa eine Umordnung von Argumenten, die sich auf die zusammengesetzten Ports beziehen, und die Clientvorrichtung 210 kann eine Umordnung der Darstellung der zusammengesetzten Ports in dem Modell 805 basierend auf der Umordnung der Argumente, die sich auf die zusammengesetzten Ports beziehen, vornehmen. Auf diese Weise stellt die Clientvorrichtung 210 in einer leicht verständlichen Weise sicher, dass das Modell und der Programmcode sich entsprechen.
  • 8B kann via den Modellblock 810 eine Ansicht eines internen Modells zeigen, das durch das Modell 805 referenziert wird. Wie in 8B gezeigt, kann der Modellblock 810 eine erweitere Menge von Eingangsports (zum Beispiel interne Eingänge) 825-1 bis 825-5 aufweisen, um Bussignale 812-1 und 812-2 zu empfangen. Die Menge von Eingangsports 825-1 bis 825-5 kann „<Daten>“, „<oberer_Saturationsgrenzwert>“, „<unterer_Saturationsgrenzwert>“, „<Inkrement>“ bzw. „<Reset>“). Wie mit dem Bezugszeichen 830 gezeigt, kann die Clientvorrichtung 210 einen Programmcode für die erweiterte Menge von Eingangsports erzeugen, welches die Signalelemente der Menge von Bussignalen referenziert, wodurch ein Programmcode bereitgestellt wird, der für einen Benutzer, welcher die in 8B gezeigte Ansicht des Modellblocks 810 betrachtet, leicht verständlich ist. Auf diese Weise kann die Clientvorrichtung 210 einen Programmcode erzeugen, der eine Codeschnittstelle aufweist, die einer Schnittstelle eines graphischen Modells entspricht. Die Clientvorrichtung 210 kann zum Beispiel eine erste Version des Programmcodes erzeugen, mit einer ersten Codeschnittstelle, welche einer Schnittstelle einer bestimmten Komponente entspricht, und eine zweite Version des Programmcodes mit einer zweiten Codeschnittstelle, welche einer Schnittstelle einer Porterweiterungsschicht, einer hierarchischen Expansionsschicht oder ähnliches entspricht.
  • Auf diese Weise kann die Clientvorrichtung 210 einem Benutzer einen Programmcode bereitstellen, welcher den graphischen Eingängen oder den internen Eingängen entspricht, wodurch die Lesbarkeit des Codes verbessert wird. Zum Beispiel mag ein Benutzer, welcher damit betraut ist, Probleme mit dem Modell 805 zu debuggen, Code vorziehen, welcher den Modellblock 810 auf die graphische Eingangsrepräsentation vereinfacht. Im Gegensatz mag es ein Benutzer, der damit betraut ist, Probleme mit dem Modellblock 810 zu debuggen, Code vorziehen, welcher die internen Eingänge des Modellblocks 810 darstellt.
  • 8C kann einen Schnittstellenadapter (zum Beispiel eine Porterweiterungsschicht 845) für den Modellblock 810 zeigen. Das erste Bussignal 812-1 des Modells 805 kann ein erstes Signalelement 850 (zum Beispiel ein 32-Bit Integer (int32) „Daten“), ein zweites Signalelement 852 (zum Beispiel ein int32 „oberer“) und ein drittes Signalelement 854 (zum Beispiel ein int32 „unterer“) enthalten. Das zweite Bussignal des Modells 805 kann ein erstes Signalelement 856 (zum Beispiel ein int32 „Inkrement“) und ein zweites Signalelement 858 (zum Beispiel einen Booleschen Wert Reset).
  • Wie weiter mit Bezug auf 8C gezeigt, kann die Clientvorrichtung 210 einen Buserzeuger 860 erzeugen, welcher die Signalelemente 852 und 854 empfängt und welcher ein Signal 862 (zum Beispiel ein Double) bereitstellt. Die Clientvorrichtung 210 kann einen Buserzeuger 864 erzeugen, welcher das Signalelement 850 und das Signal 862 empfängt und welcher ein Signal 866 (zum Beispiel ein Double) an einen ersten Eingang des Modellblocks 810 bereitstellt. Auf diese Weise werden drei Signalelemente des ersten Bussignals 812-1 über die Porterweiterungsschicht 845 an einen einzelnen Eingangsport des Modellblocks 810 bereitgestellt.
  • Wie weiter mit Bezug auf 8C gezeigt, kann die Clientvorrichtung 210 einen Buserzeuger 868 erzeugen, welcher die Signalelemente 856 und 858 empfängt und welcher ein Signal 870 (zum Beispiel ein Double) an einen zweiten Eingang des Modellblocks 810 bereitstellt. Auf diese Weise werden zwei Signalelemente des zweiten Bussignals 812-2 über die Porterweiterungsschicht 845 an einen einzelnen Eingangsport des Modellblocks 810 bereitgestellt.
  • In einigen Implementierungen kann die Clientvorrichtung 210 einen Programmcode erzeugen, welcher den Buserzeuger 868 und/oder eine oder mehrere andere Komponenten eines Schnittstellenadapters repräsentiert. Die Clientvorrichtung 210 kann zum Beispiel einen Programmcode erzeugen, um eine Simulation zu ermöglichen. In diesem Fall kann die Clientvorrichtung 210, wenn die Clientvorrichtung 210 bestimmt, einen Programmcode für das Modell 805 zu erzeugen, einen Programmcode erzeugen, welcher das Modell 805 einschließlich des Schnittstellenadapters repräsentiert, anstelle einen Programmcode zu erzeugen, der ein dem Modells 805 zugrundeliegendes Modell (das heißt, das Modell 805 ohne den Schnittstellenadapter). In einem anderen Beispiel kann die Clientvorrichtung 210 basierend zum Beispiel auf einer Benutzerauswahl den Programmcode basierend auf dem Modell 805 ohne den Schnittstellenadapter erzeugen. In einigen Implementierungen kann die Clientvorrichtung 210 einen erzeugten Code an einer bestimmten Stelle einfügen. Wenn zum Beispiel ein Schnittstellenadapter erzeugt wird auf der Seite eines Aufgerufenen des Modells 805, wie in 8B, kann die Clientvorrichtung 210 einen Programmcode erzeugen, welcher den Schnittstellenadapter repräsentiert, an einem Abschnitt des Programmcodes, der mit der Seite des Aufgerufenen des Modells 805 assoziiert ist. Wenn im Gegenteil ein Schnittstellenadapter auf der Seite eines Aufrufenden des Modells 805 erzeugt wird, wie in 8C, kann die Clientvorrichtung 210 einen Programmcode erzeugen, welcher den Schnittstellenadapter an einem Abschnitt des Programmcodes repräsentiert, der mit der Seite des Aufrufenden des Modells assoziiert ist.
  • Auf diese Weise stellt die Clientvorrichtung 210 eine geschichtete Ansicht des Schnittstellenadapters des Modells 805 mit Bezug auf das interne Modell des Modellblocks 810 bereit.
  • 8D kann eine Ansicht des Schnittstellenadapters (zum Beispiel eine andere Porterweiterungsschicht 875) für das interne Modell des Blocks 810 zeigen. Der Schnittstellenadapter kann dem in 7A gezeigten Schnittstellenadapter entsprechen. Auf diese Weise stellt die Clientvorrichtung 210 eine andere geschichtete Ansicht des Schnittstellenadapters des Modells 805 in Bezug auf das Modell 805 bereit.
  • Wie oben dargelegt, sind 8A-8D lediglich als ein Beispiel gegeben. Andere Beispiele sind möglich und können sich unterscheiden von dem, was beschrieben wurde mit Bezug auf 8A-8D.
  • 9 ist ein Flussdiagramm eines beispielhaften Prozesses 900 zur Portverwaltung für ein graphisches Modell. In einigen Implementierungen kann ein oder können mehrere Prozessblöcke von 9 von der Clientvorrichtung 210 ausgeführt werden. In einigen Implementierungen kann ein oder können mehrere Prozessblöcke von 9 durch eine andere Vorrichtung oder eine Gruppe von Vorrichtungen ausgeführt werden, welche separat von der Clientvorrichtung 210 sind oder diese enthalten, wie etwa die Servervorrichtung 230. Wie in 9 gezeigt, kann der Prozess 900 das Empfangen eines Modells beinhalten (Block 910). Zum Beispiel kann die Clientvorrichtung 210 (zum Beispiel die TCE 220) ein Modell empfangen (zum Beispiel ein graphisches Modell). In einigen Implementierungen kann die Clientvorrichtung 210 (zum Beispiel die TCE 220) kann das Modell empfangen basierend darauf, dass ein Benutzer das Modell erstellt. Zum Beispiel kann ein Benutzer die Clientvorrichtung 210 dazu veranlassen, eine Benutzerschnittstelle zu erzeugen oder zu öffnen. Der Benutzer kann dann kann die Clientvorrichtung 210 dazu veranlassen, einen oder mehrere Modellblöcke und/oder Modellelemente zu der Benutzerschnittstelle hinzuzufügen, um das Modell zu erstellen. In einigen Implementierungen kann die Clientvorrichtung 210 von dem Benutzer einen Befehl empfangen, der angibt, ein Modellblock und/oder ein Modellelement zu der Benutzerschnittstelle hinzugefügt werden soll. Die Clientvorrichtung 210 kann den Befehl empfangen basierend auf, zum Beispiel, dem Erkennen einer Auswahl eines bestimmten Menüelements, einer Eingabe einer bestimmten textlichen oder akustischen Eingabe von dem Benutzer und/oder einer Eingabe einer anderen vorbestimmten Eingabe, die den Wunsch anzeigt, einen Modellblock und/oder ein Modellelement zu der Benutzerschnittstelle hinzuzufügen. Als ein anderes Beispiel kann die Clientvorrichtung 210 eine Eingabe (zum Beispiel ein Greifen und Ziehen) empfangen, die anzeigt, dass ein Modellblock und/oder ein Modellelement, das in einer Blockbibliothek und/oder einer Modellelementbibliothek, die mit der TCE 220 assoziiert ist, enthalten ist, der Benutzerschnittstelle hinzugefügt werden soll. Basierend auf dem Befehl kann die Clientvorrichtung 210 den Modellblock und/oder das Modellelement der Benutzerschnittstelle hinzufügen.
  • In einigen Implementierungen kann die Clientvorrichtung 210 Information empfangen, welche das Modell identifiziert, wie etwa einen Namen des Modells, und Information, welche einen Speicherort identifiziert, an welchem das Modell gespeichert ist. Der Speicherort kann sich in der Clientvorrichtung 210 befinden oder extern zu dieser sein, möglicherweise entfernt von der Clientvorrichtung 210. Die Clientvorrichtung 210 kann basierend auf dem Empfangen der Anforderung das das Modell aus dem Speicherort abrufen. In einigen Implementierungen kann die Clientvorrichtung 210 Information über einen Teil eines Modells bestimmen basierend auf Information, die mit dem Modell assoziiert ist. Die Clientvorrichtung 210 kann zum Beispiel eine XML Datei erhalten, die mit einem Modell assoziiert ist, und kann die XML Datei parsen, um Information bezüglich eines Modellblocks des Modells, einem Port des Modells oder ähnliches zu erhalten. In diesem Fall kann die Clientvorrichtung 210 eine Technik der Verarbeitung natürlicher Sprache, eine XML Parser Technik, eine Matching Technik (um zum Beispiel die XML Datei mit einer anderen XML Datei zu vergleichen, die über ein Repositorium von XML Dateien gespeichert ist) oder ähnliches verwenden, um die Information zu bestimmen.
  • Wie in 9 weiter gezeigt, kann der Prozess 900 das Erstellen, bzw. Aufbauen, eines Schnittstellenadapters beinhalten (Block 920). Die Clientvorrichtung 210 kann zum Beispiel den Schnittstellenadapter erstellen (zum Beispiel eine oder mehrere Expansionsschichten). In einigen Implementierungen kann die Clientvorrichtung 210 einen Schnittstellenadapter erstellen, um dafür zu sorgen, dass eine Komponente, die mit einem Interoperabilitätsproblem assoziiert ist (zum Beispiel eine Komponente, die nicht mit einem Teil eines Modells kompatibel ist) mit dem Teil des Modells kompatibel gemacht wird (um zum Beispiel eine Kompatibilität für zwei oder mehr Komponenten herzustellen). Die Clientvorrichtung 210 kann zum Beispiel einen Schnittstellenadapter verwenden, um einen Adaptionsdienst auszuführen für (zum Beispiel einen Austausch von Information ermöglichen, basierend auf dem Erzeugen einer Expansionsschicht, um eine Kompatibilität zu ermöglichen, zwischen) einen Quellblock und einen Zielblock (welche zum Beispiel graphisch verbunden sind), ein übergeordnetes System und ein untergeordnetes Subsystem (welche zum Beispiel über eine hierarchische Beziehung assoziiert sind), einen graphischen Block mit einem nicht-graphischen Block (zum Beispiel von einem ersten Block, für den eine Funktionalität graphisch dargestellt ist, wie etwa mittels Icons, Layout, Form, Schattierung, Größe, etc., zu einem zweiten Block für den die Funktionalität mittels Text oder als eine Binärdarstellung dargestellt ist, wie etwa einer dynamisch gelinkten Datei (DLL), einer ausführbaren Datei (EXE), einer XML Schnittstelle, MATLAB Code, ein Textblock, etc.), eine algebraische Differentialgleichung oder ähnliches.
  • In einigen Implementierungen kann die Clientvorrichtung 210 eine graphische Expansionsschicht als den Schnittstellenadapter erstellen. Die Clientvorrichtung 210 kann zum Beispiel eine Menge von graphischen Modellelementen erzeugen, um die Interoperabilität für eine Menge von graphischen Komponenten herzustellen. Auf diese Weise erlaubt die Clientvorrichtung 210 die Interoperabilität für graphische Teile eines Modells. Zusätzlich oder alternativ kann die Clientvorrichtung 210 eine textliche Erweiterung erzeugen, wie etwa für eine graphische Komponente und eine Textkomponente (zum Beispiel einen Textblock), eine Menge von Textkomponenten oder ähnliches. Auf diese Weise erlaubt die Clientvorrichtung 210 eine Interoperabilität für Textteile eines Modells.
  • In einigen Implementierungen kann die Clientvorrichtung 210 den Schnittstellenadapter basierend auf dem Empfangen eines Triggers erzeugen. Die Clientvorrichtung 210 kann zum Beispiel eine Benutzerinteraktion mit einer bestimmten Komponente erkennen, die über eine Benutzerschnittstelle bereitgestellt wird, und kann bestimmen, dass die Benutzerinteraktion damit assoziiert ist, den Schnittstellenadapter zu erzeugen (zum Beispiel für die bestimmte Komponente, für eine andere Komponente, etc.). Zusätzlich oder alternativ kann die Clientvorrichtung 210 automatisch getriggert werden, den Schnittstellenadapter zu erzeugen, basierend auf einem Ereignis. Die Clientvorrichtung 210 kann zum Beispiel eine Anweisung empfangen, eine Simulation eines Modells auszuführen, Programmcode für ein Modell zu erzeugen oder ähnliches, und kann den Schnittstellenadapter für einen Teil oder mehrere Teile des Modells erzeugen basierend auf dem Empfangen der Anweisung.
  • In einigen Implementierungen kann die Clientvorrichtung 210 ein oder mehrere Benutzerschnittstellenelemente bereitstellen, die mit dem Konfigurieren des Schnittstellenadapters assoziiert sind. Die Clientvorrichtung 210 kann zum Beispiel eine Option zum Freigeben/Sperren der Erzeugung des Schnittstellenadapters bereitstellen. Zusätzlich oder alternativ kann die Clientvorrichtung 210 eine Option zum Umschalten von Ansichten eines Modells und/oder eines damit assoziierten Schnittstellenadapters bereitstellen, nachdem der Schnittstellenadapter erzeugt wurde. Die Clientvorrichtung 210 kann zum Beispiel eine Auswahl empfangen, um eine erste Ansicht bereitzustellen, die eine Eingangs-/Ausgangssignal-Strukturansicht zeigt. Zusätzlich oder alternativ kann die Clientvorrichtung 210 eine Auswahl empfangen, um eine flache Ansicht bereitzustellen (welche zum Beispiel das Modell vereinfacht). Zusätzlich oder alternativ kann die Clientvorrichtung 210 eine Auswahl empfangen, um eine hybride Ansicht bereitzustellen (welche zum Beispiel einen ersten Teil des Modells vereinfacht und eine Eingangs-/Ausgangssignal-Strukturansicht eines zweiten Teils des Modells zeigt). In einigen Implementierungen kann die Clientvorrichtung 210 automatisch eine Darstellung auswählen basierend auf einer Umgebung, wie etwa einer Simulationsumgebung, einer Debugumgebung, einer Codeerzeugungsumgebung, oder ähnliches.
  • In einigen Implementierungen kann die Clientvorrichtung 210 eine oder mehrere Komponenten identifizieren, für die der Schnittstellenadapter zu erzeugen ist. Die Clientvorrichtung 210 kann zum Beispiel für eine Ausgabeschnittstelle eines ersten Blocks und eine Eingabeschnittstelle eines zweiten Blocks bestimmen, dass die Eingabeschnittstelle und die Ausgabeschnittstelle mit unterschiedlichen Kommunikationsanforderungen assoziiert sind. In einigen Implementierungen können die unterschiedlichen Kommunikationsanforderungen kann einen zeitlichen Unterschied (zum Beispiel einen Unterschied in Abtastzeit), einen räumlichen Unterschied (zum Beispiel ein Unterschied in Festkomma- und in Fließkommadarstellung), einen strukturellen Unterschied (zum Beispiel ein Unterschied in der Aggregation von Elementen), einen Unterschied in Komplexität (zum Beispiel ein Unterschied eines Realteils und eines Imaginärteils) einem Unterschied in Domäne (zum Beispiel ob ein Port eine kausale Beziehung, eine akausale Beziehung oder ähnliches repräsentiert), einen Verbindungsunterschied (zum Beispiel ein Unterschied, der sich auf Gleichheit, Zuweisung, Erzeugung oder Konsumieren bezieht, etc.), einen Unterschied in der Ausführung (zum Beispiel ein Unterschied, der sich auf eine Ausführung in diskreter Zeit, eine Ausführung in kontinuierlicher Zeit, eine blockierende oder nicht blockierende Ausführung bezieht, etc.). Zum Beispiel können der erste Block und der zweite Block mit unterschiedlichen Signaldimensionen, unterschiedlichen Signaldatentypen, unterschiedlichen Signalabtastraten oder ähnliches assoziiert sein. Ähnlich kann ein erster Port ein kausaler Port sein und ein zweiter Port kann ein akausaler Port sein, und die Clientvorrichtung 210 kann bestimmen, eine Menge von Komponenten zu erzeugen, um eine Verbindung zwischen dem ersten Port und dem zweiten Port herzustellen. Zusätzlich oder alternativ kann die Clientvorrichtung 210 bestimmen, dass ein erster Block und ein zweiter Block mit ähnlichen internen Implementierungen assoziiert sind (zum Beispiel referenzierte Modelle), aber mit anderen graphischen Schnittstellen assoziiert sind (zum Beispiel graphische Darstellungen externer Ports), wie etwa andere Icons, Portlayouts, geometrische Formen, Größen, Farben, Anmerkungen, Schattierung, Badges oder ähnliches. Zusätzlich oder alternativ kann die Clientvorrichtung 210 bestimmen, dass Parameter (zum Beispiel eines Blocks) nicht mit benötigten Parametern übereinstimmen. Die Clientvorrichtung 210 kann zum Beispiel bestimmen, dass Parameter eines bestimmten Blocks in eine Strukturvariable gruppiert sind in einem übergeordneten System. In diesem Fall kann die Clientvorrichtung 210 einen Schnittstellenadapter erzeugen, um das Gruppieren der Parameter vorzunehmen, wie etwa basierend auf einer Modellhierarchie, einem heterogenen Gruppieren, das assoziiert ist mit einer Eigenschaft der zu gruppierenden Parameter oder ähnliches. In einigen Implementierungen kann das Gruppieren von einem Benutzer über die Clientvorrichtung 210 ausgewählt werden. Zum Beispiel kann der Benutzer eine Menge von Parametern auswählen, die mit derselben Eigenschaft (zum Beispiel einem bestimmten Datentyp) assoziiert sind, und kann veranlassen, dass die Parameter in die Strukturvariable gruppiert werden. Zusätzlich oder alternativ kann die Clientvorrichtung 210 die Menge von Parametern automatisch gruppieren basierend darauf, dass die Menge von Parametern mit derselben Eigenschaft assoziiert sind, wie etwa basierend auf einem Bestimmen, dass jeder Parameter der Menge von Parametern mit dem bestimmten Datentyp assoziiert ist.
  • In einigen Implementierungen kann die Clientvorrichtung 210 ein bestimmtes Signal oder einen bestimmten Parameter identifizieren, für das bzw. für den der Schnittstellenadapter zu erzeugen ist. Die Clientvorrichtung 210 kann zum Beispiel den Schnittstellenadapter erzeugen, um eine Datenumwandlung auszuführen, die mit einem bestimmten Signal oder Parameter assoziiert ist, wie etwa für Vektortyp-Daten, Matrixtyp-Daten, Feldtyp-Daten, Daten vom Typ einer funktionellen Attrappenschnittstelle („functional mock-up interface“, FMI) (zum Beispiel Daten, die sich auf eine Menge von Modellen physikalischer oder nicht-physikalischer Systeme beziehen), Daten vom Typ einer funktionellen Attrappeneinheit („functional mock-up unit“, FMI) beziehen (zum Beispiel eine Datendatei, welche Daten bezüglich einer FMI speichert), eine algebraische Differentialgleichung (DGL) (zum Beispiel ein System von DGLs, welche Funktionen einer unabhängigen Variablen und/oder Ableitungen davon enthalten), eine algebraische Gleichung, zusammengesetzte Daten (zum Beispiel Daten, die konstruiert sind aus einem oder mehreren primitiven oder anderen zusammengesetzte Typen), nicht zusammengesetzte Daten (zum Beispiel ein Primitiv oder eine Referenz), eine Kombination von zusammengesetzte Daten und nicht zusammengesetzten Daten, ein Bussignal, eine Struktur (zum Beispiel ein nicht virtueller Bus), ein Feld von Bussignalen, ein Feld von Struktursignalen, ein Skalar, ein virtueller Bus (zum Beispiel ein Kabelbinder) oder ähnliches. In diesem Fall kann die Clientvorrichtung 210 beispielsweise einen Port (zum Beispiel einen Verbindungsport, einen Funktionsaufrufport, einen Eingangsport, einen Ausgangsport oder ähnliches) oder eine Datenstruktur, die mit dem bestimmten Signal oder Parameter assoziiert ist, identifizieren. Die Clientvorrichtung 210 kann zum Beispiel bestimmen, dass eine Eingabeschnittstelle mit dem Empfangen eines Signals assoziiert ist, welches mehrere Vektoren enthält, und dass das Signal eine Matrix ist. In diesem Fall kann die Clientvorrichtung 210 einen Schnittstellenadapter erzeugen, der damit assoziiert ist, zu veranlassen, dass die Matrix an der Schnittstelle als die mehreren Vektoren empfangen wird. In einigen Implementierungen kann die Clientvorrichtung 210 eine bestimmte Anwendungsprogrammschnittstelle (API) verwenden, um Information zu erhalten, zu ändern und/oder bereitzustellen, welche sich auf eine oder mehrere Komponenten bezieht, die mit einem Schnittstellenadapter assoziiert sind. Die Clientvorrichtung 210 kann zum Beispiel eine API verwenden, die mit FMI-Typ-Daten oder FMU-Typ-Daten assoziiert ist, wie etwa Exportbefehle, Importbefehle, Simulationsbefehle, Datentypänderungsbefehle, Ausgabeaufrufe, Aktualisierungsaufrufe, Nulldurchgangsaufrufe oder ähnliches, die in einen Schnittstellenadapter inkorporiert werden können, um Daten bereitzustellen, Daten zu empfangen, Daten zu ändern oder ähnliches.
  • In einigen Implementierungen kann die Clientvorrichtung 210 Information empfangen, die assoziiert ist mit dem Identifizieren der einen oder der mehreren Komponenten, für welche der Schnittstellenadapter zu erstellen ist. Die Clientvorrichtung 210 kann zum Beispiel eine Drag-and-Drop Funktionalität über die Benutzerschnittstelle bereitstellen, um eine Variable, einen Block, einen Port oder ähnliches für den Schnittstellenadapter zu markieren. Ähnlich kann die Clientvorrichtung 210 eine Auswahlfunktionalität bereitstellen. Zum Beispiel kann ein Benutzer ein Auswahlwerkzeug verwenden (zum Beispiel ein Lassowerkzeug, ein Zeltwerkzeug oder ähnliches), um eine Menge von Signalen zum Gruppieren in eine Strukturvariable auszuwählen. Zusätzlich oder alternativ kann die Clientvorrichtung 210 eine Komponente identifizieren, die keinen Port aufweist, für die ein Schnittstellenadapter zu erzeugen ist. Wenn zum Beispiel die Clientvorrichtung 210 eine Interaktion (zum Beispiel über eine Benutzerschnittstelle) erkennt, die damit assoziiert ist, eine Verbindung mit einem Block anzuzeigen, kann die Clientvorrichtung 210 den Block für einen Schnittstellenadapter auswählen, der einen Port für den Block erzeugt.
  • In einigen Implementierungen kann die Clientvorrichtung 210 die eine oder die mehreren Komponenten identifizieren, für die der Schnittstellenadapter zu erzeugen ist, basierend auf assoziierter Information. Die Clientvorrichtung 210 kann zum Beispiel einen Block identifizieren, für welchen der Schnittstellenadapter zu erzeugen ist, und kann ein Modell analysieren, welches den Block enthält, um eine andere Komponente zu identifizieren, welche mit dem Block assoziiert ist, wie etwa eine Quellenkomponente (zum Beispiel ein Quellblock), eine Zielkomponente (zum Beispiel ein Zielblock), ein übergeordnetes System (wenn der Block zum Beispiel ein Subsystem ist), eine Automotive Open Systems Architecture (AUTOS AR) Komponente oder ähnliches. In diesem Fall kann die Clientvorrichtung 210 den Schnittstellenadapter für den Block und die andere Komponente erzeugen basierend auf dem Bestimmen, dass die andere Komponente mit dem Block assoziiert ist. Auf diese Weise kann die Clientvorrichtung 210 eine Kommunikation zwischen dem Block und der anderen Komponente ermöglichen.
  • In einigen Implementierungen kann die Clientvorrichtung 210 die eine oder die mehreren Komponenten identifizieren basierend auf Information, die sich auf ein Modell bezieht. Die Clientvorrichtung 210 kann zum Beispiel eine XML Datei identifizieren, welche eine Menge von Skalarparametern enthält (zum Beispiel eine XML Datei, die mit einer funktionellen Attrappenschnittstelle („functional mock-up interface“, FMI), einer funktionellen Attrappeneinheit („functional mock-up unit“, FMI) oder ähnliches assoziiert ist). In diesem Fall kann die Clientvorrichtung 210 automatisch die Menge von Skalarparametern zu einer Menge von Strukturen anpassen, um die XML Datei für ein Modell zu verwenden.
  • In einigen Implementierungen kann die Clientvorrichtung 210 eine Komponente identifizieren basierend auf einen Typ von Signal, welches von einem Typ von Verbindung empfangen wird. Die Clientvorrichtung 210 kann zum Beispiel bestimmen, dass ein erster Block mit einer kausalen Verbindung assoziiert ist, und dass ein zweiter Block mit einer akausalen Verbindung assoziiert ist, und kann den ersten Block und den zweite Block zum Erstellen des Schnittstellenadapters identifizieren basierend auf der Nicht-Übereinstimmung zwischen der kausalen Verbindung und der akausalen Verbindung.
  • In einigen Implementierungen kann die Clientvorrichtung 210 eine Komponente erzeugen, wenn der Schnittstellenadapter erzeugt wird. Wenn zum Beispiel eine Expansionsschicht für den Schnittstellenadapter erzeugt wird, kann die Clientvorrichtung 210 ein Subsystem erzeugen, das eine Operation eines Modellblocks repräsentiert. Zusätzlich oder alternativ kann die Clientvorrichtung 210, wenn ein Schnittstellenadapter für ein Signal erzeugt wird, einen Port, einen Busselektor, einen Buserzeuger oder ähnliches erzeugen, um zu ermöglichen, dass ein Signal übertragen wird. Zusätzlich oder alternativ kann die Clientvorrichtung 210 ein Signal erzeugen, ein Signal ändern, einen Parameter erzeugen, einen Parameter ändern oder ähnliches. Die Clientvorrichtung 210 kann zum Beispiel eine Porterweiterungsschicht erzeugen, welche einen Bus, eine Menge von Verbindungsleitungen (zum Beispiel eine PhysMod Verbindungslinie mit Semantiken, die auf physikalischen Gesetzen beruhen, eine Funktionsaufruflinie, eine Nachrichtenlinie, eine Steuersignallinie, etc.) enthält. In diesem Fall kann die Menge von Verbindungsleitungen kausal oder akausal sein, Teil eines Systems von Differential- und/oder algebraischen Gleichungen sein oder ähnliches.
  • Mit dem Beispiel fortfahrend kann ein Port mit einer ersten Menge von Attributen assoziiert sein (zum Beispiel eine Menge von vererbten Attributen), und die Clientvorrichtung 210 kann den Port mit einer Verbindung assoziieren, die mit einer zweiten, unterschiedlichen Menge von Attributen assoziiert ist. In diesem Fall kann die Clientvorrichtung 210 den Port adaptieren (zum Beispiel die erste Menge von Attributen ändern, um zu veranlassen, dass der Port mit der Verbindung interoperabel ist, die mit der zweiten Menge von Attributen assoziiert ist). Zusätzlich oder alternativ kann die Clientvorrichtung 210 basierend auf den Attributen einer Verbindung eine Version einer Komponente auswählen. Wenn der Port zum Beispiel polymorph ist (zum Beispiel mit mehreren anderen Versionen mit entsprechenden Attributen assoziiert ist) kann die Clientvorrichtung 210 eine Version des Ports auswählen, die mit Attributen assoziiert ist, welche mit der zweiten Menge von Attributen übereinstimmt.
  • In einigen Implementierungen kann die Clientvorrichtung 210 eine Komponente basierend auf einem Gültigkeitsbereich identifizieren. Die Clientvorrichtung 210 kann zum Beispiel bestimmen, dass eine bestimmte Verbindung mit einem bestimmten Gültigkeitsbereich assoziiert ist (zum Beispiel einer Genauigkeitskompatibilität), und kann eine oder mehrere Komponenten auswählen, um die Verbindung basierend auf einem Gültigkeitsbereich von der einen oder den mehreren Komponenten auswählen, welche mit dem bestimmten Gültigkeitsbereich der bestimmten Verbindung übereinstimmen. In einigen Implementierungen kann die Clientvorrichtung 210 eine Komponente basierend auf einen Einheitstyp adaptieren. Die Clientvorrichtung 210 kann zum Beispiel bestimmen, dass eine bestimmte Verbindung mit einem bestimmten Einheitstyp assoziiert ist (beispielsweise einer physikalischen Einheit), und kann eine oder mehrere Komponenten auswählen, um die Verbindung adaptieren basierend darauf, dass die eine oder die mehreren Komponenten mit demselben Einheitstyp assoziiert sind.
  • Zusätzlich oder alternativ kann die Clientvorrichtung 210 eine Komponente erzeugen, die mit dem Ändern eines Zustands assoziiert ist. Wenn die Clientvorrichtung 210 zum Beispiel einen Zustandsschreiberblock identifiziert, welcher einen Zustand schreibt mit einer Struktur, die sich von der Struktur einer anderen Komponente unterscheidet, zu der der Zustand geschrieben wird (zum Beispiel ein Block, eine XML Datei, eine funktionelle Attrappeneinheit (FMU) oder ähnliches) kann die Clientvorrichtung 210 eine oder mehrere Komponenten erzeugen, die damit assoziiert sind, den Zustand, welcher in die andere Struktur geschrieben wird, zu ändern, um dafür zu sorgen, dass der Zustand mit der Struktur der anderen Komponente übereinstimmt. Zusätzlich oder alternativ kann die Clientvorrichtung 210 andere Zustandsänderungsblöcke für einen Schnittstellenadapter verwenden, wie etwa einen Zustandsleseblock zum Lesen eines Zustands. In diesem Fall kann die Clientvorrichtung 210 einen oder mehrere Blöcke erzeugen, um den Zustand zu ändern, nachdem der Zustand gelesen wurde, und einen Zustandsschreiberblock, um den Zustand zu schreiben, nachdem der Zustand geändert wurde. In einigen Implementierungen kann die Clientvorrichtung 210 eine Komponente erzeugen, um es einem Zustandsschreiberblock, der mit einer ersten Struktur assoziiert ist, zu ermöglichen, zu einer anderen Komponente mit einer zweiten Struktur zu schreiben. Die Clientvorrichtung 210 kann, beispielsweise unter Verwendung von einer oder von mehreren Komponenten (zum Beispiel einem oder mehreren Blöcken, einem Befehl einer FMI API, etc.), einen Schnittstellenadapter erzeugen, um es dem Zustandsschreiberblock, der mit der ersten Struktur assoziiert ist, zu erlauben, einen Zustand zu einer FMI zu schreiben, welche mit der zweiten Struktur assoziiert ist.
  • In einigen Implementierungen kann die Clientvorrichtung 210 eine Verbindung erzeugen, wenn sie den Schnittstellenadapter erzeugt. Die Clientvorrichtung 210 kann zum Beispiel einen Link erzeugen, der damit assoziiert ist, eine Übertragung von Information von einem ersten Teil eines Modells zu einem zweiten Teil eines Modells darzustellen und/oder zu verursachen. In einigen Implementierungen kann die Clientvorrichtung 210 ein Signal „mappen“ bzw. abbilden, wenn sie den Schnittstellenadapter erzeugt. Die Clientvorrichtung 210 kann zum Beispiel ein Signalelement eines Bussignals auf einen bestimmten internen Eingangsport einer Porterweiterungsschicht „mappen“ bzw. abbilden. Zusätzlich oder alternativ kann die Clientvorrichtung 210 einen Parameter „mappen“ bzw. abbilden, wenn sie den Schnittstellenadapter erzeugt. Die Clientvorrichtung 210 kann zum Beispiel eine oder mehrere Variablen eines untergeordneten Subsystems auf eine Strukturvariable eines übergeordneten Systems „mappen“ bzw. abbilden. In einigen Implementierungen kann die Clientvorrichtung 210 die eine oder die mehreren Variablen auf die Strukturvariable „mappen“ bzw. abbilden basierend auf einem Namen der einen oder der mehreren Variablen und der Strukturvariable, einem Identifikator, welcher assoziiert ist mit der einen oder den mehreren Variablen und der Strukturvariable, einer Benutzereingabe, die mit dem Auswählen des „Mappings“ bzw. der Abbildung assoziiert ist, oder ähnliches.
  • In einigen Implementierungen kann die Clientvorrichtung 210 eine Menge von Verbindungen „mappen“ bzw. abbilden basierend auf einer oder auf mehreren Eigenschaften eines Feldes, das mit einem Port assoziiert ist. Zum Beispiel kann ein Feld mit einer Größe, einer Dimension oder ähnliches assoziiert sein, und die Clientvorrichtung 210 kann eine Menge von Verbindungen, die mit dem Port assoziiert sind, „mappen“ bzw. abbilden basierend auf der Größe des Feldes, der Dimension des Feldes, einer Menge von Identifikatoren, die in dem Feld enthalten sind, oder ähnliches.
  • In einigen Implementierungen kann die Clientvorrichtung 210 Information empfangen, die mit dem Bestimmen eines „Mappings“ bzw. einer Abbildung assoziiert ist. Die Clientvorrichtung 210 kann zum Beispiel über die Benutzerschnittstelle Information empfangen, die mit dem Identifizieren eines Ports assoziiert ist, auf den ein Signal zu „mappen“ bzw. abzubilden ist, einer Strukturvariablen, auf die eine Vektorvariable zu „mappen“ bzw. abzubilden ist, oder ähnliches. In einigen Implementierungen kann die Clientvorrichtung 210 ein „Mapping“ bzw. eine Abbildung ausführen basierend auf korrespondierender Information von einem ersten Teil und einem zweiten Teil der Abbildung. Wenn zum Beispiel der erste Teil des „Mappings“ bzw. der Abbildung ein englisches Wort ist (Beispielsweise „engine“), das übersetzt Maschine bedeutet, und der zweite Teil des „Mappings“ bzw. der Abbildung ein deutsches Wort ist (zum Beispiel „Maschine“), kann die Clientvorrichtung 210 bestimmen, dass der zweite Teil ein deutsches Wort ist und kann das deutsche Wort ins Englische übersetzen, um zu bestimmen, dass der erste Teil dem zweiten Teil entspricht und auf diesen zu „mappen“ bzw. abzubilden ist. Ähnlich kann die Clientvorrichtung 210 beim „Mappen“ bzw. Abbilden auch eine teilweise Übereinstimmung berücksichtigen. Die Clientvorrichtung 210 kann zum Beispiel einen ersten Teil auf einen zweiten Teil „mappen“ bzw. abbilden ungeachtet dessen, ob ein Schreibfehler oder ein Tippfehler oder ein Einschließen oder Weglassen einer Vorsilbe oder Nachsilbe oder ähnliches vorliegt. In diesem Fall kann die Clientvorrichtung 210 das „Mapping“ bzw. die Abbildung ausführen basierend darauf, dass der erste Teil und der zweite Teil ein Schwellwertübereinstimmungskriterium erfüllen.
  • Zusätzlich oder alternativ kann die Clientvorrichtung 210 ein Signal oder einen Parameter analysieren, um das „Mapping“ bzw. die Abbildung zu bestimmen. Die Clientvorrichtung 210 kann zum Beispiel eine Menge von Signalen graphisch „mappen“ bzw. abbilden (zum Beispiel einer Weise von oben nach unten, in einer Weise von links nach rechts, etc.). Zusätzlich oder alternativ kann die Clientvorrichtung 210 die Menge der Signale basierend auf einer anderen Reihenfolge „mappen“ bzw. abbilden. Die Clientvorrichtung 210 kann zum Beispiel eine Menge von Signalen auf eine Menge von Ports „mappen“ bzw. abbilden basierend auf Nameninformation für die Menge der Signale (zum Beispiel eine Menge von Signalnamen) und der der Menge von Ports (zum Beispiel eine Menge von Portnamen).
  • Zusätzlich oder alternativ kann die Clientvorrichtung 210 die Menge der Signale „mappen“ bzw. abbilden basierend auf einem Abgleich von Namensinformation (die Clientvorrichtung 210 kann zum Beispiel ein Signal, das als „Reset“ identifiziert ist, auf einen Port „mappen“ bzw. abbilden, der als „Reset“ identifiziert ist). Zusätzlich oder alternativ kann die Clientvorrichtung 210 die Menge von Signalen auf die Menge von Ports „mappen“ bzw. abbilden basierend auf einer Busblattsignaltiefenreihenfolge (wenn zum Beispiel die Menge von Signalen Signalelemente eines Bussignals sind), einer Hierarchie, die mit der Menge von Signalen assoziiert ist, oder ähnliches. In einigen Implementierungen kann die Clientvorrichtung 210 die Menge von Signalen basierend auf einer Spezifikation „mappen“ bzw. abbilden (zum Beispiel einem Dokument, welches ein „Mapping“ bzw. ein „Mapping“ bzw. eine Abbildung von Signalen beschreibt). Die Clientvorrichtung 210 kann zum Beispiel eine Porterweiterungsspezifikation (zum Beispiel ein Entwurfsdokument, welches Ports und Signale eines Modells beschreibt) für ein in Bezug genommenes Modell einer Komponenten erhalten, und kann ein „Mapping“ bzw. eine Abbildung der Signale zu Ports vornehmen (zum Beispiel für eine Expansionsschicht eines Schnittstellenadapter) basierend auf der Porterweiterungsspezifikation. In einigen Implementierungen kann die Clientvorrichtung 210 Information erhalten, welche eine Speicherklassenanforderung identifiziert. Die Clientvorrichtung 210 kann zum Beispiel Signale auf Ports „mappen“ bzw. abbilden basierend auf Speicherklassenanforderungen (zum Beispiel eine oder mehrere Anforderungen, die sich auf Speicheranforderungen der Signale oder Ports beziehen), die mit den Signalen und den Ports assoziiert sind (zum Beispiel entsprechend einer Speicherklasse eines ein bestimmten Signals zu einem Port, der mit derselben Speicherklasse assoziiert ist).
  • Wie in 9 weiter gezeigt, kann der Prozess 900 das Bereitstellen von Information beinhalten, die mit dem Schnittstellenadapter assoziiert ist (Block 930). Die Clientvorrichtung 210 kann zum Beispiel Information bereitstellen, die mit dem Schnittstellenadapter assoziiert ist. In einigen Implementierungen kann die Clientvorrichtung 210 eine Darstellung von einer oder von mehreren Komponenten in einer Benutzerschnittstelle ändern. Die Clientvorrichtung 210 kann zum Beispiel veranlassen, dass eine Repräsentation eines Blocks in eine Repräsentation von einer oder mehreren Komponenten geändert wird, die mit dem Schnittstellenadapter assoziiert sind, wie einen oder mehrere Busselektoren, einen oder mehrere interne Eingangsports oder ähnliches. Zusätzlich oder alternativ kann die Clientvorrichtung 210 eine Darstellung eines Teils eines Modells ändern. Die Clientvorrichtung 210 kann zum Beispiel eine Repräsentation von einem oder von mehreren Blöcken des Modells ändern, um Information bezüglich eines Schnittstellenadapters bereitzustellen, welcher für den einen oder die mehreren Blöcke des Modells bereitgestellt ist, und kann Information bezüglich des Schnittstellenadapters verbergen von einem anderen Teil des Modells. Auf diese Weise kann die Clientvorrichtung 210 vermeiden, dass einem Modell unnötige visuelle Komplexität hinzugefügt wird (zum Beispiel basierend auf dem Bereitstellen einer Teilmenge von Information, die mit dem Modell assoziiert ist, und Verbergen einer anderen Teilmenge von Information, die mit dem Modell assoziiert ist).
  • In einigen Implementierungen kann die Clientvorrichtung 210 den Schnittstellenadapter mit einer Schicht assoziieren, aus einer Menge von Schichten, und kann Information bereitstellen, die mit dem Schnittstellenadapter assoziiert ist, basierend auf dem Bereitstellen von Information, die mit der Schicht assoziiert ist. Die Clientvorrichtung 210 kann zum Beispiel eine Menge von Schichten eines Modells klassifizieren (zum Beispiel Schichten, die mit unterschiedlichen Stufen der Granularität von Information bezüglich des Modells assoziiert sind) und kann eine graphische Darstellung des Schnittstellenadapters einer bestimmten Schicht der Menge von Schichten zuweisen. In diesem Fall, wenn ein Benutzer mit einer Benutzerschnittstelle interagiert, um die Clientvorrichtung 210 zu veranlassen, die bestimmte Schicht bereitzustellen (zum Beispiel, oder eine Schicht mit höherer Granularität als die bestimmte Schicht) kann die Clientvorrichtung 210 veranlasst werden eine Repräsentation des Schnittstellenadapters bereitzustellen. Zusätzlich oder alternativ kann die Clientvorrichtung 210 die Repräsentation des Schnittstellenadapters bereitstellen, wenn eine Schicht der Menge von Schichten, die eine höhere Granularität als die bestimmte Schicht aufweist, bereitgestellt wird. In einigen Implementierungen kann die Clientvorrichtung 210 eine Repräsentation einer Maske bereitstellen, die mit einem Subsystem assoziiert ist, als eine bestimmte Schicht der Menge von Schichten. Eine Maske kann sich auf eine Schnittstelle für einen zugrundeliegenden Block beziehen und kann assoziiert sein mit einem logischen Arbeitsbereich, der lokal für eine Hierarchie ist, mit der die Maske assoziiert ist, dem Subsystem, mit dem die Maske assoziiert ist, oder der bestimmten Schicht, mit der die Maske assoziiert ist. In diesem Fall kann die Clientvorrichtung 210 eine Repräsentation der Maske als eine Schicht aus einer Menge von Schichten, die für ein Modell bereitgestellt werden bereitstellen.
  • In einigen Implementierungen kann die Clientvorrichtung 210 eine textliche Repräsentation des Schnittstellenadapters bereitstellen. Die Clientvorrichtung 210 kann zum Beispiel eine textliche Beschreibung des Schnittstellenadapters (zum Beispiel eine Programmcodebeschreibung, eine XML Beschreibung, etc.) oder ähnliches bereitstellen, um den Schnittstellenadapter für ein textuelles Modell zu repräsentieren. Auf diese Weise stellt die Clientvorrichtung 210 Information bezüglich dem Schnittstellenadapter bereit, wenn der Schnittstellenadapter für ein textuelles Modell erzeugt wird.
  • In einigen Implementierungen kann die Clientvorrichtung 210 Programmcode erzeugen, der mit dem Schnittstellenadapter assoziiert ist, und kann den Programmcode bereitstellen. Die Clientvorrichtung 210 kann zum Beispiel Code erzeugen, der mit dem Ausführen einer Funktionalität des Schnittstellenadapters assoziiert ist (zum Beispiel Programmcode, der damit assoziiert ist, einen Port zu repräsentieren, Programmcode, der damit assoziiert ist, eine Datentypumwandlung zu repräsentieren, etc.). Auf diese Weise kann die Clientvorrichtung 210 Programmcode bereitstellen, welcher ein Modell widerspiegelt, auf das ein Schnittstellenadapter angewandt ist, statt das Modell ohne den angewandten Schnittstellenadapter, wodurch das Debuggen des Schnittstellenadapters ermöglicht wird. Die Clientvorrichtung 210 kann zum Beispiel ersten Programmcode bereitstellen, welcher dem Modell ohne den Schnittstellenadapter entspricht, wie in 8A gezeigt (welche beispielhaften Programmcode zeigt, welcher zwei Komponenten des Modells repräsentiert), und zweiten Programmcode, welcher dem Modell mit dem Schnittstellenadapter entspricht, wie in 8B gezeigt (welche beispielhaften Programmcode zeigt, der erweiterten Eingängen der zwei Komponenten repräsentiert, statt die zwei Komponenten). In einigen Implementierungen kann die Clientvorrichtung 210 dazu veranlasst werden, Programmcode zu erzeugen, der das Modell repräsentiert, ohne Programmcode zu beinhalten, welcher den Schnittstellenadapter repräsentiert, wodurch das Debuggen des Modells ohne zusätzliche Komplexität durch den Schnittstellenadapterprogrammcode ermöglicht wird. In einigen Implementierungen kann die Clientvorrichtung 210 veranlassen, dass das Modell ausgeführt wird. Die Clientvorrichtung 210 kann zum Beispiel das Modell ausführen und kann veranlassen, dass zwei oder mehr (zuvor) inkompatible Komponenten unter Verwendung des Schnittstellenadapters kommunizieren. Zum Beispiel kann ein Quellblock ein Signal an eine Komponente über eine oder mehrere andere Komponenten bereitstellen, die für eine Porterweiterungsschicht, eine Schnittstellenadaptionschicht oder ähnliches erzeugt wurden. Ähnlich kann die Komponente ein Signal an einen oder mehrere Zielblöcke über eine oder mehrere andere Komponenten bereitstellen, die für eine Porterweiterungsschicht oder ähnliches erzeugt wurden. In einigen Implementierungen kann die Clientvorrichtung 210 veranlassen, dass Information von einem übergeordneten System zu einem untergeordneten Subsystem, von einem untergeordneten Subsystem zu einem übergeordneten System oder ähnliches transferiert wird (zum Beispiel basierend auf einer Abbildung von Parametern, Abbildung von Eingängen, Abbildung von Ausgängen oder ähnliches), wie mit Bezug auf 4A und 4B gezeigt. Auf diese Weise ermöglicht die Clientvorrichtung 210 auf automatische Weise eine Kompatibilität für ein Modell basierend auf dem Erzeugen eines Schnittstellenadapters.
  • Auch wenn Fig. beispielhafte Blöcke des Prozesses 900 zeigt, kann der Prozess 900 in einigen Implementierungen zusätzliche Blöcke, weniger Blöcke, andere Blöcke, oder anders angeordnete Blöcke aufweisen als diejenigen, die in 9 gezeigt sind. Zusätzlich oder alternativ können zwei oder mehr der Blöcke des Prozesses 900 parallel ausgeführt werden.
  • Auf diese Weise erzeugt die Clientvorrichtung 210 automatisch Komponenten und/oder „mappt“ bzw. bildet Variablen/Parameter/Signale ab, um andere Komponenten eines Modells interoperabel zu machen.
  • Weiter verringert die Clientvorrichtung 210 die visuelle Komplexität, indem sie selektiv eine Darstellung eines Schnittstellenadapters bereitstellt und/oder selektiv Programmcode bereitstellt, welcher den Schnittstellenadapter repräsentiert. Weiterhin verringert die Clientvorrichtung 210 die Wahrscheinlichkeit von Modellierungsfehlern, die mit einem manuellen Erzeugen von Komponenten zur Interoperabilität assoziiert sind, wodurch eine Verarbeitung reduziert wird, die mit wiederholten Iterationen des Erzeugens und Testens von Komponenten assoziiert ist, welche ein Benutzer möglicherweise ausführen muss, um sicherzustellen, dass die Komponenten korrekt erstellt wurden.
  • 10A-10D sind Diagramme einer beispielhaften Implementierung 1000 zur Schnittstellenadaption.
  • Wie in 10A gezeigt, kann die Clientvorrichtung 210 über die TCE 220 eine Darstellung von Programmcode bereitstellen, welcher ein Modell repräsentiert. Der Programmcode kann Teile von Programmcode beinhalten, die mit dem repräsentieren von Teilen des Modells assoziiert sind (zum Beispiel Ports, Verbinder, Variablen, etc.). Wie in 10B gezeigt, kann das Modell eine Menge von Modellblöcken enthalten, wie einen oder mehrere Busse, Selektoren oder ähnliches. Die Clientvorrichtung 210 kann einen Schnittstellenadapter erzeugen, um Signale, Parameter, Zustände oder ähnliches des Modells und/oder des Programmcodes zu adaptieren. Wie zum Beispiel in 10C gezeigt, kann die Clientvorrichtung 210 Information betreffend Parameter des Modells in einer strukturierten Weise bereitstellen und kann Information bezüglich zwei Parametern Gewicht und Bias mit jeweiligen Werten struct(‚v1‘, 0.2, ‚v2‘, 0.5) bzw. struct(‚v1‘, 0, ‚v2‘, 0) bereitstellen. Eine Benutzerinteraktion, die von der Clientvorrichtung 210 erkannt wird, kann die Clientvorrichtung 210 dazu veranlassen, vom Bereitstellen von Information bezüglich der Parameter des Modells in der strukturierten Weise zum Bereitstellen von Information bezüglich der Parameter des Modells in einer flachen Weise zu wechseln. In diesem Fall kann die Clientvorrichtung 210 zur Anzeige Information bezüglich vier Parameter (zum Beispiel entsprechend den zwei Parametern) Gewicht.v1, Gewicht.v2, Bias.v1 und Bias.v2 bereitstellen. Die vier Parameter können mit jeweiligen Werten von 0.5, 0.5, 0, 0 assoziiert sein, entsprechend den Werten der zwei Parameter.
  • Auf diese Weise kann die Clientvorrichtung 210 textuelle Information bereitstellen, welche anderen Repräsentationen eines Modells entspricht (zum Beispiel eine strukturierte Repräsentation unter Verwendung von Strukturvariablen und eine nichtstrukturierte Repräsentation unter Verwendung von nichtstrukturierten Variablen). Weiter kann die Clientvorrichtung 210 es erlauben, einem Benutzer Information bereitzustellen und/oder in einem ersten Format zu betrachten (zum Beispiel flach) für ein Modellelement, welches die Information in einem zweiten Format verwendet (zum Beispiel strukturiert). In einigen Implementierungen kann sich die textliche Information von einer graphischen Darstellung des Modells unterscheiden. Zum Beispiel kann das Modell eine strukturierte Repräsentation von Gewicht und Bias verwenden und die textliche Information kann in einer flachen, unstrukturierten Repräsentation dargestellt werden.
  • Wie oben dargelegt, sind 10A-10D lediglich als ein Beispiel bereitgestellt. Andere Beispiele sind möglich und können sich unterscheiden von dem, was beschrieben wurde mit Bezug auf 10A-10D.
  • 11 ist ein Diagramm einer beispielhaften Implementierung 1100 zur Schnittstellenadaption.
  • Wie in 11 und mit dem Bezugszeichen 1110 gezeigt, kann die Clientvorrichtung 210 (zum Beispiel die TCE 200) zur Anzeige ein Entwurfsspezifikationsdokument bereitstellen, das mit dem Beschreiben eines Teiles eines Modellelements assoziiert ist (zum Beispiel TopBus, das eine Menge von Elementen A; B enthält, welche Q und R enthalten; und C, welches S und 7 enthält). In einigen Implementierungen kann das Entwurfsspezifikationsdokument einem Teil des Modells entsprechen, der in 8A-8D gezeigt ist. Wie mit dem Bezugszeichen 1120 gezeigt, kann die Clientvorrichtung 210 Code empfangen, der mit dem Erzeugen von TopBus assoziiert ist. Wie mit dem Bezugszeichen 1130 gezeigt, sind eine Menge von Signalen für die Identifikatoren A, Q und R spezifiziert. Wie mit dem Bezugszeichen 1140 gezeigt, wird ein virtueller Bus spezifiziert für B basierend auf einer Abbildung der Signale Q und R. Wie mit dem Bezugszeichen 1150 gezeigt, ist ein nichtvirtueller Bus spezifiziert für C basierend auf einem Busobjekt. Wie mit dem Bezugszeichen 1160 gezeigt, enthält der virtuelle Bus TopBus den nichtvirtuellen Bus C. Basierend auf dem empfangenen Code kann die Clientvorrichtung 210 automatisch eine Porterweiterungsschicht mit drei graphischen Ports erzeugen. Der erste Port kann ein Skalar sein, der das Signal A repräsentiert. Der zweite Port kann ein virtueller Bus (Kabelbinder) sein, der einen ersten Port und einen zweiten Port enthält, welche die Signale Q und R repräsentierten. Der dritte Port kann ein nichtvirtueller Bus sein, der mit dem Empfangen einer Struktur assoziiert ist (welche zum Beispiel die Signale S und 7 enthält). Auf diese Weise kann ein Schnittstellenadapter erzeugt werden basierend auf einer Benutzerspezifikation für ein referenziertes Modell.
  • Wie oben dargelegt, wird 11 lediglich als ein Beispiel gegeben. Andere Beispiele sind möglich und können sich unterscheiden von dem, was beschrieben wurde mit Bezug auf 11.
  • Die vorstehende Offenbarung stellt Zeichnungen und Beschreibung bereit, ist aber nicht dazu gedacht, erschöpfend zu sein, oder die Implementierungen auf die präzise offenbarte Form zu beschränken. Abwandlungen und Variationen sind möglich im Licht der obigen Offenbarung, oder können gewonnen werden im Rahmen der Verwirklichung der Implementierungen.
  • Der Ausdruck Programmcode ist weit zu verstehen und beinhaltet textbasierten Code, der automatisch ausgeführt werden kann (zum Beispiel C Code, C++ Code, Code in Hardwarebeschreibungssprache (HDL), Code in „high-speed integrated circuits“, VHSIC, -HDL (VHDL), Verilog, Java und/oder andere Arten von hardware- oder softwarebasiertem Code, welcher kompiliert und/oder synthetisiert werden kann); Textdateien, die ausgeführt werden können in Verbindung mit anderen ausführbaren Dateien. In einem Beispiel kann Programmcode andere Kombinationen der oben identifizierten Klassen beinhalten (zum Beispiel textbasierten Code, Binärcode, Textdateien, etc.). Alternativ oder zusätzlich kann Programmcode von jedem beliebigen Typ sein, wie etwa Funktion, Skript, Objekt, etc., und ein Abschnitt von Programmcode kann ein oder mehrere Zeichen, Zeilen, etc. des Programmcodes enthalten.
  • Einige Implementierungen sind hierin beschrieben in Verbindung mit Schwellenwerten. Wie hierin verwendet, kann sich das erfüllen eines Schwellenwerts darauf beziehen, dass ein Wert größer als der Schwellenwert ist, mehr als der Schwellenwert ist, höher als der Schwellenwert ist, gleich oder größer dem Schwellenwert ist, weniger als der Schwellenwert ist, kleiner als der Schwellenwert ist, kleiner oder gleich dem Schwellenwert ist, gleich dem Schwellenwert ist, etc.
  • Es wurden hierin bestimmte Benutzerschnittstellen beschrieben und/oder in den Figuren gezeigt. Eine Benutzerschnittstelle kann eine graphische Benutzerschnittstelle, eine nicht-graphische Benutzerschnittstelle, eine textbasierte Benutzerschnittstelle, etc. umfassen. Eine Benutzerschnittstelle kann Information zur Anzeige bereitstellen. In einigen Implementierungen kann ein Benutzer mit der Information interagieren, wie etwa durch Bereitstellen von Eingänge über eine Eingabekomponente einer Vorrichtung, welche die Benutzerschnittstelle zur Anzeige bereitstellt. In einigen Implementierungen kann eine Benutzerschnittstelle durch eine Vorrichtung und/oder einen Benutzer konfigurierbar sein (zum Beispiel kann ein Benutzer die Größe der Benutzerschnittstelle ändern, Information, welche über die Benutzerschnittstelle bereitgestellt wird, eine Position der über die Benutzerschnittstelle bereitgestellten Information, etc.). Zusätzlich oder alternativ kann eine Benutzerschnittstelle vorkonfiguriert sein auf eine Standardkonfiguration, auf eine spezifische Konfiguration basierend auf einem Typ der Vorrichtung, auf welcher die Benutzerschnittstelle angezeigt wird, und/oder eine Menge von Konfigurationen basierend auf Fähigkeiten und/oder Spezifikationen, welche mit einer Vorrichtung assoziiert sind, auf welcher die Benutzerschnittstelle angezeigt wird.
  • Es wird ersichtlich sein, dass die Systeme und/oder Verfahren, die hierin beschrieben sind, in anderen Formen von Hardware, Firmware oder einer Kombination von Hardware und Software implementiert werden kann. Die tatsächliche spezialisierte Steuerhardware oder der Softwarecode, die verwendet werden, um diese wird, um diese Systeme und/oder Verfahren zu implementieren, ist nicht auf die Implementierungen beschränkt. Die Operationen und das Verhalten der Systeme und/oder Verfahren wurden daher hierin ohne Bezug auf spezifischen Softwarecode beschrieben - es sei verstanden, dass Software und Hardware zum Implementieren der Systeme und/oder Verfahren basierend auf der hierin gegebenen Beschreibung entworfen werden können.
  • Auch wenn bestimmte Kombinationen von Merkmalen in den Ansprüchen genannt werden und/oder in der Beschreibung offenbart werden, sind diese Kombinationen nicht gedacht, die Offenbarung möglicher Implementierungen zu beschränken. Tatsächlich können viele dieser Merkmale in Weisen kombiniert werden, die nicht speziell in den Ansprüchen genannt und/oder in der Beschreibung offenbart sind. Auch wenn jeder nachstehend aufgeführte abhängige Anspruch sich direkt nur einen bezieht, beinhaltet die Offenbarung möglicher Implementierungen jeden abhängigen Anspruch in Kombination mit jedem anderen Anspruch in dem Anspruchssatz
  • Es soll kein Element, keine Handlung und keine Anweisung, das bzw. die hierin verwendet ist, als kritisch oder essentiell verstanden werden, solange nicht ausdrücklich so angegeben. Auch sind die Artikel „ein“, „eine“ und „einer“, wie hierin verwendet, gedacht, auch ein oder mehrere Elemente zu beinhalten und können synonym mit „ein oder mehrere“ verwendet werden. Weiter ist der Ausdruck „Menge“ wie hierin verwendet gedacht, ein oder mehrere Elemente zu beinhalten (zum Beispiel in Beziehung stehende Elemente, nicht in Beziehung stehende Elemente, eine Kombination von in Beziehung stehenden Elementen und nicht in Beziehung stehenden Elementen, etc.) und kann synonym mit „ein oder mehrere“ verwendet werden. Wo nur ein Element angedacht ist, wird der Ausdruck „ein“ bzw. eine ähnliche Formulierung verwendet. Weiter seien die Ausdrücke „enthält“, „beinhaltet“, „hat“ oder ähnliches, wie hierin, als nicht abgeschlossene Ausdrücke zu versehen. Weiter soll der Ausdruck „basierend auf“ verstanden werden, „basierend zumindest zum Teil auf“ zu bedeuten, solange nicht ausdrücklich anders angegeben.

Claims (29)

  1. Computerlesbares Medium, welches Anweisungen speichert, wobei die Anweisungen umfassen: eine oder mehrere Anweisungen, welche, wenn sie von einem oder von mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren dazu veranlassen zu: Erkennen einer Benutzerinteraktion, über eine Benutzerschnittstelle, mit einer bestimmten Komponente eines Modells; Erzeugen einer Menge von Komponenten, die mit der bestimmten Komponente assoziiert sind, basierend auf dem Erkennen der Benutzerinteraktion mit der bestimmten Komponente des Modells; und Veranlassen, dass über die Benutzerschnittstelle eine Repräsentation der Menge von Komponenten bereitgestellt wird und zwar in Assoziation mit dem Modell, wobei die Repräsentation anzeigt, dass die Menge von Komponenten damit assoziiert sind, Interoperabilität zu ermöglichen.
  2. Computerlesbares Medium nach Anspruch 1, wobei die Menge von Komponenten assoziiert sind damit, Interoperabilität zu ermöglichen für einen Port der bestimmten Komponente und einen Port einer Quellkomponente oder einer Zielkomponente.
  3. Computerlesbares Medium nach Anspruch 2, wobei die eine oder die mehreren Anweisungen, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren weiter dazu veranlassen zu: Empfangen eines Triggers zum Ausführen des Modells nach dem Erzeugen der Menge von Komponenten; Verarbeiten von Daten, die mit dem Modell assoziiert sind, unter Verwendung der Menge von Komponenten; und Bereitstellen der Daten an die Zielkomponente oder Empfangen der Daten von der Quellkomponente über den Port der bestimmten Komponente basierend auf dem Verarbeiten der Daten unter Verwendung der Menge von Komponenten.
  4. Computerlesbares Medium nach Anspruch 2, wobei der Port der bestimmten Komponente ein graphischer Port ist; und wobei die eine oder die mehreren Anweisungen, welche den einen oder die mehreren Prozessoren dazu veranlassen, die Menge von Komponenten zu erzeugen, den einen oder die mehreren Prozessoren dazu veranlassen zu: Erzeugen eines Subsystems für die bestimmte Komponente, wobei das Subsystem eine Menge von internen Ports beinhaltet; und Abbilden von einem oder von mehreren Signalen empfangen oder bereitgestellt von dem graphischen Port an die Menge von internen Ports, so dass ein Signalelement, von dem einen oder den mehreren Signalen, bereitgestellt wird an oder empfangen wird von einem internen Port aus der Menge von internen Ports, wenn das eine oder die mehreren Signale von dem graphischen Port empfangen oder bereitgestellt werden.
  5. Computerlesbares Medium nach Anspruch 4, wobei das eine oder die mehreren Signale zumindest eines der folgenden beinhalten: Vektortyp-Daten, Matrixtyp-Daten, zusammengesetzte Daten, nicht zusammengesetzte Daten, oder eine Kombination von zusammengesetzten und nicht zusammengesetzten Daten.
  6. Computerlesbares Medium nach Anspruch 4, wobei das eine oder die mehreren Signale ein erstes Signalelement mit einem ersten Datentyp, einer ersten Dimension und einer ersten Abtastrate, und ein zweites Signalelement mit einem zweiten Datentyp, einer zweiten Dimension und einer zweiten Abtastrate beinhaltet; und mit zumindest einem der folgenden: der erste Datentyp unterscheidet sich von dem zweiten Datentyp, die erste Dimension unterscheidet sich von der zweiten Dimension, oder die erste Abtastrate unterscheidet sich von der zweiten Abtastrate.
  7. Computerlesbares Medium nach Anspruch 4, wobei das eine oder die mehreren Signale eine erste Anzahl von Signalelementen enthalten und die Menge von internen Ports eine zweite Anzahl von internen Ports enthält, wobei die erste Anzahl um eine dritte Anzahl von Signalelementen größer ist als die zweite Anzahl; und wobei die eine oder die mehreren Anweisungen, welche den einen oder die mehreren Prozessoren dazu veranlassen, das eine oder die mehreren Signale abzubilden, den einen oder die mehreren Prozessoren dazu veranlassen zu: Veranlassen, dass die dritte Anzahl von Signalelementen terminiert wird.
  8. Computerlesbares Medium nach Anspruch 4, wobei das eine oder die mehreren Signale eine erste Anzahl von Signalelementen enthält und die Menge von internen Ports eine zweite Anzahl von internen Ports enthält, wobei die zweite Anzahl um eine dritte Anzahl von Signalelementen größer ist als die erste Anzahl; und wobei die eine oder die mehreren Anweisungen, welche den einen oder die mehreren Prozessoren dazu veranlassen, das eine oder die mehreren Signale abzubilden, den einen oder die mehreren Prozessoren dazu veranlassen: Veranlassen, dass die dritte Anzahl von Signalelementen geerdete Signalelemente werden.
  9. Vorrichtung, umfassend: einen oder mehrere Prozessoren zum: Analysieren eines Modells, um eine bestimmte Komponente zu bestimmen, welche einen graphischen Port aufweist, wobei die Komponente in einem graphischen Modell enthalten ist, wobei das graphische Modell eine Quellkomponente oder eine Zielkomponente enthält, wobei der graphische Port mit der Quellkomponente oder der Zielkomponente verbunden ist, wobei der graphische Port in dem graphischen Modell mit einem Signal eines ersten Formats assoziiert ist, welches mit der Komponente inkompatibel ist; Bestimmen, basierend auf dem Analysieren des Modells, dass das Signal von dem ersten Format ist, das mit der Komponente inkompatibel ist; Erzeugen, basierend auf dem Bestimmen, dass das Signal von dem ersten Format ist, das mit der Komponente inkompatibel ist, eines Subsystems, welches eine Menge von internen Ports und eine oder mehrere Komponenten, die assoziiert sind mit dem Abbilden des graphischen Ports auf die Menge von internen Ports zum Ändern des Signals in ein zweites Format, das mit der Komponente kompatibel ist, beinhaltet; und Bereitstellen, über eine Benutzerschnittstelle, einer Repräsentation des Subsystems.
  10. Vorrichtung nach Anspruch 9, wobei der eine oder die mehreren Prozessoren weiter dazu konfiguriert sind zu: Identifizieren einer Menge von Portnamen, die mit der Menge von internen Ports assoziiert sind; Identifizieren einer Menge von Signalelementnamen, die mit einer Menge von Signalelementen des Signals assoziiert sind; Abbilden der Menge von Portnamen auf die Menge von Signalelementnamen; und Abbilden der Menge von Signalelementen auf die Menge von internen Ports basierend auf dem Abbilden der Menge von Portnamen auf die Menge von Signalelementnamen.
  11. Vorrichtung nach Anspruch 9, wobei das Signal ein Bussignal ist; und wobei der eine oder die mehreren Prozessoren weiter dazu konfiguriert sind zu: Bestimmen einer Busblattsignaltiefenreihenfolge (engl: bus leaf signal depth order); und Abbilden einer Menge von Signalelementen des Signals auf die Menge von internen Ports basierend auf der Busblattsignaltiefenreihenfolge.
  12. Vorrichtung nach Anspruch 9, wobei der eine oder die mehreren Prozessoren weiter dazu konfiguriert sind zu: Bestimmen einer Hierarchie, die mit einer Menge von Signalelementen von dem einen oder den mehreren Signalen assoziiert ist; und Abbilden der Menge von Signalelementen auf die Menge von internen Ports basierend auf der Hierarchie, die mit der Menge von Signalelementen assoziiert ist.
  13. Vorrichtung nach Anspruch 9, wobei der eine oder die mehreren Prozessoren weiter dazu konfiguriert sind zu: Bestimmen, dass der graphische Port mit einem Attribut assoziiert ist, welches das Erzeugen des Subsystems erlaubt; und wobei der eine oder die mehreren Prozessoren beim Erzeugen des Subsystems weiter dazu konfiguriert sind zu: Erzeugen des Subsystems basierend auf dem Bestimmen, dass der graphische Port mit dem Attribut assoziiert ist, welches das Erzeugen des Subsystems erlaubt.
  14. Vorrichtung nach Anspruch 9, wobei der eine oder die mehreren Prozessoren weiter dazu konfiguriert sind zu: Bestimmen, dass ein anderer graphischer Port der Komponente mit einem Attribut assoziiert ist, welches eine Subsystemerzeugungsprozedur die für den anderen graphischen Port ausgeführt werden soll nicht erlaubt; und Auslassen des anderen graphischen Ports von der Subsystemerzeugungsprozedur.
  15. Verfahren, umfassend: Identifizieren einer Menge von Komponenten zum Aufbauen einer Adaptionsschicht, wobei jede Komponente der Menge von Komponenten mit einem Interoperabilitätsproblem assoziiert ist, wobei das Identifizieren der Menge von Komponenten von einer Vorrichtung ausgeführt wird; Aufbauen einer Menge von Adaptionsschichten für die Menge von Komponenten, wobei jede Adaptionsschicht der Menge von Adaptionsschichten mit einer entsprechenden Komponente der Menge von Komponenten assoziiert ist, wobei jede Adaptionsschicht das Interoperabilitätsproblem für die entsprechende Komponente korrigiert, wobei das Aufbauen der Adaptionsschicht von der Vorrichtung ausgeführt wird; und Bereitstellen von Information, welche eine bestimmte Adaptionsschicht aus der Menge von Adaptionsschichten identifiziert, wobei das Bereitstellen der Information von der Vorrichtung ausgeführt wird.
  16. Verfahren nach Anspruch 15, wobei das Aufbauen der Menge von Adaptionsschichten umfasst: Aufbauen von zumindest einem von: einer graphischen Adaptionsschicht, einer binären Adaptionsschicht, oder einer textuellen Adaptionsschicht.
  17. Verfahren nach Anspruch 15, wobei das Aufbauen der Menge von Adaptionsschichten umfasst: Aufbauen einer Portadaptionsschicht, wobei die Portadaptionsschicht einen Bus enthält, wobei der Bus zumindest zwei umfasst von: einer PhysMod Verbindungslinie, einer Funktionsaufruflinie, einem Datensignal, einer Nachrichtenlinie, oder einer Steuersignallinie.
  18. Verfahren nach Anspruch 17, wobei das Aufbauen der Menge von Adaptionsschichten umfasst: Erzeugen einer bestimmten Menge von Komponenten, welche den Bus ermöglichen, wobei die bestimmte Menge von Komponenten zumindest eines beinhaltet von: einem Verbindungsport, einem Funktionsaufrufport, einem Eingangsport, oder einem Ausgangsport; und wobei das Bereitstellen der Information, welche die bestimmte Portabstraktionsschicht identifiziert, umfasst: Bereitstellen von Information, welche die Portadaptionsschicht identifiziert, wobei die Information, welche die Portadaptionsschicht identifiziert, Information auslässt, welche die bestimmte Menge von Komponenten identifiziert.
  19. Verfahren nach Anspruch 15, weiter umfassend: Bestimmen, dass eine bestimmte Komponente ein bestimmtes Modell referenziert; und wobei das Aufbauen der Menge von Adaptionsschichten für die Menge von Komponenten umfasst: Aufbauen der bestimmten Adaptionsschicht für das bestimmte Modell.
  20. Verfahren nach Anspruch 19, wobei das Aufbauen der bestimmten Adaptionsschicht umfasst: Identifizieren einer Spezifikation für das bestimmte Modell; und Aufbauen der bestimmten Adaptionsschicht basierend auf der Spezifikation.
  21. Verfahren nach Anspruch 20, wobei die Spezifikation eine Speicherklassenanforderung beinhaltet; und wobei das Aufbauen der bestimmten Adaptionsschicht umfasst: Aufbauen der bestimmten Adaptionsschicht basierend auf der Speicherklassenanforderung.
  22. Verfahren nach Anspruch 15, wobei das Bereitstellen der Information, welche die bestimmte Adaptionsschicht identifiziert, weiter umfasst: Bereitstellen, über eine Benutzerschnittstelle, einer Debugansicht der bestimmten Adaptionsschicht, wobei die Debugansicht eine Menge von Benutzerschnittstellenelementen beinhaltet, die mit dem Bereitstellen von Information assoziiert sind, die mit dem Ausführen von Debugging assoziiert ist.
  23. Verfahren nach Anspruch 15, wobei die bestimmte Adaptionsschicht assoziiert ist mit dem Ausführen eines Adaptionsdienstes für zumindest eines von: einer Mehrzahl von verbundenen graphischen Blöcken, einem graphischen Block und einer Ausführbaren, einem graphischen Block und einem textuellen Block, einer Mehrzahl von hierarchisch verbundenen Komponenten, einer oder mehreren funktionellen Attrappenschnittstellenkomponenten, einer oder mehreren funktionellen Attrappeneinheitskomponenten, einer algebraischen Differentialgleichung, oder einer algebraischen Gleichung.
  24. Verfahren nach Anspruch 15, wobei das Aufbauen der Menge von Adaptionsschichten umfasst: Abbilden einer Menge von Parametern einer bestimmten Komponente auf einen Parameter eines übergeordneten Systems.
  25. Computerlesbares Medium, welches Anweisungen speichert, wobei die Anweisungen umfassen: eine oder mehrere Anweisungen, welche, wenn sie von einem oder von mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren dazu veranlassen: Bestimmen, dass eine bestimmte Komponente, von einer oder mehreren Komponenten eines Modells, nicht in der Lage ist, mit einem Port einer Quellkomponente oder einer Zielkomponente oder mit einem übergeordneten System oder mit einem untergeordneten Subsystem zu arbeiten; Auswählen, von der einen oder den mehreren Komponenten, der bestimmten Komponente des Modells basierend auf dem Bestimmen, dass die bestimmte Komponente nicht in der Lage ist, zu arbeiten; Erzeugen einer Menge von Komponenten, die mit der bestimmten Komponente assoziiert sind, basierend auf dem Auswählen der Komponente, wobei die Menge von Komponenten assoziiert ist damit, die Interoperabilität für einen Port der bestimmten Komponente und den Port der Quellkomponente oder der Zielkomponente zu ermöglichen, wobei die Menge von Komponenten assoziiert ist damit, die Interoperabilität für die bestimmte Komponente und das übergeordnete System oder das untergeordnete Subsystem der bestimmten Komponente zu ermöglichen; und Erzeugen von Programmcode, der mit der Menge von Komponenten assoziiert ist, basierend auf dem Erzeugen der Menge von Komponenten, wobei der Programmcode so erzeugt wird, dass, wenn er ausgeführt wird, der Programmcode die Interoperabilität für den Port oder für das übergeordnete System oder das untergeordnete Subsystem ermöglicht.
  26. Computerlesbares Medium nach Anspruch 25, wobei die eine oder die mehreren Anweisungen, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren weiter dazu veranlassen: Bereitstellen des Programmcodes zur Anzeige über eine Benutzerschnittstelle.
  27. Computerlesbares Medium nach Anspruch 25, wobei die eine oder die mehreren Anweisungen, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren weiter dazu veranlassen: Ausführen des Programmcodes zum Simulieren der bestimmten Komponente.
  28. Computerlesbares Medium nach Anspruch 25, wobei die eine oder die mehreren Anweisungen, welche den einen oder die mehreren Prozessoren dazu veranlassen, den Programmcode zu erzeugen, den einen oder die mehreren Prozessoren weiter dazu veranlassen: Erzeugen von zumindest einem von: einer ersten Version des Programmcodes, der mit der bestimmten Komponente assoziiert ist, oder einer zweiten Version des Programmcodes, der mit der Menge von Komponenten assoziiert ist, wobei die zweite Version des Programmcodes sich von der ersten Version des Programmcodes unterscheidet.
  29. Computerlesbares Medium nach Anspruch 25, wobei die eine oder die mehreren Anweisungen, welche den einen oder die mehreren Prozessoren dazu veranlassen, den Programmcode zu erzeugen, den einen oder die mehreren Prozessoren weiter dazu veranlassen: Erzeugen einer ersten Version des Programmcodes, welche eine erste Codeschnittstelle beinhaltet, wobei die erste Codeschnittstelle der bestimmten Komponente entspricht; und Erzeugen einer zweiten Version des Programmcodes, welche eine zweite Codeschnittstelle beinhaltet, wobei die zweite Codeschnittstelle der Menge von Komponenten entspricht.
DE112016005466.1T 2015-11-30 2016-11-30 Portmanagement für graphische Modellierung Pending DE112016005466T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562260776P 2015-11-30 2015-11-30
US62/260,776 2015-11-30
US15/298,019 US10755001B2 (en) 2015-11-30 2016-10-19 Port management for graphical modeling
US15/298,019 2016-10-19
PCT/US2016/064098 WO2017095856A1 (en) 2015-11-30 2016-11-30 Port management for graphical modeling

Publications (1)

Publication Number Publication Date
DE112016005466T5 true DE112016005466T5 (de) 2018-10-11

Family

ID=58777999

Family Applications (2)

Application Number Title Priority Date Filing Date
DE112016005466.1T Pending DE112016005466T5 (de) 2015-11-30 2016-11-30 Portmanagement für graphische Modellierung
DE212016000256.2U Active DE212016000256U1 (de) 2015-11-30 2016-11-30 Portmanagement für graphische Modellierung

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE212016000256.2U Active DE212016000256U1 (de) 2015-11-30 2016-11-30 Portmanagement für graphische Modellierung

Country Status (3)

Country Link
US (1) US10755001B2 (de)
DE (2) DE112016005466T5 (de)
WO (1) WO2017095856A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3493051A1 (de) * 2017-11-30 2019-06-05 The MathWorks, Inc. System und verfahren zur beurteilung der einhaltung des implementierungscodes mit einer softwarearchitekturspezifikation
DE102018003142A1 (de) 2017-12-13 2019-06-13 The Mathworks, Inc. Automatische Einstellung von Multitasking-Konfigurationen für ein Codeprüfsystem
US10761815B2 (en) * 2018-12-04 2020-09-01 Sap Se Supporting non-OData sources in application development
CN111367511B (zh) * 2020-03-02 2023-05-23 北京中科宇航技术有限公司 一种仿真模型接口适配开发系统及其工作方法
US10949586B1 (en) * 2020-07-01 2021-03-16 Xilinx, Inc. Post-synthesis insertion of debug cores
CN112217808B (zh) * 2020-09-27 2023-10-24 南京南瑞信息通信科技有限公司 基于消息队列的级联架构防火墙联动封解禁装置及方法
US20240184538A1 (en) * 2022-12-05 2024-06-06 Dspace Gmbh Method for configuring model components of a system model
US12009660B1 (en) 2023-07-11 2024-06-11 T-Mobile Usa, Inc. Predicting space, power, and cooling capacity of a facility to optimize energy usage
CN117632114B (zh) * 2024-01-24 2024-05-17 浙江大学 一种基于文件分析的fmu文件的导入方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7487076B2 (en) * 2003-10-31 2009-02-03 The Mathworks, Inc. Simplified data signal support for diagramming environment languages
US8620629B1 (en) * 2004-09-20 2013-12-31 The Mathworks, Inc. Identification and simulation of multiple subgraphs in multi-domain graphical modeling environment

Also Published As

Publication number Publication date
US10755001B2 (en) 2020-08-25
DE212016000256U1 (de) 2018-08-09
WO2017095856A1 (en) 2017-06-08
US20170154137A1 (en) 2017-06-01

Similar Documents

Publication Publication Date Title
DE112016005466T5 (de) Portmanagement für graphische Modellierung
CA2951145C (en) Page constructor and page constructing method
US20170344227A1 (en) Visual designer for editing large schemaless xml file
US8904302B2 (en) Identification of semantically relevant concepts in a graphical model
DE102019003851A1 (de) Systeme und Verfahren zum automatischen Realisieren von Modellen zu Co-Simulation
US20180212839A1 (en) SYSTEM-ON-CHIP (SoC) ASSEMBLY, CONFIGURABLE IP GENERATION AND IP INTEGRATION UTILIZING DISTRIBUTED COMPUTER SYSTEMS
US9471211B2 (en) Chaining applications
US8229735B2 (en) Grammar checker for visualization
US20080127153A1 (en) Language for binding Scalable Vector Graphics elements to JAVA classes
US20120166977A1 (en) User programming access to data model in user interface design
CN111930378A (zh) Web端项目表单设计器的实现方法、装置和系统
Gove V3SPA: A visual analysis, exploration, and diffing tool for SELinux and SEAndroid security policies
US10229096B1 (en) Automatic generation of a presentation from code based on analysis of an intermediate version of the code
US9678718B1 (en) Analyzing information associated with logic
US9378562B1 (en) Management of variants in a graphical modeling environment
US9767170B2 (en) Storage area network zone optimization
US9082104B2 (en) Method and apparatus for managing system specifications
DE102019008598A1 (de) Identifikation und Visualisierung von Assoziationen zwischen Code, der von einem Modell generiert ist, und Quellen, welche die Codegeneration beeinflussen
CN110312990A (zh) 配置方法及系统
US10585997B1 (en) Automatic grouping of signals of a model
CN108205608B (zh) 一种模型可配置的仿真装置
US20170060111A1 (en) Method for connecting models of technical systems in a testing device equipped for control unit development
US11762943B1 (en) Systems and methods for interactive display of symbolic equations extracted from graphical models
Danenas et al. Domain driven development and feature driven development for development of decision support systems
CN112199086B (en) Automatic programming control system, method, device, electronic equipment and storage medium

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication