Hallöchen
In unserer Firma wird die Hardware durch LabVIEW-Applikationen getestet. Da ich SW-Entwickler bin (C auf HC11), frage ich mich, ob es möglich und sinnvoll ist, eine LabVIEW-Applikation zu entwickeln, um meinen C-Code zu testen.
Ist es möglich, C-Files und H-Files in LabVIEW zu benützen und gezielt Funktionen mit verschiedenen Argumenten aufzurufen und die Rückgabewerte zu analysieren?
Wie gesagt läuft mein C-Code auf einem HC11er. Es gibt also keine DLL oder EXE, welche ich einbinden könnte.
Meine Vorstellung: den C-Code in ein Verzeichnis kopieren, LabVIEW-Applikation starten, Knopf drücken: Grüne Lampe bedeutet, dass der Code sich so verhält wie er soll, rote Lampe zeigt ein Fehlverhalten des Codes an, mit Kennung des aktuellen Test-Schrittes.
Danke für Hinweise.
StinkyWinky
[quote=StinkyWinky]Hallöchen
Ist es möglich, C-Files und H-Files in LabVIEW zu benützen und gezielt Funktionen mit verschiedenen Argumenten aufzurufen und die Rückgabewerte zu analysieren?
didierj schrieb:Woher soll LV wissen, ob dein Code auch das ist was er bewirken soll, du bist ja der einzige, der weiss, was das Ziel ist.
Ja genau! Natürlich muss ich meiner LV-App auch sagen, was für ein Verhalten mein Prüfling (= die C-Funktion) haben soll. Konkret z.B. welcher Return-Wert bei einem bestimmten Argument zu erwarten ist. Dieses simple Beispiel könnte man natürlich auch mit einer DLL abdecken.
didierj schrieb:Um ein HC11-Programm zu testen würde ich eher dort drin Zusatzcode einfügen, der bestimmte I/O-Ports ansteuert und diese Prots dann mit LED's bestücken.
Das geht eben nicht, da der Speicher des HC11s praktisch voll ist und Test-Code in der Regel einiges grösser ist als der Nutz-Code (oder sein sollte
)
Muss ich mich wohl nach einer anderen Lösung umsehen
Ich würde sagen es geht mit einer DLL.
Du könntest deinen C-Code in eine DLL packen und von LV aus aufrufen. Eine universelle Eingangs-Ausgangsfunktion zu definieren wird aber für mehrere Quellcodes schwer sein.
Wie stellst du dir das in C++ vor, was würdest du dort machen?
Vielleicht ist es leichter die Logik in C++ zu machen und LV nur als Anzeige und zur Parametrisierung zu benutzen.
eugen graf schrieb:Wie stellst du dir das in C++ vor, was würdest du dort machen?
Ich würde vermutlich in VC++ eine Applikation mit dem gewünschten GUI erstellen und den Code des Prüflings gleich dazu compilierennken. Der Test-Code könnte dann direkt Konstanten z.B. Min/Max-Limiten, Default-Werte, Strings etc. aus den h-Files (des Prüflings) verwenden um die Rückgabewerte der Funktionen des Prüflings zu vergleichen.
Zusätlich könnte mein Test-Code die globalen Variablen auslesen. Kurz gesagt: Der Test-Code könnte alles mit dem Prüfling anstellen, was dort "public" ist. Das nennt sich Unit-Testing:
http://de.wikipedia.org/wiki/Unit-Test
eugen graf schrieb:Ich würde sagen es geht mit einer DLL.
Ok. Ich müsste also den Code meines Prüflings in eine DLL packen und könnte die in eine LV-Applikation einbinden. Dann könnte ich auf alle Funktionenn in der DLL zugreifen.
Könnte ich denn auch auf Konstanen aus h-Files zugreifen? Müsste ich die Werte doppelt halten (im LV und h-File)? Müsste ich das h-File selber parsen?
Die Variante DLL hat noch einen Nachteil: Es ist ein zusätzlicher Zwischenschritt (mit VC++) nötig. Zudem könnte ich das recht simple GUI auch gleich dort implementieren.
ABER: In unserer Firma gibt es Stimmen die kein neues, zusätzliches Tool einführen möchten, da ja bereits alle (HW)-Tests einheitlich mit LV gemacht werden. Daher meine vielleicht etwas "abartige" Frage.