tof_control/cpu_control/
cpu_temp.rs1use sysinfo::{System, SystemExt, ComponentExt};
2
3use crate::helper::cpu_type::{CPUTemp, CPUTempDebug};
4
5impl CPUTemp {
6 pub fn new() -> Self {
7 let cpu_temp = Self::read_temp();
8
9 cpu_temp
10 }
11 pub fn read_temp() -> CPUTemp {
12 let sys = System::new_all();
13 let components = sys.components();
14
15 let mut cpu0_temp: f32 = Default::default();
16 let mut cpu1_temp: f32 = Default::default();
17 for component in components {
18 let label = component.label();
19 match label {
20 "coretemp Core 0" => {
21 cpu0_temp = component.temperature();
22 }
23 "coretemp Core 1" => {
24 cpu1_temp = component.temperature();
25 }
26 _ => {
27 }
29 }
30 }
31
32 CPUTemp {
33 cpu0_temp,
34 cpu1_temp,
35 }
36 }
37}
38
39impl CPUTempDebug {
40 pub fn new() -> Self {
41 let cpu_temp = Self::read_temp();
42
43 cpu_temp
44 }
45 pub fn read_temp() -> CPUTempDebug {
46 let sys = System::new_all();
47 let components = sys.components();
48 let mut cpu_temp: f32 = Default::default();
51 let mut cpu0_temp: f32 = Default::default();
52 let mut cpu1_temp: f32 = Default::default();
53 let mut mb_temp: f32 = Default::default();
54 for component in components {
55 let label = component.label();
56 match label {
57 "coretemp Package id 0" => {
58 cpu_temp = component.temperature();
59 }
60 "coretemp Core 0" => {
61 cpu0_temp = component.temperature();
62 }
63 "coretemp Core 1" => {
64 cpu1_temp = component.temperature();
65 }
66 "pch_skylake temp1" => {
67 mb_temp = component.temperature();
68 }
69 _ => {
70 }
72 }
73 }
74
75 CPUTempDebug {
76 cpu_temp,
77 cpu0_temp,
78 cpu1_temp,
79 mb_temp,
80 }
81 }
82}