package scjlibs; import javax.realtime.AbsoluteTime; import javax.realtime.Clock; import javax.safetycritical.Terminal; import com.jopdesign.sys.Memory; public class ImmortalEntry { static AbsoluteTime clk = null; public static Logger log = null; public static int eventsLogged = 0; public static DumpLog dumpLog = null; public static Terminal term = null; static public StringBuffer memArea = null; static public Memory mem = null; static public Object initMonitor = new Object(); public static void setup() { clk = Clock.getRealtimeClock().getTime(); log = new Logger(); dumpLog = new DumpLog(); memArea = new StringBuffer(); term = Terminal.getTerminal(); term.writeln("Setup ok..."); } public static void memStats(Memory mem) { memArea.delete(0, memArea.length()); switch (mem.level) { case 0: memArea.append("Immortal"); break; case 1: memArea.append("Mission"); break; case 2: memArea.append("Private"); break; default: memArea.append("Nested private"); break; } System.out.println(""); System.out.println("============ " + memArea + " memory stats ============"); System.out.println("Mem. size: " + mem.size()); System.out.println("Mem. remaining: " + mem.memoryRemaining()); System.out.println("Mem. consumed: " + mem.memoryConsumed()); System.out.println("Bs. remaining: " + mem.bStoreRemaining()); System.out.println("============ " + memArea + " memory stats ============"); System.out.println(""); } public static void memStats() { memStats(Memory.getCurrentMemory()); } public static class DumpLog implements Runnable { /** * An entry in the log table */ public int logEntry = 0; /** * Choose what type of information to print */ public int selector = 0; @Override public void run() { switch (selector) { case 0: log.dumpEntry(logEntry); break; case 1: log.dumpDelta(logEntry, logEntry + 1); default: break; } } } }