displaying data
This commit is contained in:
parent
d79f599108
commit
4e1268445a
Binary file not shown.
After Width: | Height: | Size: 8.2 KiB |
|
@ -0,0 +1,25 @@
|
|||
package com.skunkworks;
|
||||
|
||||
public class Parameter {
|
||||
private final String identifier;
|
||||
private final String name;
|
||||
private final double value;
|
||||
|
||||
public Parameter(String identifier, String name, double value) {
|
||||
this.identifier = identifier;
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getIdentifier() {
|
||||
return identifier;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public double getValue() {
|
||||
return value;
|
||||
}
|
||||
}
|
|
@ -2,10 +2,97 @@ package com.skunkworks;
|
|||
|
||||
import com.danitheskunk.skunkworks.BaseGame;
|
||||
import com.danitheskunk.skunkworks.Vec2i;
|
||||
import com.danitheskunk.skunkworks.gfx.Color;
|
||||
import com.danitheskunk.skunkworks.gfx.IRenderContext;
|
||||
import com.danitheskunk.skunkworks.gfx.vt.Terminal;
|
||||
|
||||
import java.awt.image.renderable.RenderContext;
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class SkunkMeter extends BaseGame {
|
||||
Terminal term;
|
||||
double nextSecond;
|
||||
|
||||
public SkunkMeter() {
|
||||
super(new Vec2i(1280, 720), "SkunkMeter v0.0");
|
||||
term = new Terminal(new Vec2i(80, 25),
|
||||
window.loadFontTileset("fonts/ega-16x28.png")
|
||||
);
|
||||
System.out.println(getData());
|
||||
var data = processData(getData());
|
||||
nextSecond = 0.0;
|
||||
}
|
||||
|
||||
public static String getData() {
|
||||
var pb = new ProcessBuilder("powershell.exe",
|
||||
"-Command",
|
||||
"Get-CimInstance -namespace root\\LibreHardwareMonitor -class " +
|
||||
"Sensor | Out-String -Stream -Width 1000"
|
||||
);
|
||||
|
||||
try {
|
||||
var p = pb.start();
|
||||
var bis = new BufferedInputStream(p.getInputStream());
|
||||
var buf = new ByteArrayOutputStream();
|
||||
for(int result = bis.read(); result != -1; result = bis.read()) {
|
||||
buf.write((byte) result);
|
||||
}
|
||||
return buf.toString(StandardCharsets.UTF_8);
|
||||
} catch(IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public HashMap<String, Parameter> processData(String in) {
|
||||
var elems = in.split("\r\n\r\n");
|
||||
//skip first empty element
|
||||
var elemsParsed = new HashMap<String, Parameter>();
|
||||
for(int i = 1; i < elems.length; ++i) {
|
||||
var elem = elems[i].split("\r\n");
|
||||
String identifier = "";
|
||||
String name = "";
|
||||
double value = 0.0;
|
||||
for(var par : elem) {
|
||||
var kv = par.split("\s*:\s*");
|
||||
switch(kv[0]) {
|
||||
case "Identifier":
|
||||
identifier = kv[1];
|
||||
break;
|
||||
case "Name":
|
||||
name = kv[1];
|
||||
break;
|
||||
case "Value":
|
||||
value = Double.parseDouble(kv[1]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
elemsParsed.put(identifier, new Parameter(identifier, name, value));
|
||||
}
|
||||
return elemsParsed;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void render(IRenderContext rc) {
|
||||
rc.drawTerminal(term);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void update(double delta) {
|
||||
nextSecond -= delta;
|
||||
if(nextSecond <= 0.0) {
|
||||
var data = processData(getData());
|
||||
term.clear(Color.BLACK);
|
||||
var cpuPackage = data.get("/intelcpu/0/temperature/4");
|
||||
term.drawString(new Vec2i(0, 0), cpuPackage.getName() + ":");
|
||||
term.drawString(new Vec2i(15, 0),
|
||||
String.valueOf(cpuPackage.getValue()) + "C");
|
||||
nextSecond += 1.0;
|
||||
}
|
||||
super.update(delta);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
|
Loading…
Reference in New Issue