3 * Author : Robin Krens <robin@robinkrens.nl>
5 * Last Modified Date: 22.01.2023
6 * Last Modified By : Robin Krens <robin@robinkrens.nl>
11 #if defined(__cplusplus)
23 typedef enum si24_status_t si24_status_t;
30 typedef enum si24_mode_t si24_mode_t;
37 typedef enum si24_crc_t si24_crc_t;
45 typedef enum si24_speed_t si24_speed_t;
58 typedef enum si24_txpower_t si24_txpower_t;
60 enum si24_event_type_t {
71 typedef enum si24_event_type_t si24_event_type_t;
74 enum si24_event_type_t type;
76 enum si24_event_type_t _type;
84 typedef union si24_event_t si24_event_t;
86 /* low level IO control */
88 int (*write_and_read)(unsigned char *data, size_t sz);
89 void (*chip_enable)(unsigned val);
95 unsigned non_blocking;
97 unsigned enable_dynpd;
101 si24_txpower_t txpwr;
103 unsigned timeout; /* 1: 250 us, 15: 4000 us */
104 unsigned retries; /* 1 to 15 */
105 unsigned long mac_addr;
108 /* private data structure */
109 typedef struct si24_t si24_t;
111 typedef void (*si24_event_handler_t)(si24_t* si24, si24_event_t* event);
113 extern si24_t* si24_init(const si24_opts_t* si24opts, si24_event_handler_t eh);
114 extern void si24_free(si24_t* si24);
115 extern size_t si24_send(si24_t* si24, const unsigned char * buf, size_t size);
116 extern size_t si24_recv(si24_t* si24, unsigned char * buf, size_t size);
117 extern void si24_reset(si24_t* si24);
119 #if defined(__cplusplus)