Intel® RealSense™ Cross Platform API
Intel Realsense Cross-platform API
rs_device.h
Go to the documentation of this file.
1 /* License: Apache 2.0. See LICENSE file in root directory.
2  Copyright(c) 2017 Intel Corporation. All Rights Reserved. */
3 
9 #ifndef LIBREALSENSE_RS2_DEVICE_H
10 #define LIBREALSENSE_RS2_DEVICE_H
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 #include "rs_types.h"
17 #include "rs_sensor.h"
18 
25 int rs2_get_device_count(const rs2_device_list* info_list, rs2_error** error);
26 
32 
40 int rs2_device_list_contains(const rs2_device_list* info_list, const rs2_device* device, rs2_error** error);
41 
49 rs2_device* rs2_create_device(const rs2_device_list* info_list, int index, rs2_error** error);
50 
55 void rs2_delete_device(rs2_device* device);
56 
61 int rs2_device_is_connected( const rs2_device * device, rs2_error ** error );
62 
70 const char* rs2_get_device_info(const rs2_device* device, rs2_camera_info info, rs2_error** error);
71 
79 int rs2_supports_device_info(const rs2_device* device, rs2_camera_info info, rs2_error** error);
80 
87 void rs2_hardware_reset(const rs2_device * device, rs2_error ** error);
88 
103 const rs2_raw_data_buffer* rs2_build_debug_protocol_command(rs2_device* device, unsigned opcode, unsigned param1, unsigned param2,
104  unsigned param3, unsigned param4, void* data, unsigned size_of_data, rs2_error** error);
105 
114 const rs2_raw_data_buffer* rs2_send_and_receive_raw_data(rs2_device* device, void* raw_data_to_send, unsigned size_of_raw_data_to_send, rs2_error** error);
115 
123 int rs2_is_device_extendable_to(const rs2_device* device, rs2_extension extension, rs2_error ** error);
124 
131 rs2_sensor_list* rs2_query_sensors(const rs2_device* device, rs2_error** error);
132 
139 void rs2_loopback_enable(const rs2_device* device, const char* from_file, rs2_error** error);
140 
146 void rs2_loopback_disable(const rs2_device* device, rs2_error** error);
147 
154 int rs2_loopback_is_enabled(const rs2_device* device, rs2_error** error);
155 
162 void rs2_connect_tm2_controller(const rs2_device* device, const unsigned char* mac_addr, rs2_error** error);
163 
170 void rs2_disconnect_tm2_controller(const rs2_device* device, int id, rs2_error** error);
171 
172 
178 void rs2_reset_to_factory_calibration(const rs2_device* device, rs2_error** e);
179 
185 void rs2_write_calibration(const rs2_device* device, rs2_error** e);
186 
196 void rs2_update_firmware_cpp(const rs2_device* device, const void* fw_image, int fw_image_size, rs2_update_progress_callback* callback, rs2_error** error);
197 
208 void rs2_update_firmware(const rs2_device* device, const void* fw_image, int fw_image_size, rs2_update_progress_callback_ptr callback, void* client_data, rs2_error** error);
209 
218 
227 const rs2_raw_data_buffer* rs2_create_flash_backup(const rs2_device* device, rs2_update_progress_callback_ptr callback, void* client_data, rs2_error** error);
228 
229 #define RS2_UNSIGNED_UPDATE_MODE_UPDATE 0
230 #define RS2_UNSIGNED_UPDATE_MODE_READ_ONLY 1
231 #define RS2_UNSIGNED_UPDATE_MODE_FULL 2
232 
244 void rs2_update_firmware_unsigned_cpp(const rs2_device* device, const void* fw_image, int fw_image_size, rs2_update_progress_callback* callback, int update_mode, rs2_error** error);
245 
254 int rs2_check_firmware_compatibility(const rs2_device* device, const void* fw_image, int fw_image_size, rs2_error** error);
255 
268 void rs2_update_firmware_unsigned(const rs2_device* device, const void* fw_image, int fw_image_size, rs2_update_progress_callback_ptr callback, void* client_data, int update_mode, rs2_error** error);
269 
275 void rs2_enter_update_state(const rs2_device* device, rs2_error** error);
276 
312 const rs2_raw_data_buffer* rs2_run_on_chip_calibration_cpp(rs2_device* device, const void* json_content, int content_size, float* health, rs2_update_progress_callback* progress_callback, int timeout_ms, rs2_error** error);
313 
352 const rs2_raw_data_buffer* rs2_run_on_chip_calibration(rs2_device* device, const void* json_content, int content_size, float* health, rs2_update_progress_callback_ptr callback, void* client_data, int timeout_ms, rs2_error** error);
353 
385 const rs2_raw_data_buffer* rs2_run_tare_calibration_cpp(rs2_device* dev, float ground_truth_mm, const void* json_content, int content_size, float* health, rs2_update_progress_callback* progress_callback, int timeout_ms, rs2_error** error);
386 
387 
395 const rs2_raw_data_buffer* rs2_process_calibration_frame(rs2_device* dev, const rs2_frame* f, float* const health, rs2_update_progress_callback* progress_callback, int timeout_ms, rs2_error** error);
396 
397 
403 {
410 
415 {
416  // Anything >= 0 is not an issue
417  RS2_CALIBRATION_TRIGGERED = 0, // AC triggered and is active; conditions are valid
418  RS2_CALIBRATION_SPECIAL_FRAME = 1, // Special frame received; expect a frame-drop!
419  RS2_CALIBRATION_STARTED = 2, // Have all frames in hand; starting processing
420  RS2_CALIBRATION_NOT_NEEDED = 3, // Finished; existing calibration within tolerances; nothing done!
421  RS2_CALIBRATION_SUCCESSFUL = 4, // Finished; have new calibration in-hand
422 
423  RS2_CALIBRATION_RETRY = -1, // Initiating retry (asked for a new special frame)
424  RS2_CALIBRATION_FAILED = -2, // Unexpected: exception, device removed, stream stopped, etc.
425  RS2_CALIBRATION_SCENE_INVALID = -3, // Scene was not good enough for calibration; will retry
426  RS2_CALIBRATION_BAD_RESULT = -4, // Calibration finished, but results aren't good; will retry
427  RS2_CALIBRATION_BAD_CONDITIONS = -5, // Trigger was attempted but conditions (temp/APD) were invalid (still inactive)
428 
434 
437 
446 
454 
462 
491 const rs2_raw_data_buffer* rs2_run_tare_calibration(rs2_device* dev, float ground_truth_mm, const void* json_content, int content_size, float* health, rs2_update_progress_callback_ptr callback, void* client_data, int timeout_ms, rs2_error** error);
492 
498 
503 void rs2_set_calibration_table(const rs2_device* device, const void* calibration, int calibration_size, rs2_error** error);
504 
505 /* Serialize JSON content, returns ASCII-serialized JSON string on success. otherwise nullptr */
507 
508 /* Load JSON and apply advanced-mode controls */
509 void rs2_load_json(rs2_device* dev, const void* json_content, unsigned content_size, rs2_error** error);
510 
524 const rs2_raw_data_buffer* rs2_run_focal_length_calibration_cpp(rs2_device* device, rs2_frame_queue* left_queue , rs2_frame_queue* right_queue, float target_width, float target_height, int adjust_both_sides,
525  float* ratio, float* angle, rs2_update_progress_callback * progress_callback, rs2_error** error);
526 
541 const rs2_raw_data_buffer* rs2_run_focal_length_calibration(rs2_device* device, rs2_frame_queue* left_queue, rs2_frame_queue* right_queue, float target_width, float target_height, int adjust_both_sides,
542  float* ratio, float* angle, rs2_update_progress_callback_ptr callback, void* client_data, rs2_error** error);
543 
556 const rs2_raw_data_buffer* rs2_run_uv_map_calibration_cpp(rs2_device* device, rs2_frame_queue* left_queue, rs2_frame_queue* color_queue, rs2_frame_queue* depth_queue, int py_px_only,
557  float * health, int health_size, rs2_update_progress_callback * progress_callback, rs2_error** error);
558 
572 const rs2_raw_data_buffer* rs2_run_uv_map_calibration(rs2_device* device, rs2_frame_queue* left_queue, rs2_frame_queue* color_queue, rs2_frame_queue* depth_queue,
573  int py_px_only, float* health, int health_size, rs2_update_progress_callback_ptr callback, void* client_data, rs2_error** error);
574 
585  float target_width, float target_height,
586  rs2_update_progress_callback* callback, rs2_error** error);
587 
598 float rs2_calculate_target_z(rs2_device* device, rs2_frame_queue* queue1, rs2_frame_queue* queue2, rs2_frame_queue* queue3,
599  float target_width, float target_height, rs2_update_progress_callback_ptr progress_callback, void* client_data, rs2_error** error);
600 
601 
608 void rs2_get_calibration_config(rs2_device* device, rs2_calibration_config* calib_config, rs2_error** error);
609 
616 void rs2_set_calibration_config(rs2_device* device, rs2_calibration_config const* calib_config, rs2_error** error);
617 
625 void rs2_json_string_to_calibration_config(rs2_device* device, const char* json_str, rs2_calibration_config* calib_config, rs2_error** error);
626 
635 
636 #ifdef __cplusplus
637 }
638 #endif
639 #endif
void rs2_set_calibration_table(const rs2_device *device, const void *calibration, int calibration_size, rs2_error **error)
Definition: rs_device.h:423
float rs2_calculate_target_z(rs2_device *device, rs2_frame_queue *queue1, rs2_frame_queue *queue2, rs2_frame_queue *queue3, float target_width, float target_height, rs2_update_progress_callback_ptr progress_callback, void *client_data, rs2_error **error)
rs2_camera_info
Read-only strings that can be queried from the device. Not all information attributes are available o...
Definition: rs_sensor.h:22
Definition: rs_device.h:430
float rs2_calculate_target_z_cpp(rs2_device *device, rs2_frame_queue *queue1, rs2_frame_queue *queue2, rs2_frame_queue *queue3, float target_width, float target_height, rs2_update_progress_callback *callback, rs2_error **error)
struct rs2_raw_data_buffer rs2_raw_data_buffer
Definition: rs_types.h:231
int rs2_device_list_contains(const rs2_device_list *info_list, const rs2_device *device, rs2_error **error)
int rs2_loopback_is_enabled(const rs2_device *device, rs2_error **error)
void rs2_update_firmware_unsigned(const rs2_device *device, const void *fw_image, int fw_image_size, rs2_update_progress_callback_ptr callback, void *client_data, int update_mode, rs2_error **error)
Definition: rs_device.h:421
void rs2_update_firmware(const rs2_device *device, const void *fw_image, int fw_image_size, rs2_update_progress_callback_ptr callback, void *client_data, rs2_error **error)
rs2_calibration_type
Definition: rs_device.h:402
Definition: rs_device.h:405
Definition: rs_device.h:417
void rs2_register_calibration_change_callback_cpp(rs2_device *dev, rs2_calibration_change_callback *callback, rs2_error **error)
const rs2_raw_data_buffer * rs2_run_focal_length_calibration(rs2_device *device, rs2_frame_queue *left_queue, rs2_frame_queue *right_queue, float target_width, float target_height, int adjust_both_sides, float *ratio, float *angle, rs2_update_progress_callback_ptr callback, void *client_data, rs2_error **error)
int rs2_check_firmware_compatibility(const rs2_device *device, const void *fw_image, int fw_image_size, rs2_error **error)
void rs2_trigger_device_calibration(rs2_device *dev, rs2_calibration_type type, rs2_error **error)
const rs2_raw_data_buffer * rs2_run_on_chip_calibration(rs2_device *device, const void *json_content, int content_size, float *health, rs2_update_progress_callback_ptr callback, void *client_data, int timeout_ms, rs2_error **error)
Definition: rs_device.h:426
Definition: rs_device.h:431
struct rs2_frame_queue rs2_frame_queue
Definition: rs_types.h:233
const rs2_raw_data_buffer * rs2_get_calibration_table(const rs2_device *dev, rs2_error **error)
const rs2_raw_data_buffer * rs2_build_debug_protocol_command(rs2_device *device, unsigned opcode, unsigned param1, unsigned param2, unsigned param3, unsigned param4, void *data, unsigned size_of_data, rs2_error **error)
void rs2_delete_device(rs2_device *device)
void rs2_write_calibration(const rs2_device *device, rs2_error **e)
struct rs2_sensor_list rs2_sensor_list
Definition: rs_types.h:252
rs2_device * rs2_create_device(const rs2_device_list *info_list, int index, rs2_error **error)
const rs2_raw_data_buffer * rs2_run_uv_map_calibration(rs2_device *device, rs2_frame_queue *left_queue, rs2_frame_queue *color_queue, rs2_frame_queue *depth_queue, int py_px_only, float *health, int health_size, rs2_update_progress_callback_ptr callback, void *client_data, rs2_error **error)
Definition: rs_device.h:406
void rs2_load_json(rs2_device *dev, const void *json_content, unsigned content_size, rs2_error **error)
Definition: rs_device.h:420
Definition: rs_types.hpp:68
const rs2_raw_data_buffer * rs2_run_focal_length_calibration_cpp(rs2_device *device, rs2_frame_queue *left_queue, rs2_frame_queue *right_queue, float target_width, float target_height, int adjust_both_sides, float *ratio, float *angle, rs2_update_progress_callback *progress_callback, rs2_error **error)
const rs2_raw_data_buffer * rs2_run_tare_calibration(rs2_device *dev, float ground_truth_mm, const void *json_content, int content_size, float *health, rs2_update_progress_callback_ptr callback, void *client_data, int timeout_ms, rs2_error **error)
const rs2_raw_data_buffer * rs2_run_uv_map_calibration_cpp(rs2_device *device, rs2_frame_queue *left_queue, rs2_frame_queue *color_queue, rs2_frame_queue *depth_queue, int py_px_only, float *health, int health_size, rs2_update_progress_callback *progress_callback, rs2_error **error)
void(* rs2_update_progress_callback_ptr)(const float, void *)
Definition: rs_types.h:270
void rs2_get_calibration_config(rs2_device *device, rs2_calibration_config *calib_config, rs2_error **error)
void rs2_connect_tm2_controller(const rs2_device *device, const unsigned char *mac_addr, rs2_error **error)
void rs2_loopback_enable(const rs2_device *device, const char *from_file, rs2_error **error)
rs2_raw_data_buffer * rs2_serialize_json(rs2_device *dev, rs2_error **error)
void rs2_disconnect_tm2_controller(const rs2_device *device, int id, rs2_error **error)
Exposes RealSense structs.
int rs2_supports_device_info(const rs2_device *device, rs2_camera_info info, rs2_error **error)
Definition: rs_device.h:419
void rs2_register_calibration_change_callback(rs2_device *dev, rs2_calibration_change_callback_ptr callback, void *user, rs2_error **error)
rs2_calibration_status
Definition: rs_device.h:414
Definition: rs_device.h:427
const char * rs2_calibration_status_to_string(rs2_calibration_status)
int rs2_is_device_extendable_to(const rs2_device *device, rs2_extension extension, rs2_error **error)
Definition: rs_types.h:299
void rs2_hardware_reset(const rs2_device *device, rs2_error **error)
Exposes RealSense sensor functionality for C compilers.
rs2_sensor_list * rs2_query_sensors(const rs2_device *device, rs2_error **error)
void rs2_update_firmware_cpp(const rs2_device *device, const void *fw_image, int fw_image_size, rs2_update_progress_callback *callback, rs2_error **error)
Definition: rs_device.h:424
void rs2_reset_to_factory_calibration(const rs2_device *device, rs2_error **e)
int rs2_device_is_connected(const rs2_device *device, rs2_error **error)
Definition: rs_device.h:407
const rs2_raw_data_buffer * rs2_create_flash_backup_cpp(const rs2_device *device, rs2_update_progress_callback *callback, rs2_error **error)
const rs2_raw_data_buffer * rs2_send_and_receive_raw_data(rs2_device *device, void *raw_data_to_send, unsigned size_of_raw_data_to_send, rs2_error **error)
const rs2_raw_data_buffer * rs2_create_flash_backup(const rs2_device *device, rs2_update_progress_callback_ptr callback, void *client_data, rs2_error **error)
Definition: rs_types.hpp:92
rs2_extension
Specifies advanced interfaces (capabilities) objects may implement.
Definition: rs_types.h:136
Definition: rs_device.h:429
void rs2_json_string_to_calibration_config(rs2_device *device, const char *json_str, rs2_calibration_config *calib_config, rs2_error **error)
void rs2_enter_update_state(const rs2_device *device, rs2_error **error)
struct rs2_device rs2_device
Definition: rs_types.h:228
void(* rs2_calibration_change_callback_ptr)(rs2_calibration_status, void *arg)
Definition: rs_device.h:436
Definition: rs_device.h:404
void rs2_update_firmware_unsigned_cpp(const rs2_device *device, const void *fw_image, int fw_image_size, rs2_update_progress_callback *callback, int update_mode, rs2_error **error)
const rs2_raw_data_buffer * rs2_process_calibration_frame(rs2_device *dev, const rs2_frame *f, float *const health, rs2_update_progress_callback *progress_callback, int timeout_ms, rs2_error **error)
struct rs2_device_list rs2_device_list
Definition: rs_types.h:237
void rs2_set_calibration_config(rs2_device *device, rs2_calibration_config const *calib_config, rs2_error **error)
Definition: rs_device.h:425
const char * rs2_calibration_type_to_string(rs2_calibration_type)
struct rs2_error rs2_error
Definition: rs_types.h:229
void rs2_loopback_disable(const rs2_device *device, rs2_error **error)
void rs2_delete_device_list(rs2_device_list *info_list)
Definition: rs_device.h:418
int rs2_get_device_count(const rs2_device_list *info_list, rs2_error **error)
const rs2_raw_data_buffer * rs2_calibration_config_to_json_string(rs2_device *device, rs2_calibration_config const *calib_config, rs2_error **error)
const rs2_raw_data_buffer * rs2_run_on_chip_calibration_cpp(rs2_device *device, const void *json_content, int content_size, float *health, rs2_update_progress_callback *progress_callback, int timeout_ms, rs2_error **error)
struct rs2_frame rs2_frame
Definition: rs_types.h:232
const rs2_raw_data_buffer * rs2_run_tare_calibration_cpp(rs2_device *dev, float ground_truth_mm, const void *json_content, int content_size, float *health, rs2_update_progress_callback *progress_callback, int timeout_ms, rs2_error **error)
const char * rs2_get_device_info(const rs2_device *device, rs2_camera_info info, rs2_error **error)