Intel® RealSense™ Cross Platform API
Intel Realsense Cross-platform API
rs_internal.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 
10 #ifndef LIBREALSENSE_RS2_INTERNAL_H
11 #define LIBREALSENSE_RS2_INTERNAL_H
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 #include "rs_types.h"
17 #include "rs_context.h"
18 #include "rs_sensor.h"
19 #include "rs_frame.h"
20 #include "rs_option.h"
21 
25  const unsigned int signed_fw_size = 0x18031C;
26  const unsigned int unsigned_fw_size = 0x200000;
27 
32 typedef enum rs2_recording_mode
33 {
34  RS2_RECORDING_MODE_BLANK_FRAMES, /* frame metadata will be recorded, but pixel data will be replaced with zeros to save space */
35  RS2_RECORDING_MODE_COMPRESSED, /* frames will be encoded using a proprietary lossy encoding, aiming at x5 compression at some CPU expense */
36  RS2_RECORDING_MODE_BEST_QUALITY, /* frames will not be compressed, but rather stored as-is. This gives best quality and low CPU overhead, but you might run out of memory */
39 
41 typedef struct rs2_video_stream
42 {
44  int index;
45  int uid;
46  int width;
47  int height;
48  int fps;
49  int bpp;
53 
55 typedef struct rs2_motion_stream
56 {
58  int index;
59  int uid;
60  int fps;
64 
66 typedef struct rs2_pose_stream
67 {
69  int index;
70  int uid;
71  int fps;
74 
77 {
78  void* pixels;
79  void(*deleter)(void*);
80  int stride;
81  int bpp;
86  float depth_units;
88 
91 {
92  void* data;
93  void(*deleter)(void*);
99 
102 {
104  {
105  float translation[3];
106  float velocity[3];
107  float acceleration[3];
108  float rotation[4];
113  };
114  void* data;
115  void(*deleter)(void*);
121 
124 {
126  int type;
128  const char* description;
129  const char* serialized_data;
131 
133 
143 rs2_context* rs2_create_recording_context(int api_version, const char* filename, const char* section, rs2_recording_mode mode, rs2_error** error);
144 
155 rs2_context* rs2_create_mock_context(int api_version, const char* filename, const char* section, rs2_error** error);
156 
168 rs2_context* rs2_create_mock_context_versioned(int api_version, const char* filename, const char* section, const char* min_api_version, rs2_error** error);
169 
177 
185 rs2_sensor* rs2_software_device_add_sensor(rs2_device* dev, const char* sensor_name, rs2_error** error);
186 
194 
202 
210 
211 
219 
228 
236 
244 
252 
260 void rs2_software_device_register_info(rs2_device* dev, rs2_camera_info info, const char *val, rs2_error** error);
261 
269 void rs2_software_device_update_info(rs2_device* dev, rs2_camera_info info, const char * val, rs2_error** error);
270 
278 
287 
295 
304 
312 
321 
329 void rs2_software_sensor_add_read_only_option(rs2_sensor* sensor, rs2_option option, float val, rs2_error** error);
330 
338 void rs2_software_sensor_update_read_only_option(rs2_sensor* sensor, rs2_option option, float val, rs2_error** error);
339 
351 void rs2_software_sensor_add_option(rs2_sensor* sensor, rs2_option option, float min, float max, float step, float def, int is_writable, rs2_error** error);
352 
359 void rs2_software_sensor_detach(rs2_sensor* sensor, rs2_error** error);
360 
361 
367 void rs2_start_collecting_fw_logs( rs2_device * dev, rs2_error ** error );
368 
374 void rs2_stop_collecting_fw_logs( rs2_device * dev, rs2_error ** error );
375 
383 
391 int rs2_get_fw_log(rs2_device* dev, rs2_firmware_log_message* fw_log_msg, rs2_error** error);
392 
400 int rs2_get_flash_log(rs2_device* dev, rs2_firmware_log_message* fw_log_msg, rs2_error** error);
401 
407 
414 const unsigned char* rs2_fw_log_message_data(rs2_firmware_log_message* msg, rs2_error** error);
415 
423 
424 
432 
440 
448 int rs2_init_fw_log_parser(rs2_device* dev, const char* xml_content, rs2_error** error);
449 
450 
458 
464 
465 
475 
482 unsigned int rs2_get_number_of_fw_logs(rs2_device* dev, rs2_error** error);
489 const char* rs2_get_fw_log_parsed_message(rs2_firmware_log_parsed_message* fw_log_parsed_msg, rs2_error** error);
490 
497 const char* rs2_get_fw_log_parsed_file_name(rs2_firmware_log_parsed_message* fw_log_parsed_msg, rs2_error** error);
498 
505 const char* rs2_get_fw_log_parsed_thread_name(rs2_firmware_log_parsed_message* fw_log_parsed_msg, rs2_error** error);
506 
514  rs2_error ** error );
515 
516 
524 
531 unsigned int rs2_get_fw_log_parsed_line(rs2_firmware_log_parsed_message* fw_log_parsed_msg, rs2_error** error);
532 
539 unsigned int rs2_get_fw_log_parsed_timestamp(rs2_firmware_log_parsed_message* fw_log_parsed_msg, rs2_error** error);
540 
547 unsigned int rs2_get_fw_log_parsed_sequence_id(rs2_firmware_log_parsed_message* fw_log_parsed_msg, rs2_error** error);
548 
555 rs2_terminal_parser* rs2_create_terminal_parser(const char* xml_content, rs2_error** error);
556 
561 void rs2_delete_terminal_parser(rs2_terminal_parser* terminal_parser);
562 
572  const char* command, unsigned int size_of_command, rs2_error** error);
573 
585  const char* command, unsigned int size_of_command,
586  const void* response, unsigned int size_of_response, rs2_error** error);
587 
588 
589 #ifdef __cplusplus
590 }
591 #endif
592 #endif
void rs2_software_sensor_set_metadata(rs2_sensor *sensor, rs2_frame_metadata_value value, rs2_metadata_type type, rs2_error **error)
rs2_format fmt
Definition: rs_internal.h:50
void rs2_software_device_set_destruction_callback_cpp(const rs2_device *dev, rs2_software_device_destruction_callback *callback, 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
rs2_time_t timestamp
Definition: rs_internal.h:82
float angular_acceleration[3]
Definition: rs_internal.h:110
struct rs2_raw_data_buffer rs2_raw_data_buffer
Definition: rs_types.h:231
struct rs2_software_video_frame rs2_software_video_frame
All the parameters required to define a video frame.
rs2_time_t timestamp
Definition: rs_internal.h:116
struct rs2_video_stream rs2_video_stream
All the parameters required to define a video stream.
int uid
Definition: rs_internal.h:59
rs2_option
Defines general configuration controls. These can generally be mapped to camera UVC controls...
Definition: rs_option.h:26
float acceleration[3]
Definition: rs_internal.h:107
int fps
Definition: rs_internal.h:71
rs2_stream type
Definition: rs_internal.h:57
rs2_stream_profile * rs2_software_sensor_add_pose_stream(rs2_sensor *sensor, rs2_pose_stream pose_stream, rs2_error **error)
void rs2_stop_collecting_fw_logs(rs2_device *dev, rs2_error **error)
Stops collecting FW log messages in the device.
rs2_stream type
Definition: rs_internal.h:68
rs2_recording_mode
Definition: rs_internal.h:32
rs2_stream_profile * rs2_software_sensor_add_pose_stream_ex(rs2_sensor *sensor, rs2_pose_stream pose_stream, int is_default, rs2_error **error)
void rs2_software_sensor_add_option(rs2_sensor *sensor, rs2_option option, float min, float max, float step, float def, int is_writable, rs2_error **error)
struct rs2_software_motion_frame rs2_software_motion_frame
All the parameters required to define a motion frame.
const rs2_stream_profile * profile
Definition: rs_internal.h:97
Definition: rs_internal.h:35
struct rs2_context rs2_context
Definition: rs_types.h:250
float rotation[4]
Definition: rs_internal.h:108
const char * rs2_get_fw_log_parsed_thread_name(rs2_firmware_log_parsed_message *fw_log_parsed_msg, rs2_error **error)
Gets RealSense firmware log parsed message source (SoC) or thread name.
int bpp
Definition: rs_internal.h:81
All the parameters required to define a video stream.
Definition: rs_internal.h:41
All the parameters required to define a pose frame.
Definition: rs_internal.h:101
int rs2_fw_log_message_size(rs2_firmware_log_message *msg, rs2_error **error)
Gets RealSense firmware log message size.
int frame_number
Definition: rs_internal.h:96
unsigned int rs2_get_fw_log_parsed_sequence_id(rs2_firmware_log_parsed_message *fw_log_parsed_msg, rs2_error **error)
Gets RealSense firmware log parsed message sequence id - cyclic number of FW log with [0...
int mapper_confidence
Definition: rs_internal.h:112
int uid
Definition: rs_internal.h:70
rs2_stream type
Definition: rs_internal.h:43
unsigned int rs2_fw_log_message_timestamp(rs2_firmware_log_message *msg, rs2_error **error)
Gets RealSense firmware log message timestamp.
Definition: rs_types.hpp:52
int bpp
Definition: rs_internal.h:49
void * data
Definition: rs_internal.h:114
float angular_velocity[3]
Definition: rs_internal.h:109
int fps
Definition: rs_internal.h:48
rs2_timestamp_domain domain
Definition: rs_internal.h:95
const char * serialized_data
Definition: rs_internal.h:129
rs2_timestamp_domain domain
Definition: rs_internal.h:117
rs2_time_t timestamp
Definition: rs_internal.h:94
struct rs2_sensor rs2_sensor
Definition: rs_types.h:253
void rs2_delete_fw_log_parsed_message(rs2_firmware_log_parsed_message *fw_log_parsed_msg)
Deletes RealSense firmware log parsed message.
rs2_context * rs2_create_recording_context(int api_version, const char *filename, const char *section, rs2_recording_mode mode, rs2_error **error)
unsigned int rs2_get_fw_log_parsed_line(rs2_firmware_log_parsed_message *fw_log_parsed_msg, rs2_error **error)
Gets RealSense firmware log parsed message relevant line (in the file that is returned by rs2_get_fw_...
int frame_number
Definition: rs_internal.h:118
void rs2_software_sensor_detach(rs2_sensor *sensor, rs2_error **error)
rs2_stream_profile * rs2_software_sensor_add_motion_stream(rs2_sensor *sensor, rs2_motion_stream motion_stream, rs2_error **error)
const rs2_stream_profile * profile
Definition: rs_internal.h:85
int stride
Definition: rs_internal.h:80
rs2_stream_profile * rs2_software_sensor_add_video_stream_ex(rs2_sensor *sensor, rs2_video_stream video_stream, int is_default, rs2_error **error)
int rs2_get_flash_log(rs2_device *dev, rs2_firmware_log_message *fw_log_msg, rs2_error **error)
Gets RealSense flash log - this is a fw log that has been written in the device during the previous s...
Exposes RealSense frame functionality for C compilers.
int uid
Definition: rs_internal.h:45
rs2_log_severity rs2_fw_log_message_severity(const rs2_firmware_log_message *msg, rs2_error **error)
Gets RealSense firmware log message severity.
Exposes RealSense structs.
All the parameters required to define a pose stream.
Definition: rs_internal.h:66
rs2_matchers
Specifies types of different matchers.
Definition: rs_types.h:200
rs2_raw_data_buffer * rs2_terminal_parse_response(rs2_terminal_parser *terminal_parser, const char *command, unsigned int size_of_command, const void *response, unsigned int size_of_response, rs2_error **error)
Parses terminal response via RealSense terminal parser.
rs2_log_severity severity
Definition: rs_internal.h:127
void(* deleter)(void *)
Definition: rs_internal.h:115
void rs2_software_sensor_on_pose_frame(rs2_sensor *sensor, rs2_software_pose_frame frame, rs2_error **error)
rs2_device * rs2_create_software_device(rs2_error **error)
rs2_notification_category category
Definition: rs_internal.h:125
void rs2_software_sensor_add_read_only_option(rs2_sensor *sensor, rs2_option option, float val, rs2_error **error)
struct rs2_stream_profile rs2_stream_profile
Definition: rs_types.h:240
int width
Definition: rs_internal.h:46
Definition: rs_internal.h:37
const char * rs2_get_fw_log_parsed_message(rs2_firmware_log_parsed_message *fw_log_parsed_msg, rs2_error **error)
Gets RealSense firmware log parsed message.
All the parameters required to define a motion stream.
Definition: rs_internal.h:55
Exposes RealSense sensor functionality for C compilers.
rs2_format
A stream's format identifies how binary data is encoded within a frame.
Definition: rs_sensor.h:61
unsigned int rs2_get_fw_log_parsed_timestamp(rs2_firmware_log_parsed_message *fw_log_parsed_msg, rs2_error **error)
Gets RealSense firmware log parsed message timestamp.
rs2_stream_profile * rs2_software_sensor_add_motion_stream_ex(rs2_sensor *sensor, rs2_motion_stream motion_stream, int is_default, rs2_error **error)
void rs2_start_collecting_fw_logs(rs2_device *dev, rs2_error **error)
Starts collecting FW log messages in the device.
rs2_format fmt
Definition: rs_internal.h:72
rs2_format fmt
Definition: rs_internal.h:61
Exposes sensor options functionality for C compilers.
rs2_raw_data_buffer * rs2_terminal_parse_command(rs2_terminal_parser *terminal_parser, const char *command, unsigned int size_of_command, rs2_error **error)
Parses terminal command via RealSense terminal parser.
Definition: rs_internal.h:103
const rs2_stream_profile * profile
Definition: rs_internal.h:119
rs2_context * rs2_create_mock_context(int api_version, const char *filename, const char *section, rs2_error **error)
rs2_stream
Streams are different types of data provided by RealSense devices.
Definition: rs_sensor.h:43
struct rs2_terminal_parser rs2_terminal_parser
Definition: rs_types.h:263
rs2_sensor * rs2_software_device_add_sensor(rs2_device *dev, const char *sensor_name, rs2_error **error)
void rs2_software_sensor_update_read_only_option(rs2_sensor *sensor, rs2_option option, float val, rs2_error **error)
Definition: rs_internal.h:34
const unsigned int unsigned_fw_size
Definition: rs_internal.h:26
rs2_stream_profile * rs2_software_sensor_add_video_stream(rs2_sensor *sensor, rs2_video_stream video_stream, rs2_error **error)
void rs2_software_sensor_on_notification(rs2_sensor *sensor, rs2_software_notification notif, rs2_error **error)
struct rs2_software_pose_frame rs2_software_pose_frame
All the parameters required to define a pose frame.
float translation[3]
Definition: rs_internal.h:105
void rs2_software_device_create_matcher(rs2_device *dev, rs2_matchers matcher, rs2_error **error)
struct rs2_motion_stream rs2_motion_stream
All the parameters required to define a motion stream.
void(* rs2_software_device_destruction_callback_ptr)(void *)
Definition: rs_types.h:266
float velocity[3]
Definition: rs_internal.h:106
void rs2_delete_terminal_parser(rs2_terminal_parser *terminal_parser)
Deletes RealSense terminal parser.
struct rs2_pose_stream rs2_pose_stream
All the parameters required to define a pose stream.
int rs2_init_fw_log_parser(rs2_device *dev, const char *xml_content, rs2_error **error)
Initializes RealSense firmware logs parser in device.
float depth_units
Definition: rs_internal.h:86
All the parameters required to define a sensor notification.
Definition: rs_internal.h:123
void(* deleter)(void *)
Definition: rs_internal.h:93
int index
Definition: rs_internal.h:69
int index
Definition: rs_internal.h:44
int tracker_confidence
Definition: rs_internal.h:111
rs2_notification_category
Category of the librealsense notification.
Definition: rs_types.h:19
long long rs2_metadata_type
Definition: rs_types.h:274
rs2_context * rs2_create_mock_context_versioned(int api_version, const char *filename, const char *section, const char *min_api_version, rs2_error **error)
void rs2_delete_fw_log_message(rs2_firmware_log_message *msg)
All the parameters required to define a motion frame.
Definition: rs_internal.h:90
rs2_timestamp_domain domain
Definition: rs_internal.h:83
struct rs2_device rs2_device
Definition: rs_types.h:228
struct rs2_firmware_log_parsed_message rs2_firmware_log_parsed_message
Definition: rs_types.h:261
int frame_number
Definition: rs_internal.h:84
void rs2_software_sensor_on_motion_frame(rs2_sensor *sensor, rs2_software_motion_frame frame, rs2_error **error)
Video stream intrinsics.
Definition: rs_types.h:60
rs2_motion_device_intrinsic intrinsics
Definition: rs_internal.h:62
struct rs2_software_notification rs2_software_notification
All the parameters required to define a sensor notification.
const char * description
Definition: rs_internal.h:128
const char * rs2_get_fw_log_parsed_module_name(rs2_firmware_log_parsed_message *fw_log_parsed_msg, rs2_error **error)
Gets RealSense firmware log parsed message module name.
Motion device intrinsics: scale, bias, and variances.
Definition: rs_types.h:73
void rs2_software_device_set_destruction_callback(const rs2_device *dev, rs2_software_device_destruction_callback_ptr on_notification, void *user, rs2_error **error)
rs2_log_severity rs2_get_fw_log_parsed_severity(rs2_firmware_log_parsed_message *fw_log_parsed_msg, rs2_error **error)
Gets RealSense firmware log parsed message severity.
int fps
Definition: rs_internal.h:60
rs2_firmware_log_message * rs2_create_fw_log_message(rs2_device *dev, rs2_error **error)
Creates RealSense firmware log message.
void * data
Definition: rs_internal.h:92
void rs2_software_sensor_on_video_frame(rs2_sensor *sensor, rs2_software_video_frame frame, rs2_error **error)
rs2_intrinsics intrinsics
Definition: rs_internal.h:51
const unsigned int signed_fw_size
Definition: rs_internal.h:25
All the parameters required to define a video frame.
Definition: rs_internal.h:76
const char * rs2_get_fw_log_parsed_file_name(rs2_firmware_log_parsed_message *fw_log_parsed_msg, rs2_error **error)
Gets RealSense firmware log parsed message file name.
Exposes RealSense context functionality for C compilers.
struct rs2_firmware_log_message rs2_firmware_log_message
Definition: rs_types.h:260
void(* deleter)(void *)
Definition: rs_internal.h:79
int index
Definition: rs_internal.h:58
int rs2_parse_firmware_log(rs2_device *dev, rs2_firmware_log_message *fw_log_msg, rs2_firmware_log_parsed_message *parsed_msg, rs2_error **error)
Gets RealSense firmware log parser.
const unsigned char * rs2_fw_log_message_data(rs2_firmware_log_message *msg, rs2_error **error)
Gets RealSense firmware log message data.
void * pixels
Definition: rs_internal.h:78
struct rs2_error rs2_error
Definition: rs_types.h:229
rs2_firmware_log_parsed_message * rs2_create_fw_log_parsed_message(rs2_device *dev, rs2_error **error)
Creates RealSense firmware log parsed message.
double rs2_time_t
Definition: rs_types.h:273
void rs2_software_device_register_info(rs2_device *dev, rs2_camera_info info, const char *val, rs2_error **error)
rs2_log_severity
Severity of the librealsense logger.
Definition: rs_types.h:123
rs2_terminal_parser * rs2_create_terminal_parser(const char *xml_content, rs2_error **error)
Creates RealSense terminal parser.
unsigned int rs2_get_number_of_fw_logs(rs2_device *dev, rs2_error **error)
Returns number of fw logs already polled from device but not by user yet.
int rs2_get_fw_log(rs2_device *dev, rs2_firmware_log_message *fw_log_msg, rs2_error **error)
Gets RealSense firmware log.
int type
Definition: rs_internal.h:126
rs2_frame_metadata_value
Per-Frame-Metadata is the set of read-only properties that might be exposed for each individual frame...
Definition: rs_frame.h:29
Definition: rs_internal.h:36
void rs2_software_device_update_info(rs2_device *dev, rs2_camera_info info, const char *val, rs2_error **error)
int height
Definition: rs_internal.h:47
rs2_timestamp_domain
Specifies the clock in relation to which the frame timestamp was measured.
Definition: rs_frame.h:19