mirror of
https://github.com/storytold/k4a-sys-temp.git
synced 2026-10-17 00:23:44 +00:00
Add enumerate example
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
extern crate k4a_sys;
|
||||
use std::ptr;
|
||||
use k4a_sys::*;
|
||||
|
||||
fn main() {
|
||||
unsafe {
|
||||
let mut device: k4a_sys::k4a_device_t = ptr::null_mut();
|
||||
|
||||
let device_count = k4a_device_get_installed_count();
|
||||
println!("Found {} connected devices:", device_count);
|
||||
for device_idx in 0..device_count {
|
||||
if k4a_device_open(device_idx, &mut device) != k4a_buffer_result_t_K4A_BUFFER_RESULT_SUCCEEDED {
|
||||
println!("Failed to open device #{}", device_idx);
|
||||
continue;
|
||||
}
|
||||
let mut serial_number_length: usize = 0;
|
||||
|
||||
if k4a_device_get_serialnum(device, ptr::null_mut(), &mut serial_number_length) !=
|
||||
k4a_buffer_result_t_K4A_BUFFER_RESULT_TOO_SMALL {
|
||||
println!("{}: Failed to get serial number length", device_idx);
|
||||
k4a_device_close(device);
|
||||
device = ptr::null_mut();
|
||||
continue;
|
||||
}
|
||||
|
||||
let mut serial_number = vec![0i8; serial_number_length];
|
||||
let serial_number_ptr = (&mut serial_number).as_mut_ptr();
|
||||
|
||||
if k4a_device_get_serialnum(device, serial_number_ptr, &mut serial_number_length) !=
|
||||
k4a_buffer_result_t_K4A_BUFFER_RESULT_SUCCEEDED {
|
||||
println!("{}: Failed to get serial number", device_idx);
|
||||
k4a_device_close(device);
|
||||
device = ptr::null_mut();
|
||||
continue;
|
||||
}
|
||||
println!("{}: Device \"{:?}\"\n", device_idx, serial_number);
|
||||
k4a_device_close(device);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user