Files
flutter_server_box/lib/data/model/server/cpu_status.dart
lollipopkit a518dca0ca opt.
2023-01-28 21:16:53 +08:00

110 lines
2.3 KiB
Dart

get initOneTimeCpuStatus => OneTimeCpuStatus(
'cpu',
0,
0,
0,
0,
0,
0,
0,
);
get initCpuStatus => CpuStatus(
[initOneTimeCpuStatus],
[initOneTimeCpuStatus],
'',
);
class CpuStatus {
List<OneTimeCpuStatus> _pre;
List<OneTimeCpuStatus> _now;
String temp;
CpuStatus(this._pre, this._now, this.temp);
double usedPercent({int coreIdx = 0}) {
if (_now.length != _pre.length) return 0;
final idleDelta = _now[coreIdx].idle - _pre[coreIdx].idle;
final totalDelta = _now[coreIdx].total - _pre[coreIdx].total;
final used = idleDelta / totalDelta;
return used.isNaN ? 0 : 100 - used * 100;
}
void update(List<OneTimeCpuStatus> newStatus, String newTemp) {
_pre = _now;
_now = newStatus;
temp = newTemp;
}
int get coresCount => _now.length;
int get totalDelta => _now[0].total - _pre[0].total;
double get user {
if (_now.length != _pre.length) return 0;
final delta = _now[0].user - _pre[0].user;
final used = delta / totalDelta;
return used.isNaN ? 0 : used * 100;
}
double get sys {
if (_now.length != _pre.length) return 0;
final delta = _now[0].sys - _pre[0].sys;
final used = delta / totalDelta;
return used.isNaN ? 0 : used * 100;
}
double get nice {
if (_now.length != _pre.length) return 0;
final delta = _now[0].nice - _pre[0].nice;
final used = delta / totalDelta;
return used.isNaN ? 0 : used * 100;
}
double get iowait {
if (_now.length != _pre.length) return 0;
final delta = _now[0].iowait - _pre[0].iowait;
final used = delta / totalDelta;
return used.isNaN ? 0 : used * 100;
}
double get idle => 100 - usedPercent();
}
///
/// Code generated by jsonToDartModel https://ashamp.github.io/jsonToDartModel/
///
class OneTimeCpuStatus {
/*
{
"user": 0,
"sys": 0,
"nice": 0,
"idel": 0,
"wa": 0,
"hi": 0,
"si": 0,
"st": 0
}
*/
late String id;
late int user;
late int sys;
late int nice;
late int idle;
late int iowait;
late int irq;
late int softirq;
OneTimeCpuStatus(
this.id,
this.user,
this.sys,
this.nice,
this.idle,
this.iowait,
this.irq,
this.softirq,
);
int get total => user + sys + nice + idle + iowait + irq + softirq;
}