GUI_Window Klassenreferenz

#include <gui.h>

Aufstellung aller Elemente

Öffentliche Methoden

 GUI_Window (int width, int height, char *title)
virtual ~GUI_Window (void)

Private, statische Methoden

static void cb_file_quit (Fl_Widget *, void *)
static void cb_file_connect (Fl_Widget *, void *)
static void cb_help_info (Fl_Widget *, void *)
static void cb_cmd_anima (Fl_Widget *, void *)
static void cb_cmd_reanima (Fl_Widget *, void *)
static void cb_cmd_inanima (Fl_Widget *, void *)
static void cb_cmd_abort (Fl_Widget *, void *)
static void cb_cmd_send_code (Fl_Widget *, void *)
static void cb_diag_dump_map (Fl_Widget *, void *)
static void cb_debug_map (Fl_Widget *, void *)
static void cb_debug_obstacles (Fl_Widget *, void *)
static void cb_check_net_msg (void *)
static void cb_ping (void *)
static void cb_redraw_gl_window (void *)
static void cb_check_errors (void *)

Private Attribute

GUI_GL_Windowgl_win
 Fenster für das Modell.
Fl_Text_Display * text_out
 Widget für die Textausgabe.
Fl_Text_Buffer * text_out_buffer
 Puffer für die Textausgabe.
Fl_Text_Editor * text_in
 Widget für die Texteingabe.
Fl_Text_Buffer * text_in_buffer
 Puffer für die Texteingabe.
Fl_Menu_Bar * menu
 Menü.
Fl_GIF_Image * img_conn_on
 Bild, das eine aktive Netzwerkverbindung kennzeichnet.
Fl_GIF_Image * img_conn_off
 Bild, das eine inaktive Netzwerkverbindung kennzeichnet.
Fl_Box * conn_state
 Box, die den aktuellen Status der Netzwerkverbindung anzeigt.
Fl_Button * btn_send
Fl_Button * btn_anima
Fl_Button * btn_halt
Fl_Value_Output * battery_voltage
Fl_Value_Output * robot_sigma_x
Fl_Value_Output * robot_sigma_y
Fl_Value_Output * robot_sigma_z
Fl_Value_Output * robot_sigma_angle
module_netmod_net
module_confmod_conf
module_parsermod_parser
module_logmod_log
module_mapmod_map
unsigned char MSG_START_PHASE_1
unsigned char MSG_START_PHASE_2
unsigned char MSG_PREPARE
unsigned char MSG_CODE
unsigned char MSG_ABORT
net_msg_hdr old_hdr
bool waiting_for_params
bool waiting_for_execution
vector< saved_net_msgbuffered_messages


Ausführliche Beschreibung

Dieses Fenster ist das Hauptfenster, in dem alle anderen Komponenten wie beispielsweise das Modell und die Steuerelemente untergebracht sind.


Beschreibung der Konstruktoren und Destruktoren

GUI_Window::GUI_Window ( int  width,
int  height,
char *  title 
)

Konstruktor für das Hauptfenster des GUI. Hier werden alle Steuerelemente initialisiert sowie deren Callback-Funktionen gesetzt. Zudem fragt das GUI beim Module Master an, ob alle benötigten Module verfügbar sind.

Parameter:
width Breite des Fensters
height Höhe des Fenster
title Titel des Fensters

GUI_Window::~GUI_Window ( void   )  [virtual]

Destruktor, der den Speicher wieder freigibt. Dies ist ein Muss, ansonsten wird das GUI beispielsweise unter Windows nach mehreren Aufrufen nicht mehr funktionieren.


Dokumentation der Elementfunktionen

void GUI_Window::cb_check_errors ( void *  ptr  )  [static, private]

Liest eventuell angefallene Fehler, Warnungen und Informationsmeldungen vom Log-Modul aus und trägt diese in Widget des GUI ein.

Parameter:
ptr Ein Zeiger auf das GUI, sodass auf alle Funktionen zugegriffen werden kann.

void GUI_Window::cb_check_net_msg ( void *  ptr  )  [static, private]

Überprüft in gewissen Abständen, ob neue Nachrichten beim Netzwerkmodul eingetroffen sind.

Parameter:
ptr Ein Zeiger auf das GUI.

void GUI_Window::cb_cmd_abort ( Fl_Widget *  w,
void *  ptr 
) [static, private]

Bringt den Roboter dazu, alle Aktionen abzubrechen und das aufgespielte Programm neuzustarten. Diese Funktion sollte nur dann genutzt werden, wenn etwas in der Programmierung schiefgelaufen ist.

