azure-kinect 0.1.1

Rust Bindings for Azure Kinect Sensor SDK
Documentation
use azure_kinect::*;

#[test]
fn test() -> std::result::Result<(), Box<dyn std::error::Error>> {
    let factory = Factory::load(
        std::env::current_dir()?
            .to_str()
            .ok_or(error::Error::Failed)?,
    )?
    .set_debug_message_handler(
        Box::new(|level, file, line, message| {
            println!("{:?}, {}, {}, {}", level, file, line, message);
        }),
        k4a_log_level_t::K4A_LOG_LEVEL_ERROR,
    );

    let c = factory.device_get_installed_count();
    println!("device count = {}", c);
    let device = factory.device_open(0)?;
    let serial = device.get_serialnum()?;
    let version = device.get_version()?;
    println!("serial = {} / hw ver = {:?}", serial, version);

    let color_control =
        device.get_color_control(k4a_color_control_command_t::K4A_COLOR_CONTROL_BRIGHTNESS)?;
    println!("color control(brightness) = {:?}", color_control);

    let camera_config = k4a_device_configuration_t::default();
    let camera = device.start_cameras(&camera_config)?;

    {
        let imu = camera.start_imu()?;
        let imu_sample = imu.get_imu_sample_wait_infinite()?;
        println!("imu = {}", imu_sample);
    }

    for i in 0..20 {
        if let Ok(capture) = camera.get_capture(100) {
            let image = capture.get_color_image();
            println!(
                "[{}] format = {:?}, width = {}, height = {}, temparature = {}",
                i,
                image.get_format(),
                image.get_width_pixels(),
                image.get_height_pixels(),
                capture.get_temperature_c()
            );
        }
    }

    Ok(())
}