TYCamport3  3
TYApi.h
Go to the documentation of this file.
1 
27 #ifndef TY_API_H_
28 #define TY_API_H_
29 
30 #include <stddef.h>
31 #include <stdlib.h>
32 
33 #ifdef WIN32
34 # ifndef _WIN32
35 # define _WIN32
36 # endif
37 #endif
38 
39 #ifdef _WIN32
40 # ifndef _STDINT_H
41 # if defined(_MSC_VER) && _MSC_VER < 1600
42  typedef __int8 int8_t;
43  typedef __int16 int16_t;
44  typedef __int32 int32_t;
45  typedef __int64 int64_t;
46  typedef unsigned __int8 uint8_t;
47  typedef unsigned __int16 uint16_t;
48  typedef unsigned __int32 uint32_t;
49  typedef unsigned __int64 uint64_t;
50 # else
51 # include <stdint.h>
52 # endif
53 # endif
54 #else
55 # include <stdint.h>
56 #endif
57 
58 // copy stdbool.h here in case bool not defined or <stdbool.h> cant be found
59 #ifndef _STDBOOL_H
60 # define _STDBOOL_H
61 # define __bool_true_false_are_defined 1
62 # ifndef __cplusplus
63 # define bool _Bool
64 # define true 1
65 # define false 0
66 # endif
67 #endif
68 
69 #ifdef _WIN32
70 # include <WinSock2.h>
71 # include <Windows.h>
72 # ifdef TY_STATIC_LIB
73 # define TY_DLLIMPORT
74 # define TY_DLLEXPORT
75 # else
76 # define TY_DLLIMPORT __declspec(dllimport)
77 # define TY_DLLEXPORT __declspec(dllexport)
78 # endif
79 # define TY_STDC __stdcall
80 # define TY_CDEC __cdecl
81 # ifdef RGB
82 # undef RGB
83 # endif
84 #else
85 # ifdef TY_STATIC_LIB
86 # define TY_DLLIMPORT
87 # define TY_DLLEXPORT
88 # else
89 # define TY_DLLIMPORT __attribute__((visibility("default")))
90 # define TY_DLLEXPORT __attribute__((visibility("default")))
91 # endif
92 # if defined(__i386__)
93 # define TY_STDC __attribute__((stdcall))
94 # define TY_CDEC __attribute__((cdecl))
95 # else
96 # define TY_STDC
97 # define TY_CDEC
98 # endif
99 #endif
100 
101 #ifdef TY_BUILDING_LIB
102 # define TY_EXPORT TY_DLLEXPORT
103 #else
104 # define TY_EXPORT TY_DLLIMPORT
105 #endif
106 
107 #if !defined(TY_EXTC)
108 # if defined(__cplusplus)
109 # define TY_EXTC extern "C"
110 # else
111 # define TY_EXTC
112 # endif
113 #endif
114 
115 #include "TYVer.h"
116 
117 //------------------------------------------------------------------------------
119 typedef enum TY_STATUS_LIST :int32_t
120 {
121  TY_STATUS_OK = 0,
122  TY_STATUS_ERROR = -1001,
123  TY_STATUS_NOT_INITED = -1002,
124  TY_STATUS_NOT_IMPLEMENTED = -1003,
125  TY_STATUS_NOT_PERMITTED = -1004,
126  TY_STATUS_DEVICE_ERROR = -1005,
127  TY_STATUS_INVALID_PARAMETER = -1006,
128  TY_STATUS_INVALID_HANDLE = -1007,
129  TY_STATUS_INVALID_COMPONENT = -1008,
130  TY_STATUS_INVALID_FEATURE = -1009,
131  TY_STATUS_WRONG_TYPE = -1010,
132  TY_STATUS_WRONG_SIZE = -1011,
133  TY_STATUS_OUT_OF_MEMORY = -1012,
134  TY_STATUS_OUT_OF_RANGE = -1013,
135  TY_STATUS_TIMEOUT = -1014,
136  TY_STATUS_WRONG_MODE = -1015,
137  TY_STATUS_BUSY = -1016,
138  TY_STATUS_IDLE = -1017,
139  TY_STATUS_NO_DATA = -1018,
140  TY_STATUS_NO_BUFFER = -1019,
141  TY_STATUS_NULL_POINTER = -1020,
142  TY_STATUS_READONLY_FEATURE = -1021,
143  TY_STATUS_INVALID_DESCRIPTOR= -1022,
144  TY_STATUS_INVALID_INTERFACE = -1023,
145  TY_STATUS_FIRMWARE_ERROR = -1024,
146 
147  /* ret_code from remote device */
148  TY_STATUS_DEV_EPERM = -1,
149  TY_STATUS_DEV_EIO = -5,
150  TY_STATUS_DEV_ENOMEM = -12,
151  TY_STATUS_DEV_EBUSY = -16,
152  TY_STATUS_DEV_EINVAL = -22,
153  /* endof ret_code from remote device */
155 typedef int32_t TY_STATUS;
156 
157 typedef enum TY_FW_ERRORCODE_LIST:uint32_t
158 {
159  TY_FW_ERRORCODE_CAM0_NOT_DETECTED = 0x00000001,
160  TY_FW_ERRORCODE_CAM1_NOT_DETECTED = 0x00000002,
161  TY_FW_ERRORCODE_CAM2_NOT_DETECTED = 0x00000004,
162  TY_FW_ERRORCODE_POE_NOT_INIT = 0x00000008,
163  TY_FW_ERRORCODE_RECMAP_NOT_CORRECT = 0x00000010,
164  TY_FW_ERRORCODE_LOOKUPTABLE_NOT_CORRECT = 0x00000020,
165  TY_FW_ERRORCODE_DRV8899_NOT_INIT = 0x00000040,
166  TY_FW_ERRORCODE_CONFIG_NOT_FOUND = 0x00010000,
167  TY_FW_ERRORCODE_CONFIG_NOT_CORRECT = 0x00020000,
168  TY_FW_ERRORCODE_XML_NOT_FOUND = 0x00040000,
169  TY_FW_ERRORCODE_XML_NOT_CORRECT = 0x00080000,
170  TY_FW_ERRORCODE_XML_OVERRIDE_FAILED = 0x00100000,
171  TY_FW_ERRORCODE_CAM_INIT_FAILED = 0x00200000,
172  TY_FW_ERRORCODE_LASER_INIT_FAILED = 0x00400000,
173 }TY_FW_ERRORCODE_LIST;
174 typedef uint32_t TY_FW_ERRORCODE;
175 
176 typedef enum TY_EVENT_LIST :int32_t
177 {
178  TY_EVENT_DEVICE_OFFLINE = -2001,
179  TY_EVENT_LICENSE_ERROR = -2002,
180  TY_EVENT_FW_INIT_ERROR = -2003,
181 }TY_ENENT_LIST;
182 typedef int32_t TY_EVENT;
183 
184 
185 typedef void* TY_INTERFACE_HANDLE;
186 typedef void* TY_DEV_HANDLE;
187 
188 
193 typedef enum TY_DEVICE_COMPONENT_LIST :uint32_t
194 {
195  TY_COMPONENT_DEVICE = 0x80000000,
196  TY_COMPONENT_DEPTH_CAM = 0x00010000,
201  TY_COMPONENT_LASER = 0x00400000,
202  TY_COMPONENT_IMU = 0x00800000,
204  TY_COMPONENT_STORAGE = 0x02000000,
205 
208 typedef uint32_t TY_COMPONENT_ID;
209 
210 
211 //------------------------------------------------------------------------------
213 typedef enum TY_FEATURE_TYPE_LIST :uint32_t
214 {
215  TY_FEATURE_INT = 0x1000,
216  TY_FEATURE_FLOAT = 0X2000,
217  TY_FEATURE_ENUM = 0x3000,
218  TY_FEATURE_BOOL = 0x4000,
219  TY_FEATURE_STRING = 0x5000,
220  TY_FEATURE_BYTEARRAY = 0x6000,
221  TY_FEATURE_STRUCT = 0x7000,
223 typedef uint32_t TY_FEATURE_TYPE;
224 
225 
227 typedef enum TY_FEATURE_ID_LIST :uint32_t
228 {
229  TY_STRUCT_CAM_INTRINSIC = 0x0000 | TY_FEATURE_STRUCT,
230  TY_STRUCT_EXTRINSIC_TO_DEPTH = 0x0001 | TY_FEATURE_STRUCT,
231  TY_STRUCT_EXTRINSIC_TO_IR_LEFT = 0x0002 | TY_FEATURE_STRUCT,
232  TY_STRUCT_CAM_DISTORTION = 0x0006 | TY_FEATURE_STRUCT,
233  TY_STRUCT_CAM_CALIB_DATA = 0x0007 | TY_FEATURE_STRUCT,
234  TY_STRUCT_CAM_RECTIFIED_INTRI = 0x0008 | TY_FEATURE_STRUCT,
235  TY_BYTEARRAY_CUSTOM_BLOCK = 0x000A | TY_FEATURE_BYTEARRAY,
236  TY_BYTEARRAY_ISP_BLOCK = 0x000B | TY_FEATURE_BYTEARRAY,
237 
238  TY_INT_PERSISTENT_IP = 0x0010 | TY_FEATURE_INT,
239  TY_INT_PERSISTENT_SUBMASK = 0x0011 | TY_FEATURE_INT,
240  TY_INT_PERSISTENT_GATEWAY = 0x0012 | TY_FEATURE_INT,
241  TY_BOOL_GVSP_RESEND = 0x0013 | TY_FEATURE_BOOL,
242  TY_INT_PACKET_DELAY = 0x0014 | TY_FEATURE_INT,
243  TY_INT_ACCEPTABLE_PERCENT = 0x0015 | TY_FEATURE_INT,
244  TY_INT_NTP_SERVER_IP = 0x0016 | TY_FEATURE_INT,
245  TY_INT_PACKET_SIZE = 0x0017 | TY_FEATURE_INT,
246  TY_INT_LINK_CMD_TIMEOUT = 0x0018 | TY_FEATURE_INT,
247  TY_STRUCT_CAM_STATISTICS = 0x00ff | TY_FEATURE_STRUCT,
248 
249  TY_INT_WIDTH_MAX = 0x0100 | TY_FEATURE_INT,
250  TY_INT_HEIGHT_MAX = 0x0101 | TY_FEATURE_INT,
251  TY_INT_OFFSET_X = 0x0102 | TY_FEATURE_INT,
252  TY_INT_OFFSET_Y = 0x0103 | TY_FEATURE_INT,
253  TY_INT_WIDTH = 0x0104 | TY_FEATURE_INT,
254  TY_INT_HEIGHT = 0x0105 | TY_FEATURE_INT,
255  TY_ENUM_IMAGE_MODE = 0x0109 | TY_FEATURE_ENUM,
256 
260  TY_FLOAT_SCALE_UNIT = 0x010a | TY_FEATURE_FLOAT,
261 
262  TY_ENUM_TRIGGER_POL = 0x0201 | TY_FEATURE_ENUM,
263  TY_INT_FRAME_PER_TRIGGER = 0x0202 | TY_FEATURE_INT,
264  TY_STRUCT_TRIGGER_PARAM = 0x0523 | TY_FEATURE_STRUCT,
265  TY_STRUCT_TRIGGER_PARAM_EX = 0x0525 | TY_FEATURE_STRUCT,
266  TY_STRUCT_TRIGGER_TIMER_LIST = 0x0526 | TY_FEATURE_STRUCT,
267  TY_STRUCT_TRIGGER_TIMER_PERIOD = 0x0527 | TY_FEATURE_STRUCT,
268  TY_BOOL_KEEP_ALIVE_ONOFF = 0x0203 | TY_FEATURE_BOOL,
269  TY_INT_KEEP_ALIVE_TIMEOUT = 0x0204 | TY_FEATURE_INT,
270  TY_BOOL_CMOS_SYNC = 0x0205 | TY_FEATURE_BOOL,
271  TY_INT_TRIGGER_DELAY_US = 0x0206 | TY_FEATURE_INT,
272  TY_BOOL_TRIGGER_OUT_IO = 0x0207 | TY_FEATURE_BOOL,
273  TY_INT_TRIGGER_DURATION_US = 0x0208 | TY_FEATURE_INT,
274  TY_ENUM_STREAM_ASYNC = 0x0209 | TY_FEATURE_ENUM,
275  TY_INT_CAPTURE_TIME_US = 0x0210 | TY_FEATURE_INT,
276  TY_ENUM_TIME_SYNC_TYPE = 0x0211 | TY_FEATURE_ENUM,
277  TY_BOOL_TIME_SYNC_READY = 0x0212 | TY_FEATURE_BOOL,
278  TY_BOOL_FLASHLIGHT = 0x0213 | TY_FEATURE_BOOL,
279  TY_INT_FLASHLIGHT_INTENSITY = 0x0214 | TY_FEATURE_INT,
280  TY_STRUCT_DO0_WORKMODE = 0x0215 | TY_FEATURE_STRUCT,
281  TY_STRUCT_DI0_WORKMODE = 0x0216 | TY_FEATURE_STRUCT,
282  TY_STRUCT_DO1_WORKMODE = 0x0217 | TY_FEATURE_STRUCT,
283  TY_STRUCT_DI1_WORKMODE = 0x0218 | TY_FEATURE_STRUCT,
284  TY_STRUCT_DO2_WORKMODE = 0x0219 | TY_FEATURE_STRUCT,
285  TY_STRUCT_DI2_WORKMODE = 0x0220 | TY_FEATURE_STRUCT,
286 
287 
288  TY_BOOL_AUTO_EXPOSURE = 0x0300 | TY_FEATURE_BOOL,
289  TY_INT_EXPOSURE_TIME = 0x0301 | TY_FEATURE_INT,
290  TY_BOOL_AUTO_GAIN = 0x0302 | TY_FEATURE_BOOL,
291  TY_INT_GAIN = 0x0303 | TY_FEATURE_INT,
292  TY_BOOL_AUTO_AWB = 0x0304 | TY_FEATURE_BOOL,
293  TY_STRUCT_AEC_ROI = 0x0305 | TY_FEATURE_STRUCT,
294  TY_INT_TOF_HDR_RATIO = 0x0306 | TY_FEATURE_INT,
295  TY_INT_TOF_JITTER_THRESHOLD = 0x0307 | TY_FEATURE_INT,
296 
297  TY_INT_LASER_POWER = 0x0500 | TY_FEATURE_INT,
298  TY_BOOL_LASER_AUTO_CTRL = 0x0501 | TY_FEATURE_BOOL,
299 
300  TY_BOOL_UNDISTORTION = 0x0510 | TY_FEATURE_BOOL,
301  TY_BOOL_BRIGHTNESS_HISTOGRAM = 0x0511 | TY_FEATURE_BOOL,
302  TY_BOOL_DEPTH_POSTPROC = 0x0512 | TY_FEATURE_BOOL,
303 
304  TY_INT_R_GAIN = 0x0520 | TY_FEATURE_INT,
305  TY_INT_G_GAIN = 0x0521 | TY_FEATURE_INT,
306  TY_INT_B_GAIN = 0x0522 | TY_FEATURE_INT,
307 
308  TY_INT_ANALOG_GAIN = 0x0524 | TY_FEATURE_INT,
309  TY_BOOL_HDR = 0x0525 | TY_FEATURE_BOOL,
310  TY_BYTEARRAY_HDR_PARAMETER = 0x0526 | TY_FEATURE_BYTEARRAY,
311 
312  TY_BOOL_IMU_DATA_ONOFF = 0x0600 | TY_FEATURE_BOOL,
313  TY_STRUCT_IMU_ACC_BIAS = 0x0601 | TY_FEATURE_STRUCT,
314  TY_STRUCT_IMU_ACC_MISALIGNMENT = 0x0602 | TY_FEATURE_STRUCT,
315  TY_STRUCT_IMU_ACC_SCALE = 0x0603 | TY_FEATURE_STRUCT,
316  TY_STRUCT_IMU_GYRO_BIAS = 0x0604 | TY_FEATURE_STRUCT,
317  TY_STRUCT_IMU_GYRO_MISALIGNMENT = 0x0605 | TY_FEATURE_STRUCT,
318  TY_STRUCT_IMU_GYRO_SCALE = 0x0606 | TY_FEATURE_STRUCT,
319  TY_STRUCT_IMU_CAM_TO_IMU = 0x0607 | TY_FEATURE_STRUCT,
320  TY_ENUM_IMU_FPS = 0x0608 | TY_FEATURE_ENUM,
321 
322  TY_INT_SGBM_IMAGE_NUM = 0x0610 | TY_FEATURE_INT,
323  TY_INT_SGBM_DISPARITY_NUM = 0x0611 | TY_FEATURE_INT,
324  TY_INT_SGBM_DISPARITY_OFFSET = 0x0612 | TY_FEATURE_INT,
325  TY_INT_SGBM_MATCH_WIN_HEIGHT = 0x0613 | TY_FEATURE_INT,
326  TY_INT_SGBM_SEMI_PARAM_P1 = 0x0614 | TY_FEATURE_INT,
327  TY_INT_SGBM_SEMI_PARAM_P2 = 0x0615 | TY_FEATURE_INT,
328  TY_INT_SGBM_UNIQUE_FACTOR = 0x0616 | TY_FEATURE_INT,
329  TY_INT_SGBM_UNIQUE_ABSDIFF = 0x0617 | TY_FEATURE_INT,
330  TY_INT_SGBM_COST_PARAM = 0x0618 | TY_FEATURE_INT,
331  TY_BOOL_SGBM_HFILTER_HALF_WIN = 0x0619 | TY_FEATURE_BOOL,
332  TY_INT_SGBM_MATCH_WIN_WIDTH = 0x061A | TY_FEATURE_INT,
333  TY_BOOL_SGBM_MEDFILTER = 0x061B | TY_FEATURE_BOOL,
334  TY_BOOL_SGBM_LRC = 0x061C | TY_FEATURE_BOOL,
335  TY_INT_SGBM_LRC_DIFF = 0x061D | TY_FEATURE_INT,
336  TY_INT_SGBM_MEDFILTER_THRESH = 0x061E | TY_FEATURE_INT,
337  TY_INT_SGBM_SEMI_PARAM_P1_SCALE = 0x061F | TY_FEATURE_INT,
338 
339  TY_ENUM_DEPTH_QUALITY = 0x0900 | TY_FEATURE_ENUM,
340  TY_INT_FILTER_THRESHOLD = 0x0901 | TY_FEATURE_INT,
341  TY_INT_TOF_CHANNEL = 0x0902 | TY_FEATURE_INT,
342  TY_INT_TOF_MODULATION_THRESHOLD = 0x0903 | TY_FEATURE_INT,
343  TY_STRUCT_TOF_FREQ = 0x0904 | TY_FEATURE_STRUCT,
344  TY_BOOL_TOF_ANTI_INTERFERENCE = 0x0905 | TY_FEATURE_BOOL,
346 typedef uint32_t TY_FEATURE_ID;
347 
348 typedef enum TY_DEPTH_QUALITY_LIST :uint32_t
349 {
350  TY_DEPTH_QUALITY_BASIC = 1,
351  TY_DEPTH_QUALITY_MEDIUM = 2,
352  TY_DEPTH_QUALITY_HIGH = 4,
353 }TY_DEPTH_QUALITY_LIST;
354 typedef uint32_t TY_DEPTH_QUALITY;
355 
357 typedef enum TY_TRIGGER_POL_LIST :uint32_t
358 {
359  TY_TRIGGER_POL_FALLINGEDGE = 0,
360  TY_TRIGGER_POL_RISINGEDGE = 1,
362 typedef uint32_t TY_TRIGGER_POL;
363 
366 typedef enum TY_INTERFACE_TYPE_LIST :uint32_t
367 {
368  TY_INTERFACE_UNKNOWN = 0,
369  TY_INTERFACE_RAW = 1,
370  TY_INTERFACE_USB = 2,
371  TY_INTERFACE_ETHERNET = 4,
372  TY_INTERFACE_IEEE80211 = 8,
373  TY_INTERFACE_ALL = 0xffff,
375 typedef uint32_t TY_INTERFACE_TYPE;
376 
379 typedef enum TY_ACCESS_MODE_LIST :uint32_t
380 {
381  TY_ACCESS_READABLE = 0x1,
382  TY_ACCESS_WRITABLE = 0x2,
384 typedef uint8_t TY_ACCESS_MODE;
385 
387 typedef enum TY_STREAM_ASYNC_MODE_LIST :uint32_t
388 {
389  TY_STREAM_ASYNC_OFF = 0,
390  TY_STREAM_ASYNC_DEPTH = 1,
391  TY_STREAM_ASYNC_RGB = 2,
392  TY_STREAM_ASYNC_DEPTH_RGB = 3,
393  TY_STREAM_ASYNC_ALL = 0xff,
395 typedef uint8_t TY_STREAM_ASYNC_MODE;
396 
397 //------------------------------------------------------------------------------
401 typedef enum TY_PIXEL_BITS_LIST :uint32_t {
402  TY_PIXEL_8BIT = 0x1 << 28,
403  TY_PIXEL_16BIT = 0x2 << 28,
404  TY_PIXEL_24BIT = 0x3 << 28,
405  TY_PIXEL_32BIT = 0x4 << 28,
406 
407  TY_PIXEL_10BIT = 0x5 << 28,
408  TY_PIXEL_12BIT = 0x6 << 28,
409  TY_PIXEL_14BIT = 0x7 << 28,
410 
411  TY_PIXEL_48BIT = (uint32_t)0x8 << 28,
412 
413  TY_PIXEL_64BIT = (uint32_t)0xa << 28,
415 typedef uint32_t TY_PIXEL_BITS;
416 
417 
419 typedef enum TY_PIXEL_FORMAT_LIST :uint32_t {
420  TY_PIXEL_FORMAT_UNDEFINED = 0,
421  TY_PIXEL_FORMAT_MONO = (TY_PIXEL_8BIT | (0x0 << 24)),
422 
423  TY_PIXEL_FORMAT_BAYER8GB = (TY_PIXEL_8BIT | (0x1 << 24)),
424  TY_PIXEL_FORMAT_BAYER8BG = (TY_PIXEL_8BIT | (0x2 << 24)),
425  TY_PIXEL_FORMAT_BAYER8GR = (TY_PIXEL_8BIT | (0x3 << 24)),
426  TY_PIXEL_FORMAT_BAYER8RG = (TY_PIXEL_8BIT | (0x4 << 24)),
427 
428  TY_PIXEL_FORMAT_BAYER8GRBG = TY_PIXEL_FORMAT_BAYER8GB,
429  TY_PIXEL_FORMAT_BAYER8RGGB = TY_PIXEL_FORMAT_BAYER8BG,
430  TY_PIXEL_FORMAT_BAYER8GBRG = TY_PIXEL_FORMAT_BAYER8GR,
431  TY_PIXEL_FORMAT_BAYER8BGGR = TY_PIXEL_FORMAT_BAYER8RG,
432 
433  TY_PIXEL_FORMAT_CSI_MONO10 = (TY_PIXEL_10BIT | (0x0 << 24)),
434  TY_PIXEL_FORMAT_CSI_BAYER10GRBG = (TY_PIXEL_10BIT | (0x1 << 24)),
435  TY_PIXEL_FORMAT_CSI_BAYER10RGGB = (TY_PIXEL_10BIT | (0x2 << 24)),
436  TY_PIXEL_FORMAT_CSI_BAYER10GBRG = (TY_PIXEL_10BIT | (0x3 << 24)),
437  TY_PIXEL_FORMAT_CSI_BAYER10BGGR = (TY_PIXEL_10BIT | (0x4 << 24)),
438 
439  TY_PIXEL_FORMAT_CSI_MONO12 = (TY_PIXEL_12BIT | (0x0 << 24)),
440  TY_PIXEL_FORMAT_CSI_BAYER12GRBG = (TY_PIXEL_12BIT | (0x1 << 24)),
441  TY_PIXEL_FORMAT_CSI_BAYER12RGGB = (TY_PIXEL_12BIT | (0x2 << 24)),
442  TY_PIXEL_FORMAT_CSI_BAYER12GBRG = (TY_PIXEL_12BIT | (0x3 << 24)),
443  TY_PIXEL_FORMAT_CSI_BAYER12BGGR = (TY_PIXEL_12BIT | (0x4 << 24)),
444 
445  TY_PIXEL_FORMAT_DEPTH16 = (TY_PIXEL_16BIT | (0x0 << 24)),
446  TY_PIXEL_FORMAT_YVYU = (TY_PIXEL_16BIT | (0x1 << 24)),
447  TY_PIXEL_FORMAT_YUYV = (TY_PIXEL_16BIT | (0x2 << 24)),
448  TY_PIXEL_FORMAT_MONO16 = (TY_PIXEL_16BIT | (0x3 << 24)),
449  TY_PIXEL_FORMAT_TOF_IR_MONO16 = (TY_PIXEL_64BIT | (0x4 << 24)),
450 
451  TY_PIXEL_FORMAT_RGB = (TY_PIXEL_24BIT | (0x0 << 24)),
452  TY_PIXEL_FORMAT_BGR = (TY_PIXEL_24BIT | (0x1 << 24)),
453  TY_PIXEL_FORMAT_JPEG = (TY_PIXEL_24BIT | (0x2 << 24)),
454  TY_PIXEL_FORMAT_MJPG = (TY_PIXEL_24BIT | (0x3 << 24)),
455 
456  TY_PIXEL_FORMAT_RGB48 = (TY_PIXEL_48BIT | (0x0 << 24)),
457  TY_PIXEL_FORMAT_BGR48 = (TY_PIXEL_48BIT | (0x1 << 24)),
458  TY_PIXEL_FORMAT_XYZ48 = (TY_PIXEL_48BIT | (0x2 << 24)),
460 typedef uint32_t TY_PIXEL_FORMAT;
461 
463 typedef enum TY_RESOLUTION_MODE_LIST :uint32_t
464 {
465  TY_RESOLUTION_MODE_160x100 = (160<<12)+100,
466  TY_RESOLUTION_MODE_160x120 = (160<<12)+120,
467  TY_RESOLUTION_MODE_240x320 = (240<<12)+320,
468  TY_RESOLUTION_MODE_320x180 = (320<<12)+180,
469  TY_RESOLUTION_MODE_320x200 = (320<<12)+200,
470  TY_RESOLUTION_MODE_320x240 = (320<<12)+240,
471  TY_RESOLUTION_MODE_480x640 = (480<<12)+640,
472  TY_RESOLUTION_MODE_640x360 = (640<<12)+360,
473  TY_RESOLUTION_MODE_640x400 = (640<<12)+400,
474  TY_RESOLUTION_MODE_640x480 = (640<<12)+480,
475  TY_RESOLUTION_MODE_960x1280 = (960<<12)+1280,
476  TY_RESOLUTION_MODE_1280x720 = (1280<<12)+720,
477  TY_RESOLUTION_MODE_1280x800 = (1280<<12)+800,
478  TY_RESOLUTION_MODE_1280x960 = (1280<<12)+960,
479  TY_RESOLUTION_MODE_1920x1080 = (1920<<12)+1080,
480  TY_RESOLUTION_MODE_2560x1920 = (2560<<12)+1920,
481  TY_RESOLUTION_MODE_2592x1944 = (2592<<12)+1944,
482  TY_RESOLUTION_MODE_1920x1440 = (1920<<12)+1440,
483  TY_RESOLUTION_MODE_240x96 = (240<<12)+96,
485 typedef int32_t TY_RESOLUTION_MODE;
486 
487 
488 #define TY_DECLARE_IMAGE_MODE0(pix, res) \
489  TY_IMAGE_MODE_##pix##_##res = TY_PIXEL_FORMAT_##pix | TY_RESOLUTION_MODE_##res
490 #define TY_DECLARE_IMAGE_MODE1(pix) \
491  TY_DECLARE_IMAGE_MODE0(pix, 160x100), \
492  TY_DECLARE_IMAGE_MODE0(pix, 160x120), \
493  TY_DECLARE_IMAGE_MODE0(pix, 320x180), \
494  TY_DECLARE_IMAGE_MODE0(pix, 320x200), \
495  TY_DECLARE_IMAGE_MODE0(pix, 320x240), \
496  TY_DECLARE_IMAGE_MODE0(pix, 480x640), \
497  TY_DECLARE_IMAGE_MODE0(pix, 640x360), \
498  TY_DECLARE_IMAGE_MODE0(pix, 640x400), \
499  TY_DECLARE_IMAGE_MODE0(pix, 640x480), \
500  TY_DECLARE_IMAGE_MODE0(pix, 960x1280), \
501  TY_DECLARE_IMAGE_MODE0(pix, 1280x720), \
502  TY_DECLARE_IMAGE_MODE0(pix, 1280x960), \
503  TY_DECLARE_IMAGE_MODE0(pix, 1280x800), \
504  TY_DECLARE_IMAGE_MODE0(pix, 1920x1080), \
505  TY_DECLARE_IMAGE_MODE0(pix, 2560x1920), \
506  TY_DECLARE_IMAGE_MODE0(pix, 2592x1944), \
507  TY_DECLARE_IMAGE_MODE0(pix, 1920x1440), \
508  TY_DECLARE_IMAGE_MODE0(pix, 240x96)
509 
510 
514 typedef enum TY_IMAGE_MODE_LIST:uint32_t
515 {
516  TY_DECLARE_IMAGE_MODE1(MONO),
517  TY_DECLARE_IMAGE_MODE1(MONO16),
518  TY_DECLARE_IMAGE_MODE1(TOF_IR_MONO16),
519  TY_DECLARE_IMAGE_MODE1(DEPTH16),
520  TY_DECLARE_IMAGE_MODE1(YVYU),
521  TY_DECLARE_IMAGE_MODE1(YUYV),
522  TY_DECLARE_IMAGE_MODE1(RGB),
523  TY_DECLARE_IMAGE_MODE1(JPEG),
524 
525  TY_DECLARE_IMAGE_MODE1(BAYER8GB),
526  TY_DECLARE_IMAGE_MODE1(BAYER8BG),
527  TY_DECLARE_IMAGE_MODE1(BAYER8GR),
528  TY_DECLARE_IMAGE_MODE1(BAYER8RG),
529 
530  TY_DECLARE_IMAGE_MODE1(BAYER8GRBG),
531  TY_DECLARE_IMAGE_MODE1(BAYER8RGGB),
532  TY_DECLARE_IMAGE_MODE1(BAYER8GBRG),
533  TY_DECLARE_IMAGE_MODE1(BAYER8BGGR),
534 
535  TY_DECLARE_IMAGE_MODE1(CSI_MONO10),
536  TY_DECLARE_IMAGE_MODE1(CSI_BAYER10GRBG),
537  TY_DECLARE_IMAGE_MODE1(CSI_BAYER10RGGB),
538  TY_DECLARE_IMAGE_MODE1(CSI_BAYER10GBRG),
539  TY_DECLARE_IMAGE_MODE1(CSI_BAYER10BGGR),
540 
541  TY_DECLARE_IMAGE_MODE1(CSI_MONO12),
542  TY_DECLARE_IMAGE_MODE1(CSI_BAYER12GRBG),
543  TY_DECLARE_IMAGE_MODE1(CSI_BAYER12RGGB),
544  TY_DECLARE_IMAGE_MODE1(CSI_BAYER12GBRG),
545  TY_DECLARE_IMAGE_MODE1(CSI_BAYER12BGGR),
546 
547  TY_DECLARE_IMAGE_MODE1(MJPG),
548  TY_DECLARE_IMAGE_MODE1(RGB48),
549  TY_DECLARE_IMAGE_MODE1(BGR48),
550  TY_DECLARE_IMAGE_MODE1(BGR),
551  TY_DECLARE_IMAGE_MODE1(XYZ48)
553 typedef uint32_t TY_IMAGE_MODE;
554 #undef TY_DECLARE_IMAGE_MODE0
555 #undef TY_DECLARE_IMAGE_MODE1
556 
558 typedef enum TY_TRIGGER_MODE_LIST :uint32_t
559 {
564  TY_TRIGGER_MODE_SIG_PASS = 18,
565  TY_TRIGGER_MODE_PER_PASS = 19,
566  TY_TRIGGER_MODE_TIMER_LIST = 20,
567  TY_TRIGGER_MODE_TIMER_PERIOD= 21,
569  TY_TRIGGER_WORK_MODE31 = 31,
570  TY_TRIGGER_MODE_SIG_LASER = 34,
572 typedef int16_t TY_TRIGGER_MODE;
573 
575 typedef enum TY_TIME_SYNC_TYPE_LIST :uint32_t
576 {
577  TY_TIME_SYNC_TYPE_NONE = 0,
578  TY_TIME_SYNC_TYPE_HOST = 1,
579  TY_TIME_SYNC_TYPE_NTP = 2,
580  TY_TIME_SYNC_TYPE_PTP = 3,
581  TY_TIME_SYNC_TYPE_CAN = 4,
582  TY_TIME_SYNC_TYPE_PTP_MASTER = 5,
584 typedef uint32_t TY_TIME_SYNC_TYPE;
585 
586 typedef enum: uint32_t{
587  /* depends on external power supply */
588  TY_EXT_SUP = 0,
589  TY_DO_5V = 1,
590  TY_DO_12V = 2,
591 } TY_E_VOLT_T_LIST;
592 typedef uint32_t TY_E_VOLT_T;
593 
594 typedef enum: uint32_t{
595  TY_DO_LOW = 0,
596  TY_DO_HIGH = 1,
597  TY_DO_PWM = 2,
598  TY_DO_CAM_TRIG = 3,
599 }TY_E_DO_MODE_LIST;
600 typedef uint32_t TY_E_DO_MODE;
601 
602 typedef enum: uint32_t{
603  /* DI polling by user, No interrupt */
604  TY_DI_POLL = 0,
605  /* DI negative edge interrupt mode */
606  TY_DI_NE_INT = 1,
607  /* DI positive edge inerrupt mode */
608  TY_DI_PE_INT = 2,
609 }TY_E_DI_MODE_LIST;
610 typedef uint32_t TY_E_DI_MODE;
611 
612 typedef enum: uint32_t {
613  /* DI interrupt No op*/
614  TY_DI_INT_NO_OP = 0,
615  /* DI interrupt trig a capture action */
616  TY_DI_INT_TRIG_CAP = 1,
617  /* DI interrupt report a event to SDK */
618  TY_DI_INT_EVENT = 2,
619 }TY_E_DI_INT_ACTION_LIST;
620 typedef uint32_t TY_E_DI_INT_ACTION;
621 
622 #pragma pack(1)
623 
624 //------------------------------------------------------------------------------
625 // Struct
626 //------------------------------------------------------------------------------
627 typedef struct TY_VERSION_INFO
628 {
629  int32_t major;
630  int32_t minor;
631  int32_t patch;
632  int32_t reserved;
634 
636 typedef struct TY_DEVICE_NET_INFO
637 {
638  char mac[32];
639  char ip[32];
640  char netmask[32];
641  char gateway[32];
642  char broadcast[32];
643  char reserved[96];
645 
646 typedef struct TY_DEVICE_USB_INFO
647 {
648  int bus;
649  int addr;
650  char reserved[248];
652 
654 typedef struct TY_INTERFACE_INFO
655 {
656  char name[32];
657  char id[32];
658  TY_INTERFACE_TYPE type;
659  char reserved[4];
660  TY_DEVICE_NET_INFO netInfo; // only meaningful when TYIsNetworkInterface(type)
662 
664 typedef struct TY_DEVICE_BASE_INFO
665 {
666  TY_INTERFACE_INFO iface;
667  char id[32];
668  char vendorName[32];
669  char userDefinedName[32];
670  char modelName[32];
673  union {
674  TY_DEVICE_NET_INFO netInfo;
675  TY_DEVICE_USB_INFO usbInfo;
676  };
677  char buildHash[256];
678  char configVersion[256];
679  char reserved[256];
681 
682 typedef struct TY_FEATURE_INFO
683 {
684  bool isValid;
685  TY_ACCESS_MODE accessMode;
687  char reserved0[1];
690  char name[32];
693  char reserved[252];
695 
696 typedef struct TY_INT_RANGE
697 {
698  int32_t min;
699  int32_t max;
700  int32_t inc;
701  int32_t reserved[1];
702 }TY_INT_RANGE;
703 
706 typedef struct TY_FLOAT_RANGE
707 {
708  float min;
709  float max;
710  float inc;
711  float reserved[1];
713 
716 typedef struct TY_BYTEARRAY_ATTR
717 {
718  int32_t size;
719  int32_t unit_size;
720  int32_t valid_size;
724 
727 typedef struct TY_ENUM_ENTRY
728 {
729  char description[64];
730  uint32_t value;
731  uint32_t reserved[3];
733 
734 typedef struct TY_VECT_3F
735 {
736  float x;
737  float y;
738  float z;
739 }TY_VECT_3F;
740 
753 typedef struct TY_CAMERA_INTRINSIC
754 {
755  float data[3*3];
757 
771 typedef struct TY_CAMERA_EXTRINSIC
772 {
773  float data[4*4];
775 
783 typedef struct TY_CAMERA_DISTORTION
784 {
785  float data[12];
787 
788 
791 typedef struct TY_CAMERA_CALIB_INFO
792 {
793  int32_t intrinsicWidth;
794  int32_t intrinsicHeight;
795  TY_CAMERA_INTRINSIC intrinsic; // TY_STRUCT_CAM_INTRINSIC
796  TY_CAMERA_EXTRINSIC extrinsic; // TY_STRUCT_EXTRINSIC_TO_LEFT_IR
797  TY_CAMERA_DISTORTION distortion; // TY_STRUCT_CAM_DISTORTION
799 
800 
801 //@see sample SimpleView_TriggerMode
802 typedef struct TY_TRIGGER_PARAM
803 {
804  TY_TRIGGER_MODE mode;
805  int8_t fps;
806  int8_t rsvd;
808 
809 //@see sample SimpleView_TriggerMode, only for TY_TRIGGER_MODE_SIG_PASS/TY_TRIGGER_MODE_PER_PASS
810 typedef struct TY_TRIGGER_PARAM_EX
811 {
812  TY_TRIGGER_MODE mode;
813  union
814  {
815  struct
816  {
817  int8_t fps;
818  int8_t duty;
819  int32_t laser_stream;
820  int32_t led_stream;
821  int32_t led_expo;
822  int32_t led_gain;
823  };
824  struct
825  {
826  int32_t ir_gain[2];
827  };
828  int32_t rsvd[32];
829  };
831 
832 //@see sample SimpleView_TriggerMode, only for TY_TRIGGER_MODE_TIMER_LIST
833 typedef struct TY_TRIGGER_TIMER_LIST
834 {
835  uint64_t start_time_us; // 0 for disable
836  uint32_t offset_us_count; // length of offset_us_list
837  uint32_t offset_us_list[50]; // used in TY_TRIGGER_MODE_TIMER_LIST mode
839 
840 //@see sample SimpleView_TriggerMode, only for TY_TRIGGER_MODE_TIMER_PERIOD
842 {
843  uint64_t start_time_us; // 0 for disable
844  uint32_t trigger_count;
845  uint32_t period_us; // used in TY_TRIGGER_MODE_TIMER_PERIOD mode
847 
848 typedef struct TY_AEC_ROI_PARAM
849 {
850  uint32_t x;
851  uint32_t y;
852  uint32_t w;
853  uint32_t h;
855 
856 typedef struct TY_CAMERA_STATISTICS
857 {
858  uint64_t packetReceived;
859  uint64_t packetLost;
860  uint64_t imageOutputed;
861  uint64_t imageDropped;
862  uint8_t rsvd[1024];
864 
865 typedef struct TY_IMU_DATA
866 {
867  uint64_t timestamp;
868  float acc_x;
869  float acc_y;
870  float acc_z;
871  float gyro_x;
872  float gyro_y;
873  float gyro_z;
874  float temperature;
875  float reserved[1];
876 }TY_IMU_DATA;
877 
882 typedef struct TY_ACC_BIAS
883 {
884  float data[3];
885 }TY_ACC_BIAS;
886 
894 typedef struct TY_ACC_MISALIGNMENT
895 {
896  float data[3 * 3];
898 
905 typedef struct TY_ACC_SCALE
906 {
907  float data[3 * 3];
908 }TY_ACC_SCALE;
909 
914 typedef struct TY_GYRO_BIAS
915 {
916  float data[3];
917 }TY_GYRO_BIAS;
918 
925 typedef struct TY_GYRO_MISALIGNMENT
926 {
927  float data[3 * 3];
929 
936 typedef struct TY_GYRO_SCALE
937 {
938  float data[3 * 3];
940 
948 typedef struct TY_CAMERA_TO_IMU
949 {
950  float data[4 * 4];
952 
953 typedef struct TY_TOF_FREQ
954 {
955  uint32_t freq1;
956  uint32_t freq2;
957 }TY_TOF_FREQ;
958 
959 typedef enum TY_IMU_FPS_LIST
960 {
961  TY_IMU_FPS_100HZ = 0,
962  TY_IMU_FPS_200HZ,
963  TY_IMU_FPS_400HZ,
964 }TY_IMU_FPS_LIST;
965 
966 //------------------------------------------------------------------------------
967 // Buffer & Callback
968 //------------------------------------------------------------------------------
969 typedef struct TY_IMAGE_DATA
970 {
971  uint64_t timestamp;
972  int32_t imageIndex;
973  int32_t status;
974  int32_t componentID;
975  int32_t size;
976  void* buffer;
977  int32_t width;
978  int32_t height;
979  int32_t pixelFormat;
980  int32_t reserved[9];
982 
983 
984 typedef struct TY_FRAME_DATA
985 {
986  void* userBuffer;
987  int32_t bufferSize;
988  int32_t validCount;
989  int32_t reserved[6];
990  TY_IMAGE_DATA image[10];
992 
993 
994 typedef struct TY_EVENT_INFO
995 {
996  TY_EVENT eventId;
997  char message[124];
999 
1000 typedef struct TY_DO_WORKMODE {
1001  /* TY_E_DO_MODE type of workmode */
1002  TY_E_DO_MODE mode;
1003  /* TY_E_VOLT_T type, voltage to output */
1004  TY_E_VOLT_T volt;
1005  /*
1006  * frequency of PWM, Only valid when mode == PWM
1007  * unit is Hz, Range is 1~1000
1008  */
1009  uint32_t freq;
1010  /*
1011  * duty of PWM, Only valid when mode == PWM
1012  * unit is %, Range is 1~100
1013  */
1014  uint32_t duty;
1015  /*
1016  * Only valid in read op, write no effect
1017  */
1018  uint32_t mode_supported;
1019  uint32_t volt_supported;
1020  uint32_t reserved[3];
1022 
1023 typedef struct TY_DI_WORKMODE {
1024  /* DI workmode in type of TY_E_DI_MODE */
1025  TY_E_DI_MODE mode;
1026  /* interrupt action, valid when mode in TY_DI_NE_INT TY_DI_PE_INT */
1027  TY_E_DI_INT_ACTION int_act;
1028  /* supported mode, Only valid when read */
1029  uint32_t mode_supported;
1030  /* supported action in int mode, Only valid when read */
1031  uint32_t int_act_supported;
1032  /* DI status, 0 low, 1 high, Only read back, can not write */
1033  uint32_t status;
1034  uint32_t reserved[3];
1035 } TY_DI_WORKMODE;
1036 
1037 #pragma pack()
1038 
1039 typedef void (*TY_EVENT_CALLBACK) (TY_EVENT_INFO*, void* userdata);
1040 typedef void (*TY_IMU_CALLBACK) (TY_IMU_DATA*, void* userdata);
1041 
1042 
1043 //------------------------------------------------------------------------------
1044 // inlines
1045 //------------------------------------------------------------------------------
1046 static inline bool TYIsNetworkInterface(int32_t interfaceType)
1047 {
1048  return (interfaceType == TY_INTERFACE_ETHERNET) ||
1049  (interfaceType == TY_INTERFACE_IEEE80211);
1050 }
1051 
1052 static inline void TYIntToIPv4(uint32_t addr, uint8_t out[4])
1053 {
1054  out[0] = (addr>>24) & 0xff;
1055  out[1] = (addr>>16) & 0xff;
1056  out[2] = (addr>>8) & 0xff;
1057  out[3] = (addr>>0) & 0xff;
1058 }
1059 
1060 static inline uint32_t TYIPv4ToInt(uint8_t ip[4])
1061 {
1062  return (ip[0] << 24) | (ip[1] << 16) | (ip[2] << 8) | ip[3];
1063 }
1064 
1066 static inline TY_IMAGE_DATA TYInitImageData(size_t size, void* buffer
1067  , size_t width, size_t height)
1068 {
1069  TY_IMAGE_DATA out;
1070  out.timestamp = 0;
1071  out.imageIndex = 0;
1072  out.status = 0;
1073  out.componentID = 0;
1074  out.size = size;
1075  out.buffer = buffer;
1076  out.width = width;
1077  out.height = height;
1078  out.pixelFormat = 0;
1079  return out;
1080 }
1081 
1083 static inline TY_FEATURE_TYPE TYFeatureType(TY_FEATURE_ID id)
1084 {
1085  return id & 0xf000;
1086 }
1087 
1089 static inline int32_t TYPixelSize(TY_IMAGE_MODE imageMode)
1090 {
1091  return ((imageMode >> 28) & 0xf);
1092 }
1093 
1095 static inline int32_t TYBitsPerPixel(TY_IMAGE_MODE imageMode)
1096 {
1097  TY_PIXEL_BITS bits = imageMode & (0xf << 28);
1098  switch(bits){
1099  case TY_PIXEL_16BIT:
1100  return 16;
1101  case TY_PIXEL_24BIT:
1102  return 24;
1103  case TY_PIXEL_32BIT:
1104  return 32;
1105  case TY_PIXEL_48BIT:
1106  return 48;
1107  case TY_PIXEL_64BIT:
1108  return 64;
1109  case TY_PIXEL_10BIT:
1110  return 10;
1111  case TY_PIXEL_12BIT:
1112  return 12;
1113  case TY_PIXEL_8BIT:
1114  default:
1115  return 8;
1116  }
1117 }
1118 
1120 static inline int32_t TYPixelLineSize(int width, TY_IMAGE_MODE imageMode)
1121 {
1122  return (width * TYBitsPerPixel(imageMode)) >> 3;
1123 }
1124 
1126 static inline TY_IMAGE_MODE TYImageMode(TY_PIXEL_FORMAT pix, TY_RESOLUTION_MODE res)
1127 {
1128  return pix | res;
1129 }
1130 
1132 static inline TY_RESOLUTION_MODE TYResolutionMode2(int width, int height){
1133  return (TY_RESOLUTION_MODE)((width << 12) + height);
1134 }
1135 
1137 static inline TY_IMAGE_MODE TYImageMode2(TY_PIXEL_FORMAT pix, int width,int height)
1138 {
1139  return pix | TYResolutionMode2(width, height);
1140 }
1141 
1143 static inline TY_PIXEL_FORMAT TYPixelFormat(TY_IMAGE_MODE imageMode)
1144 {
1145  return imageMode & 0xff000000;
1146 }
1147 
1149 static inline TY_RESOLUTION_MODE TYResolutionMode(TY_IMAGE_MODE imageMode)
1150 {
1151  return imageMode & 0x00ffffff;
1152 }
1153 
1155 static inline int32_t TYImageWidth(TY_IMAGE_MODE imageMode)
1156 {
1157  return TYResolutionMode(imageMode) >> 12;
1158 }
1159 
1161 static inline int32_t TYImageHeight(TY_IMAGE_MODE imageMode)
1162 {
1163  return TYResolutionMode(imageMode) & 0x0fff;
1164 }
1165 
1166 //------------------------------------------------------------------------------
1167 // C API
1168 //------------------------------------------------------------------------------
1169 #define TY_CAPI TY_EXTC TY_EXPORT TY_STATUS TY_STDC
1170 
1171 
1175 TY_EXTC TY_EXPORT const char* TY_STDC TYErrorString (TY_STATUS errorID);
1176 
1177 
1186 static inline TY_STATUS TYInitLib (void);
1187 
1190 TY_CAPI TYDeinitLib (void);
1191 
1196 TY_CAPI TYLibVersion (TY_VERSION_INFO* version);
1197 
1198 
1203 TY_CAPI TYUpdateInterfaceList ();
1204 
1210 TY_CAPI TYGetInterfaceNumber (uint32_t* pNumIfaces);
1211 
1219 TY_CAPI TYGetInterfaceList (TY_INTERFACE_INFO* pIfaceInfos, uint32_t bufferCount, uint32_t* filledCount);
1220 
1228 TY_CAPI TYHasInterface (const char* ifaceID, bool* value);
1229 
1238 TY_CAPI TYOpenInterface (const char* ifaceID, TY_INTERFACE_HANDLE* outHandle);
1239 
1245 TY_CAPI TYCloseInterface (TY_INTERFACE_HANDLE ifaceHandle);
1246 
1247 
1253 TY_CAPI TYUpdateDeviceList (TY_INTERFACE_HANDLE ifaceHandle);
1254 
1258 TY_CAPI TYUpdateAllDeviceList();
1259 
1267 TY_CAPI TYGetDeviceNumber (TY_INTERFACE_HANDLE ifaceHandle, uint32_t* deviceNumber);
1268 
1278 TY_CAPI TYGetDeviceList (TY_INTERFACE_HANDLE ifaceHandle, TY_DEVICE_BASE_INFO* deviceInfos, uint32_t bufferCount, uint32_t* filledDeviceCount);
1279 
1288 TY_CAPI TYHasDevice (TY_INTERFACE_HANDLE ifaceHandle, const char* deviceID, bool* value);
1289 
1302 TY_CAPI TYOpenDevice (TY_INTERFACE_HANDLE ifaceHandle, const char* deviceID, TY_DEV_HANDLE* outDeviceHandle, TY_FW_ERRORCODE* outFwErrorcode=NULL);
1303 
1315 TY_CAPI TYOpenDeviceWithIP (TY_INTERFACE_HANDLE ifaceHandle, const char* IP, TY_DEV_HANDLE* deviceHandle);
1316 
1323 TY_CAPI TYGetDeviceInterface (TY_DEV_HANDLE hDevice, TY_INTERFACE_HANDLE* pIface);
1324 
1339 TY_CAPI TYForceDeviceIP (TY_INTERFACE_HANDLE ifaceHandle, const char* MAC, const char* newIP, const char* newNetMask, const char* newGateway);
1340 
1346 TY_CAPI TYCloseDevice (TY_DEV_HANDLE hDevice, bool reboot=false);
1347 
1348 
1355 TY_CAPI TYGetDeviceInfo (TY_DEV_HANDLE hDevice, TY_DEVICE_BASE_INFO* info);
1356 
1364 TY_CAPI TYGetComponentIDs (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID* componentIDs);
1365 
1373 TY_CAPI TYGetEnabledComponents (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID* componentIDs);
1374 
1382 TY_CAPI TYEnableComponents (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentIDs);
1383 
1392 TY_CAPI TYDisableComponents (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentIDs);
1393 
1394 
1395 
1402 TY_CAPI TYGetFrameBufferSize (TY_DEV_HANDLE hDevice, uint32_t* bufferSize);
1403 
1412 TY_CAPI TYEnqueueBuffer (TY_DEV_HANDLE hDevice, void* buffer, uint32_t bufferSize);
1413 
1419 TY_CAPI TYClearBufferQueue (TY_DEV_HANDLE hDevice);
1420 
1421 
1422 
1430 TY_CAPI TYStartCapture (TY_DEV_HANDLE hDevice);
1431 
1438 TY_CAPI TYStopCapture (TY_DEV_HANDLE hDevice);
1439 
1447 TY_CAPI TYSendSoftTrigger (TY_DEV_HANDLE hDevice);
1448 
1456 TY_CAPI TYRegisterEventCallback (TY_DEV_HANDLE hDevice, TY_EVENT_CALLBACK callback, void* userdata);
1457 
1465 TY_CAPI TYRegisterImuCallback (TY_DEV_HANDLE hDevice, TY_IMU_CALLBACK callback, void* userdata);
1466 
1477 TY_CAPI TYFetchFrame (TY_DEV_HANDLE hDevice, TY_FRAME_DATA* frame, int32_t timeout);
1478 
1479 
1489 TY_CAPI TYHasFeature (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, bool* value);
1490 
1500 TY_CAPI TYGetFeatureInfo (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_FEATURE_INFO* featureInfo);
1501 
1502 
1503 
1515 TY_CAPI TYGetIntRange (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_INT_RANGE* intRange);
1516 
1528 TY_CAPI TYGetInt (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, int32_t* value);
1529 
1543 TY_CAPI TYSetInt (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, int32_t value);
1544 
1556 TY_CAPI TYGetFloatRange (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_FLOAT_RANGE* floatRange);
1557 
1569 TY_CAPI TYGetFloat (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, float* value);
1570 
1584 TY_CAPI TYSetFloat (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, float value);
1585 
1597 TY_CAPI TYGetEnumEntryCount (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t* entryCount);
1598 
1612 TY_CAPI TYGetEnumEntryInfo (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_ENUM_ENTRY* entries, uint32_t entryCount, uint32_t* filledEntryCount);
1613 
1625 TY_CAPI TYGetEnum (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t* value);
1626 
1640 TY_CAPI TYSetEnum (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t value);
1641 
1653 TY_CAPI TYGetBool (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, bool* value);
1654 
1667 TY_CAPI TYSetBool (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, bool value);
1668 
1681 TY_CAPI TYGetStringLength (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t* size);
1682 
1696 TY_CAPI TYGetString (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, char* buffer, uint32_t bufferSize);
1697 
1712 TY_CAPI TYSetString (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, const char* buffer);
1713 
1727 TY_CAPI TYGetStruct (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, void* pStruct, uint32_t structSize);
1728 
1744 TY_CAPI TYSetStruct (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, void* pStruct, uint32_t structSize);
1745 
1757 TY_CAPI TYGetByteArraySize (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t* pSize);
1758 
1759 
1760 
1769 TY_CAPI TYGetDeviceFeatureNumber (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, uint32_t* size);
1770 
1781 TY_CAPI TYGetDeviceFeatureInfo (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID
1782  , TY_FEATURE_INFO* featureInfo, uint32_t entryCount, uint32_t* filledEntryCount);
1783 
1784 
1798 TY_CAPI TYGetByteArray (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint8_t* pBuffer, uint32_t bufferSize);
1799 
1815 TY_CAPI TYSetByteArray (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, const uint8_t* pBuffer, uint32_t bufferSize);
1816 
1829 
1830 TY_CAPI TYGetByteArrayAttr (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_BYTEARRAY_ATTR* pAttr);
1831 //------------------------------------------------------------------------------
1832 // Version check
1833 //------------------------------------------------------------------------------
1834 TY_CAPI _TYInitLib(void);
1835 static inline TY_STATUS TYInitLib(void)
1836 {
1837  TY_VERSION_INFO soVersion;
1838  TYLibVersion(&soVersion);
1839  if(!(soVersion.major == TY_LIB_VERSION_MAJOR && soVersion.minor >= TY_LIB_VERSION_MINOR)){
1840  abort(); // generate fault directly
1841  }
1842  return _TYInitLib();
1843 }
1844 
1845 //------------------------------------------------------------------------------
1846 // Summary
1847 //------------------------------------------------------------------------------
1848 TY_EXTC TY_EXPORT const char* TY_STDC TYErrorString (TY_STATUS errorID);
1849 
1850 inline TY_STATUS TYInitLib (void);
1851 TY_CAPI TYDeinitLib (void);
1852 TY_CAPI TYLibVersion (TY_VERSION_INFO* version);
1853 
1854 TY_CAPI TYUpdateInterfaceList ();
1855 TY_CAPI TYGetInterfaceNumber (uint32_t* pNumIfaces);
1856 TY_CAPI TYGetInterfaceList (TY_INTERFACE_INFO* pIfaceInfos, uint32_t bufferCount, uint32_t* filledCount);
1857 TY_CAPI TYHasInterface (const char* ifaceID, bool* value);
1858 TY_CAPI TYOpenInterface (const char* ifaceID, TY_INTERFACE_HANDLE* outHandle);
1859 TY_CAPI TYCloseInterface (TY_INTERFACE_HANDLE ifaceHandle);
1860 
1861 TY_CAPI TYUpdateDeviceList (TY_INTERFACE_HANDLE ifaceHandle);
1862 TY_CAPI TYGetDeviceNumber (TY_INTERFACE_HANDLE ifaceHandle, uint32_t* deviceNumber);
1863 TY_CAPI TYGetDeviceList (TY_INTERFACE_HANDLE ifaceHandle, TY_DEVICE_BASE_INFO* deviceInfos, uint32_t bufferCount, uint32_t* filledDeviceCount);
1864 TY_CAPI TYHasDevice (TY_INTERFACE_HANDLE ifaceHandle, const char* deviceID, bool* value);
1865 TY_CAPI TYOpenDevice (TY_INTERFACE_HANDLE ifaceHandle, const char* deviceID, TY_DEV_HANDLE* outDeviceHandle, TY_FW_ERRORCODE* outFwErrorcode);
1866 TY_CAPI TYOpenDeviceWithIP (TY_INTERFACE_HANDLE ifaceHandle, const char* IP, TY_DEV_HANDLE* deviceHandle);
1867 TY_CAPI TYGetDeviceInterface (TY_DEV_HANDLE hDevice, TY_INTERFACE_HANDLE* pIface);
1868 TY_CAPI TYForceDeviceIP (TY_INTERFACE_HANDLE ifaceHandle, const char* MAC, const char* newIP, const char* newNetMask, const char* newGateway);
1869 TY_CAPI TYCloseDevice (TY_DEV_HANDLE hDevice, bool reboot);
1870 
1871 TY_CAPI TYGetDeviceInfo (TY_DEV_HANDLE hDevice, TY_DEVICE_BASE_INFO* info);
1872 TY_CAPI TYGetComponentIDs (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID* componentIDs);
1873 TY_CAPI TYGetEnabledComponents (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID* componentIDs);
1874 TY_CAPI TYEnableComponents (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentIDs);
1875 TY_CAPI TYDisableComponents (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentIDs);
1876 
1877 TY_CAPI TYGetFrameBufferSize (TY_DEV_HANDLE hDevice, uint32_t* outSize);
1878 TY_CAPI TYEnqueueBuffer (TY_DEV_HANDLE hDevice, void* buffer, uint32_t bufferSize);
1879 TY_CAPI TYClearBufferQueue (TY_DEV_HANDLE hDevice);
1880 
1881 TY_CAPI TYStartCapture (TY_DEV_HANDLE hDevice);
1882 TY_CAPI TYStopCapture (TY_DEV_HANDLE hDevice);
1883 TY_CAPI TYSendSoftTrigger (TY_DEV_HANDLE hDevice);
1884 TY_CAPI TYRegisterEventCallback (TY_DEV_HANDLE hDevice, TY_EVENT_CALLBACK callback, void* userdata);
1885 TY_CAPI TYRegisterImuCallback (TY_DEV_HANDLE hDevice, TY_IMU_CALLBACK callback, void* userdata);
1886 TY_CAPI TYFetchFrame (TY_DEV_HANDLE hDevice, TY_FRAME_DATA* frame, int32_t timeout);
1887 
1888 TY_CAPI TYHasFeature (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, bool* value);
1889 TY_CAPI TYGetFeatureInfo (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_FEATURE_INFO* featureInfo);
1890 TY_CAPI TYGetIntRange (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_INT_RANGE* intRange);
1891 TY_CAPI TYGetInt (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, int32_t* value);
1892 TY_CAPI TYSetInt (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, int32_t value);
1893 TY_CAPI TYGetFloatRange (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_FLOAT_RANGE* floatRange);
1894 TY_CAPI TYGetFloat (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, float* value);
1895 TY_CAPI TYSetFloat (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, float value);
1896 TY_CAPI TYGetEnumEntryCount (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t* entryCount);
1897 TY_CAPI TYGetEnumEntryInfo (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_ENUM_ENTRY* entries, uint32_t entryCount, uint32_t* filledEntryCount);
1898 TY_CAPI TYGetEnum (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t* value);
1899 TY_CAPI TYSetEnum (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t value);
1900 TY_CAPI TYGetBool (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, bool* value);
1901 TY_CAPI TYSetBool (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, bool value);
1902 TY_CAPI TYGetStringLength (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t* length);
1903 TY_CAPI TYGetString (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, char* buffer, uint32_t bufferSize);
1904 TY_CAPI TYSetString (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, const char* buffer);
1905 TY_CAPI TYGetStruct (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, void* pStruct, uint32_t structSize);
1906 TY_CAPI TYSetStruct (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, void* pStruct, uint32_t structSize);
1907 TY_CAPI TYGetByteArraySize (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t* pSize);
1908 TY_CAPI TYGetByteArray (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint8_t* pBuffer, uint32_t bufferSize);
1909 TY_CAPI TYSetByteArray (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, const uint8_t* pBuffer, uint32_t bufferSize);
1910 TY_CAPI TYGetByteArrayAttr (TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_BYTEARRAY_ATTR* pAttr);
1911 
1912 
1913 #endif // TY_API_H_
TY_CAPI TYSetBool(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, bool value)
Set value of bool feature.
int32_t unit_size
Definition: TYApi.h:719
Right IR camera.
Definition: TYApi.h:198
TY_CAPI TYHasDevice(TY_INTERFACE_HANDLE ifaceHandle, const char *deviceID, bool *value)
Check whether the interface has the specified device.
Left RGB camera.
Definition: TYApi.h:199
IMU fps, see TY_IMU_FPS_LIST.
Definition: TYApi.h:320
TY_CAPI TYRegisterImuCallback(TY_DEV_HANDLE hDevice, TY_IMU_CALLBACK callback, void *userdata)
Register imu callback. Register NULL to clean callback.
Output bright histogram.
Definition: TYApi.h:301
int32_t size
Bytes array size in bytes.
Definition: TYApi.h:718
TY_VERSION_INFO hardwareVersion
deprecated
Definition: TYApi.h:671
TY_CAPI TYSetByteArray(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, const uint8_t *pBuffer, uint32_t bufferSize)
Write byte array to device.
TY_CAPI TYGetByteArray(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint8_t *pBuffer, uint32_t bufferSize)
Read byte array from device.
0x33000000
Definition: TYApi.h:454
IMU gyro scale matrix, see TY_GYRO_SCALE.
Definition: TYApi.h:318
TY_CAPI TYCloseInterface(TY_INTERFACE_HANDLE ifaceHandle)
Close interface.
void * TY_DEV_HANDLE
Device Handle.
Definition: TYApi.h:186
Image height.
Definition: TYApi.h:254
TY_CAPI TYGetEnumEntryInfo(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_ENUM_ENTRY *entries, uint32_t entryCount, uint32_t *filledEntryCount)
Get list of enum entries.
struct TY_BYTEARRAY_ATTR TY_BYTEARRAY_ATTR
byte array data structure
int32_t componentID
Where current data come from.
Definition: TYApi.h:974
Laser power level.
Definition: TYApi.h:297
TY_CAPI TYGetStruct(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, void *pStruct, uint32_t structSize)
Get value of struct.
TY_VERSION_INFO firmwareVersion
deprecated
Definition: TYApi.h:672
bool isValid
true if feature exists, false otherwise
Definition: TYApi.h:684
int32_t bufferSize
Size of userBuffer.
Definition: TYApi.h:987
stream async switch, see TY_STREAM_ASYNC_MODE
Definition: TYApi.h:274
TY_CAPI TYSetStruct(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, void *pStruct, uint32_t structSize)
Set value of struct.
TY_CAPI TYGetDeviceInterface(TY_DEV_HANDLE hDevice, TY_INTERFACE_HANDLE *pIface)
Get interface handle by device handle.
TY_FEATURE_ID bindFeatureID
feature ID current feature bind to
Definition: TYApi.h:692
TY_CAPI TYUpdateDeviceList(TY_INTERFACE_HANDLE ifaceHandle)
Update current connected devices.
the frequency of tof, see TY_TOF_FREQ
Definition: TYApi.h:343
param of trigger, see TY_TRIGGER_PARAM_EX
Definition: TYApi.h:265
struct TY_CAMERA_EXTRINSIC TY_CAMERA_EXTRINSIC
TY_CAPI TYGetEnum(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t *value)
Get current value of enum feature.
TY_RESOLUTION_MODE_LIST
predefined resolution list
Definition: TYApi.h:463
SGBM match window height.
Definition: TYApi.h:325
IMU acc bias matrix, see TY_ACC_BIAS.
Definition: TYApi.h:313
the quality of generated depth, see TY_DEPTH_QUALITY
Definition: TYApi.h:339
struct TY_CAMERA_INTRINSIC TY_CAMERA_INTRINSIC
Keep Alive switch.
Definition: TYApi.h:268
Some device has only one RGB camera, map it to left.
Definition: TYApi.h:206
microseconds
Definition: TYApi.h:242
Abstract component stands for whole device, always enabled.
Definition: TYApi.h:195
0x31000000
Definition: TYApi.h:452
used for reading/writing fpn block
Definition: TYApi.h:236
Trigger duration time, in microseconds.
Definition: TYApi.h:273
0x21000000, yvyu422
Definition: TYApi.h:446
TY_CAPI TYOpenInterface(const char *ifaceID, TY_INTERFACE_HANDLE *outHandle)
Open specified interface.
SGBM uniqueness factor param.
Definition: TYApi.h:328
TY_CAPI TYSetFloat(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, float value)
Set value of float feature.
TY_CAPI TYSetInt(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, int32_t value)
Set value of integer feature.
trigger mode 30,Alternate output depth image/ir image
Definition: TYApi.h:568
time sync done status
Definition: TYApi.h:277
virtual component for device storage
Definition: TYApi.h:204
SGBM enable left right consist check.
Definition: TYApi.h:334
uint32_t TY_COMPONENT_ID
component unique id
Definition: TYApi.h:208
float inc
increaing step
Definition: TYApi.h:710
TY_CAPI TYHasFeature(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, bool *value)
Check whether a component has a specific feature.
DI_0 workmode, see TY_DI_WORKMODE.
Definition: TYApi.h:281
Gain of B channel.
Definition: TYApi.h:306
Right RGB camera.
Definition: TYApi.h:200
TY_CAPI TYGetDeviceFeatureInfo(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_INFO *featureInfo, uint32_t entryCount, uint32_t *filledEntryCount)
Get the all features by comp id.
TY_CAPI TYGetComponentIDs(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID *componentIDs)
Get all components IDs.
TY_CAPI TYEnqueueBuffer(TY_DEV_HANDLE hDevice, void *buffer, uint32_t bufferSize)
Enqueue a user allocated buffer.
Depth camera.
Definition: TYApi.h:196
the rectified intrinsic. see TY_CAMERA_INTRINSIC
Definition: TYApi.h:234
Exposure time in percentage.
Definition: TYApi.h:289
DI_1 workmode, see TY_DI_WORKMODE.
Definition: TYApi.h:283
Output undistorted image.
Definition: TYApi.h:300
device network information
Definition: TYApi.h:636
Left IR camera.
Definition: TYApi.h:197
DO_2 workmode, see TY_DO_WORKMODE.
Definition: TYApi.h:284
IMU acc misalignment matrix, see TY_ACC_MISALIGNMENT.
Definition: TYApi.h:314
the threshold of the noise filter, 0 for disabled
Definition: TYApi.h:340
HDR func enable/disable.
Definition: TYApi.h:309
struct TY_CAMERA_CALIB_INFO TY_CAMERA_CALIB_INFO
0x80000000
Definition: TYApi.h:456
bool writableAtRun
feature can be written while capturing
Definition: TYApi.h:686
TY_CAPI TYClearBufferQueue(TY_DEV_HANDLE hDevice)
Clear the internal buffer queue, so that user can release all the buffer.
TY_CAPI TYGetInt(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, int32_t *value)
Get value of integer feature.
TY_PIXEL_FORMAT_LIST
pixel format definitions
Definition: TYApi.h:419
TY_FEATURE_TYPE_LIST
Feature Format Type definitions.
Definition: TYApi.h:213
TY_CAPI TYGetInterfaceList(TY_INTERFACE_INFO *pIfaceInfos, uint32_t bufferCount, uint32_t *filledCount)
Get interface info list.
void * TY_INTERFACE_HANDLE
Interface handle.
Definition: TYApi.h:185
statistical information, see TY_CAMERA_STATISTICS
Definition: TYApi.h:247
struct TY_GYRO_MISALIGNMENT TY_GYRO_MISALIGNMENT
tof sensor hdr ratio for depth
Definition: TYApi.h:294
TY_CAPI TYGetFrameBufferSize(TY_DEV_HANDLE hDevice, uint32_t *bufferSize)
Get total buffer size of one frame in current configuration.
see TY_TIME_SYNC_TYPE
Definition: TYApi.h:276
IMU acc scale matrix, see TY_ACC_SCALE.
Definition: TYApi.h:315
TY_CAPI TYForceDeviceIP(TY_INTERFACE_HANDLE ifaceHandle, const char *MAC, const char *newIP, const char *newNetMask, const char *newGateway)
Force a ethernet device to use new IP address, useful when device use persistent IP and cannot be fou...
TY_CAPI TYGetByteArraySize(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t *pSize)
Get the size of specified byte array zone .
see TY_CAMERA_INTRINSIC
Definition: TYApi.h:229
Gain of G channel.
Definition: TYApi.h:305
TY_CAPI TYGetStringLength(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t *size)
Get internal buffer size of string feature.
int32_t pixelFormat
Pixel format, see TY_PIXEL_FORMAT_LIST.
Definition: TYApi.h:979
Sensor Gain.
Definition: TYApi.h:291
int32_t validCount
Number of valid data.
Definition: TYApi.h:988
TY_CAPI TYRegisterEventCallback(TY_DEV_HANDLE hDevice, TY_EVENT_CALLBACK callback, void *userdata)
Register device status callback. Register NULL to clean callback.
not trigger mode, continuous mode
Definition: TYApi.h:560
TY_ACCESS_MODE_LIST
Definition: TYApi.h:379
capture time in multi-ir
Definition: TYApi.h:275
TY_TRIGGER_POL_LIST
set external trigger signal edge
Definition: TYApi.h:357
0x81000000
Definition: TYApi.h:457
0x30000000
Definition: TYApi.h:451
Auto white balance.
Definition: TYApi.h:292
0x82000000
Definition: TYApi.h:458
TY_CAPI TYGetEnabledComponents(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID *componentIDs)
Get all enabled components IDs.
SGBM disparity offset.
Definition: TYApi.h:324
TY_CAPI TYFetchFrame(TY_DEV_HANDLE hDevice, TY_FRAME_DATA *frame, int32_t timeout)
Fetch one frame.
see TY_CAMERA_DISTORTION
Definition: TYApi.h:232
struct TY_GYRO_BIAS TY_GYRO_BIAS
TY_CAPI TYStopCapture(TY_DEV_HANDLE hDevice)
Stop capture.
struct TY_ENUM_ENTRY TY_ENUM_ENTRY
TY_CAPI TYGetByteArrayAttr(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_BYTEARRAY_ATTR *pAttr)
Write byte array to device.
Image width.
Definition: TYApi.h:253
Keep Alive timeout.
Definition: TYApi.h:269
IMU Data Onoff.
Definition: TYApi.h:312
TY_CAPI TYDisableComponents(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentIDs)
Disable components.
scale unit depth image is uint16 pixel format with default millimeter unit ,for some device can outpu...
Definition: TYApi.h:260
Number of frames captured per trigger.
Definition: TYApi.h:263
struct TY_DEVICE_NET_INFO TY_DEVICE_NET_INFO
device network information
param of trigger, see TY_TRIGGER_PARAM
Definition: TYApi.h:264
struct TY_INTERFACE_INFO TY_INTERFACE_INFO
flashlight intensity level [0, 63]
Definition: TYApi.h:279
TY_DEVICE_COMPONENT_LIST
Definition: TYApi.h:193
the frequency channel of tof
Definition: TYApi.h:341
IMU camera to imu matrix, see TY_CAMERA_TO_IMU.
Definition: TYApi.h:319
TY_CAPI TYStartCapture(TY_DEV_HANDLE hDevice)
Start capture.
SGBM uniqueness min absolute diff.
Definition: TYApi.h:329
TY_CAPI TYGetFloatRange(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_FLOAT_RANGE *floatRange)
Get value range of float feature.
TY_CAPI TYUpdateInterfaceList()
Update current interfaces. call before TYGetInterfaceList.
0x22000000, yuyv422
Definition: TYApi.h:447
int32_t width
Image width in pixels.
Definition: TYApi.h:977
struct TY_DEVICE_BASE_INFO TY_DEVICE_BASE_INFO
Trigger POL, see TY_TRIGGER_POL_LIST.
Definition: TYApi.h:262
TY_CAPI TYDeinitLib(void)
Deinit this library.
TY_CAPI TYGetIntRange(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_INT_RANGE *intRange)
Get value range of integer feature.
struct TY_ACC_MISALIGNMENT TY_ACC_MISALIGNMENT
int32_t imageIndex
image index used in trigger mode
Definition: TYApi.h:972
TY_CAPI TYLibVersion(TY_VERSION_INFO *version)
Get current library version.
int32_t size
Buffer size.
Definition: TYApi.h:975
IMU gyro misalignment matrix, see TY_GYRO_MISALIGNMENT.
Definition: TYApi.h:317
SGBM match window width.
Definition: TYApi.h:332
TY_CAPI TYSendSoftTrigger(TY_DEV_HANDLE hDevice)
Send a software trigger to capture a frame when device works in trigger mode.
Inertial Measurement Unit.
Definition: TYApi.h:202
Gain of R channel.
Definition: TYApi.h:304
TY_CAPI TYGetDeviceFeatureNumber(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, uint32_t *size)
Get the size of device features .
SGBM disparity num.
Definition: TYApi.h:323
TY_STATUS_LIST
API call return status.
Definition: TYApi.h:119
float range data structure
Definition: TYApi.h:706
TY_FEATURE_ID featureID
feature unique id
Definition: TYApi.h:689
TY_CAPI TYUpdateAllDeviceList()
Update current connected devices.
param of trigger mode 21, see TY_TRIGGER_TIMER_PERIOD
Definition: TYApi.h:267
Auto exposure switch.
Definition: TYApi.h:288
Trigger out IO.
Definition: TYApi.h:272
param of trigger mode 20, see TY_TRIGGER_TIMER_LIST
Definition: TYApi.h:266
TY_CAPI TYOpenDevice(TY_INTERFACE_HANDLE ifaceHandle, const char *deviceID, TY_DEV_HANDLE *outDeviceHandle, TY_FW_ERRORCODE *outFwErrorcode=NULL)
Open device by device ID.
SGBM enable half window size.
Definition: TYApi.h:331
DO_0 workmode, see TY_DO_WORKMODE.
Definition: TYApi.h:280
TY_CAPI TYGetEnumEntryCount(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t *entryCount)
Get number of enum entries.
struct TY_ACC_BIAS TY_ACC_BIAS
uint32_t TY_FEATURE_ID
feature unique id
Definition: TYApi.h:346
TY_STREAM_ASYNC_MODE_LIST
stream async mode
Definition: TYApi.h:387
SGBM enable median filter.
Definition: TYApi.h:333
milliseconds
Definition: TYApi.h:246
TY_CAPI TYHasInterface(const char *ifaceID, bool *value)
Check if has interface.
Laser auto ctrl.
Definition: TYApi.h:298
region of aec statistics, see TY_AEC_ROI_PARAM
Definition: TYApi.h:293
DI_2 workmode, see TY_DI_WORKMODE.
Definition: TYApi.h:285
TY_COMPONENT_ID componentID
owner of this feature
Definition: TYApi.h:688
TY_CAPI TYCloseDevice(TY_DEV_HANDLE hDevice, bool reboot=false)
Close device by device handle.
TY_CAPI TYSetString(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, const char *buffer)
Set value of string feature.
int32_t status
Status of this buffer.
Definition: TYApi.h:973
Cmos sync switch.
Definition: TYApi.h:270
virtual component for brightness histogram of ir
Definition: TYApi.h:203
TY_FEATURE_ID_LIST
feature for component definitions
Definition: TYApi.h:227
IMU gyro bias matrix, see TY_GYRO_BIAS.
Definition: TYApi.h:316
int32_t inc
increaing step
Definition: TYApi.h:700
struct TY_GYRO_SCALE TY_GYRO_SCALE
void * userBuffer
Pointer to user enqueued buffer, user should enqueue this buffer in the end of callback.
Definition: TYApi.h:986
void * buffer
Pointer to data buffer.
Definition: TYApi.h:976
0x32000000
Definition: TYApi.h:453
struct TY_CAMERA_DISTORTION TY_CAMERA_DISTORTION
TY_CAPI TYGetBool(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, bool *value)
Get value of bool feature.
TY_PIXEL_BITS_LIST
Definition: TYApi.h:401
DO_1 workmode, see TY_DO_WORKMODE.
Definition: TYApi.h:282
slave mode, receive soft/hardware triggers
Definition: TYApi.h:561
TY_TRIGGER_MODE_LIST
Definition: TYApi.h:558
tof jitter threshold for depth
Definition: TYApi.h:295
extrinsic between left IR and current compoent, see TY_CAMERA_EXTRINSIC
Definition: TYApi.h:231
SGBM semi global param p2.
Definition: TYApi.h:327
int32_t height
Image height in pixels.
Definition: TYApi.h:978
Resolution-PixelFromat mode, see TY_IMAGE_MODE_LIST.
Definition: TYApi.h:255
TY_ACCESS_MODE accessMode
feature access privilege
Definition: TYApi.h:685
used for reading/writing custom block
Definition: TYApi.h:235
TY_CAPI TYGetDeviceList(TY_INTERFACE_HANDLE ifaceHandle, TY_DEVICE_BASE_INFO *deviceInfos, uint32_t bufferCount, uint32_t *filledDeviceCount)
Get device info list.
0x20000000
Definition: TYApi.h:445
cooperation if multi-device used
Definition: TYApi.h:344
TY_CAPI TYSetEnum(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, uint32_t value)
Set value of enum feature.
0x23000000,
Definition: TYApi.h:448
master mode 2, periodic sending one trigger signals, &#39;fps&#39; param should be set
Definition: TYApi.h:563
TY_CAPI TYGetString(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, char *buffer, uint32_t bufferSize)
Get value of string feature.
TY_CAPI TYEnableComponents(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentIDs)
Enable components.
TY_CAPI TYGetDeviceNumber(TY_INTERFACE_HANDLE ifaceHandle, uint32_t *deviceNumber)
Get number of current connected devices.
TY_CAPI TYGetInterfaceNumber(uint32_t *pNumIfaces)
Get number of current interfaces.
flashlight on/off control
Definition: TYApi.h:278
Ntp server IP.
Definition: TYApi.h:244
SGBM max diff.
Definition: TYApi.h:335
byte array data structure
Definition: TYApi.h:716
TY_TIME_SYNC_TYPE_LIST
type of time sync
Definition: TYApi.h:575
TY_IMAGE_MODE_LIST
Predefined Image Mode List image mode controls image resolution & format predefined image modes named...
Definition: TYApi.h:514
0x10000000
Definition: TYApi.h:421
SGBM semi global param p1.
Definition: TYApi.h:326
TY_CAPI TYGetFloat(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, float *value)
Get value of float feature.
TY_CAPI TYGetDeviceInfo(TY_DEV_HANDLE hDevice, TY_DEVICE_BASE_INFO *info)
Get base info of the open device.
see TY_CAMERA_CALIB_INFO
Definition: TYApi.h:233
HDR parameters.
Definition: TYApi.h:310
the threshold of the tof modulation
Definition: TYApi.h:342
SGBM semi global param p1 scale.
Definition: TYApi.h:337
SGBM cost param.
Definition: TYApi.h:330
uint64_t timestamp
Timestamp in microseconds.
Definition: TYApi.h:971
struct TY_ACC_SCALE TY_ACC_SCALE
SGBM median filter thresh.
Definition: TYApi.h:336
TY_CAPI TYGetFeatureInfo(TY_DEV_HANDLE hDevice, TY_COMPONENT_ID componentID, TY_FEATURE_ID featureID, TY_FEATURE_INFO *featureInfo)
Get feature info.
SGBM image channel num.
Definition: TYApi.h:322
Analog gain.
Definition: TYApi.h:308
TY_EXTC TY_EXPORT const char *TY_STDC TYErrorString(TY_STATUS errorID)
Get error information.
master mode 1, sending one trigger signal once received a soft/hardware trigger
Definition: TYApi.h:562
TY_COMPONENT_ID bindComponentID
component ID current feature bind to
Definition: TYApi.h:691
TY_CAPI TYOpenDeviceWithIP(TY_INTERFACE_HANDLE ifaceHandle, const char *IP, TY_DEV_HANDLE *deviceHandle)
Open device by device IP, useful when a device is not listed.
Do depth image postproc.
Definition: TYApi.h:302
Trigger delay time, in microseconds.
Definition: TYApi.h:271
TY_INTERFACE_TYPE_LIST
Definition: TYApi.h:366
extrinsic between depth cam and current component , see TY_CAMERA_EXTRINSIC
Definition: TYApi.h:230
struct TY_FLOAT_RANGE TY_FLOAT_RANGE
float range data structure
struct TY_CAMERA_TO_IMU TY_CAMERA_TO_IMU
Auto gain switch.
Definition: TYApi.h:290