/** * @author Frank Zeyda, Kun Wei */ package hijac.cdx; import javax.realtime.AperiodicParameters; import javax.realtime.PriorityParameters; import javax.realtime.PriorityScheduler; import javax.safetycritical.AperiodicEventHandler; import javax.safetycritical.StorageParameters; import hijac.cdx.CDxMission; /** * OutputCollisionsHandler outputs the number of detected collisions to an * external device. For the purpose of the simulation, we merely print it on the * screen. */ public class OutputCollisionsHandler extends AperiodicEventHandler { public final CDxMission mission; public OutputCollisionsHandler(CDxMission mission) { super(new PriorityParameters(PriorityScheduler.instance() .getMaxPriority()), new AperiodicParameters(), new StorageParameters(2048, null, 0, 0), 1024, "OutputHandler"); this.mission = mission; } @Override public void handleAsyncEvent() { System.out.println("[OutputHandler] called"); /* The the collisions result form the CDxMission class. */ int colls = mission.getColls(); System.out.println(colls + " collisions have been detected!"); /* In a real program: write collisions to an external device. */ /* Signal to InputFrameHandler we are ready to process the next frame. */ mission.simulator.detectorReady = true; } }