package test.level1;
import java.util.Random;
import javax.realtime.PeriodicParameters;
import javax.realtime.PriorityParameters;
import javax.safetycritical.AperiodicEventHandler;
import javax.safetycritical.AperiodicLongEventHandler;
import javax.safetycritical.Mission;
import javax.safetycritical.PeriodicEventHandler;
import javax.safetycritical.StorageParameters;
import javax.safetycritical.Terminal;
import com.jopdesign.sys.Memory;
public class TestPEH extends PeriodicEventHandler {
int fireCount = 0;
AperiodicEventHandler aeh;
AperiodicLongEventHandler aleh;
Random rnd = new Random();
public TestPEH(PriorityParameters priority, PeriodicParameters release,
StorageParameters storage, long scopeSize, AperiodicEventHandler aeh,
AperiodicLongEventHandler aleh) {
super(priority, release, storage, scopeSize);
this.aeh = aeh;
this.aleh = aleh;
}
@Override
public void handleAsyncEvent() {
Terminal.getTerminal().writeln("PEH");
// Object object = new Object();
// Memory m = Memory.getMemoryArea(object);
// Terminal.getTerminal().writeln("Level: "+m.level);
if (rnd.nextInt(3) == 1) {
aeh.release();
aleh.release(666);
fireCount++;
}
if (fireCount > 2) {
Mission.getCurrentMission().requestTermination();
}
}
}