Line data Source code
1 : #pragma once 2 : 3 : #include <stdint.h> 4 : #include <stdlib.h> 5 : 6 : #include "AP_HAL_Linux.h" 7 : 8 : class SerialDevice { 9 : public: 10 480 : virtual ~SerialDevice() {} 11 : 12 : virtual bool open() = 0; 13 : virtual bool close() = 0; 14 : virtual ssize_t write(const uint8_t *buf, uint16_t n) = 0; 15 : virtual ssize_t read(uint8_t *buf, uint16_t n) = 0; 16 : virtual void set_blocking(bool blocking) = 0; 17 : virtual void set_speed(uint32_t speed) = 0; 18 0 : virtual AP_HAL::UARTDriver::flow_control get_flow_control(void) { return AP_HAL::UARTDriver::FLOW_CONTROL_ENABLE; } 19 0 : virtual void set_flow_control(AP_HAL::UARTDriver::flow_control flow_control_setting) 20 : { 21 : /* most devices simply ignore this setting */ 22 0 : }; 23 : 24 : /* Depends on lower level to implement, most devices are fine with defaults */ 25 0 : virtual void set_parity(int v) { } 26 : };