Die Hubo C++ Library bietet einen einfachen Weg zur Ansteuerung der Hubo Hardware. Dabei entbindet die Bibliothek den Programmierer von vielfältigen Problemen wie Buskollisionen beim parallelen Zugriff auf den I2C-Bus oder Stolpersteinen bei der Verwendung der Hardware unter verschiedenen Threads, bietet auf der anderen Seite jedoch soviel Echtzeitnähe, wie es der Kernel erlaubt.
Der Bibliothek liegen mehr als zwei Duzend Beispiele bei, welche die Verwendung der Funktionen auf einfache Weise verdeutlichen. Einen Einblick erhalten Sie durch die Dokumentation, welche Sie hier einsehen können (Link zur Dokumentation der Hubo C++ Library).
Anbei seien zwei kurze Code-Beispiele gegeben, die verdeutlichen, wie einfach sich der Zugriff auf die Hardware mittels der Hubo C++ Library realisieren läßt.
Einlesen der analogen Eingänge des Hubo mittels der Hubo C++ Library
Das folgende Beispiel liest 10 mal im Abstand von 1s den analogen Kanal 0 des Hubo ein und gibt ihn auf der Konsole aus.
#include <stdio.h> #include "../hubolib.h" using namespace HuboLib; int main(void) { // Initialize the library once in your program. Initialize(); // Define channel 0 to be sampled once all other channels are not read from the ADC. unsigned short overSampling[MAX_MCP3x08_CHANNELS] = { 1, 0, 0, 0, 0, 0, 0, 0 }; Set_MCP3x08_Oversampling (overSampling); unsigned long adcCount; double volt; for (int i=0; i<10; i++) { Get_AI_Channel (0, adcCount, volt); printf ("ADC count=0x%02lX Volts=%lf\n", adcCount, volt); sleep(1); } // Free library resources. Uninitialize(); return 0; }
Einlesen und setzen der digitalen Ein- und Ausgänge des Hubo mittels der Hubo C++ Library
Dieses Beispiel liest in einer Endlosschleife alle 8 digitalen Eingänge des Hubo ein und gibt sie unmittelbar danach auf dessen 8 Digitalausgängen wieder aus.
#include <stdio.h> #include "../hubolib.h" using namespace HuboLib; int main(void) { // Initialize the library once in your program. Initialize(); unsigned char value = 0; while (1) { // Read all channels and set the value to the outputs. Get_DO_Channels(value); Set_DO_Channels(value); printf ("Value = 0x%02X\n", value); sleep (1); } // Free library resources (keep even if we never get here). Uninitialize(); return 0; }
Vorschau auf die nächste Version der Hubo C++ Library
Unsere Software wird ständig weiterentwickelt. Eine Vorschau auf die nächste Version der Bibliothek und deren Funktionen kann hier eingesehen werden (Vorschau der nächsten Version der Hubo C++ Library).
Lizenzrechtliche Informationen
Die Hubo C++ Library darf für Projekte, welche die Hubo Hardware einsetzen im Rechtsraum der Bundesrepublik Deuschland verwendet werden. Beachten Sie bitte, daß die Verwendung auf eigenes Risiko erfolgt. Insbesondere darf die Bibliothek nicht in sicherheitskritischen Anwendungen eingesetzt werden. Das umfaßt mindestens, jedoch nicht ausschließlich Anwendungen durch die unmitttelbar bzw. mittelbar Gefahr für Gesundheit und Leben besteht, im medizinischen Bereich, Luft- und Raumfahrt. Die Bibliothek darf weiterhin nicht für Steuerungen und Reglungen eingesetzt werden, wenn bei einer Fehlfunktion der Steuerung oder Regelung mit Schäden zu rechnen ist bzw. Schäden im Vorhinein nicht auszuschließen sind. Die Bibliothek darf nicht modifiziert oder weitergegeben werden.
Hubo C++ Library steht unter oben genannten Bedingungen kostenfrei zur Verfügung. Insofern ist der Hersteller der Bibliothek nicht haftbar für jedwede Schäden, welche unmittelbar oder mittelbar durch die Verwendung der Bibliothek oder der mitgelieferten Beispiele entstehen.
Sollten Sie mit einer oder mehreren der vorgenannten Bedingungen nicht einverstanden sein, so ist eine Verwendung der Bibliothek nicht zulässig.