Android™ Data Acquisition Apps erstellen und anwenden
in 5 Schritten

Android Data Acquisition AppsDie Zahl von Android™-gestützten Tablets und Smartphones wächst rasant. Sie sind vielseitig einsetzbar – warum nicht auch für die Messdatenerfassung?

Mit der Universal Library (UL) for Android API können auf einfache Weise eigene Apps zur Messdatenerfassung für Android-Geräte erstellt werden. UL for Android kommuniziert mit unterstützten Measurement Computing-DAQ Geräten über die Android 3.1 Plattform (API Level 12) und folgende.

Das erste DAQ-Modul, das durch die UL for Android unterstützt wurde, ist das BTH-1208LS. Dieses Messmodul bietet vor dem Hintergrund der Kommunikation mit Tablets und Smartphones eine zuverlässige und einfach zu konfigurierende Bluetooth-Anbindung und den Betrieb über wiederaufladbare Akkus. UL for Android wurde inzwischen auf die MCC-Produktlinie mit USB- und Ethernet-basierten Messgeräten erweitert. Eine Aufstellung der von UL for Android unterstützten Geräte finden Sie unter http://www.mccdaq.de/ULforAndroid.

Schritt 1 – Download des Android SDK
Android Software Development Kit (SDK) herunterladen unter http://developer.android.com/studio/releases/sdk-tools.

Während textbasierte Programme zur Messdatenerfassung häufig in C# erstellt werden, findet die Entwicklung für Android meistens mit Java statt. Aus der Sicht von C# Programmierern verwenden beide Sprachen glücklicherweise eine ähnliche Syntax.

Auch wenn die Syntaxen ähnlich sind, muss man sich zunächst mit den Funktionen des Android OS und der Java API beschäftigen, sofern man keine Erfahrungen damit gesammelt hat.

Schritt 2 – Download von “UL for Android”
“UL for Android” kostenfrei herunterladen unter http://www.mccdaq.de/ULforAndroid.

UL for Android

Vor dem Programmieren einer DAQ-Anwendung ist es wichtig, sich mit den zur Kommunikation mit den MCC-Messgeräten benötigten Klassen vertraut zu machen. Die folgende Tabelle beschreibt die wichtigsten Klassen der Universal Library for Android. Eine komplette Aufstellung und ausführliche Beschreibung der API ist in der Hilfedatei zu “UL for Android” zu finden.

Klasse Beschreibung
DaqDeviceManager Erkennt und erzeugt DAQ-Geräte.
DaqDevice Repräsentiert ein DAQ-Gerät und enthält Methoden zum Zugriff auf seine I/O-Subsysteme, zur Identifizierung und auf Konfigurationen.
AiDevice Repräsentiert ein Subsystem mit analogen Eingängen eines DAQ-Gerätes und enthält Methoden der analogen Erfassung wie aIn() und aInScan(). Diese Klasse enthält auch Methoden zum Zugriff auf Informationen und Konfiguration des AI-Subsystems.
AoDevice Repräsentiert ein Subsystem mit analogen Ausgängen eines DAQ-Gerätes und enthält Methoden der analogen Ausgabe wie aOut() und aOutScan(). Diese Klasse enthält auch Methoden zum Zugriff auf Informationen und Konfiguration des AO-Subsystems.
DioDevice Repräsentiert ein Digital-I/O Subsystem eines DAQ-Gerätes und enthält Methoden für Digital-I/O wie dIn() und dOut(). Diese Klasse enthält auch Methoden zum Zugriff auf Informationen und Konfiguration des DIO-Subsystems.
CioDevice Repräsentiert ein Subsystem mit Counter-I/O eines DAQ-Gerätes und enthält Methoden für Counter-I/O wie cIn() und cClear(). Diese Klasse enthält auch Methoden zum Zugriff auf Informationen und Konfiguration des CIO-Subsystems.
TmrDevice Repräsentiert ein Subsystem mit Timer-I/O eines DAQ-Gerätes und enthält Methoden für Timer-I/O wie tmrOutStart() und tmrOutStop().Diese Klasse enthält auch Methoden zum Zugriff auf Informationen und Konfiguration des Tmr-Subsystems.

Schritt 3 – Download der Android Beispielprojekte
MCC stellt eine Reihe von Beispielen zu Verfügung als Startpunkt für schnelle Applikationsentwicklung. Die Beispiele in der folgenden Tabelle decken unterschiedliche DAQ-Funktionalitäten ab. Die Beispielprojekte können zu herunterladbaren Apps kompiliert werden.

Einige der Beispiele sind auch als lauffähige Apps auf Google Play™ erhältlich.

