* @throws Exception
*/
private static void printJmxStatus(MBeanServerConnection mbsc) throws Exception {
ObjectName mbeanName = new ObjectName(PixelControllerStatus.JMX_BEAN_NAME);
PixelControllerStatusMBean mbeanProxy = JMX.newMBeanProxy(mbsc, mbeanName, PixelControllerStatusMBean.class, true);
// print general status information
System.out.println("\nGeneric:");
System.out.printf("%-25s: %s\n",
"server version",
mbeanProxy.getVersion()
);
System.out.printf("%-25s: %3.3f (%s of configured fps: %2.0f)\n",
"current fps",
mbeanProxy.getCurrentFps(),
PERCENT_FORMAT.format(mbeanProxy.getCurrentFps() / mbeanProxy.getConfiguredFps()),
mbeanProxy.getConfiguredFps()
);
System.out.printf("%-25s: %d\n",
"frame count",
mbeanProxy.getFrameCount()
);
System.out.printf("%-25s: %s\n",
"running since",
DurationFormatUtils.formatDurationHMS(System.currentTimeMillis() - mbeanProxy.getStartTime())
);
System.out.printf("%-25s: %s/%s\n",
"OSC Packets/Bytes Recieved",
mbeanProxy.getRecievedOscPakets(),
mbeanProxy.getRecievedOscBytes()
);
// print average timing information
System.out.println("\nThe following average times have been collected during the last "
+ DurationFormatUtils.formatDuration(mbeanProxy.getRecordedMilliSeconds(), "ss.SSS") + " seconds:");
for (TimeMeasureItemGlobal valueEnum : TimeMeasureItemGlobal.values()) {
System.out.printf(" %-22s: %3.3fms\n",
valueEnum.getReadableName(),
mbeanProxy.getAverageTime(valueEnum)
);
}
// print output specific timing information
for (int output = 0; output < mbeanProxy.getNumberOfOutputs(); output++) {
System.out.println("\nOuput-specific average times for output #" + (output+1) + ": " + mbeanProxy.getOutputType(output).getReadableName());
for (TimeMeasureItemOutput outputValueEnum : TimeMeasureItemOutput.values()) {
System.out.printf(" %-22s: %3.3fms\n",
outputValueEnum.getReadableName(),
mbeanProxy.getOutputAverageTime(output, outputValueEnum)
);
}
}
System.out.println("\nCurrent settings:");
for (String s: mbeanProxy.getCurrentState()) {
if (s.contains("CURRENT_VISUAL") || s.contains("CURRENT_OUTPUT") || s.contains("CHANGE_ROTOZOOM")) {
System.out.println();
}
System.out.println(" "+s);
}