PST SDK  5.2.0.0-0eac0f6
pstsdk_c.h
Go to the documentation of this file.
1 // Copyright PS-Tech B.V. All Rights Reserved.
2 #pragma once
3 
4 #if (defined(_WIN32) || defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__))
5 # ifdef pstsdk_c_EXPORTS
6 # define PST_C_EXPORT __declspec(dllexport)
7 # else
8 # define PST_C_EXPORT __declspec(dllimport)
9 # endif
10 #else
11 # define PST_C_EXPORT
12 #endif
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #else
17 #include <stdbool.h>
18 #include <stddef.h>
19 #endif
20 
43 typedef enum EPstErrorStatus
44 {
56 
64 typedef enum EPstStatusMessage
65 {
79 
91 typedef struct PstImage
92 {
93  size_t width;
94  size_t height;
96  unsigned char** images;
97 } PstImage;
98 
106 typedef struct PstTarget
107 {
108  char name[128];
109  char uuid[37];
110  int id;
111 } PstTarget;
112 
125 typedef struct PstTargetStatus
126 {
128  bool status;
130 
141 typedef struct PstTargetPose
142 {
144  float pose_matrix[16];
145 } PstTargetPose;
146 
155 typedef struct PstTargetMarker
156 {
157  float coordinates[3];
159 
168 typedef struct PstTargetMarkers
169 {
173 
184 typedef struct PstPoint
185 {
186  int id;
187  float position[3];
188 } PstPoint;
189 
201 typedef struct PstTrackerData
202 {
203  double timestamp;
204  int seqnumber;
210 
217 typedef struct PstTracker
218 {
219  void* tracker;
220 } PstTracker;
227 {
228  char** url_data;
229  size_t number_of_urls;
231 
247 
264 
281 PST_C_EXPORT EPstErrorStatus pst_tracker_init1(PstTracker* ctracker, const char path[]);
282 
300 PST_C_EXPORT EPstErrorStatus pst_tracker_init2(PstTracker* ctracker, const char path[], const char config_file[]);
301 
320 PST_C_EXPORT EPstErrorStatus pst_tracker_init3(PstTracker* ctracker, const char path[], const char config_file[], const char db_file[]);
321 
341 PST_C_EXPORT EPstErrorStatus pst_tracker_init4(PstTracker* ctracker, const char path[], const char config_file[], const char db_file[], const char grabber_name[]);
342 
347 
366 
381 PST_C_EXPORT EPstErrorStatus pst_tracker_alloc_and_get_version_info(const PstTracker* ctracker, char** version_string);
382 
398 
414 
428 
441 
455 
470 
485 
500 
520 PST_C_EXPORT EPstErrorStatus pst_tracker_alloc_and_get_supported_framerates(const PstTracker* ctracker, float** framerates, size_t* number_of_framerates);
521 
537 
550 PST_C_EXPORT EPstErrorStatus pst_tracker_get_exposure(const PstTracker* ctracker, double* exposure);
551 
571 PST_C_EXPORT EPstErrorStatus pst_tracker_get_exposure_range(const PstTracker* ctracker, double* min, double* max);
572 
594 
608 
624 
640 
660 
674 
695 
709 
736 
754 PST_C_EXPORT EPstErrorStatus pst_tracker_alloc_and_get_target_list(const PstTracker* ctracker, PstTargetStatus** statuses, size_t* number_of_statuses);
755 
769 PST_C_EXPORT EPstErrorStatus pst_tracker_get_target_info(const PstTracker* ctracker, const char* name, PstTarget* target);
770 
786 PST_C_EXPORT EPstErrorStatus pst_tracker_set_target_status(PstTracker* ctracker, const char* name, bool set_active);
787 
803 PST_C_EXPORT EPstErrorStatus pst_tracker_get_target_status(const PstTracker* ctracker, const char* name, bool* status);
804 
827 PST_C_EXPORT EPstErrorStatus pst_tracker_get_target_markers(const PstTracker* ctracker, const char* name, PstTargetMarkers* marker_list);
828 
842 PST_C_EXPORT EPstErrorStatus pst_tracker_set_target_id(PstTracker* ctracker, const char* name, int id);
843 
863 PST_C_EXPORT EPstErrorStatus pst_tracker_set_reference(PstTracker* ctracker, const float creference[16], bool relative);
864 
880 
897 PST_C_EXPORT EPstErrorStatus pst_tracker_get_reference(const PstTracker* ctracker, float creference[16]);
898 
924 
933 
954 PST_C_EXPORT EPstErrorStatus pst_sdk_enable_rest_server(const char* server_address, const char* server_port, int event_stream_retry_timeout);
955 
965 
972 
979 
991 
996 
1006 
1016 
1024 PST_C_EXPORT const char* pst_sdk_get_version();
1025 
1034 
1047 
1062 PST_C_EXPORT void pst_free(void* data);
1063 
1065 #ifdef __cplusplus
1066 }
1067 #endif
EPstErrorStatus pst_tracker_get_pst_image(const PstTracker *ctracker, PstImage *image)
Retrieve images from the connected PST Tracker.
int seqnumber
Definition: pstsdk_c.h:204
Estimated 3D marker location.
Definition: pstsdk_c.h:184
EPstErrorStatus pst_tracker_set_framerate(PstTracker *ctracker, double fps)
Set tracker frame rate.
char ** url_data
Definition: pstsdk_c.h:228
Struct to request urls for uncalibrated cameras.
Definition: pstsdk_c.h:226
EPstErrorStatus pst_tracker_start(PstTracker *ctracker)
Start tracking.
EPstErrorStatus pst_tracker_remove_tracker_listener(PstTracker *ctracker, void(*on_tracker_data)(const PstTrackerData *, EPstErrorStatus))
Remove a listener for tracker data.
void pst_target_markers_init(PstTargetMarkers *marker_list)
EPstStatusMessage
Tracker status messages enum class.
Definition: pstsdk_c.h:64
EPstErrorStatus pst_tracker_init1(PstTracker *ctracker, const char path[])
This function initializes the tracker object.
Definition: pstsdk_c.h:53
size_t number_of_images
Definition: pstsdk_c.h:95
EPstErrorStatus pst_tracker_get_exposure_range(const PstTracker *ctracker, double *min, double *max)
Get the allowed exposure range.
unsigned char ** images
Definition: pstsdk_c.h:96
EPstErrorStatus pst_tracker_init4(PstTracker *ctracker, const char path[], const char config_file[], const char db_file[], const char grabber_name[])
This function initializes the tracker object.
void pst_sdk_disable_shared_memory()
Disable shared memory communication layer.
EPstErrorStatus pst_tracker_set_reference(PstTracker *ctracker, const float creference[16], bool relative)
Set the reference system in which tracking results are reported.
bool status
Definition: pstsdk_c.h:128
EPstErrorStatus pst_tracker_disable_tremor_filter(PstTracker *ctracker)
Disable the tremor filter.
Definition: pstsdk_c.h:49
EPstErrorStatus pst_tracker_init(PstTracker *ctracker)
This function initializes the tracker object.
void pst_tracker_destroy(PstTracker *ctracker)
EPstErrorStatus pst_tracker_disable_filtering(PstTracker *ctracker)
Disable filtering of the tracking results.
EPstErrorStatus pst_tracker_get_exposure(const PstTracker *ctracker, double *exposure)
Get the current exposure time.
EPstErrorStatus pst_tracker_get_target_status(const PstTracker *ctracker, const char *name, bool *status)
Get status of a single tracking Target.
size_t number_of_points
Definition: pstsdk_c.h:206
Collection struct for PstTargetMarker.
Definition: pstsdk_c.h:168
Definition: pstsdk_c.h:69
void * tracker
Definition: pstsdk_c.h:219
EPstErrorStatus pst_tracker_get_target_info(const PstTracker *ctracker, const char *name, PstTarget *target)
Get basic tracking target information.
Definition: pstsdk_c.h:68
Estimated tracking target pose.
Definition: pstsdk_c.h:141
Definition: pstsdk_c.h:71
Definition: pstsdk_c.h:67
Main PST SDK struct for tracker communication.
Definition: pstsdk_c.h:217
Definition: pstsdk_c.h:70
EPstErrorStatus pst_sdk_enable_shared_memory()
Enable shared memory communication layer.
PstTargetMarker * markers
Definition: pstsdk_c.h:170
EPstStatusMessage pst_tracker_system_check(const PstTracker *ctracker)
Check if the tracker is running correctly.
Definition: pstsdk_c.h:46
Definition: pstsdk_c.h:50
EPstErrorStatus pst_tracker_set_target_id(PstTracker *ctracker, const char *name, int id)
Set the id of the tracking target.
PstTarget target
Definition: pstsdk_c.h:127
Tracking information retrieved from tracker.
Definition: pstsdk_c.h:201
void pst_sdk_disable_rest_server()
Disable the REST server communication layer.
void pst_image_init(PstImage *image)
EPstErrorStatus pst_tracker_alloc_and_get_target_list(const PstTracker *ctracker, PstTargetStatus **statuses, size_t *number_of_statuses)
Get TargetStatuses object containing all tracking targets and their status.
Definition: pstsdk_c.h:45
void pst_image_destroy(PstImage *image)
Definition: pstsdk_c.h:73
size_t number_of_markers
Definition: pstsdk_c.h:171
void pst_camera_urls_init(PstUncalibratedCameraURLs *urls)
void pst_sdk_shutdown()
Shutdown the tracking system, stopping tracking.
EPstErrorStatus pst_tracker_add_tracker_listener(PstTracker *ctracker, void(*on_tracker_data)(const PstTrackerData *, EPstErrorStatus))
Add a listener for tracker data.
EPstErrorStatus pst_tracker_enable_image_transfer(PstTracker *ctracker)
Enable image transfer from the PST Tracker.
EPstErrorStatus pst_sdk_enable_rest_server(const char *server_address, const char *server_port, int event_stream_retry_timeout)
Enable a REST Server using the HTTP protocol on a local area network.
size_t height
Definition: pstsdk_c.h:94
double timestamp
Definition: pstsdk_c.h:203
size_t number_of_targets
Definition: pstsdk_c.h:205
EPstErrorStatus pst_tracker_alloc_and_get_config_path(const PstTracker *ctracker, char **config_path)
Get the path to the current configuration directory.
Definition: pstsdk_c.h:48
EPstErrorStatus pst_tracker_pause(PstTracker *ctracker)
Pause tracking.
void pst_sdk_enable_logging()
Write plug-in status information to the standard C output stream stderr.
EPstErrorStatus pst_tracker_disable_image_transfer(PstTracker *ctracker)
Disable image transfer from the PST Tracker.
PstPoint * datapoints
Definition: pstsdk_c.h:208
Definition: pstsdk_c.h:51
EPstErrorStatus pst_tracker_get_target_markers(const PstTracker *ctracker, const char *name, PstTargetMarkers *marker_list)
Get 3D marker positions of stored tracking target.
EPstErrorStatus pst_tracker_enable_tremor_filter(PstTracker *ctracker)
Enable the tremor filter.
3D marker positions of a single marker of a tracking Target.
Definition: pstsdk_c.h:155
size_t number_of_urls
Definition: pstsdk_c.h:229
void pst_target_markers_destroy(PstTargetMarkers *marker_list)
Tracking target status.
Definition: pstsdk_c.h:125
EPstErrorStatus pst_tracker_set_exposure(PstTracker *ctracker, double time)
Set the exposure time.
EPstErrorStatus pst_alloc_and_get_last_error_message(char **cstring)
This function returns the last error message that was recorded by the system.
EPstErrorStatus pst_tracker_get_camera_urls(const PstTracker *ctracker, bool silent, PstUncalibratedCameraURLs *urls)
Check if cameras of the connected PST Tracker are calibrated.
EPstErrorStatus
Tracker error messages enum class.
Definition: pstsdk_c.h:43
EPstErrorStatus pst_tracker_alloc_and_get_version_info(const PstTracker *ctracker, char **version_string)
Get version information of the SDK.
EPstErrorStatus pst_tracker_alloc_and_get_supported_framerates(const PstTracker *ctracker, float **framerates, size_t *number_of_framerates)
Get an array of available frame rates.
PstTarget target
Definition: pstsdk_c.h:143
#define PST_C_EXPORT
Definition: pstsdk_c.h:11
EPstErrorStatus pst_tracker_init2(PstTracker *ctracker, const char path[], const char config_file[])
This function initializes the tracker object.
EPstErrorStatus pst_tracker_init3(PstTracker *ctracker, const char path[], const char config_file[], const char db_file[])
This function initializes the tracker object.
EPstErrorStatus pst_tracker_enable_filtering(PstTracker *ctracker)
Enable filtering of the tracking results.
EPstErrorStatus pst_tracker_set_default_reference(PstTracker *ctracker)
Reset the reference system to the default reference system.
int id
Definition: pstsdk_c.h:186
const char * pst_sdk_get_version()
Retrieve the SDK version string.
Tracking target information.
Definition: pstsdk_c.h:106
EPstErrorStatus pst_tracker_set_target_status(PstTracker *ctracker, const char *name, bool set_active)
Set status of a single tracking Target.
size_t width
Definition: pstsdk_c.h:93
void pst_camera_urls_destroy(PstUncalibratedCameraURLs *urls)
int id
Definition: pstsdk_c.h:110
EPstErrorStatus pst_tracker_get_framerate(const PstTracker *ctracker, double *fps)
Get current frame rate.
Images retrieved from the tracker.
Definition: pstsdk_c.h:91
EPstErrorStatus pst_tracker_set_orientation_filter(PstTracker *ctracker, double value)
Set the strength of the orientation filter.
EPstErrorStatus pst_tracker_get_reference(const PstTracker *ctracker, float creference[16])
Gets the transformation matrix for the current reference system.
void pst_free(void *data)
Free data allocated by the PST SDK.
EPstErrorStatus pst_tracker_set_position_filter(PstTracker *ctracker, double value)
Set the strength of the position filter.
Definition: pstsdk_c.h:66
PstTargetPose * targetlist
Definition: pstsdk_c.h:207
Definition: pstsdk_c.h:77