Beispielprojekt Beschreibung
AIn Erfasst einen A/D-Eingangskanal.
AIn_Log Erfasst eine Reihe von A/D-Eingangskanälen mit einer bestimmten Abtastrate und speichert die erfassten Messdaten in einer csv-Datei.
AInScan Scannt eine Reihe von A/D-Eingangskanälen und speichert die erfassten Werte in einem Array.
AInScan_Continuous Scannt eine Reihe von A/D-Eingangskanälen kontinuierlich im Hintergrund und speichert die Daten in einem Array.
AInScan_Events Scannt A/D-Eingangskanäle, zeigt über EventSize den letzten oder mehrere erfasste Datensätze an und aktualisiert den letzten Datensatz bei scan completion oder end.
AInScan_ExtClock Scannt eine Reihe von A/D-Eingangskanälen mit der über einen externen Takt vorgegebenen Abtastrate und speichert die Messdaten in einem Array.
AInScan_ExtTrigger Wählt die Triggerquelle, die zur Initiierung der A/D-Wandlung über DaqDevice.aInScan() verwendet wird, mit der Option AiScanOption.EXTTRIGGER.
AInScan_LoadQueue Bereitet eine Channel-Gain-Liste vor und lädt diese auf das Gerät. Mit einer Funktion des analogen Eingangs wird demonstriert, wie die Liste arbeitet.
AInScan_Plot Scannt eine Reihe von A/D-Eingangskanälen kontinuierlich im Hintergrund und stellt die zuletzt erfassten Messwerte grafisch dar.
AOut Schreibt einen Wert in einen angegebenen D/A-Ausgabekanal.
AOutScan Schreibt mehrere Werte in einen angegebenen D/A-Ausgabekanal.
CIn Setzt den Ereigniszähler zurück und liest dessen Wert aus.
DBitIn Liest den Wert eines einzelnen digitales Eingangs-Bits aus.
DBitOut Setzt den Status eines einzelnen digitalen Ausgangs-Bits.
DBitSetIn Konfiguriert falls erforderlich den ausgewählten Port als Eingang und liest und zeigt dann den Wert des Ports an.
DIn Liest den Wert des digitalen Eingangs-Ports.
DOut Schreibt einen Wert in einen angegebenen digitalen Ausgangs-Port.
TIn Erfasst einen Temperaturkanal und zeigt den Messwert an.
TmrOut Sendet eine Frequenzausgabe an einen spezifizierten Timer.

Schritt 4 – Beispiel-Quellcode in Eclipse importieren
Eclipse ist eine integrierte Entwicklungsumgebung (IDE), die im Android SDK (ADT Bundle) enthalten ist. Mit den folgenden Schritten wird das “UL for Android” Beispielprojekt in den Eclipse-Arbeitsbereich importiert:

  • Eclipse starten, einen Arbeitsbereichsordner auswählen und auf OK klicken. Geben Sie einen Namen in das Textfeld Arbeitsbereich ein, um einen neuen Ordner zu erstellen.
  • Wählen Sie File»New»Project. Das Dialogfeld New Project wird geöffnet.
  • Erweitern Sie den Android-Ordner, wählen Sie ein vorhandenes Android-Projekt aus und klicken Sie auf Next. Die Dialogbox Import Projects öffnet sich.
  • Klicken Sie auf Browse und navigieren Sie zu dem Ordner, der die Beispielprojekte enthält.
  • Aktivieren Sie Copy projects into workspace. Ist diese Funktion aktiviert, werden die Projekte in den aktuellen Arbeitsbereich kopiert. Diese Funktion ist nützlich, wenn Sie eine Kopie des Beispielprojektes getrennt vom Quellcode beibehalten wollen. Ist diese Funktion nicht aktiviert, werden alle Änderungen des Beispielprojektes im Quellcode durchgeführt.
  • Klicken Sie auf Finish.
  • Wählen Sie Window»Show View»Package Explorer, um das Beispiel im Package Explorer zu öffnen.

Schritt 5 – Bereitstellen und Starten der Beispiel-App auf einem verbundenen Gerät
Vor dem Ausführen der Beispiel-App muss das Gerät folgendermaßen eingerichtet werden:

  • Aktivieren Sie USB Debugging auf dem Android-Gerät. Weitere Informationen hierzu finden Sie in der Gerätedokumentation.
  • Wenn Sie ein Bluetooth-Messgerät verwenden, stellen Sie sicher, dass das Gerät bereits mit dem Android-Hostsystem gekoppelt ist.

Die folgenden Schritte schließen den Vorgang zum Bereitstellen und Ausführen der App auf einem Android-Tablet oder -Smartphone ab.

  • Wählen Sie im Package Explorer den Ordner aus, der das auszuführende Projekt enthält.
  • Wählen Sie Run»Run und die Android-Anwendung in der Dialogbox Run As. Klicken Sie auf OK. Eclipse installiert die Beispiel-App auf dem verbundenen Gerät. Das Beispiel startet automatisch, sobald die Installation abgeschlossen ist.