Speed up init by darkening screen during multithreaded init
This commit is contained in:
parent
c69ead6670
commit
39a5feff0f
2 changed files with 31 additions and 16 deletions
|
@ -284,6 +284,9 @@ impl Device{
|
||||||
pub fn get_serial(&mut self) -> &str{
|
pub fn get_serial(&mut self) -> &str{
|
||||||
&self.serial
|
&self.serial
|
||||||
}
|
}
|
||||||
|
pub fn get_location(&mut self) -> String{
|
||||||
|
std::format!("{:?}",self.usb_tty)
|
||||||
|
}
|
||||||
pub fn set_pin_address(&mut self, address:u8) -> &mut Self{
|
pub fn set_pin_address(&mut self, address:u8) -> &mut Self{
|
||||||
self.address = Some(address.clone());
|
self.address = Some(address.clone());
|
||||||
let temp = self.gpio.get(address);
|
let temp = self.gpio.get(address);
|
||||||
|
|
44
src/main.rs
44
src/main.rs
|
@ -61,7 +61,10 @@ fn main(){
|
||||||
log::debug!("{} is valid port!",tty_name);
|
log::debug!("{} is valid port!",tty_name);
|
||||||
let new_device = Device::new(port,Some(response));
|
let new_device = Device::new(port,Some(response));
|
||||||
match new_device{
|
match new_device{
|
||||||
Ok(device) => Some(device),
|
Ok(mut device) => {
|
||||||
|
device.darken_screen();
|
||||||
|
Some(device)
|
||||||
|
},
|
||||||
Err(_) => None
|
Err(_) => None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -71,7 +74,6 @@ fn main(){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Err(error)=>{
|
Err(error)=>{
|
||||||
//log::warn!("Invalid TTY location");
|
|
||||||
log::debug!("{}",error);
|
log::debug!("{}",error);
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
@ -90,28 +92,23 @@ fn main(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log::info!("\n\n--------------------------------------");
|
||||||
log::info!("Number of devices detected: {}",devices.len());
|
log::info!("Number of devices detected: {}",devices.len());
|
||||||
|
log::info!("--------------------------------------\n\n");
|
||||||
|
|
||||||
log::info!("Dimming all screens...");
|
//log::info!("Dimming all screens...");
|
||||||
for device in devices.iter_mut(){
|
//for device in devices.iter_mut(){
|
||||||
device.darken_screen();
|
// device.darken_screen();
|
||||||
}
|
//}
|
||||||
|
|
||||||
for device in devices.iter_mut(){
|
for device in devices.iter_mut(){
|
||||||
device.brighten_screen()
|
device.brighten_screen()
|
||||||
.set_serial(&input_filtering(Some("Enter the serial of the device with the bright screen: ")).to_string())
|
.set_serial(&input_filtering(Some("Enter the serial of the device with the bright screen: ")).to_string())
|
||||||
.darken_screen();
|
.darken_screen();
|
||||||
log::debug!("Number of unassigned addresses: {}",gpio.get_unassigned_addresses().len());
|
log::debug!("Number of unassigned addresses: {}",gpio.get_unassigned_addresses().len());
|
||||||
for &address in gpio.get_unassigned_addresses(){
|
if !find_gpio(device, gpio){
|
||||||
device.set_pin_address(address).start_temp();
|
device.set_pin_address(21);
|
||||||
if device.is_temp_running(){
|
log::error!("Unable to find GPIO for device {}. Please ensure that the probe well is installed properly, and the calibration key is plugged in.",device.get_location());
|
||||||
device.stop_temp();
|
|
||||||
gpio.remove_address(address);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
device.stop_temp();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,6 +137,21 @@ fn main(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn find_gpio(device:&mut Device,gpio:&mut GpioPins) -> bool{
|
||||||
|
for &address in gpio.get_unassigned_addresses(){
|
||||||
|
device.set_pin_address(address).start_temp();
|
||||||
|
if device.is_temp_running(){
|
||||||
|
device.stop_temp();
|
||||||
|
gpio.remove_address(address);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
device.stop_temp();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
pub fn setup_logs(){
|
pub fn setup_logs(){
|
||||||
let chrono_now: DateTime<Local> = Local::now();
|
let chrono_now: DateTime<Local> = Local::now();
|
||||||
if ! Path::new("logs").is_dir(){
|
if ! Path::new("logs").is_dir(){
|
||||||
|
|
Loading…
Add table
Reference in a new issue