package SBC; public class ProcessorStatus { public String name; public int user; public int nice; public int system; public int idle; public int iowait; public int irq; public int softirq; public int steal; public int guest; public int guest_nice; /** * Calculate total CPU time * @return Total CPU time */ public int total_time(){ return user + nice + system + idle + iowait + irq + softirq + steal + guest + guest_nice; } /** * Calculate idle CPU time * @return Idle CPU time */ public int idle_time(){ return idle + iowait; } /** * Calculate CPU usage percentage * @param prev Previous CPU information * @return CPU usage percentage 0 - 100 */ public int cpu_usage(ProcessorStatus prev){ if (prev!=null){ int total_diff = total_time() - prev.total_time(); int idle_diff = idle_time() - prev.idle_time(); return (int)(100.0 * (total_diff - idle_diff) / total_diff); } return 0; } }