|
|
Strings als Parameter an S-Functions zu konstantem Ausdruck |
|
NoUse |
Forum-Newbie
|
|
Beiträge: 1
|
|
|
|
Anmeldedatum: 09.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.09.2015, 13:11
Titel: Strings als Parameter an S-Functions zu konstantem Ausdruck
|
|
|
|
|
Hallo zusammen,
Ich arbeite an der Uni seit neustem mit Matlab/Simulink und bin neu hier im Forum.
------- Edit -------
Ok, war zu schnell geschossen. Mit einfachen Matlab-Enums konnte ich das Problem lösen.
------- Edit Ende ------
Ich habe direkt mal ein elaboriertes Problem. Wir erzeugen C-Code, der auf Mikrocontroller geflasht wird, deshalb möglichst klein sein sollte. Das Problem:
Wir haben >300 CAN-IDs, die wir auch im Simulink-Modell benötigen. Ursprünglich wurden dafür automatisiert mehrere getter/setter wrapper Dateien für jede einzelne ID erzeugt, sowie ein Matlab Script, das einfach nur den Zahlenwert der ID statt dem c-enum Namen zurück gibt. Um das ganze in weniger Dateien zu verpacken (es werden 15.000 Dateien generiert, wenn eine ID hinzu kommt oder geändert wird, werden alle Dateien neu generiert und das ganze im SVN repository ist auch sehr unangenehm), ändere ich gerade die Modell-Architektur.
Meine Idee: Ich lege ein Subsystem mit einer Maske an. In der Maske gibt man einen String ein, der in 'pID' gespeichert wird. Im Subsystem wird einer Konstanten dieser Wert zugewiesen. Die Konstante ist ein Input für eine Matlab-S-Function, die einen String erhält und den Zahlenwert der ID zurück gibt. Das geschieht mit einem switch-case. Dieses Script wird automatisch erzeugt und beinhaltet einen case für jeden ID-Namen.
Das ganze funktioniert soweit, allerdings braucht der Code viel Speicher, da die Strings mit kompiliert werden. Gäbe es eine Möglichkeit das ganze direkt zu dem ID Wert zu kompilieren, da die Parameter (Strings) zur compile-Zeit ja bereits feststehen.
Oder alternativ: kann ich auf das c-enum mit den IDs aus Simulink zugreifen?
Schon mal Danke für jeden Hinweis und jede Hilfe.
Viele Grüße,
NoUse
|
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|