Daten von einem externen Gerät abfangen (Labjack)



  • Hallo 🙂
    Wir machen derzeit in der Schule
    die Programmiersprache C.
    Bis jetzt kam ich sehr gut zurecht
    doch nun haben wir eine Aufgabe gekriegt
    wo wir ein Messwerterfassungssystem schreiben sollen!
    Ich war an dem Tag leider nicht da und hab
    es erstmal so versucht
    doch leider weiß ich nicht genau wie ich die
    Headerdatei die er uns beigelegt hat und eine obj. Datei soll eingebunden
    werden als Modul(der code ist wohl noch zu komplex für uns)
    ist eingebunden doch ich weiß nicht so recht wie ich die aufrufen/nutzen soll :p
    edit: nutze Pelles C als IDE
    -----
    Das Programm soll starten und direkt das Menü (was als Modul geschrieben ist)
    aufrufen. Hier hat man die Auswahl
    Auswahl1: Anzahl der Messwerte festlegen
    Auswahl2: Messung durchführen und anzeigen
    Auswahl3: Mittelwert berechnen
    Auswahl4: Programm beenden

    Hier erstmal die Main Datei

    #include <stdio.h>
    #include <conio.h>
    #include "menue.h"
    #include "Sensor.h"
    
    int main(int argc, char *argv[])
    {
       int menueauswahl,AnzahlMesswerte,i,analogsensors;
    	float MesswertSumme, Messwert,Mittelwert;
    	do
    	{
    		menueauswahl = menue();
    		switch(menueauswahl)
    		{
    			case 1:
    				_clrscr();
    				printf("\nGeben Sie die Anzahl der Messwerte ein: ");
    				scanf("%i",&AnzahlMesswerte);
    				printf("Ihre gewollte Anzahl der Messwerte ist %i",AnzahlMesswerte);
    				_getch();
    				break;
    			case 2:
    					analogsensors = AnalogSensor();
    					for(i=1;i<AnzahlMesswerte;i++)
                                            printf("Messwert  %i: %f",i,Messwert);
    					MesswertSumme = MesswertSumme+Messwert;
    				_getch();
    				break;
    			case 3:
    				printf("Das Ergebnis des arithmetischen Mittelwerts lautet:");
    				printf("\n\nMesswertsumme: %f / Messwertanzahl: %i = Mittelwert: %f ",MesswertSumme,AnzahlMesswerte,Mittelwert);
    				_getch();
    				break;
    			default:
    				printf("Error");
    				_getch();
    				break;
    		}
    
    	}while(menueauswahl!=4);
    
        return 0;
    }
    

    Hier die Menü Datei

    #include <stdio.h>
    #include <conio.h>
    #include "menue.h"
    
    int menu()
    {
    int menueauswahl;
    printf("**********************************************");
    printf("\n---------- Maische fuer Bier&Co -------------");
    printf("\n**********************************************");
    printf("\n\n1. Anzahl der Messwerte eingeben?");
    printf("\n2. Messung durchfuehren und anzeigen?");
    printf("\n3. Mittelwert berechnen und ausgeben?");
    printf("\n4. Programm beenden?");
    printf("\n\nBitte einen Menuepunkt wählen (1-4): ");
    scanf("%i",&menueauswahl);
    return menueauswahl;
    }
    

    und hier die Analog Sensor Datei!

    /* File            : sensor.h
       Autor           : 
       Datum           : 19.09.05
       letzte Aenderung: 19.09.05
       Version         : 0.1       */
    
    /* Funktionsdefinitionen zur Headerdatei sensor.h. Zugriff auf einen Analog-Kanal,
       des USB-Multifunktions-Messdaten-Erfassungssystems(12-Bit-ADU) */
    
    #ifndef __SENSOR_H
    #define __SENSOR_H
    
    /*******************************************
     * Funktion: AnalogSensor                  *
     *******************************************
     *                                         *
     * Beschreibung: Liefert den Messwert      *
     *               eines Analogkanals des    *
     *               Messwerterfassungssystems *
     *               LabJack U12               *
     *                                         *
     *******************************************
     *                                         *
     * Bibliothek      : ljackuw.lib           *
     * Autor           :                *
     * Datum           : 19.05.05              *
     * letzte Aenderung: 19.05.05              *
     * Funktionsname   : AnalogSensor          *
     * Version         : 0.1                   *
     *                                         *
     *******************************************
     *                                         *
     * Uebergabeparameter:                     *
     *                                         *
     * long channel: Gibt die Nummer des       *
     *               Analogkanals AI0-7        *
     *               (0-7) des LabJack U12 an. *
     *                                         *
     *******************************************
     *                                         *
     * Rueckgabeparameter:                     *
     *                                         *
     * float SensorAnalog: Gibt einen Analog-  *
     *                     wert (Temperatur)   *
     *                     zwischen 0-99 °C    *
     *                     zurueck.            *
     *******************************************/
    float AnalogSensor(long channel); /* Prototyp des Sensors */
    
    #endif
    

    So ich hoffe das ist alles was ihr braucht um mir zu helfen 🙂
    Der Fehler (oder das eigentliche Problem was hoffentlich nur das eine ist)
    liegt im case2: weil ich nicht weiß wie ich die Messwerte abrufe/abfange ..
    Wird wohl über den Channel long gehen ... :p

    Liebe Grüße!
    Wenn sonst euch irgendwelche Programmierfehler o.ä. auffallen wäre
    ich auch für die dankbar 🙂



  • Du kriegst im Moment einen Compiler-Error, weil du den Parameter (long Channel) nicht abgibst. Du musst also herausfinden, welcher Wert da der richtige ist und diesen der Funktion übergeben...



  • und wie finde ich den raus ? wo muss ich den angeben?
    ist der case 2 überhaut richtig ? so der aufruf ?



  • Shumuu schrieb:

    und wie finde ich den raus ?

    Dein Gerät hat offenbar 8 Kanäle, von denen du Daten einlesen kannst. Auf welchem Kanal letztlich die Daten sind, die du willst, kann ich dir nicht sagen. Ich kenne das Gerät schließlich nicht. Da könnte ich nur raten (0? 5? alle?). Vermutlich hast du irgendeinen Sensor an einen der Kanäle gepackt (?). Der wäre dann der richtige. Frag deinen Lehrer oder einen Schulkameraden.

    Shumuu schrieb:

    wo muss ich den angeben?

    Beim Aufruf der Funktion AnalogSensor.

    Shumuu schrieb:

    ist der case 2 überhaut richtig ? so der aufruf ?

    Nein. Die Funktion erwartet einen Parameter (long channel), du übergibst aber keinen. Das passt nicht.


Anmelden zum Antworten