Absender: Benjamin Benz
Datum: Do, 22.02.2007 20:04:44
Hallo, endlich ist es soweit: Im CVS sind die neuen Versionen von c't-Sim und c't-Bot (Release 13). Achtung, man muss beide Projektteile aktualisieren. Neue Features für den Sim: * Erste Version eines Applet, das man auf WLAN-Bot laden kann (siehe documentation/applet-howto/applet-howto.html) * Reale Bots können sich wieder verbinden (per USB und per TCP für WLAN-Bots) * Wettbewerbs-System, so wie es im Oktober verwendet wurde (ctSim.view.contestConductor) * Remote-Calls * Diverse Verbesserungen und Umstellungen Achtung: Die main()-Methode des ctSim ist umgezogen. Sie wohnt nicht mehr in ctSim.controller.Controller, sondern in ctSim.controller.Main. Man muss zum Starten des c't-Sim also Main laufenlassen, nicht Controller. Alte "Run"-Profile in Eclipse müssen dementsprechend angepasst werden. Die vollen Details verrät das Changelog seit dem letzten Release. Binäre Releases und ein Update der Webseite folgen in den nächsten Tagen. Wir arbeiten an der Einrichtung eines Bug-Trackers -- bis dahin Bug-Berichte weiterhin per Mail an uns. MfG Benjamin Benz Changelog fuer c't-Sim ====================== 2007-02-22 Benjamin Benz [bbe@xxxxxxxx]: internes CVS in externes gespiegelt fuer ct-sim-mit-applet-release 2007-02-22 18:38 Hendrik Krauß [hkr@xxxxxxxx]: Releasevorbereitung 2 * Applet-Howto rein * Javadoc-Ant-Task: Ausgabeverzeichnis geändert 2007-02-22 18:38 Hendrik Krauß [hkr@xxxxxxxx]: Releasevorbereitung * contrib/rxtx wieder eingecheckt (war irgendwie nicht mehr da) * Version 2.1b -> 2.1 2007-02-22 18:22 Hendrik Krauß [hkr@xxxxxxxx]: * Fix für 55: Absturz Knopf "Welt generieren" * Fix für 23: Logging in Konsole anzeigen * Aufgeräumt: ConsoleComponent * ct-sim.xml: Timeout jetzt 500 ms * Cross-Plattform: Applet unter Linux jetzt auch im Metal-Look-And-Feel * Neu: Klasse Init weil Main des Applet und Main der Applikation bisschen gemeinsamen Code haben 2007-02-22 13:53 Hendrik Krauß [hkr@xxxxxxxx]: * Fix für 39: Simbots sterben nicht * Fix für 44: Steckengebliebene Bots von Simulation ausschließen * Fix für 52: Parameter AliveObstacleTimeout raus * ct-sim.xml: Bisschen mehr Doku * Config matcht jetzt für die neuen os-Attribute nicht volle Strings, sondern Anfänge ("Windows" matcht "Windows XP", "Windows 2000" usw.) * ThreeDBot etwas aufgeräumt (mehr Doku, paar Umbenennungen, Warnungen erledigt) 2007-02-22 00:16 Timo Sandmann [mail@xxxxxxxxxxxxxxx]: * OS-Parameter fuer Mac OS X ergaenzt 2007-02-21 19:40 Hendrik Krauß [hkr@xxxxxxxx]: * Applet etwas robuster, läuft wieder im Applet Viewer * Neues Project Setting: Encoding auf UTF-8 (auch für Windows). Jetzt sollten Umlaute plattformübergreifend gehen 2007-02-21 18:58 Hendrik Krauss [hkr@xxxxxxxx]: * ct-sim.xml hat jetzt "os"-Attribut, Doku folgt * In Eclipse /parcours, /tmp usw. aus dem Build-Path genommen (sind ja keine Packages, sondern Ordner) -- Datei .classpath * Cross-Plattform: Look and Feel fuer Linux auf Metal * Umlaute und so, an denen sich Linux verschluckt, geaendert 2007-02-20 15:35 Hendrik Krauss [hkr@xxxxxxxx]: Log-Fenster per Default breiter (80 Spalten) 2007-02-20 15:08 Hendrik Krauss [hkr@xxxxxxxx]: * Fix fuer 33: Laufenden Remote-Call abbrechen * Fix fuer 25: Warnung, wenn keine Welt da und SimulatedBot hinzugefuegt * Kleinigkeiten 2007-02-17 0:50 Hendrik Krauss [hkr@xxxxxxxx]: * DefaultController vereinfacht, Prinzip ist: Sequencer-Thread laeuft genau dann, wenn eine Welt geladen ist * Das fixt hoffentlich Bug 10 * Stop-Knopf weg (fixt Bug 13) * Etliche Todo-Marker durchgesehen * Level etlicher Logausgaben angepasst 2007-02-17 0:38 Hendrik Krauss [hkr@xxxxxxxx]: Remote-Calls getestet und verbessert, sind jetzt recht stabil 2007-02-16 16:47 Hendrik Krauss [hkr@xxxxxxxx]: Fix fuer Bug 12: Sim-Absturz beim schliessen eines Bots 2007-02-16 13:58 Hendrik Krauss [hkr@xxxxxxxx]: Nachtrag zum letzten Checkin 2007-02-16 13:56 Hendrik Krauss [hkr@xxxxxxxx]: * Applet: Log-Level einstellbar zur Fehlersuche * Kleinigkeiten 2007-02-15 18:40 Hendrik Krauss [hkr@xxxxxxxx]: Goldene Regel: Erst testen, dann einchecken 2007-02-15 18:32 Hendrik Krauss [hkr@xxxxxxxx]: Bisschen Updates am Applet-Bauen 2007-02-15 15:52 Hendrik Krauss [hkr@xxxxxxxx]: * Neu: Applet (ctSim.applet.Main); wie man's baut siehe Wiki * Neu: make-applet.xml, applet.html, java.policy.applet (letztere uninteressant, nur Eclipse-intern noetig) * Fix fuer Bug 10: Sim-Bug beim Schliessen von Welten * Keine "Synch verloren"-Warnungen mehr beim Verbinden mit Real-Bots * Icon-Bereitstellung umorganisiert (wegen Applet-Sicherheitsbeschraenkungen); IconHashMap umbenannt nach FileIconMap * Kleinigkeiten 2007-02-13 19:22 Hendrik Krauss [hkr@xxxxxxxx]: * Fix fuer Bug 4: Auto-Scrolling im Sim-Log-Fenster * Fix fuer Bug 5: Sim-Log-Fenster: "Speichern als txt" * daher Neu: LogViewer * Zu Bug 7: ct-Sim-Probleme OSX 10.4.x -- MainWindow leitet alle Calls, die von aussen (Controller) kommen, jetzt auf den EDT um. Vielleicht ist das die Loesung des Bug. Mal testen * Dialog "Verbinden / Per TCP" ueberarbeitet; IP/Port werden jetzt aus Konfig geholt (neue Parameter eingefuehrt) * Neu: Icon Save16 * Neu: BackslashNConverterStream * Weg: ComponentGroupGUI war noch von einer Aufraeumaktion uebriggeblieben 2007-02-13 12:29 Hendrik Krauss [hkr@xxxxxxxx]: * Fix fuer Bug 8: Kein Scrollen moeglich, wenn Sim aktiv * Fix fuer Bug 3: Logging zum Sim fehlerhaft 2007-02-13 2:04 Hendrik Krauss [hkr@xxxxxxxx]: * Neu: RemoteCallCompnt inkl. Gui * Verschoben: Icons werden jetzt von Config bereitgestellt * Neu: 2 Hilfsklassen 2007-02-11 17:57 Hendrik Krauss [hkr@xxxxxxxx]: * Nachtrag zum 5.2. -- vergessen im Changelog zu vermerken: Command aktualisiert, SubCodes sind jetzt abhaengig von den Codes * Weg: @Buisit-Annotation (Applet-Security mag das nicht; laeuft jetzt ueber Methodenname, wenn das auch weniger offensichtlich ist) * Umbenannt: Closure -> Runnable1 (weniger verwirrend) * Command: Setter fuer SubCode und Payload * SimBotTcpDump toleriert jetzt ProtocolExceptions * Kleinigkeiten 2007-02-03 23:21 Hendrik Krauss [hkr@xxxxxxxx]: * Neu: Verbindungen per USB (COM) werden automatisch erkannt, kein Menuepunkt mehr noetig * Verschoben: Auf Verbindungen horchen (TCP und USB) und Handshaking (TCP) in ComConnection bzw. TcpConnection verlagert und ueberarbeitet. DefaultController daher einfacher. Grund: Wird im Applet auch gebraucht, das keinen DefaultController zur Verfuegung hat * Komplettiert: Doku fuer Command; erzaehlt einiges zum Protokoll * Neu: ctSim.util.Menu, duenne Abstraktionsschicht ueber Swing, um JMenus / JMenuItems leichter schreiben zu koennen (aus MainWinMenuBar ausgekoppelt) * Neu: ComConnection geht davon aus, dass sie ein Singleton ist * Kleinigkeiten 2007-01-31 22:43 Hendrik Krauss [hkr@xxxxxxxx]: * Weg: MovableObstacle (unklar, was Unterschied zu AliveObst sein soll, nirgends verwendet) * Neu: Gui fuer Position + Heading * Weg: Alte Pos-Gui, BotPosition (hat eigentlich nichts getan) * Umbenannt: ctSim.view.gui.Simple -> Tables (ist deskriptiver) * Neu: Serial-Port-Einstellungen in der ct-sim.xml (Realbot) * Kleinigkeiten 2007-01-30 16:25 Hendrik Krauss [hkr@xxxxxxxx]: * Neu: RealBot; scheint gut zu klappen ueber USB * Neu: Sensoren koennen lesen (wegen RealBot) * Fix: LED-Reihenfolge war falschrum * Neu: SaferThread, weil das Pattern viel vorkommt im Programm * Command robuster gemacht gegen NullPointers * Connection + Subklassen: Konstruktionsablauf vereinfacht * Besseres Exception-Handling fuer ComConnection 2007-01-30 0:11 Hendrik Krauss [hkr@xxxxxxxx]: Grosse Umstellung hinsichtlich der Bots (hoffentlich die letzte) * Alles instabil, noch nicht gut getestet * Weg: BotManager (in World integriert) * AliveObstacle aus der Bothierarchie raus: Verwaltet (1) Shape, (2) ObstState/Appearance, (3) Position/Heading und (4) Thread fuer die Simulation. Das sind alles Sachen, die nur Sim-Bots brauchen (Real-Bots nicht) * AliveObstacle jetzt ein Wrapper um einen simulierten Bot * Umbenannt: AliveObstacle -> ThreeDBot, s.o. * Umbenannt: Bot -> BasicBot * Umbenannt: CtBotSim -> SimulatedBot (jetzt ein Interface) * Neu: Interface Bot, moeglichst leichtgewichtig * Bots erstellen jetzt einfacher (Konstruktorsignaturen); braucht aber mehr Klempnerei (Wrapper mit Bot verdrahten, Bot mit Sim usw.); jetzt zentralisiert in der Welt * Neu: SimulatorFactory, die Bots mit Simulatoren verknuepft * Klarer Mechanismus zum Bots beenden (DisposeListener) * Komponenten jetzt wo sie hingehoeren (CtBot) * Kommando-Auswerte-Kram jetzt wo er hingehoert (BotComponentsList) * Test-Bot nach wie vor ausser Funktion * Neu: BotBarrier, um die Bots zu synchronisieren * Umbenannt: BotBuisitor -> GuiBotBuisitor * Kleinigkeiten 2007-01-26 23:05 Hendrik Krauss [hkr@xxxxxxxx]: * Neu: Obststate (AliveObstacle) ist jetzt ein EnumSet, vereinfacht manches im AObst und MasterSim * Kleinigkeiten 2007-01-26 1:36 Hendrik Krauss [hkr@xxxxxxxx]: * CtBotSimTcp: Paar Todos erledigt * I/O im CtBotSimTcp vereinfacht * Neu: Nichtverarbeitete Kommandos werden erkannt * Neu: Welcome-Kommando wird geprueft * Kleinigkeiten 2007-01-25 21:05 Hendrik Krauss [hkr@xxxxxxxx]: Mist -- ct-sim.xml, .classpath, .project versehentlich mitcommittet. Rueckgaengig 2007-01-25 20:46 Hendrik Krauss [hkr@xxxxxxxx]: * Neu: Split-Model-Ansatz fuer BotComponents (haben jetzt ein internes und ein externes Model), um Threadsicherheit zu garantieren; Doku folgt * Neu: Bot-Komponente Uhr (sagt ihm die Simzeit) * Fix: Seit Commit 18. Jan 12:45 war Simulation subtil defekt. Grund: Bot verlaesst sich darauf, dass SENS_ERROR das vorletzte Kommando ist (DONE das letzte). Sim hat es irgendwo geschickt, nicht unbedingt als letztes. CommandOutputStream weiss das jetzt und ist nebenbei einfacher geworden * SimBotTcpDump startet neu, wenn es die Verbindung verliert * Wieder eigene Datei: LcDisplayTest * Umgezogen: MemoryLeakTest * Kleinigkeiten 2007-01-18 17:32 Hendrik Krauss [hkr@xxxxxxxx]: * Neu: Asynchrones Schreiben fuer Bot-Komponenten (RemoteControl, MousePicture) * Neu: MousePicture wird angezeigt * Kleinigkeiten 2007-01-18 12:45 Hendrik Krauss [hkr@xxxxxxxx]: * Neu: Trans-, Door- und Error-Sensoren * Umbenannt: Actuator -> Actuators * Umorganisiert: Aktuatoren alle in Datei Actuators umgezogen (400 Zeilen, vertretbare Groesse) * Umorganisiert: Sensoren alle in Datei Sensors umgezogen (210 Zeilen) * update()-Calls in MainWindow / WorldViewer waren ueberfluessig * Alte Sensoren-Infrastruktur konnte weg * Kleinigkeiten 2007-01-17 20:16 Hendrik Krauss [hkr@xxxxxxxx]: * Neu: Maus-Sensor * calcPos() ist jetzt auch ein Simulator * Threading-Probleme; lassen Simulation jetzt auf dem Event-Dispatch-Thread laufen; verlangsamt alles * E/A ist jetzt buffered (scheint auch was zu helfen, wenn ich die Ausgabe vom Profiler richtig interpretiere) * Kleinigkeiten 2007-01-15 21:07 Hendrik Krauss [hkr@xxxxxxxx]: Mehr Sachen aus meinem lokalen Prototyp eingebaut * Neu: Konfigoption, die den RC5-Code angibt, der beim Starten an einen Sim-Bot gehen soll; Default "Taste 5" * Neu: Fernbedienungssensor, -gui * Kleinigkeiten 2007-01-15 13:42 Hendrik Krauss [hkr@xxxxxxxx]: Mehr Sachen aus meinem lokalen Prototyp eingebaut * Neue, vereinfachte Infrastruktur fuer Simulation * TimeLogger hat jetzt Konfig-Einstellung * Neu: Buisitor, der Builder+Visitor-Pattern ermoeglicht (Doku folgt) * Kleinigkeiten 2007-01-15 13:42 Hendrik Krauss [hkr@xxxxxxxx]: Mehr Sachen aus meinem lokalen Prototyp eingebaut * Neu: Abgrundsensoren * Neu: Lichtsensoren * Kleinigkeiten 2007-01-15 12:16 Hendrik Krauss [hkr@xxxxxxxx]: Mehr Sachen aus meinem lokalen Prototyp eingebaut * Neu: Liniensensor * Umbenannt: RunOfTheMill -> Simple (versteht ja keiner) 2007-01-15 01:31 Hendrik Krauss [hkr@xxxxxxxx]: Mehr Sachen aus meinem lokalen Prototyp eingebaut * Neu: Abstandssensor (schwere Geburt) * Neu: Listen und Maps kann man einfacher mit Typinferenz erzeugen; Misc.newMap() / Misc.newList(); ueberall umgestellt * Kleinigkeiten 2007-01-14 21:07 Hendrik Krauss [hkr@xxxxxxxx]: Mehr Sachen aus meinem lokalen Prototyp eingebaut * Neu: CtBotShape, zweifarbige Shape des c't-Bot, zu sehen bei Kollisionen/Loechern/abgerissenen TCP-Verbindungen; das neue Aussehen ist auch klarer im Code und nicht mehr um 90? gedreht wie bisher (konsistent mit Headings) * AliveObstacle: Heading um 90? gedreht (vorher: Kurs 0? = nach Steuerbord, jetzt: Kurs 0? = geradeaus) * AliveObstacle: Appearance-Verwaltung etwas aufgeraeumt * Neu: Konsistente und freundliche Bot-Namen * Aufgeraeumt: ConfigManager umfassend entschlackt; gesamte Konfig wird jetzt von Klasse Config verwaltet; dort auch neuer Appearance-Parser * Daher Aenderungen ueberall: ConfigManager -> Config * Fix: XmlDocument hat jetzt klaren Umgang mit nicht vorhandenen Nodes * Robustheit: Decoratoror wirft mehr Exceptions * Fix: Decoratoror hat Methoden aus Object ignoriert * Kleinigkeiten 2007-01-11 21:09 Hendrik Krauss [hkr@xxxxxxxx]: Mehr Sachen aus meinem lokalen Prototyp eingebaut * Aufgeraumt (Forts.): CtBotSimTcp * Neu: Simulatoren-Infrastruktur im CtBotSimTcp (aber weiss noch nicht, ob die so bleibt) * Neu: EncoderSensor ueberarbeitet + samt seinem Simulator * Umbenannt: ctSim.view.gui.Actuators -> ctSim.view.gui.RunOfTheMill.Actuators * Kleinigkeiten 2007-01-10 17:19 Hendrik Krauss [hkr@xxxxxxxx]: Mehr Sachen aus meinem lokalen Prototyp eingebaut * BotComponent jetzt mit CanRead- und CanWrite-Interfaces, scheint mir besser so * Neu: Governor ueberarbeitet, alte Aktuatoren-Gui konnte damit weg * Neu: Unterstuetzung fuer DoorServo * Verschoben: Log-Komponente -> freigewordene Actuator-Klasse (die kurzen Klassen kann man gut in einer Datei zusammenfassen) * Dokumentiert: Component-Flag-Tabellen * Kleinigkeiten 2007-01-09 21:46 Hendrik Krauss [hkr@xxxxxxxx]: Mehr Sachen aus meinem lokalen Prototyp eingebaut * Fix: Aktuatoren/Sensoren zeigen wieder Werte * Neu: LEDs (Indicators umbenannt und aktualisiert) * Neu: Entwicklertool ctSim.SimBotTcpDump (Macht die Command-Objekte sichtbar, die durch die TCP-Verbindung zwischen c't-Sim und Steuercode laufen) * Aufgeraeumt: Connection: toter Code weg, Methoden umbenannt wie in Java ueblich (send -> write, disconnect -> close); wirkt sich auf Commands + deren Verwender aus * Aufgeraeumt: TcpConnection: Vereinfacht * Neu: ComConnection: Unterstuetzung fuer serielle Verbindungen * DefaultController: Unterstuetzung fuer Real-Bots * RXTX im Eclipse-Projekt als Library angemeldet * Kleinigkeiten 2007-01-09 15:03 Hendrik Krauss [hkr@xxxxxxxx]: Mehr Sachen aus meinem lokalen Prototyp eingebaut * Bot: Infrastruktur fuer Component-Flag-Tabellen (Doku folgt) * Neuer Log-Aktuator (Klasse Log); noch ungetestet, da Sim-Bot sowas nicht sendet und Real-Bot noch nicht geht * CtBotSimTcp: Log- und LCD-Kram weg * Kleinigkeiten 2007-01-09 13:20 Hendrik Krauss [hkr@xxxxxxxx]: Mehr Sachen aus meinem lokalen Prototyp eingebaut * Gui-Bauen-Infrastruktur jetzt Builder/Visitor-Pattern (BotViewer angepasst, BotBuisitor dazu, AndEverything dazu); Doku folgt * BotComponent: Neue Infrastruktur vorbereitet, Klasse Flags erstellt * Erste neue Komponente: LcDisplay, die andern werden nach und nach upgedated * CtBotSimTcp: LCD-Verwaltungs-Kram in LcDisplay verlagert (da gehoert's ja wohl hin) * Bot + AliveObst aufgeraeumt * Interface TcpBot weg (keine Bedeutung mehr ohne AnsweringMachine) * Kleinigkeiten 2007-01-08 20:07 Hendrik Krauss [hkr@xxxxxxxx]: Mehr Sachen aus meinem lokalen Prototyp eingebaut * Klasse Command ueberarbeitet, vereinfacht, teilweise dokumentiert. Wirkt sich auf alle Stellen aus, wo sie verwendet wird * CtBotSimTcp: bisschen aufgeraeumt * AnsweringMachine raus, hat keinen Sinn (Streams puffern eh alles) * EchoTest und TestServer werden nicht mehr mitkompiliert * BotComponent.getType() weg (nirgends verwendet), wirkt sich auf alle BotComponents aus * Aktuatorklasse Display aufgeraeumt, umbenannt: LcDisplay * Kleinigkeiten 2007-01-08 1:03 Hendrik Krauss [hkr@xxxxxxxx]: Einige Sachen aus meinem lokalen Prototyp eingebaut * RX/TX-Bibliothek wieder eingecheckt (Vorbereitung fuer RealBot-Restauration) * CtSimFrame aufgeteilt: MainWindow und MainWinMenuBar * JTabbedPaneWithCloseIcons neu implementiert (ClosableTabsPane: kuerzer, einfacher, kann bisschen mehr), 2 Icons hinzugefuegt * Bot: stop() und die() waren Synonyme, stop() entfernt * AObst hat death listener bekommen (wird benachrichtigt, wenn AObst stirbt) * BotInfo weg (bestand im Endeffekt nur aus 2 Feldern) * BotPanel, DefBotPanel unter dem Namen BotViewer zusammengefasst und vereinfacht * ControlBar ist aufgrund der Vereinfachungen ueberfluessig geworden * Kleinigkeiten 2007-01-07 18:50 Hendrik Krauss [hkr@xxxxxxxx]: Ok, mein letzter Check-in (18. Dez) war Mist. Der ganze NavState klappt nicht und ich weiss nicht woran's liegt. Verwerfe den letzten Commit: gehe auf den vorletzten Check-in zurueck (Stand 6. Dez, denn am 5. war der vorletzte Check-in). Dann gehen wir das nochmal ruhiger an. 2006-12-18 Hendrik Krauss [hkr@xxxxxxxx]: Entwicklungsversion, UNSTABLE * Blickrichtung (Heading) wird jetzt fast ueberall in Grad (Uhrzeigersinn und 0? = Norden) ausgedrueckt, das ist einfacher und weniger irrefuehrend als der bisherige Vector3d. Funktioniert in Gui noch nicht * Position + Blickrichtung eines AliveObstacle gesammelt in neuer Klasse NavState (J3D-Modularisierung) * Alten Code in Bot und CtBot geloescht * Alle Sensoren/Aktuatoren: Methode getType() weg, wurde nie aufgerufen * Diverses 2006-12-05 Hendrik Krauss [hkr@xxxxxxxx]: * FacadeFactory umbenannt in Decoratoror, viel davon umgeschrieben, jetzt klarer und weniger umstaendlich * Config.java bisschen vereinfacht * Bug entdeckt (nicht gefixt, aber ich will das hier dokumentieren): Beim Laden von Parcours von Platte treten MalformedURLExceptions auf; keine Ahnung seit wann, mindestens seit dem letzten CVS-Tag; da es in meiner lokalen Entwicklungskopie nicht auftritt, rechne damit, dass das Problem in der naechsten Zeit weggeht 2006-12-01 Hendrik Krauss [hkr@xxxxxxxx]: Beginn der Operation Java3D-Modularisierung, Tag erstellt (weil das geplante Applet kein J3D haben wird, muss der ganze J3D benutzende Code so geschickt zusammengefasst sein, dass man durch Weglassen eines Sim-Moduls ueberhaupt keine Abhaengigkeit zu J3D mehr hat) * Unnoetige Abhaengigkeit von Bot auf J3D weg * Dito Sensoren und Aktuatoren * Fix: Javadoc-Warning in WorldViewer 2006-11-24-B Hendrik Krauss [hkr@xxxxxxxx]: * Infrastruktur: FacadeFactory ermoeglicht Mixins, so ganz generell * XmlDocument glorifiziert mit Hilfe von Mixins, liefert jetzt bessere Nodes zurueck 2006-11-24 Hendrik Krauss [hkr@xxxxxxxx]: * Mikro-Aenderung, nur ein paar Kommentare 2006-10-25 Hendrik Krauss [hkr@xxxxxxxx]: * Alle Parcours des Wettbewerbs eingecheckt * Kleinigkeiten hier und da 2006-10-19 Benjamin Benz [bbe@xxxxxxxx] / Hendrik Krauss [hkr@xxxxxxxx]: * Fix: Restwegfindung beachtet jetzt alle Zielfelder, nicht nur das ganz links 2006-10-18-C Hendrik Krauss [hkr@xxxxxxxx]: * ContestConductor und Subsysteme beachten jetzt die Reihenfolge der Bots (vorher war es Glueckssache, ob der, der in ctsim_game.bot1 steht auch in ctsim_log.pos1x/pos1y/usw. geschrieben wurde) * Abgerissene SQL-Verbindungen werden neu aufgebaut (nach Erichs nonchalantem Hinweis "och das kann schon mal passieren") * Wiedereinstieg in abgebrochene Turniere verbessert: Findet jetzt auch wieder rein, wenn Vorrunde komplett, aber Hauptrunde noch nicht geplant 2006-10-18-B Hendrik Krauss [hkr@xxxxxxxx]: * Logschritt ganz am Ende eines Spiels wird jetzt erzwungen, um Forentrollen den Wind aus den Segeln zu nehmen ("Der ist ja gar nicht ganz im Ziel") 2006-10-18 Hendrik Krauss [hkr@xxxxxxxx]: * 10 Sekunden Pause zwischen Spielen * Sortierung Vorrunden-Rangliste nicht nach "finishtime", sondern "finishtime, bot1restweg" 2006-10-17 Hendrik Krauss [hkr@xxxxxxxx]: * Absturzresistenz: abgebrochene Contests werden erkannt und wiederaufgenommen * Wenn einer auf dem Zielfeld steht, kriegt er Restweg = 0 * Aenderung in TurningPoint vom letzten Checkin rueckgaengig -- hat wohl mit den komisch gewordenen Restwegen zu tun * Kleinigkeiten 2006-10-16 Hendrik Krauss [hkr@xxxxxxxx]: * Parcours, ParcoursLoader und TurningPoint leicht veraendert auf der Suche nach dem Restweg-Minus-1-Fehler; schliesslich gefixt * Weiter Vorbereitungen fuer Screenshot-Kram * Tool gestrickt, was ein Verzeichnis voller Screenshots in die Datenbank laedt (ctSim.view.contestConductor.ScreenshotUploadTool) * Kleinigkeiten 2006-10-11 Hendrik Krauss [hkr@xxxxxxxx]: * BotManager: race condition beseitigt, die zu intermittierenden Abstuerzen beim Level-Wechseln gefuehrt hat * Vorbereitungen fuer Screenshot-Kram getroffen * Kleinigkeiten 2006-10-10-D Hendrik Krauss [hkr@xxxxxxxx]: * AliveObstacle hat jetzt keine Liste von ViewPlatforms mehr, da die zugehoerigen Methoden ohne einen Zweck zu erfuellen eine NullPtrExcp erzeugen 2006-10-10-C Hendrik Krauss [hkr@xxxxxxxx]: * Wenn ein CtBotSimTcp die TCP-Verbindung verliert, stirbt er nicht, sondern setzt sich auf Status "halted" * ContestConductor schreibt jetzt Restwege (DB: ctsim_game.bot1restweg und bot2restweg) * Spielstand wird nach Ruecksprache mit ws nur noch alle 200 ms in die DB geloggt 2006-10-10-B Hendrik Krauss [hkr@xxxxxxxx]: * Fix: TimeLogger funktioniert auch fuer mehrere Spiele * Loggen des letzten Schritts nochmal umgestellt 2006-10-10 Hendrik Krauss [hkr@xxxxxxxx]: * Neuer kleiner View (Klasse TimeLogger) gibt Sim- und Realzeit periodisch aus; aktiv nur in Contest-Modus * DB-Schema: Neues Feld gametime_real, TournamentPlanner beachtet es * Logging erfolgt jetzt standardmaessig in ctsim-N.log, wobei N rotiert durch 0, 1, und 2 (= die letzten drei ctSim-Laeufe sind als Log verfuegbar) * Hab die Geduld mit dem ErrorHandler verloren -- ist rausgeflogen, ersetzt durch Log-Methoden * Fix: Letzter Simschritt eines Spiels wird jetzt auch in die DB geloggt * Logging-Subsystem wird jetzt ueber die Datei config/logging.conf konfiguriert, nicht mehr hardcoded 2006-10-09 Hendrik Krauss [hkr@xxxxxxxx]: * Turnierbaum neu gestrickt; macht Baeume jetzt so, wie's laut Maildiskussion sein soll * Schema fuer Contest-Datenbank inkl. umfangreicher Doku eingecheckt * Diverse Verbesserungen 2006-10-06 Hendrik Krauss [hkr@xxxxxxxx]: * angle-world-lamps.xml eingecheckt als Testparcours fuer den PickConeRay-Bug; siehe Doku in der Klasse World * CtSimFrame hat jetzt einen Screenshot-Button, der ins Temp-Verzeichnis des Systems einen Screenshot legt (Linux: /tmp Windows: /Dokumente und Einstellungen/Kasimir/Lokale Einstellungen/Temp) * PicoContainer bewirkt, dass ConfigManager sich vereinfacht. Neue Klasse Config. 2006-10-06 Hendrik Krauss [hkr@xxxxxxxx]: Funktion neuimplementiert, die pro Simschritt in die DB loggt: unkomplizierter, kein Speicherleck mehr 2006-10-05 Benjamin Benz [bbe@xxxxxxxx]: remote-Ausfuehrung von Bots geht 2006-10-05 Benjamin Benz [bbe@xxxxxxxx]: Begonen mit der remote-Ausfuehrung von Bots 2006-10-05 Hendrik Krauss [hkr@xxxxxxxx]: IP der Test-Datenbank stimmt jetzt wieder 2006-10-04 Hendrik Krauss [hkr@xxxxxxxx]: Verschiedene Verbesserungen; CtSimFrame bringt keine Logausgaben aus java.util.logging mehr, da das als Fehlerquelle des terminate-Bug ausgemacht wurde 2006-10-14 Peter Koenig [pek@xxxxxxxx]: Bots drehen sich nicht mehr, wenn sie in ein Loch gefallen sind 2006-10-04 Hendrik Krauss [hkr@xxxxxxxx]: Versehentlicher Check-in rueckgaengig: Datei ContestConductorRecoveryTest weg 2006-10-04 Benjamin Benz [bbe@xxxxxxxx]: ContestConductor startet nun auch unter Linux die Bots sauber 2006-10-04 Benjamin Benz [bbe@xxxxxxxx]: Die/Routinen des Botlisteners bearbeitet, Contest-config abgepasst 2006-10-03 Benjamin Benz [bbe@xxxxxxxx]: Es gibt nun einen eigenen Timeout fuer Alive Obstacles, der per Config festgesetzt werden darf. ueberschreitet ein work()-Zyklus diesen, wird das Obstacle "halted". Steht der Timeout auf 0, wird er ignoriert 2006-10-03 Benjamin Benz [bbe@xxxxxxxx]: AliveObstacles kennen nun einen neune Zustand Halted, wenn dieser gesetzt ist, dürfen sie ihre work()-Methode nicht ausfuehren 2006-10-03 Benjamin Benz [bbe@xxxxxxxx]: Config-Datei kommentiert 2006-10-03 Benjamin Benz [bbe@xxxxxxxx]: Der Controller wartet nun nur noch die Zeit, die noch nicht verstrichen ist und nicht pauschal einen vollen Zyklus 2006-10-03 Benjamin Benz [bbe@xxxxxxxx]: Timeout im Controller ist nun per Config-Datei konfigurierbar 2006-10-02 Hendrik Krauss [hkr@xxxxxxxx]: * Neue Dependency PicoContainer inkl. Klasse ctSim.controller.InitializingPicoContainer; betrifft Initialisierung von ctSim und leichte Testbarkeit; Doku folgt * Neuimplementierung: ctSim.view.gui.WorldViewer ersetzt WorldPanel und WorldView; kuerzer, einfacher, fehlerfreier. * ConductorToDatabaseAdapter und DatabaseAdapter grossflaechig umgestellt zur Performance-Steigerung, nachdem Profiler-Laeufe ergeben haben, dass dort Probleme bzgl. memory footprint sind * World: Groessen-Getter umbenannt, um Klarheit zu schaffen * Characteristic: main()-Methode wieder funktionsfaehig gemacht zum Testen, aufgeraeumt * Diverse Verbesserungen 2006-09-28 Benjamin Benz [bbe@xxxxxxxx]: Timeouts in den Judge eingefuegt, LastSavePostion in AliveObstacles hinzugefuegt 2006-09-25 Hendrik Krauss [hkr@xxxxxxxx]: * TournamentTree hat jetzt ein ein kleines Demoprogramm (Klasse TournamentTreeGuiTest) * Mikroskopische Aenderungen hier und da 2006-09-22-B Hendrik Krauss [hkr@xxxxxxxx]: Klasse MemoryLeakTest erstellt 2006-09-22 Hendrik Krauss [hkr@xxxxxxxx]: Umbau Etappe 4 (vorher Tag erstellt): * ContestConductor vereinfacht; ist jetzt Beta; Test-Durchlaeufe des Wettbewerbs scheinen zu funktionieren; Testen wird fortgesetzt * neuer Einstiegspunkt: ctSim.view.contestConductor.ContestConductorTest, der einen Wettbewerb durchlaufen laesst, wobei in jedem Spiel sofort Bot 1 gewinnt * View-Interface ausgebaut, damit die neue ContestConductor-Version arbeiten kann * View-Interface ausgebaut, damit CtSimFrame immer korrekt anzeigen kann, welcher Judge gewaehlt ist * DefaultController angepasst, um die neuen View-Methoden zu nutzen * Konfig wird jetzt wieder geparst und gegen DTD gecheckt (vorher: nur Parsen) * MySQL-Treiber in Verzeichnis contrib (der Vollstaendigkeit halber); .classpath angepasst * Weitere 4 unbenutzte Klassen geloescht * Diverse Verbesserungen 2006-09-20 Benjamin Benz [bbe@xxxxxxxx]: Parcours um Routinen zur Bestimmung der kuerzesten Distanz zwischen einem Punkt und dem Ziel erweitert (dazu einen Leserpatch von Michael Prähofer verwendet) 2006-09-19 Hendrik Krauss [hkr@xxxxxxxx]: Umbau Etappe 3 (vorher Tag erstellt): * World: Zeitvariablen und -methoden nach oben verschoben, umbenannt, besser bzw. ueberhaupt mal dokumentiert. Semantik nicht veraendert. * ParcoursLoader, Parcours, World: Vorbereitungen getroffen fuer Einbau des Shortest-Path-Patch * Subsystem ctSim.view.contestConductor weiterhin experimentell * Konvention zur besseren Unterscheidung von Threads im Debugger: Alle von unserem Code direkt erzeugten Threads haben jetzt Namen, die mit "ctSim/" anfangen * Alle 3 Judges: Straffungen; Arbeit an der Stelle muss aber noch weitergehen * Logging-System auf java.util.logging-Basis eingefuehrt (Hauptklasse fuer uns: ctSim.util.FmtLogger). Sinn: Nach und nach das Gestruepp aus System.out, System.err, Debug.out, ErrorHandler und e.printStackTrace vereinheitlichen + professionalisieren * Weitere 11 unbenutzte Klassen geloescht * Diverse Verbesserungen 2006-09-?? Hendrik Krauss [hkr@xxxxxxxx]: Etappe 2 des Umbaus/Aufraeumens: Grosse Umbenennungen und Verschiebungen; vorher auch Tag erstellt zur Sicherheit. * neuer Einstriegspunkt ins Programm ist die Klasse ctSim.controller.Main nach Reorganisation des Controller * GUI aus Package ctSim.view in Package ctSim.view.gui * ContestJudge heisst jetzt ContestConductor und ist ein View im Package ctSim.view.contestConductor (das sollte die endgueltige Architektur sein) * Es existieren jetzt Interfaces, ueber die Controller und View aufeinander zugreifen, um dieses Objektgestruepp aus Controller, CtSimFrame, World, Judge etc. zu strukturieren; Arbeit in dieser Richtung wird fortgesetzt * diverse Vereinfachungen in der GUI und andernorts * ueberfluessige Dateien weg (jd2xx, mindprod, manches aus der GUI) 2006-0?-?? Hendrik Krauss [hkr@xxxxxxxx]: Etappe 1 vom Umbau des ContestJudge (ehemals LabyrinthContestJudge); einige damit verknuepfte Aenderungen hier und da; generelles Aufraeumen. ContestJudge ist experimentell: kompiliert, aber ist nicht weiter getestet und tut noch nicht das, was er soll 2006-08-23 Felix Beckwermert [felix@xxxxxxxxxxxxxx]: ContestJudge zum testen eingecheckt 2006-08-23 Felix Beckwermert [felix@xxxxxxxxxxxxxx]: BotManager eingef?hrt; Ctrl. und View auf diesen angepasst 2006-08-23 Felix Beckwermert [felix@xxxxxxxxxxxxxx]: Kleinere (Sch?nheits-)Anpassungen -- Benjamin Benz Heise Zeitschriften Verlag Redaktion c't eMail: bbe@xxxxxxxx WWW : http://www.heise.de Heise Zeitschriften Verlag GmbH & Co. KG Registergericht: Amtsgericht Hannover HRA 26709 Persönlich haftende Gesellschafterin: Heise Zeitschriften Verlag Geschäftsführung GmbH Registergericht: Amtsgericht Hannover, HRB 60405 Geschäftsführer: Ansgar Heise, Steven P. Steinkraus, Dr. Alfons Schräder