Posts mit dem Label Verständnis Projekttext werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Verständnis Projekttext werden angezeigt. Alle Posts anzeigen

Donnerstag, 7. Juli 2016

Umgang mit dem TaxiAppContainer

 Aufgrund einer Anfrage wollte ich noch einmal die TaxiApp Komponente näher erläutern:

Die TaxiApp soll nicht von Ihnen modelliert bzw. realisiert werden, sie wird von uns gestellt. Unsere Komponente stellt eine AppContainer Instanz zur Verfügung (die dem IAppContainer-Interface genügt), von der sie wiederum eine Liste von TaxiApp Instanzen bekommen, die dem ITaxiApp-Interface genügen. Dort können Sie jeweils eine Output Instanz bekommen, an der Ausgaben an die App gemacht werden und einen Handler registrieren, der die Eingaben der Apps verwaltet (also für jede App einen Handler). Instanziierungen durch Ihre Modellierung von von uns gegebenen Interfaces sind nur für die verschiedenen Handler nötig. Alle anderen Instanzen sollten Sie durch entsprechende Methodenaufrufe bekommen.

Donnerstag, 23. Juni 2016

Roboterunfälle

Kann angenommen werden, dass sowas wie ein ADAC-Service-Vertrag abgeschlossen wurde, der versichert, dass Roboter innerhalb einer festen Zeit nach einem Unfall repariert werden? Können wir einfach nach einer festen Zeit weiterfahren?

Dies ist eine weitere Möglichkeit, die Sie aber mit einer entsprechend dokumentierten Annahme beschreiben müssen. Zum Thema Bumper wurde ja schon in http://hpimod2016.blogspot.de/2016/05/zusammengestossene-roboter.html diskutiert.

Verhältnis der Komponenten NetworkAccess und Robot

Ist die Komponente NetworkAccess Teil der Komponente Robot? Oder sind die komplett getrennt?

Dies sind tatsächlich komplett getrennt.

Freitag, 17. Juni 2016

Batterieladung

Kann davon ausgegangen werden, dass alle Roboter beim initialen Start des Systems mit einer vollen Batterieladung ausgestattet sind?

Ja. Sollte aber vermerkt werden als Annahme.

Donnerstag, 16. Juni 2016

Semantik taxiArrived(pos : Position)

​Wofür ist die Methode taxiArrived(..) gedacht? Wird so dem Kunden mitgeteilt, dass das Taxi bei ihm angekommen ist oder dass die Taxifahrt beendet ist oder beides?


Ein Aufruf dieser Methode soll über die Ankunft beim Kunden unterrichten.

Für das Ende der Fahrt können Sie davon ausgehen, dass sobald das Vehikel am Ziel angekommen ist, der Kunde das Taxi verlassen hat.

Dienstag, 14. Juni 2016

Synchrone Kommunikation

Ist die Latenz klein genug, sodass es akzeptabel ist, Request-Response-Muster übers Netzwerk synchron zu implementieren?

Wenn ich die Frage richtig verstanden habe, dann ist die Antwort: Nein.

Zuverlässigkeit der Kommunikation

Dürfen wir messages als zuverlässig annehmen? (Verbindung immer herstellbar, Reihenfolge bleibt erhalten, Latenz ist klein)

Hier dürfen Sie Annahmen treffen (müssen dokumentiert sein) und es entsprechend modellieren.

Kommunikation und Anzahl an Robotern

Ist dem Server in einer Variable bekannt, wie viele Roboter es gibt, oder soll er einfach eine bestimmte Zeit warten, damit sich alle Roboter registrieren können, und dann starten?

Es kann davon ausgegangen werden, dass alle Netzteilnehmer registriert sind bevor etwas von Ihnen modelliertes ausgeführt wird.

Kommunikation: MessageIDs

Sollen wir die messageIds für die Roboter und den Server selbst vergeben? Ist es ok, wenn die Roboter ihre IDs anhand der Startposition generieren und sich damit dann beim Server registrieren? Können wir davon ausgehen, dass erst der Server und dann (innerhalb von z. B. einer Minute) alle Robots angeschaltet werden?

Die MessageIDs werden automatisch vergeben. Entsprechend ist das Interface IWlanAdapter mit passenden Methoden ausgestattet.

IRSensorDistance

Was ist die genaue Bedeutung von IRSensorDistance.position() : int und positionDegree() : float?

Bei position() handelt es sich um einen von neun Werten, der für die Position des Sensors am Roboter steht. positionDegree() liefert die Position des entsprechenden Sensors in Grad zur Vorne Position des Roboters

Rotationsparameter der drive-Methoden

Passiert Rotation um beliebige Winkel augenblicklich? (Falls nicht, wann ist sie fertig / wie können wir das feststellen?)

Genauso wie bei den Parametern der drive-Methoden für das Fahren, handelt es sich bei der Angabe für das Drehen um eine Geschwindigkeitsvorgabe. Im Falle der Drehung allerdings um eine Winkelgeschwindigkeit.

Eigenschaften der Methoden drive, driveCautiously

Ist es erlaubt, dass bei IDrive.drive(Cautiously), zwei bzw. drei Argumente gleichzeitig ungleich 0 sind? Ist insbesondere schräges Fahren erlaubt oder Drehung während der Fahrt?

Ja und ja.