40 #include <drivers/device/device.h> 48 #define MIN(X, Y) (((X) < (Y)) ? (X) : (Y)) 68 int set_datarate(uint8_t datarate);
69 int set_channel(uint8_t channel);
70 int set_address(uint64_t addr);
72 int is_good(
int i) {
return _params_ack[i] != 0; }
84 int open_serial(
const char *dev);
86 void handle_message(syslink_message_t *msg);
87 void handle_raw(syslink_message_t *sys);
88 void handle_radio(syslink_message_t *sys);
89 void handle_bootloader(syslink_message_t *sys);
94 void handle_raw_other(syslink_message_t *sys);
96 int send_bytes(
const void *data,
size_t len);
99 int send_message(syslink_message_t *msg);
101 int send_queued_raw_message();
103 void update_params(
bool force_set);
107 bool _bootloader_mode;
120 ringbuffer::RingBuffer _queue;
123 ringbuffer::RingBuffer _writebuffer;
130 int32_t _channel, _rate;
139 struct battery_status_s _battery_status;
144 battery_state _bstate;
146 px4_sem_t memory_sem;
148 syslink_message_t memory_msg;
150 static int task_main_trampoline(
int argc,
char *argv[]);
166 virtual ssize_t read(
struct file *filp,
char *
buffer,
size_t buflen);
167 virtual ssize_t write(
struct file *filp,
const char *buffer,
size_t buflen);
168 virtual int ioctl(
struct file *filp,
int cmd,
unsigned long arg);
171 void pipe_message(crtp_message_t *msg);
175 virtual pollevent_t poll_state(
struct file *filp);
182 ringbuffer::RingBuffer _readbuffer;
184 crtp_message_t _msg_to_send;
185 int _msg_to_send_size_remaining;
199 virtual ssize_t read(
struct file *filp,
char *
buffer,
size_t buflen);
200 virtual ssize_t write(
struct file *filp,
const char *buffer,
size_t buflen);
201 virtual int ioctl(
struct file *filp,
int cmd,
unsigned long arg);
210 syslink_message_t msgbuf;
215 int read(
int i, uint16_t addr,
char *buf,
int length);
216 int write(
int i, uint16_t addr,
const char *buf,
int length);
A flexible ringbuffer class.
Definition: syslink_main.h:190
__BEGIN_DECLS typedef void * orb_advert_t
ORB topic advertiser handle.
Definition: uORB.h:134
Library calls for battery functionality.
API for the uORB lightweight object broker.
Definition: syslink_main.h:61
__BEGIN_DECLS typedef uint64_t hrt_abstime
Absolute time, in microsecond units.
Definition: drv_hrt.h:58
Abstract class for any character device.
Definition: CDev.hpp:58
Definition: video_device.h:50
Definition: syslink_main.h:157