Ganz einfaches Problem...Komme aber NICHT drauf -.-



  • #include <cvirte.h>		/* Needed if linking in external compiler; harmless otherwise */
    #include <userint.h>
    #include "LED und Schalter.h"
    
    static int panelHandle;
    
    int main (int argc, char *argv[])
    {
    	if (InitCVIRTE (0, argv, 0) == 0)	/* Needed if linking in external compiler; harmless otherwise */
    		return -1;	/* out of memory */
    	if ((panelHandle = LoadPanel (0, "LED und Schalter.uir", PANEL)) < 0)
    		return -1;
    	DisplayPanel (panelHandle);
    	RunUserInterface ();
    	return 0;
    }
    
    int CVICALLBACK Led (int panel, int control, int event,
    		void *callbackData, int eventData1, int eventData2)
    {
    	switch (event)
    		{
    		case EVENT_COMMIT:
    
    			break;
    		}
    	return 0;
    }
    
    int CVICALLBACK Schalter (int panel, int control, int event,
    		void *callbackData, int eventData1, int eventData2)
    {
    	switch (event)
    		{
    		case EVENT_COMMIT:
    			SetCtrlVal(panelHandle, PANEL_LED, 1);
    
    		break;
    		}
    	return 0;
    }
    
    int CVICALLBACK Quit (int panel, int control, int event,
    		void *callbackData, int eventData1, int eventData2)
    {
    	switch (event)
    		{
    		case EVENT_COMMIT:
    			QuitUserInterface (0);
    			break;
    		}
    	return 0;
    }
    

    Das is mein Code...Das Programm is ganz einfach...Ich hab en Panel mit Schalter und ner LED (Un nem Quit Knopf aber der is ja eh wayne...). Ist der Schalter auf an dann soll die LED leuchten, wenner auf aus is dann soll die LED auch aus sein! Also bei mir geht die LED jetzt immer an wenn ich einmal auf an klicke...Aber sie geht nicht mehr aus...

    SetCtrlVal(panelHandle, PANEL_LED, 1); heisst ja das sie an gehen soll...Nur wenn ich dann darunter einfach noch sowas mache nur mit 0 drin dann bringt das rein garnix...Ich komm aber jetz grad nit drauf wos hackt 😞



  • 1. Sämtliche Header sind definitiv kein ANSI C und mir auch gänzlich unbekannt.
    2. Woher weiss die Library überhaupt, dass es die Callbacks überhaupt gibt?
    3. Wie bzw. wo frägst du die Schalterstellung denn ab?

    Und nun noch das übliche: Bitte aussagekräftige Topics und [cpp]-Tags verwenden.



  • 1. Ähm ich programmiere inner Schule defintiv C...
    2. Das hab ich in CVI über Generate All Code gemacht! Das macht der im Prinzip automatisch
    3. Bei SetCtrlVal(panelHandle, PANEL_LED, 1); "frage" ich das ab...



  • NephTis schrieb:

    1. Ähm ich programmiere inner Schule defintiv C...

    Deswegen sind das trotzdem keine C Header - was für einen Compiler (und Hilfsbibliotheken) verwendest du denn? Und offenbar besteht dein Problem auch nicht im C-Teil, sondern in deiner Bibliothek.

    2. Das hab ich in CVI über Generate All Code gemacht! Das macht der im Prinzip automatisch

    Du hast dort drei Callback-Funktionen angelegt - aber irgendwo solltest du diese auch an dein Framework übergeben (und dazusagen, unter welchen Bedingungen sie aufgerufen werden sollen).

    (verwende mal einen Debugger und schau nach, ob die Funktion überhaupt ausgeführt wird)

    3. Bei SetCtrlVal(panelHandle, PANEL_LED, 1); "frage" ich das ab...

    Vom Namen nach würde ich ja eher vermuten, daß die SetCtrlVal() eine Wert setzt - abfragen sollte eher eine Funktion GetCtrlVal().


Anmelden zum Antworten