1 #ifndef __RK_IIO_FIFO_ 2 #define __RK_IIO_FIFO_ 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 #include "rkiio_common.h" 9 #include "format.h" 10 11 typedef void *RKIIO_FIFO_HANDLE; 12 typedef void *RKIIO_FIFO_DATA; 13 typedef void *RKIIO_FIFO_DEV; 14 15 #define RKIIO_TIMESTAMP_MONOTONIC "monotonic" 16 #define RKIIO_TIMESTAMP_REALTIME "realtime" 17 18 typedef struct xyz_data_s { 19 double x; 20 double y; 21 double z; 22 } xyz_data_t; 23 24 typedef struct rkiio_data_0_s { 25 RK_U64 id; 26 xyz_data_t anglvel; 27 xyz_data_t accel; 28 RK_S32 temp; 29 RK_U64 timestamp; 30 } rkiio_data_0_t; 31 32 RKIIO_FIFO_HANDLE rkiio_fifo_handle_create(RKIIO_FIFO_DEV dev, RK_S32 last_index, struct rkiio_format_info *format_info, RK_U8 info_num, RK_U32 buf_max_num, double max_sampling_rate); 33 RK_S32 rkiio_fifo_list_len_get(RKIIO_FIFO_HANDLE fifo_handle, RK_U32 *len); 34 RK_S32 rkiio_fifo_handle_destroy(RKIIO_FIFO_HANDLE fifo_handle); 35 RK_S32 rkiio_fifo_handle_last_id_get(RKIIO_FIFO_HANDLE fifo_handle, RK_U64 *id); 36 RK_S32 rkiio_fifo_refill_once(RKIIO_FIFO_HANDLE fifo_handle); 37 RK_S32 rkiio_fifo_data_read_all(RKIIO_FIFO_HANDLE fifo_handle, RKIIO_FIFO_DATA fifo_data, RK_U64 *frame_id, RK_U64 *data_num); 38 RK_S32 rkiio_fifo_data_read_num(RKIIO_FIFO_HANDLE fifo_handle, RKIIO_FIFO_DATA fifo_data, RK_U64 *frame_id, RK_U64 data_num); 39 RK_S32 rkiio_fifo_data_release(RKIIO_FIFO_DATA buf); 40 41 #ifdef __cplusplus 42 } 43 #endif 44 45 #endif // #ifndef __RK_IIO_FIFO_