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
pst_tracker_get_target_markers
EPstErrorStatus pst_tracker_get_target_markers(const PstTracker *ctracker, const char *name, PstTargetMarkers *marker_list)
Get 3D marker positions of stored tracking target.
pst_tracker_enable_image_transfer
EPstErrorStatus pst_tracker_enable_image_transfer(PstTracker *ctracker)
Enable image transfer from the PST Tracker.
pst_tracker_alloc_and_get_target_list
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.
pst_tracker_enable_tremor_filter
EPstErrorStatus pst_tracker_enable_tremor_filter(PstTracker *ctracker)
Enable the tremor filter.
PstTargetStatus::target
PstTarget target
Definition: pstsdk_c.h:127
pst_tracker_enable_filtering
EPstErrorStatus pst_tracker_enable_filtering(PstTracker *ctracker)
Enable filtering of the tracking results.
pst_camera_urls_destroy
void pst_camera_urls_destroy(PstUncalibratedCameraURLs *urls)
pst_tracker_get_framerate
EPstErrorStatus pst_tracker_get_framerate(const PstTracker *ctracker, double *fps)
Get current frame rate.
PstTracker::tracker
void * tracker
Definition: pstsdk_c.h:219
pst_tracker_get_camera_urls
EPstErrorStatus pst_tracker_get_camera_urls(const PstTracker *ctracker, bool silent, PstUncalibratedCameraURLs *urls)
Check if cameras of the connected PST Tracker are calibrated.
PST_STATUSMESSAGE_ERR_INITERROR
@ PST_STATUSMESSAGE_ERR_INITERROR
Definition: pstsdk_c.h:73
pst_tracker_alloc_and_get_config_path
EPstErrorStatus pst_tracker_alloc_and_get_config_path(const PstTracker *ctracker, char **config_path)
Get the path to the current configuration directory.
PstImage::number_of_images
size_t number_of_images
Definition: pstsdk_c.h:95
pst_sdk_enable_logging
void pst_sdk_enable_logging()
Write plug-in status information to the standard C output stream stderr.
pst_sdk_get_version
const char * pst_sdk_get_version()
Retrieve the SDK version string.
pst_tracker_set_framerate
EPstErrorStatus pst_tracker_set_framerate(PstTracker *ctracker, double fps)
Set tracker frame rate.
PST_STATUSMESSAGE_ERR_TIMEOUT
@ PST_STATUSMESSAGE_ERR_TIMEOUT
Definition: pstsdk_c.h:70
PST_ERROR_STATUS_IMAGE_RETRIEVAL_FAILED_ERROR
@ PST_ERROR_STATUS_IMAGE_RETRIEVAL_FAILED_ERROR
Definition: pstsdk_c.h:54
PstTargetMarker::coordinates
float coordinates[3]
Definition: pstsdk_c.h:157
PstTargetPose::pose_matrix
float pose_matrix[16]
Definition: pstsdk_c.h:144
pst_tracker_set_position_filter
EPstErrorStatus pst_tracker_set_position_filter(PstTracker *ctracker, double value)
Set the strength of the position filter.
pst_image_init
void pst_image_init(PstImage *image)
PstImage::images
unsigned char ** images
Definition: pstsdk_c.h:96
pst_tracker_set_exposure
EPstErrorStatus pst_tracker_set_exposure(PstTracker *ctracker, double time)
Set the exposure time.
pst_tracker_get_exposure_range
EPstErrorStatus pst_tracker_get_exposure_range(const PstTracker *ctracker, double *min, double *max)
Get the allowed exposure range.
PST_STATUSMESSAGE_ERR_CANNOT_SETUP_CAMS
@ PST_STATUSMESSAGE_ERR_CANNOT_SETUP_CAMS
Definition: pstsdk_c.h:75
PST_ERROR_STATUS_NULLPTR_ERROR
@ PST_ERROR_STATUS_NULLPTR_ERROR
Definition: pstsdk_c.h:53
PST_C_EXPORT
#define PST_C_EXPORT
Definition: pstsdk_c.h:11
pst_tracker_set_orientation_filter
EPstErrorStatus pst_tracker_set_orientation_filter(PstTracker *ctracker, double value)
Set the strength of the orientation filter.
pst_tracker_add_tracker_listener
EPstErrorStatus pst_tracker_add_tracker_listener(PstTracker *ctracker, void(*on_tracker_data)(const PstTrackerData *, EPstErrorStatus))
Add a listener for tracker data.
PstTracker
Main PST SDK struct for tracker communication.
Definition: pstsdk_c.h:217
pst_sdk_disable_rest_server
void pst_sdk_disable_rest_server()
Disable the REST server communication layer.
PstTrackerData::timestamp
double timestamp
Definition: pstsdk_c.h:203
pst_tracker_set_target_status
EPstErrorStatus pst_tracker_set_target_status(PstTracker *ctracker, const char *name, bool set_active)
Set status of a single tracking Target.
PstTarget::id
int id
Definition: pstsdk_c.h:110
pst_tracker_init1
EPstErrorStatus pst_tracker_init1(PstTracker *ctracker, const char path[])
This function initializes the tracker object.
pst_tracker_alloc_and_get_version_info
EPstErrorStatus pst_tracker_alloc_and_get_version_info(const PstTracker *ctracker, char **version_string)
Get version information of the SDK.
PstPoint
Estimated 3D marker location.
Definition: pstsdk_c.h:184
PstTargetMarkers::number_of_markers
size_t number_of_markers
Definition: pstsdk_c.h:171
PstTrackerData::datapoints
PstPoint * datapoints
Definition: pstsdk_c.h:208
pst_camera_urls_init
void pst_camera_urls_init(PstUncalibratedCameraURLs *urls)
PST_ERROR_STATUS_NOT_SUPPORTED_ERROR
@ PST_ERROR_STATUS_NOT_SUPPORTED_ERROR
Definition: pstsdk_c.h:48
pst_tracker_destroy
void pst_tracker_destroy(PstTracker *ctracker)
PstTarget::name
char name[128]
Definition: pstsdk_c.h:108
PstTarget
Tracking target information.
Definition: pstsdk_c.h:106
pst_sdk_enable_rest_server
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.
EPstErrorStatus
EPstErrorStatus
Tracker error messages enum class.
Definition: pstsdk_c.h:43
PstTrackerData::seqnumber
int seqnumber
Definition: pstsdk_c.h:204
PST_STATUSMESSAGE_OK
@ PST_STATUSMESSAGE_OK
Definition: pstsdk_c.h:66
pst_target_markers_destroy
void pst_target_markers_destroy(PstTargetMarkers *marker_list)
pst_tracker_pause
EPstErrorStatus pst_tracker_pause(PstTracker *ctracker)
Pause tracking.
pst_tracker_get_pst_image
EPstErrorStatus pst_tracker_get_pst_image(const PstTracker *ctracker, PstImage *image)
Retrieve images from the connected PST Tracker.
pst_tracker_init
EPstErrorStatus pst_tracker_init(PstTracker *ctracker)
This function initializes the tracker object.
PST_ERROR_STATUS_NOT_FOUND_ERROR
@ PST_ERROR_STATUS_NOT_FOUND_ERROR
Definition: pstsdk_c.h:50
pst_tracker_remove_tracker_listener
EPstErrorStatus pst_tracker_remove_tracker_listener(PstTracker *ctracker, void(*on_tracker_data)(const PstTrackerData *, EPstErrorStatus))
Remove a listener for tracker data.
PST_STATUSMESSAGE_ERR_NOTENOUGHTCAMS_FOUND
@ PST_STATUSMESSAGE_ERR_NOTENOUGHTCAMS_FOUND
Definition: pstsdk_c.h:72
PstUncalibratedCameraURLs
Struct to request urls for uncalibrated cameras.
Definition: pstsdk_c.h:226
pst_tracker_set_reference
EPstErrorStatus pst_tracker_set_reference(PstTracker *ctracker, const float creference[16], bool relative)
Set the reference system in which tracking results are reported.
pst_free
void pst_free(void *data)
Free data allocated by the PST SDK.
PST_ERROR_STATUS_OK
@ PST_ERROR_STATUS_OK
Definition: pstsdk_c.h:45
pst_tracker_get_exposure
EPstErrorStatus pst_tracker_get_exposure(const PstTracker *ctracker, double *exposure)
Get the current exposure time.
pst_tracker_set_default_reference
EPstErrorStatus pst_tracker_set_default_reference(PstTracker *ctracker)
Reset the reference system to the default reference system.
PstPoint::position
float position[3]
Definition: pstsdk_c.h:187
PST_ERROR_STATUS_HTTP_ERROR
@ PST_ERROR_STATUS_HTTP_ERROR
Definition: pstsdk_c.h:51
pst_tracker_system_check
EPstStatusMessage pst_tracker_system_check(const PstTracker *ctracker)
Check if the tracker is running correctly.
pst_tracker_alloc_and_get_supported_framerates
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.
PstTargetMarkers::markers
PstTargetMarker * markers
Definition: pstsdk_c.h:170
PstTargetStatus::status
bool status
Definition: pstsdk_c.h:128
pst_tracker_disable_tremor_filter
EPstErrorStatus pst_tracker_disable_tremor_filter(PstTracker *ctracker)
Disable the tremor filter.
pst_tracker_get_target_status
EPstErrorStatus pst_tracker_get_target_status(const PstTracker *ctracker, const char *name, bool *status)
Get status of a single tracking Target.
pst_tracker_init3
EPstErrorStatus pst_tracker_init3(PstTracker *ctracker, const char path[], const char config_file[], const char db_file[])
This function initializes the tracker object.
pst_alloc_and_get_last_error_message
EPstErrorStatus pst_alloc_and_get_last_error_message(char **cstring)
This function returns the last error message that was recorded by the system.
pst_tracker_set_target_id
EPstErrorStatus pst_tracker_set_target_id(PstTracker *ctracker, const char *name, int id)
Set the id of the tracking target.
PST_STATUSMESSAGE_ERR_UNKNOWN_STATUS
@ PST_STATUSMESSAGE_ERR_UNKNOWN_STATUS
Definition: pstsdk_c.h:77
PstTrackerData::number_of_points
size_t number_of_points
Definition: pstsdk_c.h:206
PST_STATUSMESSAGE_NOT_INITIALIZED
@ PST_STATUSMESSAGE_NOT_INITIALIZED
Definition: pstsdk_c.h:67
pst_sdk_disable_shared_memory
void pst_sdk_disable_shared_memory()
Disable shared memory communication layer.
PstTargetStatus
Tracking target status.
Definition: pstsdk_c.h:125
PstTrackerData::targetlist
PstTargetPose * targetlist
Definition: pstsdk_c.h:207
PstPoint::id
int id
Definition: pstsdk_c.h:186
pst_tracker_init4
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.
PstImage
Images retrieved from the tracker.
Definition: pstsdk_c.h:91
PstImage::width
size_t width
Definition: pstsdk_c.h:93
PstTrackerData
Tracking information retrieved from tracker.
Definition: pstsdk_c.h:201
PST_STATUSMESSAGE_ERR_NOCAMS_FOUND
@ PST_STATUSMESSAGE_ERR_NOCAMS_FOUND
Definition: pstsdk_c.h:71
PstUncalibratedCameraURLs::url_data
char ** url_data
Definition: pstsdk_c.h:228
PstImage::height
size_t height
Definition: pstsdk_c.h:94
PstTarget::uuid
char uuid[37]
Definition: pstsdk_c.h:109
pst_image_destroy
void pst_image_destroy(PstImage *image)
PstTargetMarkers
Collection struct for PstTargetMarker.
Definition: pstsdk_c.h:168
pst_sdk_enable_shared_memory
EPstErrorStatus pst_sdk_enable_shared_memory()
Enable shared memory communication layer.
PST_STATUSMESSAGE_ERR_GENERAL
@ PST_STATUSMESSAGE_ERR_GENERAL
Definition: pstsdk_c.h:69
PstTargetPose
Estimated tracking target pose.
Definition: pstsdk_c.h:141
PST_ERROR_STATUS_TRACKER_ERROR
@ PST_ERROR_STATUS_TRACKER_ERROR
Definition: pstsdk_c.h:46
pst_tracker_get_target_info
EPstErrorStatus pst_tracker_get_target_info(const PstTracker *ctracker, const char *name, PstTarget *target)
Get basic tracking target information.
pst_tracker_get_reference
EPstErrorStatus pst_tracker_get_reference(const PstTracker *ctracker, float creference[16])
Gets the transformation matrix for the current reference system.
pst_target_markers_init
void pst_target_markers_init(PstTargetMarkers *marker_list)
PST_ERROR_STATUS_NOT_INITIALIZED_ERROR
@ PST_ERROR_STATUS_NOT_INITIALIZED_ERROR
Definition: pstsdk_c.h:47
EPstStatusMessage
EPstStatusMessage
Tracker status messages enum class.
Definition: pstsdk_c.h:64
pst_tracker_disable_image_transfer
EPstErrorStatus pst_tracker_disable_image_transfer(PstTracker *ctracker)
Disable image transfer from the PST Tracker.
PstTargetPose::target
PstTarget target
Definition: pstsdk_c.h:143
PST_STATUSMESSAGE_ERR_CANNOT_START_CAMS
@ PST_STATUSMESSAGE_ERR_CANNOT_START_CAMS
Definition: pstsdk_c.h:74
pst_sdk_shutdown
void pst_sdk_shutdown()
Shutdown the tracking system, stopping tracking.
pst_tracker_disable_filtering
EPstErrorStatus pst_tracker_disable_filtering(PstTracker *ctracker)
Disable filtering of the tracking results.
PstTrackerData::number_of_targets
size_t number_of_targets
Definition: pstsdk_c.h:205
pst_tracker_start
EPstErrorStatus pst_tracker_start(PstTracker *ctracker)
Start tracking.
PstUncalibratedCameraURLs::number_of_urls
size_t number_of_urls
Definition: pstsdk_c.h:229
PST_STATUSMESSAGE_DISCONNECTED
@ PST_STATUSMESSAGE_DISCONNECTED
Definition: pstsdk_c.h:68
PST_ERROR_STATUS_OUT_OF_RANGE_ERROR
@ PST_ERROR_STATUS_OUT_OF_RANGE_ERROR
Definition: pstsdk_c.h:49
PST_STATUSMESSAGE_ERR_NULL_TRACKER_HANDLE
@ PST_STATUSMESSAGE_ERR_NULL_TRACKER_HANDLE
Definition: pstsdk_c.h:76
PstTargetMarker
3D marker positions of a single marker of a tracking Target.
Definition: pstsdk_c.h:155
PST_ERROR_STATUS_FAILED_TO_ALLOCATE_MEMORY_ERROR
@ PST_ERROR_STATUS_FAILED_TO_ALLOCATE_MEMORY_ERROR
Definition: pstsdk_c.h:52
pst_tracker_init2
EPstErrorStatus pst_tracker_init2(PstTracker *ctracker, const char path[], const char config_file[])
This function initializes the tracker object.