X-Git-Url: https://git.euphorik.ch/?a=blobdiff_plain;f=src%2Ftests.rs;h=b49081eb987fd3998f431ee8c425c49dd8f69233;hb=HEAD;hp=f01f77acf043bb0ff7dadbca8b9588308c9f0130;hpb=0c50e4418792d9f5b78ef1c96d66514058beec26;p=temp2RGB.git diff --git a/src/tests.rs b/src/tests.rs index f01f77a..c0d0ad4 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -1,196 +1,230 @@ -use std::collections::HashMap; - -use wmi::{COMLibrary, Variant, WMIConnection}; - -use crate::{ - a770, asus_aura_usb, corsair_lighting_pro, corsair_vengeance, cpu_temperature, machine, - rgb::RGB, winring0, wrapper_winring0, -}; - -pub fn tests() { - println!("Running some tests..."); - - winring0::init(); - - // test_asus_aura_usb(asus_aura_usb::Motherboard::Asus650e); - // test_corsair_lighting_pro(); - // list_usb_devices(); - // test_roccat(); - // test_wmi(); - // test_corsair(); - // test_a770(); - // test_3080ti(); - // test_read_temperature_cpu(); - // test_read_temperature_a770(); - test_read_temperature_3080(); - - winring0::deinit(); - - println!("Press any key to continue..."); - std::io::stdin().read_line(&mut String::new()).unwrap(); -} - -fn test_wmi() { - let com_con = COMLibrary::new().unwrap(); - let wmi_con = WMIConnection::new(com_con.into()).unwrap(); - - //let results: Vec> = wmi_con.raw_query("SELECT * FROM Win32_PnPSignedDriver WHERE Description LIKE '%SMBUS%' OR Description LIKE '%SM BUS%'").unwrap(); - //let results: Vec> = wmi_con.raw_query("SELECT * FROM Win32_PnPSignedDriver WHERE Description LIKE 'Intel(R) NF I2C Host Controller'").unwrap(); - let results: Vec> = wmi_con - .raw_query("SELECT * FROM Win32_PnPSignedDriver") - .unwrap(); - //let results: Vec> = wmi_con.raw_query("SELECT * FROM Win32_PnPAllocatedResource").unwrap(); - - for os in results { - println!("-------------------"); - println!("{:#?}", os); - } -} - -fn list_usb_devices() { - let api = hidapi::HidApi::new().unwrap(); - for device in api.device_list() { - println!("{:?}", device); - println!("name: {}", device.product_string().unwrap()); - println!("interface number: {}", device.interface_number()); - println!("page: {}", device.usage_page()); - println!("usage: {}", device.usage()); - println!("----"); - } -} - -// fn test_roccat() { -// let api = hidapi::HidApi::new().unwrap(); -// let roccat_device = roccat::get_device(&api); - -// let manufacturer = roccat_device.get_manufacturer_string().unwrap(); -// dbg!(manufacturer); - -// let product = roccat_device.get_product_string().unwrap(); -// dbg!(product); - -// let serial = roccat_device.get_serial_number_string().unwrap(); -// dbg!(serial); - -// roccat::init(&roccat_device); -// roccat::set_color( -// &roccat_device, -// &RGB { -// red: 0, -// green: 255, -// blue: 40, -// }, -// ); -// } - -fn test_asus_aura_usb(motherboard: asus_aura_usb::Motherboard) { - let api = hidapi::HidApi::new().unwrap(); - - let device = asus_aura_usb::Device::new(&api, motherboard).unwrap(); - - println!("Firmware: {}", device.get_firmware_string().unwrap()); - - let configuration = device.get_configuration_table().unwrap(); - println!("Configuration:"); - for i in 0..60 { - print!("{:02X} ", configuration[i]); - if (i + 1) % 6 == 0 { - println!(""); - } - } - println!("Number of addressable header: {}", configuration[0x02]); - println!("Number of leds: {}", configuration[0x1B]); - println!("Number of RGB headers: {}", configuration[0x1D]); - - device - .set_color(&RGB { - red: 0, - green: 0, - blue: 255, - }) - .unwrap(); - - device.save_current_color().unwrap(); -} - -fn test_corsair_lighting_pro() { - let api = hidapi::HidApi::new().unwrap(); - let device = corsair_lighting_pro::Device::new( - &api, - &RGB { - red: 0, - green: 255, - blue: 0, - }, - ); - - for i in 0..=255 { - if i % 10 == 0 || i == 255 || i == 0 { - device.set_color(&RGB { - red: i as u8, - green: 255u8 - i as u8, - blue: 0, - }); - std::thread::sleep(std::time::Duration::from_millis(200)); - } - } -} - -fn test_corsair() { - let corsair_controllers = [ - corsair_vengeance::Controller::new(0x19), - corsair_vengeance::Controller::new(0x1B), - ]; - - for controller in corsair_controllers { - controller.set_color(&RGB { - red: 0, - green: 0, - blue: 255, - }); - } -} - -fn test_a770() { - // a770::set_rgb(255, 0, 0); - let mut a770 = a770::A770::new().unwrap(); - a770.set_color(255, 0, 0).unwrap(); -} - -fn test_3080ti() { - let machine: &mut dyn machine::Machine = &mut machine::MachineLyssMetal::new().unwrap(); - - machine.set_color(&RGB { - red: 255, - green: 0, - blue: 0, - }); -} - -const F17H_M01H_THM_TCON_CUR_TMP: u32 = 0x00059800; -const F17H_TEMP_OFFSET_FLAG: u32 = 0x80000; -const FAMILY_17H_PCI_CONTROL_REGISTER: u32 = 0x60; - -fn test_read_temperature_cpu() { - println!("temp cpu: {}", cpu_temperature::read()) -} - -fn test_read_temperature_a770() { - let jiji: &dyn machine::Machine = &machine::MachineJiji::new().unwrap(); - println!("temp gpu: {}", jiji.get_gpu_tmp()); -} - -fn test_read_temperature_3080() { - nvapi::initialize().expect("Unable to initialize nvapi (Nvidia API)"); - // if let Ok(gpus) = { - // for gpu in gpus { - // let thermal = gpu.thermal_settings(None).unwrap()[0]; - // println!("{:?}", thermal.current_temperature.0) - // } - // } - let gpus = nvapi::PhysicalGpu::enumerate().unwrap(); - let gpu = &gpus[0]; - let sensor = gpu.thermal_settings(None).unwrap()[0]; - println!("{:?}", sensor.current_temperature.0); - nvapi::unload().unwrap(); -} +use std::collections::HashMap; + +use wmi::{COMLibrary, Variant, WMIConnection}; + +use crate::{ + a770, asus_aura_usb, corsair_lighting_pro, corsair_vengeance, cpu_temperature, + gigabyte_rgb_fusion_usb, lian_li_sl_infinity, machine, rgb::Rgb, winring0, +}; + +pub fn tests() { + println!("Running some tests..."); + + winring0::init(); + + // test_asus_aura_usb(asus_aura_usb::Motherboard::Asus650e); + // test_corsair_lighting_pro(); + // test_lianli_sl_infinity(); + // list_usb_devices(); + // test_roccat(); + // test_wmi(); + // test_corsair(); + // test_a770(); + // test_3080ti(); + // test_read_temperature_cpu(); + // test_read_temperature_a770(); + // test_read_temperature_3080(); + test_gigabyte_fusion(); + + winring0::deinit(); + + println!("Press any key to continue..."); + std::io::stdin().read_line(&mut String::new()).unwrap(); +} + +fn test_gigabyte_fusion() { + let api = hidapi::HidApi::new().unwrap(); + let device = gigabyte_rgb_fusion_usb::Device::new(&api).unwrap(); + device.test_raw_data().unwrap(); + // device + // .set_color(&Rgb { + // red: 0xFF, + // green: 0x00, + // blue: 0x00, + // }) + // .unwrap(); +} + +fn test_wmi() { + let com_con = COMLibrary::new().unwrap(); + let wmi_con = WMIConnection::new(com_con).unwrap(); + + //let results: Vec> = wmi_con.raw_query("SELECT * FROM Win32_PnPSignedDriver WHERE Description LIKE '%SMBUS%' OR Description LIKE '%SM BUS%'").unwrap(); + //let results: Vec> = wmi_con.raw_query("SELECT * FROM Win32_PnPSignedDriver WHERE Description LIKE 'Intel(R) NF I2C Host Controller'").unwrap(); + let results: Vec> = wmi_con + .raw_query("SELECT * FROM Win32_PnPSignedDriver") + .unwrap(); + //let results: Vec> = wmi_con.raw_query("SELECT * FROM Win32_PnPAllocatedResource").unwrap(); + + for os in results { + println!("-------------------"); + println!("{:#?}", os); + } +} + +fn list_usb_devices() { + let api = hidapi::HidApi::new().unwrap(); + for device in api.device_list() { + println!("{:?}", device); + println!("name: {}", device.product_string().unwrap()); + println!("interface number: {}", device.interface_number()); + println!("page: {}", device.usage_page()); + println!("usage: {}", device.usage()); + println!("----"); + } +} + +// fn test_roccat() { +// let api = hidapi::HidApi::new().unwrap(); +// let roccat_device = roccat::get_device(&api); + +// let manufacturer = roccat_device.get_manufacturer_string().unwrap(); +// dbg!(manufacturer); + +// let product = roccat_device.get_product_string().unwrap(); +// dbg!(product); + +// let serial = roccat_device.get_serial_number_string().unwrap(); +// dbg!(serial); + +// roccat::init(&roccat_device); +// roccat::set_color( +// &roccat_device, +// &RGB { +// red: 0, +// green: 255, +// blue: 40, +// }, +// ); +// } + +fn test_asus_aura_usb(motherboard: asus_aura_usb::Motherboard) { + let api = hidapi::HidApi::new().unwrap(); + + let device = asus_aura_usb::Device::new(&api, motherboard).unwrap(); + + println!("Firmware: {}", device.get_firmware_string().unwrap()); + + let configuration = device.get_configuration_table().unwrap(); + println!("Configuration:"); + for i in 0..60 { + print!("{:02X} ", configuration[i]); + if (i + 1) % 6 == 0 { + println!(); + } + } + println!("Number of addressable header: {}", configuration[0x02]); + println!("Number of leds: {}", configuration[0x1B]); + println!("Number of RGB headers: {}", configuration[0x1D]); + + device + .set_color(&Rgb { + red: 0, + green: 0, + blue: 255, + }) + .unwrap(); + + device.save_current_color().unwrap(); +} + +fn test_corsair_lighting_pro() { + let api = hidapi::HidApi::new().unwrap(); + let device = corsair_lighting_pro::Device::new( + &api, + &Rgb { + red: 0, + green: 255, + blue: 0, + }, + ) + .unwrap(); + + for i in 0..=255 { + if i % 10 == 0 || i == 255 || i == 0 { + device + .set_color(&Rgb { + red: i as u8, + green: 255u8 - i as u8, + blue: 0, + }) + .unwrap(); + std::thread::sleep(std::time::Duration::from_millis(200)); + } + } +} + +fn test_lianli_sl_infinity() { + let api = hidapi::HidApi::new().unwrap(); + let device = lian_li_sl_infinity::Device::new(&api).unwrap(); + + device + .set_color(&Rgb { + red: 0, + green: 0, + blue: 255, + }) + .unwrap(); +} + +fn test_corsair() { + let corsair_controllers = [ + corsair_vengeance::Controller::new(0x19), + corsair_vengeance::Controller::new(0x1B), + ]; + + for controller in corsair_controllers { + controller.set_color(&Rgb { + red: 0, + green: 0, + blue: 255, + }); + } +} + +fn test_a770() { + // a770::set_rgb(255, 0, 0); + let mut a770 = a770::A770::new().unwrap(); + a770.set_color(255, 0, 0).unwrap(); +} + +fn test_3080ti() { + let machine: &mut dyn machine::Machine = + &mut machine::lyss_metal::MachineLyssMetal::new().unwrap(); + + machine + .set_color(&Rgb { + red: 255, + green: 0, + blue: 0, + }) + .unwrap(); +} + +const F17H_M01H_THM_TCON_CUR_TMP: u32 = 0x00059800; +const F17H_TEMP_OFFSET_FLAG: u32 = 0x80000; +const FAMILY_17H_PCI_CONTROL_REGISTER: u32 = 0x60; + +fn test_read_temperature_cpu() { + println!("temp cpu: {}", cpu_temperature::read()) +} + +fn test_read_temperature_a770() { + let jiji: &dyn machine::Machine = &machine::jiji::MachineJiji::new().unwrap(); + println!("temp gpu: {}", jiji.get_gpu_tmp()); +} + +fn test_read_temperature_3080() { + nvapi::initialize().expect("Unable to initialize nvapi (Nvidia API)"); + // if let Ok(gpus) = { + // for gpu in gpus { + // let thermal = gpu.thermal_settings(None).unwrap()[0]; + // println!("{:?}", thermal.current_temperature.0) + // } + // } + let gpus = nvapi::PhysicalGpu::enumerate().unwrap(); + let gpu = &gpus[0]; + let sensor = gpu.thermal_settings(None).unwrap()[0]; + println!("{:?}", sensor.current_temperature.0); + nvapi::unload().unwrap(); +}