public Run: () ==> ()
Run () ==
(while not (isFinished() and CM`detector.isFinished()) do
(evid := createSignal();
CM`detector.Step();
World`timerRef.StepTime();
);
showResult()
);
private createSignal: () ==> [EventId]
createSignal () ==
(iflen inlines > 0 then (dcl curtime : Time := World`timerRef.GetTime(),
done : bool := false; while not done do def mk_ (eventid, pmt, pa, pt) = hd inlines in if pt <= curtime then (forall id insetdom ranges do def mk_(papplhs,pappsize) = ranges(id) in if canObserve(pa,papplhs,pappsize) then sensors(id).trip(eventid,pmt,pa);
inlines := tl inlines;
done := len inlines = 0; return eventid ) else (done := true; returnnil )) else (busy := false; returnnil));
public handleEvent: EventId * FlareType * Angle * Time * Time ==> ()
handleEvent (newevid,pfltp,angle,pt1,pt2) ==
(outlines := outlines ^ [mk_ (newevid,pfltp, angle,pt1, pt2)] );
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 und die Messung sind noch experimentell.