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 
56 
64 const char* rs2_get_device_info(const rs2_device* device, rs2_camera_info info, rs2_error** error);
65 
74 
81 void rs2_hardware_reset(const rs2_device * device, rs2_error ** error);
82 
91 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);
92 
100 int rs2_is_device_extendable_to(const rs2_device* device, rs2_extension extension, rs2_error ** error);
101 
109 
116 void rs2_loopback_enable(const rs2_device* device, const char* from_file, rs2_error** error);
117 
123 void rs2_loopback_disable(const rs2_device* device, rs2_error** error);
124 
131 int rs2_loopback_is_enabled(const rs2_device* device, rs2_error** error);
132 
139 void rs2_connect_tm2_controller(const rs2_device* device, const unsigned char* mac_addr, rs2_error** error);
140 
147 void rs2_disconnect_tm2_controller(const rs2_device* device, int id, rs2_error** error);
148 
149 
156 
162 void rs2_write_calibration(const rs2_device* device, rs2_error** e);
163 
173 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);
174 
185 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);
186 
195 
204 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);
205 
206 #define RS2_UNSIGNED_UPDATE_MODE_UPDATE 0
207 #define RS2_UNSIGNED_UPDATE_MODE_READ_ONLY 1
208 #define RS2_UNSIGNED_UPDATE_MODE_FULL 2
209 
221 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);
222 
235 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);
236 
242 void rs2_enter_update_state(const rs2_device* device, rs2_error** error);
243 
264 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);
265 
287 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);
288 
311 const rs2_raw_data_buffer* rs2_run_tare_calibration_cpp(rs2_device* dev, float ground_truth_mm, const void* json_content, int content_size, rs2_update_progress_callback* progress_callback, int timeout_ms, rs2_error** error);
312 
313 
319 {
325 
330 {
331  // Anything >= 0 is not an issue
332  RS2_CALIBRATION_TRIGGERED = 0, // AC triggered and is active; conditions are valid
333  RS2_CALIBRATION_SPECIAL_FRAME = 1, // Special frame received; expect a frame-drop!
334  RS2_CALIBRATION_STARTED = 2, // Have all frames in hand; starting processing
335  RS2_CALIBRATION_NOT_NEEDED = 3, // Finished; existing calibration within tolerances; nothing done!
336  RS2_CALIBRATION_SUCCESSFUL = 4, // Finished; have new calibration in-hand
337 
338  RS2_CALIBRATION_RETRY = -1, // Initiating retry (asked for a new special frame)
339  RS2_CALIBRATION_FAILED = -2, // Unexpected: exception, device removed, stream stopped, etc.
340  RS2_CALIBRATION_SCENE_INVALID = -3, // Scene was not good enough for calibration; will retry
341  RS2_CALIBRATION_BAD_RESULT = -4, // Calibration finished, but results aren't good; will retry
342  RS2_CALIBRATION_BAD_CONDITIONS = -5, // Trigger was attempted but conditions (temp/APD) were invalid (still inactive)
343 
349 
352 
361 
369 
377 
401 const rs2_raw_data_buffer* rs2_run_tare_calibration(rs2_device* dev, float ground_truth_mm, const void* json_content, int content_size, rs2_update_progress_callback_ptr callback, void* client_data, int timeout_ms, rs2_error** error);
402 
408 
413 void rs2_set_calibration_table(const rs2_device* device, const void* calibration, int calibration_size, rs2_error** error);
414 
415 /* Serialize JSON content, returns ASCII-serialized JSON string on success. otherwise nullptr */
417 
418 /* Load JSON and apply advanced-mode controls */
419 void rs2_load_json(rs2_device* dev, const void* json_content, unsigned content_size, rs2_error** error);
420 
421 #ifdef __cplusplus
422 }
423 #endif
424 #endif
RS2_CALIBRATION_SUCCESSFUL
@ RS2_CALIBRATION_SUCCESSFUL
Definition: rs_device.h:336
RS2_CALIBRATION_MANUAL_DEPTH_TO_RGB
@ RS2_CALIBRATION_MANUAL_DEPTH_TO_RGB
Definition: rs_device.h:321
rs2_calibration_change_callback
Definition: rs_types.hpp:63
RS2_CALIBRATION_RETRY
@ RS2_CALIBRATION_RETRY
Definition: rs_device.h:338
RS2_CALIBRATION_TRIGGERED
@ RS2_CALIBRATION_TRIGGERED
Definition: rs_device.h:332
rs2_create_flash_backup_cpp
const rs2_raw_data_buffer * rs2_create_flash_backup_cpp(const rs2_device *device, rs2_update_progress_callback *callback, rs2_error **error)
rs2_serialize_json
rs2_raw_data_buffer * rs2_serialize_json(rs2_device *dev, rs2_error **error)
rs2_disconnect_tm2_controller
void rs2_disconnect_tm2_controller(const rs2_device *device, int id, rs2_error **error)
rs2_extension
rs2_extension
Specifies advanced interfaces (capabilities) objects may implement.
Definition: rs_types.h:161
RS2_CALIBRATION_BAD_RESULT
@ RS2_CALIBRATION_BAD_RESULT
Definition: rs_device.h:341
rs2_enter_update_state
void rs2_enter_update_state(const rs2_device *device, rs2_error **error)
RS2_CALIBRATION_STATUS_COUNT
@ RS2_CALIBRATION_STATUS_COUNT
Definition: rs_device.h:346
rs2_send_and_receive_raw_data
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)
rs2_run_on_chip_calibration_cpp
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)
rs2_calibration_type_to_string
const char * rs2_calibration_type_to_string(rs2_calibration_type)
RS2_CALIBRATION_NOT_NEEDED
@ RS2_CALIBRATION_NOT_NEEDED
Definition: rs_device.h:335
rs2_create_flash_backup
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)
rs2_calibration_change_callback_ptr
void(* rs2_calibration_change_callback_ptr)(rs2_calibration_status, void *arg)
Definition: rs_device.h:351
rs2_update_firmware_cpp
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)
rs2_device_list_contains
int rs2_device_list_contains(const rs2_device_list *info_list, const rs2_device *device, rs2_error **error)
rs2_update_firmware
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_loopback_disable
void rs2_loopback_disable(const rs2_device *device, rs2_error **error)
RS2_CALIBRATION_BAD_CONDITIONS
@ RS2_CALIBRATION_BAD_CONDITIONS
Definition: rs_device.h:342
rs_sensor.h
Exposes RealSense sensor functionality for C compilers.
rs2_delete_device_list
void rs2_delete_device_list(rs2_device_list *info_list)
rs_types.h
Exposes RealSense structs.
rs2_get_device_info
const char * rs2_get_device_info(const rs2_device *device, rs2_camera_info info, rs2_error **error)
RS2_CALIBRATION_STARTED
@ RS2_CALIBRATION_STARTED
Definition: rs_device.h:334
rs2_set_calibration_table
void rs2_set_calibration_table(const rs2_device *device, const void *calibration, int calibration_size, rs2_error **error)
rs2_get_calibration_table
const rs2_raw_data_buffer * rs2_get_calibration_table(const rs2_device *dev, rs2_error **error)
rs2_run_on_chip_calibration
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)
rs2_delete_device
void rs2_delete_device(rs2_device *device)
rs2_update_firmware_unsigned_cpp
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)
rs2_get_device_count
int rs2_get_device_count(const rs2_device_list *info_list, rs2_error **error)
rs2_run_tare_calibration_cpp
const rs2_raw_data_buffer * rs2_run_tare_calibration_cpp(rs2_device *dev, float ground_truth_mm, const void *json_content, int content_size, rs2_update_progress_callback *progress_callback, int timeout_ms, rs2_error **error)
rs2_update_firmware_unsigned
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)
RS2_CALIBRATION_FAILED
@ RS2_CALIBRATION_FAILED
Definition: rs_device.h:339
rs2_register_calibration_change_callback_cpp
void rs2_register_calibration_change_callback_cpp(rs2_device *dev, rs2_calibration_change_callback *callback, rs2_error **error)
rs2_sensor_list
struct rs2_sensor_list rs2_sensor_list
Definition: rs_types.h:270
rs2_load_json
void rs2_load_json(rs2_device *dev, const void *json_content, unsigned content_size, rs2_error **error)
RS2_CALIBRATION_TYPE_COUNT
@ RS2_CALIBRATION_TYPE_COUNT
Definition: rs_device.h:322
rs2_camera_info
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
rs2_calibration_type
rs2_calibration_type
Definition: rs_device.h:319
rs2_loopback_is_enabled
int rs2_loopback_is_enabled(const rs2_device *device, rs2_error **error)
rs2_write_calibration
void rs2_write_calibration(const rs2_device *device, rs2_error **e)
rs2_raw_data_buffer
struct rs2_raw_data_buffer rs2_raw_data_buffer
Definition: rs_types.h:249
RS2_CALIBRATION_STATUS_FIRST
@ RS2_CALIBRATION_STATUS_FIRST
Definition: rs_device.h:344
rs2_create_device
rs2_device * rs2_create_device(const rs2_device_list *info_list, int index, rs2_error **error)
rs2_trigger_device_calibration
void rs2_trigger_device_calibration(rs2_device *dev, rs2_calibration_type type, rs2_error **error)
rs2_calibration_status_to_string
const char * rs2_calibration_status_to_string(rs2_calibration_status)
rs2_device
struct rs2_device rs2_device
Definition: rs_types.h:246
rs2_update_progress_callback
Definition: rs_types.hpp:84
rs2_supports_device_info
int rs2_supports_device_info(const rs2_device *device, rs2_camera_info info, rs2_error **error)
rs2_query_sensors
rs2_sensor_list * rs2_query_sensors(const rs2_device *device, rs2_error **error)
rs2_calibration_status
rs2_calibration_status
Definition: rs_device.h:330
rs2_connect_tm2_controller
void rs2_connect_tm2_controller(const rs2_device *device, const unsigned char *mac_addr, rs2_error **error)
RS2_CALIBRATION_AUTO_DEPTH_TO_RGB
@ RS2_CALIBRATION_AUTO_DEPTH_TO_RGB
Definition: rs_device.h:320
RS2_CALIBRATION_SPECIAL_FRAME
@ RS2_CALIBRATION_SPECIAL_FRAME
Definition: rs_device.h:333
rs2_loopback_enable
void rs2_loopback_enable(const rs2_device *device, const char *from_file, rs2_error **error)
rs2_hardware_reset
void rs2_hardware_reset(const rs2_device *device, rs2_error **error)
rs2_reset_to_factory_calibration
void rs2_reset_to_factory_calibration(const rs2_device *device, rs2_error **e)
RS2_CALIBRATION_SCENE_INVALID
@ RS2_CALIBRATION_SCENE_INVALID
Definition: rs_device.h:340
rs2_device_list
struct rs2_device_list rs2_device_list
Definition: rs_types.h:255
rs2_update_progress_callback_ptr
void(* rs2_update_progress_callback_ptr)(const float, void *)
Definition: rs_types.h:287
rs2_register_calibration_change_callback
void rs2_register_calibration_change_callback(rs2_device *dev, rs2_calibration_change_callback_ptr callback, void *user, rs2_error **error)
RS2_CALIBRATION_STATUS_LAST
@ RS2_CALIBRATION_STATUS_LAST
Definition: rs_device.h:345
rs2_error
struct rs2_error rs2_error
Definition: rs_types.h:247
rs2_is_device_extendable_to
int rs2_is_device_extendable_to(const rs2_device *device, rs2_extension extension, rs2_error **error)
rs2_run_tare_calibration
const rs2_raw_data_buffer * rs2_run_tare_calibration(rs2_device *dev, float ground_truth_mm, const void *json_content, int content_size, rs2_update_progress_callback_ptr callback, void *client_data, int timeout_ms, rs2_error **error)