Autoren:
Datum: 16.01.96
Stichworte:
Zusammenfassung:
Im folgenden werden die Funktionen der Klasse PCInterface erläutert.
PCInterface Die Klasse PCInterface dient zum Zugriff auf die einzelnen Hardwarekomponenten des Rollstuhls über dem CAN-Bus. Die Funktionen dienen zum Lesen von Sensorwerte und zum Setzen von Aktoren. Die folgende Dokumentation dient zum Überblick der möglichen Funktionen, und deren Funktionsweise. Weitere Informationen zu den Funktionen und den Parametern sind dem Headerfile zu entnehmen.
private:
void sendMsg( RTR, identifier, subID, datalength, *data)Diese Funktion verschickt eine Nachricht auf dem CAN-Bus zu allen Mikrocontrollern. Das entsprechende Format für die Nachricht ist der CAN-Bus Dokumentation zu entnehmen.
protected:
short OnInterrupt()Der zeitabhängige Interrupt ruft diese Funktion jedesmal auf. Diese empfängt die Nachrichten vom CAN-Bus und ordnet die relevanten Nachrichten klasseninternen Variablen zu.
void translateOdoMsg (odomsg * data)Mit dieser Funktion wird eine empfangende Odometrie-Nachricht entschlüsselt und die Werte entsprechenden Variablen zugeordnet.
public:
PCInterface()Im Konstruktor der Klasse PCInterface werden die klasseninternen Variablen initialisiert und der Interrupt aktiviert.
~PCInterface()Vor dem Löschen des Klassenobjektes wird der Interrupt deaktiviert.
void setSpeed(speed v)Diese Funktion setzt die Spannung und somit die Geschwindigkeit des Motors. Dabei können Werte von 0 bis 255 verwendet werden, wobei 0 keine und 255 volle Spannung bedeutet.
void setDirection(direction direct)Mit dieser Funktion kann die Fahrtrichtung auf Vorwärts (FORWARD) bzw. Rückwärts (BACKWARD) gesetzt werden. Dabei wird der Motor angehalten und die Fahrt in der jeweilige Richtung mit der vorherigen Geschwindigkeit fortgesetzt.
void requestSonar(mask sendmask, mask readmask)Diese Funktion fordert einmalig eine Ultraschallnachricht an. Die beiden Masken können Werte von 0 bis 255 annehmen, die bestimmte Feuerstrategie entsprechen. Die jeweiligen Ultraschallstrategien sind der Hardwaredokumentation zu entnehmen.
void getSonar(mask sendmask, sonar *value)Die Ultraschallmeßwerte der letzten Anfrage einer bestimmten Sendestrategie werden an an value übergeben. Dies ist ein Array der Größe der Anzahl der Ultraschallsender(NUMBER_OF_SONAR 8), die Werte von 0 bis 1000 für den Abstand und -1 für nicht benutzt annehmen können.
void setSonarPolling(int numberOfMasks, mask*sendmasks, mask*readmasks)Diese Funktion löst ein automatisches Senden von Ultraschallnachrichten, mit den aktuellen Meßwerten, vom Mikrocontroller aus. Es können mehrere verschiedene Strategien übergeben werden, die dann der Reihe nach angewandt werden.
void getBumperStatus(bumper* bump)Im Falle einer Kollision des Rollstuhles kann mit dieser Funktion der aktuelle Status der Bumper abgefragt werden. Dabei muß ein Array der Größe der Anzahl der Bumper(NUMBER_OF_BUMP 12) übergeben werden, wobei die Indizes die Nummer der Bumper entsprechen.
void requestBump()Die Funktion fordert einmalig eine Bumpernachricht an. Dies ist nur sinnvoll bei einer Initialisierung, da eine Bumpernachricht automatisch gesendet wird, sobald ein Bumper betätigt wurde.
void setAngle (angle ang)Dieser Funktion setzt den aktuellen Einschlag der Lenkachse. Dabei können Werte von -127 bis 128 übergeben werden, wobei -127 ganz links, 128 ganz rechts und 0 gerade bedeutet.
odospeed getLeftSpeed()Diese Funktion gibt die gezählten Odometrieimpulse pro Zeiteinheit des linkes Rades zurück.
odospeed getRightSpeed()Diese Funktion gibt die gezählten Odometrieimpulse pro Zeiteinheit des rechten Rades zurück.
distance getDistLeft()Diese Funktion gibt die zurückgelegte Gesamtdistanz des linken Rades zurück. Der Zähler kann mit resetOdo(void) zurückgesetzt werden.
distance getDistRight()Diese Funktion gibt die zurückgelegte Gesamtdistanz des rechten Rades zurück. Der Zähler kann mit resetOdo(void) zurückgesetzt werden.
error getErrLeft()Diese Funktion gibt die Anzahl des Fehlmessungen am linken Rad zurück. Der Zähler kann mit resetOdo(void) zurückgesetzt werden.
error getErrRight()Diese Funktion gibt die Anzahl des Fehlmessungen am rechten Rad zurück. Der Zähler kann mit resetOdo(void) zurückgesetzt werden.
oflag getOverflow()Der Rückgabewert dieser Funktion zeigt an, wenn ein Überlauf passiert ist. Dieser kann durch den Distanz- oder Fehlerzähler ausgelöst werden.
boolean setOdoMode(mode mod)Diese Funktion aktiviert das automatische Senden des Mikrocontrollers von Odometrienachrichten, mit den aktuellen Werten. Mit dem Parameter kann die Anzahl der Nachrichten pro Sekunde gesetzt werden, mit der gesendet wird.
void getOdo(void)Hiermit kann einmalig eine Odometrienachricht, mit den aktuellen Werten, angefordert werden.
void resetOdo(void)Die Funktion setzt alle Odometriezähler wie Distanz und Fehler auf Null zurück.