urtps microRTPS_transport.h code style

This commit is contained in:
Daniel Agar
2017-07-28 12:43:34 -04:00
committed by Lorenz Meier
parent 62fc3fb5ab
commit 2151890e50
2 changed files with 50 additions and 52 deletions
-1
View File
@@ -15,7 +15,6 @@ exec find src \
-path src/lib/ecl -prune -o \ -path src/lib/ecl -prune -o \
-path src/lib/matrix -prune -o \ -path src/lib/matrix -prune -o \
-path src/lib/micro-CDR -prune -o \ -path src/lib/micro-CDR -prune -o \
-path src/modules/micrortps_bridge/build -prune -o \
-path src/modules/micrortps_bridge/micrortps_agent -prune -o \ -path src/modules/micrortps_bridge/micrortps_agent -prune -o \
-path src/modules/commander -prune -o \ -path src/modules/commander -prune -o \
-path src/modules/sdlog2 -prune -o \ -path src/modules/sdlog2 -prune -o \
+50 -51
View File
@@ -40,80 +40,79 @@
class Transport_node class Transport_node
{ {
public: public:
Transport_node(); Transport_node();
virtual ~Transport_node(); virtual ~Transport_node();
virtual int init() {return 0;} virtual int init() {return 0;}
virtual uint8_t close() {return 0;} virtual uint8_t close() {return 0;}
ssize_t read(uint8_t* topic_ID, char out_buffer[], size_t buffer_len); ssize_t read(uint8_t *topic_ID, char out_buffer[], size_t buffer_len);
ssize_t write(const uint8_t topic_ID, char buffer[], size_t length); ssize_t write(const uint8_t topic_ID, char buffer[], size_t length);
protected: protected:
virtual ssize_t node_read(void *buffer, size_t len) = 0; virtual ssize_t node_read(void *buffer, size_t len) = 0;
virtual ssize_t node_write(void *buffer, size_t len) = 0; virtual ssize_t node_write(void *buffer, size_t len) = 0;
virtual bool fds_OK() = 0; virtual bool fds_OK() = 0;
uint16_t crc16_byte(uint16_t crc, const uint8_t data); uint16_t crc16_byte(uint16_t crc, const uint8_t data);
uint16_t crc16(uint8_t const *buffer, size_t len); uint16_t crc16(uint8_t const *buffer, size_t len);
protected: protected:
uint32_t rx_buff_pos; uint32_t rx_buff_pos;
char rx_buffer[1024] = {}; char rx_buffer[1024] = {};
private: private:
struct __attribute__((packed)) Header struct __attribute__((packed)) Header {
{ char marker[3];
char marker[3]; uint8_t topic_ID;
uint8_t topic_ID; uint8_t seq;
uint8_t seq; uint8_t payload_len_h;
uint8_t payload_len_h; uint8_t payload_len_l;
uint8_t payload_len_l; uint8_t crc_h;
uint8_t crc_h; uint8_t crc_l;
uint8_t crc_l; };
};
}; };
class UART_node: public Transport_node class UART_node: public Transport_node
{ {
public: public:
UART_node(const char *uart_name, uint32_t baudrate, uint32_t poll_ms); UART_node(const char *uart_name, uint32_t baudrate, uint32_t poll_ms);
virtual ~UART_node(); virtual ~UART_node();
int init(); int init();
uint8_t close(); uint8_t close();
protected: protected:
ssize_t node_read(void *buffer, size_t len); ssize_t node_read(void *buffer, size_t len);
ssize_t node_write(void *buffer, size_t len); ssize_t node_write(void *buffer, size_t len);
bool fds_OK(); bool fds_OK();
int uart_fd; int uart_fd;
char uart_name[64] = {}; char uart_name[64] = {};
uint32_t baudrate; uint32_t baudrate;
uint32_t poll_ms; uint32_t poll_ms;
struct pollfd poll_fd[1] = {}; struct pollfd poll_fd[1] = {};
}; };
class UDP_node: public Transport_node class UDP_node: public Transport_node
{ {
public: public:
UDP_node(uint16_t udp_port_recv, uint16_t udp_port_send); UDP_node(uint16_t udp_port_recv, uint16_t udp_port_send);
virtual ~UDP_node(); virtual ~UDP_node();
int init(); int init();
uint8_t close(); uint8_t close();
protected: protected:
int init_receiver(uint16_t udp_port); int init_receiver(uint16_t udp_port);
int init_sender(uint16_t udp_port); int init_sender(uint16_t udp_port);
ssize_t node_read(void *buffer, size_t len); ssize_t node_read(void *buffer, size_t len);
ssize_t node_write(void *buffer, size_t len); ssize_t node_write(void *buffer, size_t len);
bool fds_OK(); bool fds_OK();
int sender_fd; int sender_fd;
int receiver_fd; int receiver_fd;
uint16_t udp_port_recv; uint16_t udp_port_recv;
uint16_t udp_port_send; uint16_t udp_port_send;
struct sockaddr_in sender_outaddr; struct sockaddr_in sender_outaddr;
struct sockaddr_in receiver_inaddr; struct sockaddr_in receiver_inaddr;
struct sockaddr_in receiver_outaddr; struct sockaddr_in receiver_outaddr;
}; };