From 0d887779b8dee042999d04a29d4a095a3df93a6c Mon Sep 17 00:00:00 2001 From: iximeow Date: Tue, 23 Jul 2019 23:21:14 -0700 Subject: asi camera adjustments record images in 16 bit mode, is the biggest change --- src/main.rs | 79 +++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 45 insertions(+), 34 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 95de6fd..7275c96 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,39 +12,46 @@ use crate::asicam::Camera; fn main() { let test = true; - println!("Doing qhy..."); - operate_qhy(test); +// println!("Doing qhy..."); +// operate_qhy(test); println!("Doing asi..."); -// operate_asi(test); + operate_asi(test); } fn operate_qhy(test: bool) { use crate::qhyccd::Control; println!("Operating on qhy camera ... or i'll die trying"); - let mut camera = qhyccd::acquire(0).unwrap(); - camera.set_defaults().unwrap(); - camera.set_exposure_ms(1).unwrap(); - camera.set_param(Control::Gain, 34.0).unwrap(); - camera.set_param(Control::Offset, 00.0).unwrap(); - camera.set_param(Control::USBTraffic, 50.0).unwrap(); -// camera.set_target_temp(0.0).unwrap(); - camera.set_param(Control::Cooler, -15.0).unwrap(); - println!("Gain: {:?}", camera.get_param_limits(Control::Gain)); -// camera.set_param(Control::Speed, 1.0).unwrap(); - println!("current temp: {}", camera.get_param(Control::CurTemp)); - camera.set_param(Control::CONTROL_WBR, 2750.0).unwrap(); - camera.set_param(Control::CONTROL_WBG, 2500.0).unwrap(); - camera.set_param(Control::CONTROL_WBB, 3000.0).unwrap(); - // camera.set_bin_mode(2).unwrap(); - if !test { - let object = "m13"; - for i in 0..20 { - camera.take_image(&format!("{}_{}.png", object, i));//, i)); + let t = std::thread::spawn(move || { + let mut camera = qhyccd::acquire(0).unwrap(); + camera.set_defaults().unwrap(); + camera.set_exposure_ms(400).unwrap(); + // camera.set_param(Control::Exposure, 10.0).unwrap(); + camera.set_param(Control::Gain, 4000.0); //.unwrap(); + camera.set_param(Control::Offset, 00.0).unwrap(); + // camera.set_param(Control::USBTraffic, 50.0).unwrap(); + // camera.set_param(Control::ManulPwm, 0.0).unwrap(); + // camera.set_target_temp(0.0).unwrap(); + camera.set_param(Control::Cooler, -25.0).unwrap(); + // camera.set_roi(0, 0, 1920 * 2, 1080 * 2).unwrap(); + println!("Gain: {:?}", camera.get_param_limits(Control::ManulPwm)); + println!("cur pwm ???: {}", camera.get_param(Control::CurPWM)); + println!("current temp: {}", camera.get_param(Control::CurTemp)); + // camera.set_param(Control::CONTROL_WBR, 2750.0).unwrap(); + // camera.set_param(Control::CONTROL_WBG, 2500.0).unwrap(); + // camera.set_param(Control::CONTROL_WBB, 3000.0).unwrap(); + // camera.set_bin_mode(2).unwrap(); + if !test { + let object = "veil"; + for i in 0..10 { + camera.take_image(&format!("{}_{}.png", object, i));//, i)); + } + } else { + camera.take_image("qhy_test_2.png").unwrap(); + println!("exposing: {:x}", camera.get_param(Control::IS_EXPOSING_DONE) as u64); } - } else { - camera.take_image("qhy_test_2.png").unwrap(); - } - camera.release().unwrap(); + camera.release().unwrap(); + }); + t.join(); } fn operate_asi(test: bool) { @@ -52,9 +59,9 @@ fn operate_asi(test: bool) { let mut camera = asicam::acquire(0).unwrap(); println!("{:?}", camera); -// camera.set_control_value(ControlType::TargetTemp, -100).unwrap(); -// camera.set_control_value(ControlType::CoolerOn, 1).unwrap(); -// std::thread::sleep(std::time::Duration::from_millis(500)); + camera.set_control_value(ControlType::CoolerOn, 1).unwrap(); + camera.set_control_value(ControlType::TargetTemp, -200).unwrap(); + std::thread::sleep(std::time::Duration::from_millis(500)); println!("Camera temperature is currently {:?}", camera.get_control_value(ControlType::Temperature).unwrap()); /* @@ -69,13 +76,17 @@ fn operate_asi(test: bool) { } } */ - camera.set_exposure_ms(1).unwrap(); + camera.set_exposure_ms(30000).unwrap(); // camera.set_control_value(ControlType::Exposure, 70000000).unwrap(); - camera.set_control_value(ControlType::Gain, 475).unwrap(); + camera.set_control_value(ControlType::Gain, 250).unwrap(); camera.set_control_value(ControlType::Offset, 0).unwrap(); - camera.set_control_value(ControlType::HardwareBin, 0).unwrap(); - camera.set_roi_format(camera.width, camera.height, 1, ImageType::RGB24).unwrap(); - camera.take_image("asi_test.png").unwrap(); + camera.set_control_value(ControlType::HardwareBin, 1).unwrap(); + camera.set_roi_format(camera.width, camera.height, 1, ImageType::RAW16).unwrap(); + for i in 0..240 { + println!("doing image {}", i); + println!("Camera temperature is currently {:?}", camera.get_control_value(ControlType::Temperature).unwrap()); + camera.take_image(&format!("ngc7380_{}.png", i)).unwrap(); + } // take_calibration_images(&camera, 40, "dark_gain_350_exposure_45000"); /* for exposure in [1000 * 1000 * 10].iter() { -- cgit v1.1