diff --git a/examples/calibration.rs b/examples/calibration.rs deleted file mode 100644 index b5ccd40..0000000 --- a/examples/calibration.rs +++ /dev/null @@ -1,155 +0,0 @@ -#![allow(non_upper_case_globals)] -extern crate k4a_sys; -use std::ptr; -use std::default; -use std::ffi::{CString}; -use k4a_sys::*; - -struct Device { - idx : u32, - k4a_device: k4a_device_t, -} -//The beginnings of a wrapper struct -impl Device { - pub fn get_idx(&self) -> u32 { - self.idx - } - - pub fn get_k4a_device(&self) -> k4a_device_t { - self.k4a_device - } - - fn new(k4a_device: k4a_device_t, idx: u32) -> Self { - Self { - idx, - k4a_device, - } - - } - - pub fn open(device_idx: u32) -> Option { - unsafe { - let device_count = k4a_sys::k4a_device_get_installed_count(); - let mut device: k4a_device_t = ptr::null_mut(); - if device_count == 0 { - println!("No K4A devices found"); - return None; - } - - if k4a_device_open(device_idx, &mut device) != k4a_buffer_result_t_K4A_BUFFER_RESULT_SUCCEEDED { - println!("Failed to open device"); - return None; - } - Some(Self::new(device, device_idx)) - } - } - - pub fn get_serial(&self) -> Option { - unsafe { - let mut serial_number_length: usize = 0; - - if k4a_device_get_serialnum(self.get_k4a_device(), ptr::null_mut(), &mut serial_number_length) != - k4a_buffer_result_t_K4A_BUFFER_RESULT_TOO_SMALL { - println!("{}: Failed to get serial number length", self.get_idx()); - return None - } - - let mut serial_number = CString::new(vec![1u8; serial_number_length]).expect("Building a cstring failed"); - let serial_number_ptr = serial_number.into_raw(); - - if k4a_device_get_serialnum(self.get_k4a_device(), serial_number_ptr, &mut serial_number_length) != - k4a_buffer_result_t_K4A_BUFFER_RESULT_SUCCEEDED { - println!("{}: Failed to get serial number", self.get_idx()); - return None; - } - serial_number = CString::from_raw(serial_number_ptr); - serial_number.into_string().ok() - } - } - - pub fn installed_count() -> u32 { - unsafe { - k4a_device_get_installed_count() - } - } -} -impl Drop for Device { - fn drop (&mut self) { - unsafe { - k4a_device_close(self.k4a_device) - } - - } -} - -// pub struct DeviceCalibration (k4a_calibration_t); -// impl Default for DeviceCalibration { -// fn default() -> Self { -// Self (k4a_calibration_t { -// color_camera_calibration, -// color_resolution, -// depth_camera_calibration - -// }) -// } -// } -pub struct DeviceConfiguration (k4a_device_configuration_t); -impl Default for DeviceConfiguration { - fn default() -> Self { - Self (k4a_sys::k4a_device_configuration_t { - color_format: k4a_image_format_t_K4A_IMAGE_FORMAT_COLOR_MJPG, - color_resolution: k4a_color_resolution_t_K4A_COLOR_RESOLUTION_720P, - depth_mode: k4a_depth_mode_t_K4A_DEPTH_MODE_WFOV_2X2BINNED, - camera_fps: 0, - synchronized_images_only: false, - depth_delay_off_color_usec: 0, - wired_sync_mode: 0, - subordinate_delay_off_master_usec: 0, - disable_streaming_indicator: false, - } - ) - } -} -impl DeviceConfiguration { - pub fn init_disable_all() -> Self { - Self (k4a_sys::k4a_device_configuration_t { - color_format: k4a_image_format_t_K4A_IMAGE_FORMAT_COLOR_MJPG, - color_resolution: k4a_color_resolution_t_K4A_COLOR_RESOLUTION_OFF, - depth_mode: k4a_depth_mode_t_K4A_DEPTH_MODE_OFF, - camera_fps: k4a_fps_t_K4A_FRAMES_PER_SECOND_30, - synchronized_images_only: false, - depth_delay_off_color_usec: 0, - wired_sync_mode: k4a_wired_sync_mode_t_K4A_WIRED_SYNC_MODE_STANDALONE, - subordinate_delay_off_master_usec: 0, - disable_streaming_indicator: false, - }) - } -} - -fn print_calibration() { - let num_devices = Device::installed_count(); - println!("Found {} connected devices", num_devices); - - unsafe { - for i in 0..num_devices { - let device = Device::open(i); - let mut calibration: k4a_calibration_t; - let mut config : DeviceConfiguration= DeviceConfiguration::init_disable_all(); - config.0.color_format = k4a_image_format_t_K4A_IMAGE_FORMAT_COLOR_MJPG; - config.0.color_resolution = k4a_color_resolution_t_K4A_COLOR_RESOLUTION_1080P; - config.0.depth_mode = k4a_depth_mode_t_K4A_DEPTH_MODE_NFOV_UNBINNED; - config.0.camera_fps = k4a_fps_t_K4A_FRAMES_PER_SECOND_30; - config.0.wired_sync_mode = k4a_wired_sync_mode_t_K4A_WIRED_SYNC_MODE_STANDALONE; - config.0.synchronized_images_only = true; - - // k4a_sys::k4a_device_calibration(device.get_k4a_device(), ) - - } - - } - -} - -fn main () { - print_calibration(); -} \ No newline at end of file