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 {
72 typedef enum si24_event_type_t si24_event_type_t;
75 enum si24_event_type_t type;
77 enum si24_event_type_t _type;
85 typedef union si24_event_t si24_event_t;
87 /* low level IO control */
89 int (*write_and_read)(unsigned char *data, size_t sz);
90 void (*chip_enable)(unsigned val);
96 unsigned non_blocking;
98 unsigned enable_dynpd;
102 si24_txpower_t txpwr;
104 unsigned timeout; /* 1: 250 us, 15: 4000 us */
105 unsigned retries; /* 1 to 15 */
106 unsigned char mac_addr[5];
109 /* private data structure */
110 typedef struct si24_t si24_t;
112 typedef void (*si24_event_handler_t)(si24_t* si24, si24_event_t* event);
114 extern si24_t* si24_init(const si24_opts_t* si24opts, si24_event_handler_t eh);
115 extern void si24_free(si24_t* si24);
116 extern size_t si24_send(si24_t* si24, const unsigned char * buf, size_t size);
117 extern size_t si24_recv(si24_t* si24, unsigned char * buf, size_t size);
118 extern void si24_reset(si24_t* si24);
120 #if defined(__cplusplus)