\begin{vdm_al} ----------------------------------------------- -- Class: Environment -- Description: Environment class in the VeMo project -----------------------------------------------
public Environment: seqofchar ==> Environment
Environment(filename) ==
(
Printer`OutWithTS("Environment created: "
^ "Some aren't used to an environment"
^ " where excellence is expected");
let c = vemoCtrl.getController(event.ID) in
c.getVehicle().SetSpeed(event.speed);
eventOccurred := true;
)
),
mk_Types`VehicleUpdatePosition(-,-,-,-) ->
( if event.t <= curtime then
( let pos = new Position(event.posX, event.posY) in let c = vemoCtrl.getController(event.ID) in
(
c.getVehicle().SetPosition(pos);
Printer`OutWithTS("Environment: PositionUpdate event: For vehicle: "
^ Printer`natToString(event.ID)
^ " New position:"
^ pos.toString());
);
eventOccurred := true;
)
),
mk_Types`VehicleLowGrip (-,-,-) ->
( if event.t <= curtime then
(
Printer`OutWithTS("Environment: LowGrip event: "
^ "For vehicle: "
^ Printer`natToString(event.ID)); let c = vemoCtrl.getController(event.ID) in
c.getVehicle().setLowGrip(event.lowGrip);
eventOccurred := true;
)
),
mk_Types`VehicleTurnIndication(-,-,-) ->
( if event.t <= curtime then
(
Printer`OutWithTS("Environment: TurnIndication event: "
^ "For vehicle: "
^ Printer`natToString(event.ID)
^ " New indicator: "
^ Vehicle`IndicatorToString(event.turn)); let c = vemoCtrl.getController(event.ID) in
c.getVehicle().setTurnIndicator(event.turn);
eventOccurred := true;
)
),
mk_Types`VehicleUpdateDirection(-,-,-) ->
( if event.t <= curtime then
(
Printer`OutWithTS("Environment: DirectionUpdate event: "
^ "For vehicle: "
^ Printer`natToString(event.ID)
^ " New Direction: "
^ Types`DirectionToString(event.direction)); let c = vemoCtrl.getController(event.ID) in
c.getVehicle().SetDirection(event.direction);
eventOccurred := true;
)
),
mk_Types`WasteTime(-) ->
( if event.t <= curtime then
(
Printer`OutWithTS("Environment: Wasting time");
eventOccurred := true;
)
), others -> Printer`OutWithTS("Environment: No match found") end;
if eventOccurred then
(
inlines := tl inlines;
done := len inlines = 0;
) else done := true;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.