next up previous contents
Nächste Seite: Weitere öffentliche Schnittstellen Aufwärts: Verwendung des Comm-Moduls Vorherige Seite: Öffentliche Schnittstellen für den   Inhalt


Allgemeine öffentliche Schnittstellen zu internen Zuständen

int getServerTime()
liefert die Zeit der aktuellsten bisher empfangenen Information von Server (SenseBody, See, oder Hear vom Referee). Wird beim parsen, also direkt nach Empfang aktualisiert, ohne daß das Worldmodel sie ausgewertet haben muß. Bei aktivierter losingPackets-Option (siehe Abschnitt[*]) kann die Serverzeit über der Zeit der letzten empfangenen Information liegen, wenn dsie Signalkomponente den Übergang in einen neuen Zyklus forciert hat.
int getMissedCycles()
liefert die Anzahl der Simulationsschritte, seit denen vom Agenten kein Kommando mehr vorbereitet wurde. die Eigenschaft missedCycles wird in sendAction() bei jedem Finden von EMPTY im actionBuffer um eins erhöht. Ist der actionBuffer nicht EMPTY, wird sie auf 0 gesetzt.
bool isActionNeeded()
liefert true, wenn der actionBuffer leer (EMPTY) ist. Dies bedeutet, daß das Comm-Modul beim nächsten sendAction() kein Kommando zum Versenden hätte und davon ausgehen müßte, daß der Agent nicht dazu kam, den actionBuffer zu füllen - also ernste Timing-Probleme hat und zu langsam läuft. Liefert false, sobald (actionBuffer.command != EMPTY).
void getLastAction(CycleAction &action)
liefert das letzte versendete zyklenbasierte Serverkommando zurück. Genauere Infos zum CycleAction und CycleCommand-Typ siehe comm.h. Mit dem letzten Kommando ist auch die Serverzeit vermerkt, zu deren Beginn des Kommando versendet wurde (siehe Abschnitt[*]).Da beim Beschreiben des Puffers immer getServerTime()+1 in actionBuffer.sendTime eingetragen wurde, und lastAction erst nach Empfang einer neueren Serverinformation auf actionBuffer gesetzt wird, sollte es beim Auslesen immer getServerTime() enthalten. Wenn der Agent kein Kommando absenden wollte, wird lastAction.command NO_COMMAND mit dem entsprechenden Zeitstempel enthalten. Wenn der Agent kein Kommando absenden konnte, enthält lastAction.command EMPTY mit dem entsprechenden Zeitstempel in lastAction.sendTime.
double getHeadAngle()
wurde entfernt.
int getMyNumber()
liefert die Spielernummer des Agenten zurück
playing_side getMySide()
liefert die aktuelle Seite des Agenten zurück (SIDE_LEFT, SIDE_RIGHT). Diese Seite wird beim ersten Anmelden vom Server geliefert und ändert sich zur Halbzeit nur dann, wenn der Agent sich vom Server abgemeldet hatte. Genaueres zur Seitenänderung hat Christian vom Weltmodell untersucht !
bool isServerAlive()
liefert true, wenn der Agent sich korrekt anmelden konnte (richtige Nummer, kein Netzwerkfehler) und er regelmäßig Informationen von Server empfängt. Wenn die Anmeldung fehlschlug oder der Server länger als 10 Zyklen keine Informationen mehr sendete (siehe Eigenschaften serverOk und deadCycles) wird false geliefert.
play_mode getPlayMode()
liefert den aktuellen PlayMode, wird aktualisiert beim Parsen von Nachrichten
bool inSecondHalf()
liefert true, sobald der Agent von Referee einmal die Nachricht SECOND_HALF erhielt, sonst false.
bool inExtendedTime()
liefert true, sobald der Agent von Referee einmal die Nachricht TIME_EXTENDED erhielt, sonst false.
bool amIGoalie()
liefert true, wenn der Agent als Goalie initialisiert wurde.


next up previous contents
Nächste Seite: Weitere öffentliche Schnittstellen Aufwärts: Verwendung des Comm-Moduls Vorherige Seite: Öffentliche Schnittstellen für den   Inhalt
Debian User 2001-05-17