e-tipsmemo.hatenablog.com
e-tipsmemo.hatenablog.com
グラフ表示できるようになったので、
Rustで書いたWebsocketのサーバーから送られてくるjsonでグラフを更新する。
jsonは以下のような形
{
"time":2019/01/14 02:50:07,
"voltage":102.396,
"current":108.74219,
"wattage":5.335
}
よって、
var t = [];
var v = [];
var c = [];
var p = [];
var maxsize = 100;
.....
sock.addEventListener('message', function(e){
var jsonstr = JSON.parse(e.data);
if(t.length >= maxsize)
{
t.push(jsonstr['time']);
t.splice(0,1);
v.push(jsonstr['voltage']);
v.splice(0,1);
c.push(jsonstr['current']);
c.splice(0,1);
p.push(jsonstr['wattage']);
p.splice(0,1);
}
else
{
t.push(jsonstr['time']);
v.push(jsonstr['voltage']);
c.push(jsonstr['current']);
p.push(jsonstr['wattage']);
}
vchart.data.label = t;
cchart.data.label = t;
pchart.data.label = t;
vchart.data.datasets[0].data = v;
cchart.data.datasets[0].data = c;
pchart.data.datasets[0].data = p;
vchart.update();
cchart.update();
pchart.update();
});
電力のグラフだけに注目すれば
var pctx;
var pchart;
pctx = $('#powerChart').get(0).getContext('2d');
.....
const pchartDataSet = {
type: 'line',
data: {
labels: t,
datasets: [{
label: 'power',
data: p,
tension: graph_tension,
backgroundColor: 'rgba(0, 0, 125, 0.3)',
borderColor: 'blue'
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
animation:false,
scales: {
yAxes: [
{
ticks: {
beginAtZero: true,
min: 0,
max: 200
}
}
]
}
}
};
pchart= new Chart(pctx, pchartDataSet);
こんな感じでcurrentもvoltageも書いた。
パソコン構成は以下で、
物 |
型番 |
CPU |
Ryzen5 2600X |
マザボ |
Asrock X470 MASTER SLI |
GPU |
GF-GTX660-E2GHD/DF/OC(流用) |
メモリ |
CMK16GX4M2A2666C16 |
電源 |
Corsair CX550M 80PLUS |
ケース |
JONSBO U4 |
SSD |
MZVPV256HDGL-00000 |
HDD |
DT01ACA300 |
グラフから
スリープの時は5Wぐらい。
何もしてない起動時は約80W
シネベンチ(CPU)回して190Wぐらい
でも、CPU自体は
スリープ時(たぶんほぼ0W)
何もしてないとき、2W~3W
シネベンチ(CPU)で90Wか(?)
今後はサーバー側のほうで一ヶ月ごとのcsvファイルでもログしようかと考えている。