package ejip123.util; public abstract class Dbg{ abstract void dbgWr(int c); private static Dbg st = null; private static final int MAX_TMP = 32; private static int[] tmp; // a generic buffer /** init serial or UDP Debugging */ public static void init(){ if(st == null){ tmp = new int[MAX_TMP]; st = new DbgUdp(); } } /** force serial Debugging */ public static void initSer(){ if(st == null){ tmp = new int[MAX_TMP]; st = new DbgSerial(); } } /** force serial Debugging with waiting */ public static void initSerWait(){ if(st == null){ tmp = new int[MAX_TMP]; st = new DbgSerial(true); } } public static void wr(int c){ st.dbgWr(c); } public static void lf(){ st.dbgWr('\r'); st.dbgWr('\n'); } public static void wr(String s, int val){ wr(s); intVal(val); wr("\r\n"); } public static void wr(String s){ int i = s.length(); for(int j = 0; j < i; ++j){ wr(s.charAt(j)); } } public static void wr(StringBuffer s){ int i = s.length(); for(int j = 0; j < i; ++j){ wr(s.charAt(j)); } } public static void wr(boolean b){ wr(b ? "true " : "false "); } public static void intVal(int val){ int sign = 1; if(val < 0){ wr('-'); //val = -val; sign = -1; } int i; for(i = 0; i < MAX_TMP - 1; ++i){ //tmp[i] = (val%10)+'0'; tmp[i] = ((val % 10) * sign) + '0'; val /= 10; if(val == 0) break; } for(val = i; val >= 0; --val){ wr((char)tmp[val]); } wr(' '); } public static void hexVal(int val){ if(val < 16 && val >= 0) wr('0'); int i; for(i = 0; i < MAX_TMP - 1; ++i){ int j = val&0x0f; if(j < 10){ j += '0'; } else{ j += 'a' - 10; } tmp[i] = j; val >>>= 4; if(val == 0) break; } for(val = i; val >= 0; --val){ wr(tmp[val]); } wr(' '); } public static void byteVal(int val){ int j = (val>>4)&0x0f; if(j < 10){ j += '0'; } else{ j += 'a' - 10; } wr(j); j = val&0x0f; if(j < 10){ j += '0'; } else{ j += 'a' - 10; } wr(j); wr(' '); } }