tof_control/cpu_control/
cpu_temp.rs

1use 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                    // println!("{}: {}", label, component.temperature())
28                }
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        // println!("{:?}", components);
49
50        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                    // println!("{}: {}", label, component.temperature())
71                }
72            }
73        }
74
75        CPUTempDebug {
76            cpu_temp,
77            cpu0_temp,
78            cpu1_temp,
79            mb_temp,
80        }
81    }
82}