next up previous contents
Next: Datei: xpendel.c Up: Funktionen der einzelnen Module Previous: Datei: server.c

Datei: client.c

Kennung für das Versionskontroll-System:
char *rcs = ''$Id: client.c,v 1.306 1996/06/19 17:30:00 heuler$'';

Globale Variablen:

FILE *logfile;          /* descriptor for logging */
int clientsleep;        /* client sleep time */
int devfd;              /* descriptor of open device */
int control;            /* control enabled */
int neuro;              /* neuro or fuzzy control */
int cmd_lost;           /* lost commands by hardware */
int max_cmd_lost;       /* max number of lost commands */

Funktionen:
Sendet die aktuellen Parameter des Pendelsystems an den Server:
void SendtoServer();

Setzt die Parameter des Pendels im Client zurück:
void ResetChildParm();

Setzt die Parameter des Pendelsystems im Client auf die vom Server gesendeten Werte:
void SetChildParm(pendatastruct *d);

Startet das Mitschreiben der Pendelparameter in die Logdatei:
void StartLog();

Stopt das Mitschreiben der Pendelparameter in die Logdatei:
void StopLog();

Öffnet das Device zum Hardware-Gerätetreiber:
void InitHardware();

Schließt das Device zum Hardware-Gerätetreiber:
void CloseHardware();

Liest mittels des Devices von der Hardware die aktuellen Werte des Pendelsystems ein:
void ReadHardware();

Schickt einen Positionierbefehl an die Hardware:
void WriteHardware();

Schickt einen Befehl an den Gerätetreiber:
void CommandIO(int cmd, int arg);

Schreibt die aktuellen Parameter des Pendelsystems in das Logfile:
void LogParam();

Beendet den Client:
void KillChild();

Wertet die vom Server empfangene Nachricht aus und ruft die entsprechenden Funktionen auf:
void ParseCommands(int command, extradatastruct *data);

main() des Clients, wird nach dem Prozeßstart vom Server aufgerufen:
void ClientMain();


Spezielle Funktionen für den hochauflösenden Timer

Lokale Variablen:

static int start;               /* start of last calculation */
static struct timeval tv;       /* timer structure */
static int oldsec = 0;          /* last second */
static int calc   = 0;          /* count of calculations per second */

Funktionen:
Setzt den Zeitgeber zurück. Wird vor jedem Rechenschritt aufgerufen:
void TimerStart();

Wartet, bis die in clientsleep, siehe Kap. gif, angebene Zeit abgelaufen ist. Diese Funktion wird nach jedem Rechenschritt aufgerufen und mißt die Zeit von TimerStart bis zum augenblicklichen Zeitpunkt:
void TimerSleepNext();



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