Kennung für das Versionskontroll-System:
char *rcs = ''$Id: xpendel.c,v 1.306 1996/07/04 10:19:43 heuler$'';
Globale Variablen:
static psetparm pdata; int clients; /* client sleep time = clientsleep in client */ int csimu; /* simulation or hardware = simulation in client */ int ccontrol; /* control enabled = control in client */ int cneuro; /* neuro of fuzzy control */ char netname[80]; /* name of net */ int pendulumwidth; /* width of pendulum */ int pendulumheight; /* height of pendulum */ double xmotorw, xmotorv, xmotora; /* displayed paramters of motor */ double xpendelw, xpendelv, xpendela; /* displayed parameters of pendulum */ double xforce; /* displayed force of motor */ int online; /* display information */ int loging; /* file loging */ XtAppContext app_context;
Lokale Variablen:
Variablen für die verschiedenen Fenster (Widgets) auf der X-Oberfläche:
static Widget topLevel; static Widget wquit, wstart, wreset, wswitch, wdisp, wapopup, wlog, wcontr, wneuro; static Widget wsetparmlabel, wsetparmdata, wsetparmDone; static Widget wmotorw, wmotorv, wmotora; static Widget wpendelw, wpendelv, wpendela; static Widget wcmotorw, wcmotorv, wcmotora; static Widget wcpendelw, wcpendelv, wcpendela; static Widget wforce, wcforce; static Widget wcdis, wdis; static Widget wcclient, wclient; static Widget wcnetn, wnetn; static Widget wpendulum;
MenuCallback - Startet den Client oder beendet ihn:
void Start(Widget w, XtPointer client_data, XtPointer call_data);
MenuCallback - Schaltet zwischen Simulation und Steuerung der
Hardware um:
void Switch(Widget w, XtPointer client_data, XtPointer call_data);
MenuCallback - Schaltet die Steuerung ein oder aus:
void NetControl(Widget w, XtPointer client_data, XtPointer call_data);
MenuCallback - Schaltet zwischen dem neuronalen Netz und dem
Fuzzy-Controller um:
void NetNeuro(Widget w, XtPointer client_data, XtPointer call_data);
MenuCallback - Startet bzw. stoppt das Mitschreiben der
Pendelparameter in das Logfile:
void FileLog(Widget w, XtPointer client_data, XtPointer call_data);
MenuCallback - Schaltet die Anzeige aus bzw. an:
void Disp(Widget w, XtPointer client_data, XtPointer call_data);
MenuCallback - Setzt die Parameter und den Client zurück:
void Reset(Widget w, XtPointer client_data, XtPointer call_data);
Zeigt die Parameter des Pendels im Fenster an:
void DisplayParameters();
Schaltet die Buttons ab, wenn ein Dialogfenster geöffnet wird:
void DisableButtons();
Schaltet die Buttons wieder an, nachdem das Dialogfenster
geschlossen wurde:
void EnableButtons();
Callback - Öffnet das Dialogfenster zur Parametereingabe:
void SetParmPopup(Widget w, XtPointer client_data, XtPointer call_data);
Callback - Wird beim Schließen des Dialogfensters aufgerufen
und schickt die geänderten Parameter an den Client:
void SetParmDone(Widget w, XtPointer client_data, XtPointer call_data);
Callback - Wird aufgerufen, wenn der Anwender im
Dialogfenster auswählt:
void SetParmCancel(Widget w, XtPointer client_data, XtPointer call_data);
Callback - Wird aufgerufen, wenn der Anwender die Eingabe
abschließt. Ruft nur
SetParmDone() auf:
void SetParmReturn(Widget w, XEvent *d1, String *d2, Cardinal *d3);
Erzeugt alle Fenster der X-Oberfläche, legt deren
Aussehen fest, richtet die Unterfenster für die einzelnen Parameter
ein und registriert die Callback-Funktionen für die Buttons:
void create_boxes(Widget parent, XtAppContext app_context);
Richtet einen Programmkontext ein, öffnet das Hauptfenster und
springt in die Hauptnachrichtenschleife der X-Oberfläche:
void InitX(int argc, char **argv);