Parameter:
w Das Widget, das den Callback verursacht hat
ptr Ein Zeiger auf das GUI

void GUI_Window::cb_cmd_anima ( Fl_Widget *  w,
void *  ptr 
) [static, private]

Sendet die Nachricht zum Einschalten des Roboters. Dabei wird automatisch ein neues Programm auf den Roboter übertragen und sogleich ausgeführt.

Parameter:
w Das Widget, das den Callback verursacht hat
ptr Ein Zeiger auf das GUI

void GUI_Window::cb_cmd_inanima ( Fl_Widget *  w,
void *  ptr 
) [static, private]

Sendet die Nachricht zum Abschalten des Roboters.

Parameter:
w Das Widget, das den Callback verursacht hat
ptr Ein Zeiger auf das GUI

void GUI_Window::cb_cmd_reanima ( Fl_Widget *  w,
void *  ptr 
) [static, private]

Reanimiert den Roboter. Damit wird das Hauptprogramm wieder ausgeführt, sodass der Roboter nach einem Fehler wieder verwendet werden kann.

Parameter:
w Das Widget, das den Callback verursacht hat
ptr Ein Zeiger auf das GUI

void GUI_Window::cb_cmd_send_code ( Fl_Widget *  w,
void *  ptr 
) [static, private]

Liest den vom Benutzer eingegebenen Quelltext und ordnet ihm zuvor definierte Befehle zu. Diese werden an den Server-PC gesandt, der aus ihnen ein auf dem Roboter ausführbares Programm erstellt.

Der Quelltext ist der Text, den der Benutzer in das Fl_Text_Editor-Widget namens "text_in" geschrieben hat. geschrieben hat.

Parameter:
w Das Widget, das den Callback verursacht hat.
ptr Ein Zeiger auf das GUI. Wird benötigt wegen des Zugriffs auf Membervariablen.

void GUI_Window::cb_debug_map ( Fl_Widget *  w,
void *  ptr 
) [static, private]

DEBUG: Führt einen Kartentest durch. Diese Funktion kann nur über das Menü aufgerufen werden, wenn DEBUG definiert ist.

Zum Testen der Karte werden Pfade zufälligen Typs an zufälligen Stellen eingefügt. Diese werden danach zur späteren Analyse in die Datei paths.dat geschrieben.

Parameter:
w Das Widget, das den Callback verursacht hat.
ptr Ein Zeiger auf das GUI

void GUI_Window::cb_debug_obstacles ( Fl_Widget *  w,
void *  ptr 
) [static, private]

DEBUG: Führt einen Hindernistest durch. Diese Funktion kann nur über das Menü aufgerufen werden, wenn DEBUG definiert ist.

Zum Testen der Hindernisdarstellung werden Hindernisse an zufälligen Stellen mit zufälligen Winkeln eingefügt.

Parameter:
w Das Widget, das den Callback verursacht hat.
ptr Ein Zeiger auf das GUI

void GUI_Window::cb_diag_dump_map ( Fl_Widget *  w,
void *  ptr 
) [static, private]

Speichert alle bisher gefahrenen Pfade des Roboters in einer Datei ab, sodass sich beispielsweise mittels Gnuplot ein genaues Profil der Roboterbewegungen darstellen lässt.

Parameter:
w Widget, das den Callback ausgelöst hat.
ptr Zeiger auf das GUI

void GUI_Window::cb_file_connect ( Fl_Widget *  w,
void *  ptr 
) [static, private]

Callback-Funktion, die sich auf den Menüpunkt Datei->Verbindung herstellen bezieht. Sie zeigt ein Fenster an, das den Benutzer auffordert, eine Adresse der Art "ServerName:Port" einzugeben. Danach versucht das GUI, eine Verbindung über das Netzwerkmodul herzustellen.

Parameter:
w Das Widget, das den Callback ausgelöst hat. Nicht verwendet.
ptr Ein Zeiger auf das GUI. Nur so ist der Zugriff auf Membervariablen möglich.

void GUI_Window::cb_file_quit ( Fl_Widget *  w,
void *  ptr 
) [static, private]

Callback-Funktion, die das Fenster schließt. Damit wird dann sofort das Programm beendet.

Parameter:
w Das Widget, das den Callback ausgelöst hat. Nicht verwendet.
ptr Ein Zeiger auf das GUI. Die Funktion ruft dann die callback-Funktion des Hauptfensters auf.

