/************************************************************************** * File name : MyApp.java * * This code is available under the license: * Creative Commons, http://creativecommons.org/licenses/by-nc-nd/3.0/ * It is free for non-commercial use. * * VIA University College, Horsens, Denmark, 2011 * Hans Soendergaard, hso@viauc.dk * * Description: * * Revision history: * date init comment * *************************************************************************/ package minicdj; import javax.realtime.PriorityParameters; import javax.safetycritical.Launcher; import javax.safetycritical.Mission; import javax.safetycritical.MissionSequencer; import javax.safetycritical.Safelet; import javax.safetycritical.StorageParameters; import javax.scj.util.Const; import javax.scj.util.Priorities; import minicdj.cdx.Constants; import minicdj.cdx.Level0Safelet; import minicdj.utils.Utils; @SuppressWarnings("rawtypes") public class MyApp implements Safelet { public MissionSequencer getSequencer() { devices.Console.println("** MyApp.getSequencer"); return new MySequencer(); } public long immortalMemorySize() { return Const.IMMORTAL_MEM; } public static void main(String[] args) { devices.Console.println("\n****** mini cdj: main.begin"); if (args.length > 0) Constants.NUMBER_OF_PLANES = Integer.parseInt(args[0]); if (args.length > 1) Constants.DETECTOR_PERIOD = Integer.parseInt(args[1]); if (args.length > 2) Constants.MAX_FRAMES = Integer.parseInt(args[2]); Utils.debugPrint("Planes: " + Constants.NUMBER_OF_PLANES); Utils.debugPrint("Period: " + Constants.DETECTOR_PERIOD); Utils.debugPrint("Frames: " + Constants.MAX_FRAMES); // executes in heap memory new Launcher(new MyApp(), 0); devices.Console.println(" ****** mini cdj: main.end **************"); } final class MySequencer extends MissionSequencer { private Level0Safelet mission; MySequencer() { super( new PriorityParameters(Priorities.PR99), new StorageParameters(Const.PRIVATE_MEM, null, 0, 0, 0)); devices.Console .println("---- MySequencer.constructor: super finished"); mission = new Level0Safelet(); // with information about size of mission memory mission.setup(); devices.Console .println("MySequencer.constructor: MyMission created"); } public Mission getNextMission() { if (mission.terminationPending()) { devices.Console .println("\n ** MySequencer.getNextMission: null \n missionTerminate: " + mission.terminationPending()); mission.teardown(); return null; } else { devices.Console.println("\nMySequencer.getNextMission:" + mission + "\n missionTerminate: " + mission.terminationPending()); return mission; } } } @Override public void initializeApplication() { } }