13210058b03948bb7ff1b173141c3111f8621783
[temp2RGB.git] / src / tests.rs
1 use std::collections::HashMap;
2
3 use wmi::{COMLibrary, Variant, WMIConnection};
4
5 use crate::{
6 a770, asus_aura_usb, corsair_lighting_pro, corsair_vengeance, cpu_temperature, machine,
7 rgb::RGB, winring0, wrapper_winring0,
8 };
9
10 pub fn tests() {
11 println!("Running some tests...");
12
13 winring0::init();
14
15 // test_asus_aura_usb(asus_aura_usb::Motherboard::AsusCrosshairVIIIHero);
16 // test_corsair_lighting_pro();
17 // list_usb_devices();
18 // test_roccat();
19 // test_wmi();
20 // test_corsair();
21 // test_a770();
22 test_read_temperature_cpu();
23 // test_read_temperatur_a770
24
25 winring0::deinit();
26
27 println!("Press any key to continue...");
28 std::io::stdin().read_line(&mut String::new()).unwrap();
29 }
30
31 fn test_wmi() {
32 let com_con = COMLibrary::new().unwrap();
33 let wmi_con = WMIConnection::new(com_con.into()).unwrap();
34
35 //let results: Vec<HashMap<String, Variant>> = wmi_con.raw_query("SELECT * FROM Win32_PnPSignedDriver WHERE Description LIKE '%SMBUS%' OR Description LIKE '%SM BUS%'").unwrap();
36 //let results: Vec<HashMap<String, Variant>> = wmi_con.raw_query("SELECT * FROM Win32_PnPSignedDriver WHERE Description LIKE 'Intel(R) NF I2C Host Controller'").unwrap();
37 let results: Vec<HashMap<String, Variant>> = wmi_con
38 .raw_query("SELECT * FROM Win32_PnPSignedDriver")
39 .unwrap();
40 //let results: Vec<HashMap<String, Variant>> = wmi_con.raw_query("SELECT * FROM Win32_PnPAllocatedResource").unwrap();
41
42 for os in results {
43 println!("-------------------");
44 println!("{:#?}", os);
45 }
46 }
47
48 fn list_usb_devices() {
49 let api = hidapi::HidApi::new().unwrap();
50 for device in api.device_list() {
51 println!("{:?}", device);
52 println!("name: {}", device.product_string().unwrap());
53 println!("interface number: {}", device.interface_number());
54 println!("page: {}", device.usage_page());
55 println!("usage: {}", device.usage());
56 println!("----");
57 }
58 }
59
60 // fn test_roccat() {
61 // let api = hidapi::HidApi::new().unwrap();
62 // let roccat_device = roccat::get_device(&api);
63
64 // let manufacturer = roccat_device.get_manufacturer_string().unwrap();
65 // dbg!(manufacturer);
66
67 // let product = roccat_device.get_product_string().unwrap();
68 // dbg!(product);
69
70 // let serial = roccat_device.get_serial_number_string().unwrap();
71 // dbg!(serial);
72
73 // roccat::init(&roccat_device);
74 // roccat::set_color(
75 // &roccat_device,
76 // &RGB {
77 // red: 0,
78 // green: 255,
79 // blue: 40,
80 // },
81 // );
82 // }
83
84 fn test_asus_aura_usb(motherboard: asus_aura_usb::Motherboard) {
85 let api = hidapi::HidApi::new().unwrap();
86
87 let device = asus_aura_usb::Device::new(&api, motherboard);
88
89 println!("Firmware: {}", device.get_firmware_string());
90
91 let configuration = device.get_configuration_table();
92 println!("Configuration:");
93 for i in 0..60 {
94 print!("{:02X} ", configuration[i]);
95 if (i + 1) % 6 == 0 {
96 println!("");
97 }
98 }
99 println!("Number of addressable header: {}", configuration[0x02]);
100 println!("Number of leds: {}", configuration[0x1B]);
101 println!("Number of RGB headers: {}", configuration[0x1D]);
102
103 // Only once, at start.
104 device.set_fixed_mode();
105
106 device.set_color(&RGB {
107 red: 0,
108 green: 0,
109 blue: 255,
110 });
111
112 device.save_current_color();
113 }
114
115 fn test_corsair_lighting_pro() {
116 let api = hidapi::HidApi::new().unwrap();
117 let device = corsair_lighting_pro::Device::new(&api);
118
119 device.set_color(&RGB {
120 red: 0,
121 green: 0,
122 blue: 255,
123 });
124 }
125
126 fn test_corsair() {
127 let corsair_controllers = [
128 corsair_vengeance::Controller::new(0x19),
129 corsair_vengeance::Controller::new(0x1B),
130 ];
131 for controller in corsair_controllers {
132 controller.set_color(&RGB {
133 red: 0,
134 green: 0,
135 blue: 255,
136 });
137 }
138 }
139
140 fn test_a770() {
141 // a770::set_rgb(255, 0, 0);
142 let mut a770 = a770::A770::new();
143 a770.set_color(255, 0, 0);
144 }
145
146 const F17H_M01H_THM_TCON_CUR_TMP: u32 = 0x00059800;
147 const F17H_TEMP_OFFSET_FLAG: u32 = 0x80000;
148 const FAMILY_17H_PCI_CONTROL_REGISTER: u32 = 0x60;
149
150 fn test_read_temperature_cpu() {
151 println!("temp cpu: {}", cpu_temperature::read())
152 }
153
154 fn test_read_temperatur_a770() {
155 let jiji: &dyn machine::Machine = &machine::MachineJiji::new();
156 println!("temp gpu: {}", jiji.get_gpu_tmp());
157 }
158