Grundlagen in LabWindowsTM/CVI Einführung in die ereignisorientierte ANSI-C-Programmierumgebung LabWindowsTM/CVI
Jan Wagner Applications Engineer – N...
Grundlagen in LabWindowsTM/CVI Einführung in die ereignisorientierte ANSI-C-Programmierumgebung LabWindowsTM/CVI
Jan Wagner Applications Engineer – National Instruments Germany GmbH
Agenda • Einführung in LabWindows/CVI • Funktionen in LabWindows/CVI • Demos • Einsatz von externen Bibliotheken • Übung • LabWindows/CVI Real-Time Module • Multicore- und Multithreading-Programmierung in LabWindows/CVI • Ressourcen
Der Ansatz von NI – integrierte Softwareplattformen
Spezifische Funktionen für die Entwicklung Bedienelemente für Benutzeroberflächen Assistenten für Datenerfassung und Messgerätesteuerung Bibliotheken, Treiber für Gerätesteuerung Analysebibliotheken, Datenerfassungsbibliotheken Funktionspanel
Funktionen in LabWindows/CVI • Langlebigkeit Grundlage: offene ANSI-C-Standards Stabilität und Abwärtskompatibilität
• Optimiert für Mess- und Testanwendungen Erweiterte Analysebibliotheken Kommandozeile für mehr Effizienz
• Produktivität Integrierte Arbeitsbereichsumgebung Benutzeroberfläche per Drag and drop
User Interface Editor • Drag-and-drop-Editor • Bedienelemente • Benutzerdefinierte Menüs • Einfach zu erstellen — einfach zu verändern
LabWindows/CVI-Entwicklungssysteme 2010 • Verbesserte Produktivität für ANSI-C-Entwickler Benutzerdefinierte Build-Konfigurationen UI-Browser und Arrays bestehend aus Bedienelementen für die Benutzeroberfläche Anbindung an laufende Prozesse Erstellen von Patches
• Vereinfachte FPGA-Kommunikation Benutzerdefinierte Funktionspanels für FPGA-C-API
• Erweiterte Plattformunterstützung LabWindows/CVI Real-Time Module LabWindows/CVI Run-Time Module für Linux
Benutzerdefinierte Build-Konfigurationen • Build-Konfigurationen benutzerdefiniert erstellen • Mehrere Build-Konfigurationen pro Projekt erstellen
Anbindung an laufende Prozesse • LabWindows/CVI bindet laufenden Prozesse ein • Just-in-Time-Debuggen bei Fehlern
Erstellen von Patches für bestehende Programme • Patches für Anwenderdistributionen • Kleinere Distributionen für Fehlerbehebungen • Bedingungen für Patches festlegen
Benutzeroberflächen-Browser • Bedienelemente für die Benutzeroberfläche in Browser-Fenster ansehen • Bedienelemente auf der Benutzeroberfläche platzieren
Arrays bestehend aus Bedienelementen für Benutzeroberflächen • Arrays aus Bedienelementen während der Entwicklung oder Ausführung erstellen • Bequemer programmatischer Zugriff auf Bedienelemente der Benutzeroberfläche • Iterative oder Batch-Modifikationen
LabWindows/CVI 2010 Real-Time Module • Zuverlässige, deterministische Anwendungen erstellen, die sich auf dedizierter Echtzeithardware einsetzen lassen • Systeme über USB-Flash-Laufwerk sichern, wiederherstellen und replizieren • Unterstützt neue Real-Time-Controller • Webbasierte Überwachung und Konfiguration
LabWindows/CVI 2010 Run-Time Module für Linux • Anwendungen auf Linux®-Zielsystemen kompilieren und ausführen Red Hat Enterprise Linux WS 4 & 5 SUSE Linux 10.3, 11.0, 11.1 Scientific Linux 4 & 5
• Aktuelle Bibliotheken • Kommunikation mit FPGA-Geräten
Ressourcen • ni.com/lwcvi/d
Kostenlose Testversion von LabWindows/CVI herunterladen Whitepaper Application Notes Interaktive Tutorien
• NI Developer Zone Weitere Beispiele Tipps und Tricks für C-Entwickler Teil der LabWindows/CVI-Gemeinschaft werden
• NI-Suchmaschine für Beispiele Beispiele für viele Anwendungsbereiche abrufen Beispiele zur Datenerfassung und Kommunikation
Nützliche Links Einführung in LabWindows/CVI Multithreading in LabWindows/CVI Leistungssteigerungen von LabWindows/CVI-Anwendungen Unterstützt LabWindows/CVI C++? Aufrufkonventionen in LabWindows/CVI Aufruf einer LabVIEW-DLL aus einem LabWindows/CVI- oder anderen C/C++-Projekt Erstellen von Importbibliotheken für eine DLL in LabWindows/CVI Aufruf einer Windows-SDK-Funktion mit dem Namen einer LabWindows/CVI-Funktion