void GUI_Window::cb_help_info ( Fl_Widget *  w,
void *  dummy 
) [static, private]

Callback-Funktion, die sich auf den Menüpunkt Hilfe->Über bezieht und ein kurzes Fenster mit Informationen zum Programm anzeigt. Mehr eine Spielerei und ein Test für das GUI.

Parameter:
w Das Widget, das den Callback verursachte.
dummy Nicht verwendet.

void GUI_Window::cb_ping ( void *  ptr  )  [static, private]

Sendet eine Ping-Nachricht an den Server, um zu sehen, ob dieser noch aktiv ist. Falls nicht, so wird die Verbindung geschlossen.

Parameter:
ptr Ein Zeiger auf das GUI. Nur so ist der Zugriff auf Membervariablen möglich.

void GUI_Window::cb_redraw_gl_window ( void *  ptr  )  [static, private]

Zeichnet das OpenGL-Fenster neu. Somit können Animationen in annehmbaren Tempo abgespielt werden. Dieser Callback wird als Timeout aufgerufen, sodass in etwa 25 FPS möglich sind. Ebenso ruft dieser Callback die Update-Funktion der Karte auf, sodass eventuell inaktive Pfade gefunden werden.

Parameter:
ptr Ein Zeiger auf das GUI-Fenster


Dokumentation der Datenelemente

Fl_Value_Output* GUI_Window::battery_voltage [private]

Fl_Button* GUI_Window::btn_anima [private]

Fl_Button* GUI_Window::btn_halt [private]

Fl_Button* GUI_Window::btn_send [private]

vector<saved_net_msg> GUI_Window::buffered_messages [private]

Enthält alle Nachrichten mit Parametern, die zu einer Konversation mit dem Roboter gehören.

Fl_Box* GUI_Window::conn_state [private]

Box, die den aktuellen Status der Netzwerkverbindung anzeigt.

GUI_GL_Window* GUI_Window::gl_win [private]

Fenster für das Modell.

Fl_GIF_Image* GUI_Window::img_conn_off [private]

Bild, das eine inaktive Netzwerkverbindung kennzeichnet.

Fl_GIF_Image* GUI_Window::img_conn_on [private]

Bild, das eine aktive Netzwerkverbindung kennzeichnet.

Fl_Menu_Bar* GUI_Window::menu [private]

Menü.

module_conf* GUI_Window::mod_conf [private]

module_log* GUI_Window::mod_log [private]

module_map* GUI_Window::mod_map [private]

module_net* GUI_Window::mod_net [private]

module_parser* GUI_Window::mod_parser [private]

unsigned char GUI_Window::MSG_ABORT [private]

unsigned char GUI_Window::MSG_CODE [private]

unsigned char GUI_Window::MSG_PREPARE [private]

unsigned char GUI_Window::MSG_START_PHASE_1 [private]

unsigned char GUI_Window::MSG_START_PHASE_2 [private]

net_msg_hdr GUI_Window::old_hdr [private]

Dieser Header speichert einen Header mit Parametern zwischen, sodass der Callback cb_check_net_msg diese zu einem späteren Zeitpunkt lesen kann.

Fl_Value_Output* GUI_Window::robot_sigma_angle [private]

Fl_Value_Output* GUI_Window::robot_sigma_x [private]

Fl_Value_Output* GUI_Window::robot_sigma_y [private]

Fl_Value_Output* GUI_Window::robot_sigma_z [private]

Fl_Text_Editor* GUI_Window::text_in [private]

Widget für die Texteingabe.

Fl_Text_Buffer* GUI_Window::text_in_buffer [private]

Puffer für die Texteingabe.

Fl_Text_Display* GUI_Window::text_out [private]

Widget für die Textausgabe.

Fl_Text_Buffer* GUI_Window::text_out_buffer [private]

Puffer für die Textausgabe.

bool GUI_Window::waiting_for_execution [private]

Dieses Flag wird gesetzt, wenn das GUI noch auf die Ausführung der Befehle wartet, die an den Roboter gesendet wurden. Während dieser Wartezeit ist es nicht möglich, andere Befehle an den Roboter zu übertragen.

bool GUI_Window::waiting_for_params [private]

Dieses Flag wird gesetzt, wenn der Callback cb_check_net_msg noch auf die vollständige Übertragung von Parametern wartet.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
Erzeugt am Sun Sep 3 23:58:31 2006 für Eukalyptos von  doxygen 1.4.7