summaryrefslogtreecommitdiff
path: root/libtwn3.h
blob: 63e9b9341c99ef4a8d28e48418ea6bbaff803646 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdlib.h>
#include <stdint.h>
#include <inttypes.h>

/* Open a device port */
int twn3_open(char* device);

/* Low-level command API */
#define TX_FLAG_BINARY 1

#define RX_FLAG_BINARY 1
#define RX_FLAG_UNTIL_TIMEOUT 2

ssize_t twn3_send_command(int fd, uint8_t flags, uint8_t* data, size_t len);
ssize_t twn3_receive_response(int fd, uint8_t flags, uint8_t* response, size_t max_length);
ssize_t twn3_sync_command(int fd, uint8_t flags, uint8_t* cmd, size_t cmd_len, uint8_t* response, size_t max_length);

/* Synchronous API */
/* These calls will return data directly, at the cost of blocking execution */
int twn3_sync_read_version(int fd, uint8_t flags, char* version, size_t max_length);
int twn3_sync_read_eeprom(int fd, uint8_t flags, uint8_t reg, uint8_t* data);
int twn3_sync_write_eeprom(int fd, uint8_t flags, uint8_t reg, uint8_t data);
int twn3_sync_storekey(int fd, uint8_t flags, uint8_t keyid, uint8_t key[6]);
int twn3_sync_antenna(int fd, uint8_t flags, uint8_t enable);