sich verändernde Daten im window ausgeben



  • Hallo zusammen,
    habe folgendes kleines Programm zur Heizungssteuerung, welches derzeit alle 3min Meldungen auf der Konsole ausgibt.

    using namespace std;
    
    int main()
    {
    	Relaiskarte MeineKarte;
    	Temperatur MeineTemperatur;
    	int aussen, vorgabe, vorlauf, kessel, diff;
    
    	// Vorlaufpumpe einschalten
    	MeineKarte.Vorlaufpumpe(1);
    
    	// Hauptschleife, alle 3 min
    	for(;;)
    	{
    		aussen = MeineTemperatur.aussen();
    		vorgabe = MeineTemperatur.vorgabe_vorlaufTemp(aussen);
    		vorlauf = MeineTemperatur.vorlauf();
    		kessel = MeineTemperatur.kessel();
    
    		std::cout << "aussen: " << aussen << "\n";
    		std::cout << "Vorgabe vorlauf : " << vorgabe << "\n";
    		std::cout << "akt. Vorlauf: " << vorlauf << "\n";
    		std::cout << "akt. Kessel: " << kessel << "\n";
    
    		if(vorlauf < vorgabe)
    		{
    			std::cout << "Vorlauftemperatur zu niedrig\n";
    			diff = vorgabe - vorlauf;
    			std::cout << "Differenz : " << diff << "\n";
    			MeineKarte.waermer(diff);
    		}
    
    		else if(vorlauf > vorgabe)
    		{
    			std::cout << "Vorlauftemperatur zu hoch\n";
    			diff = vorlauf - vorgabe;
    			std::cout << "Differenz : " << diff << "\n";
    			MeineKarte.kaelter(diff);
    		}
    		else
    		{
    			std::cout << "nichts zu tun! >> weiterschlafen\n";
    		}
    
    		sleep(180);
    	} // Ende Hauptschleife
    }
    

    Dem Ganzen möchte ich eine graf. Oberfläche verpassen und habe mich in GTK+ eingelesen.
    Hatte nun gedacht, soetwas in einem Label anzuzeigen. Hier mal ein Beispiel aus einer Anleitung.

    #include <gtk/gtk.h>
    
    int main( int   argc,
              char *argv[] )
    {
    
        GtkWidget *window;
        GtkWidget *hbox;
    	GtkWidget *vbox;
    	GtkWidget *frame;
    	GtkWidget *label;
    
        gtk_init (&argc, &argv);
    
        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
        gtk_window_set_default_size(GTK_WINDOW(window), 600, 400);
        gtk_window_set_title(GTK_WINDOW(window), "Heizungssteuerung");
    
    	vbox = gtk_vbox_new (FALSE, 5);
      hbox = gtk_hbox_new (FALSE, 5);
      gtk_container_add (GTK_CONTAINER (window), hbox);
      gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
      gtk_container_set_border_width (GTK_CONTAINER (window), 5);
    
      frame = gtk_frame_new ("Temperaturanzeige");
      label = gtk_label_new ("Hier kommen nun die Meldeungen");
      gtk_container_add (GTK_CONTAINER (frame), label);
      gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
    
        gtk_widget_show_all (window);
        g_signal_connect(window, "destroy",
    		    G_CALLBACK (gtk_main_quit), NULL);
    
        gtk_main ();
    
        return 0;
    }
    

    Habe nun aber noch nicht verstanden, wie ich die Ausgabe/Anzeige alle 3min aktualisiere.
    Vielleicht kann mir da mal jemand auf die Sprünge helfen.

    Gruß
    Bernd




Anmelden zum Antworten