next up previous contents
Next: Wichtige Variablen Up: Beschreibung der globalen Datenstrukturen Previous: Technische Daten der Hardware

Wichtige Datenstrukturen

Mit der pendatastruct werden jeweils die augenblicklichen Daten des Pendelsystem vom Client an den Server geschickt. Die Struktur wird mit der Nachricht MSG_PENDATA mitgeschickt.

typedef struct {
        double motw;
        double motv;
        double mota;
        double penw;
        double penv;
        double pena;
        double force;
} pendatastruct;


Winkel des Motors
Winkelgeschwindigkeit des Motors
Winkelbeschleunigung des Motors
Winkel des Pendels
Winkelgeschwindigkeit des Pendels
Winkelbeschleunigung des Pendels
Kraft auf den Antriebsarm

Die extradatastruct enthält die zusätzlichen Daten, die mit einer Nachricht geschickt werden. Da diese Daten von verschiedenem Format sein können, wird eine union verwendet.

typedef union {                      
       pendatastruct d;       
       char name[80];         
} extradatastruct;


Parameter des Pendelsystems
Name, des zu ladenden Netzwerks

Die shmstruct wird in den beiden Shared Memory Bereichen angelegt. Sie ist jeweils einmal in der Richtung Client tex2html_wrap_inline3732 Server und einmal in Richtung Server tex2html_wrap_inline3732 Client vorhanden. Dies ist nötig, um die Kommunikation zwischen den beiden Prozessen zu entkoppeln.

typedef struct {              
        int semaphor;          

        int ack;               

        int count;              
        int command;            
        int datalen;           
        pendatastruct d;    
} shmstruct;


Semaphor für den ausschließenden Zugriff auf die gesamte Struktur
Quittierung vom Empfänger nach Empfang der Nachricht
Zähler über die geschickten Nachrichten
übertragene Nachricht
Länge der Extradaten der Nachricht
Extradaten mit variabler Länge

Die setparmstruct wird in xpendel.c für die Parametereingabe unter X-Window benötigt. Mit ihr wird die Dialogbox definiert, die beim Anklicken einer der Parameter aufgerufen wird.

typedef struct {
        Widget parent;     
        String label;  
        int id;                
} setparmstruct;

typedef setparmstruct *psetparm;


Vater Widget
Ausgabe beim Darstellen des Dialogs
Parameter der geändert werden soll
Die folgenden Strukturen werden in xwidget.c verwendet und dienen dazu eine eigene Fensterklasse, Widget genannt, zu definieren. Diese Fensterklasse ist dann für die Anzeige des Pendels zuständig.

typedef struct {
        int dummy_field;
} PendulumClassPart;

typedef struct {
    CoreClassPart       core_class;
    PendulumClassPart   pendulum_class;
} PendulumClassRec;

typedef struct {
        int dummy_field;
} PendulumPart;

typedef struct {
    CorePart            core;
    PendulumPart        pendulum;
} PendulumRec;

typedef PendulumClassRec *PendulumWidgetClass;
typedef PendulumRec *PendulumWidget;



Marius Heuler
Tue Jan 7 12:11:50 MET 1997