ardupilot/libraries/AP_HAL_Linux/SerialDevice.h

27 lines
822 B
C++

#pragma once
#include <stdint.h>
#include <stdlib.h>
#include "AP_HAL_Linux.h"
class SerialDevice {
public:
virtual ~SerialDevice() {}
virtual bool open() = 0;
virtual bool close() = 0;
virtual ssize_t write(const uint8_t *buf, uint16_t n) = 0;
virtual ssize_t read(uint8_t *buf, uint16_t n) = 0;
virtual void set_blocking(bool blocking) = 0;
virtual void set_speed(uint32_t speed) = 0;
virtual AP_HAL::UARTDriver::flow_control get_flow_control(void) { return AP_HAL::UARTDriver::FLOW_CONTROL_ENABLE; }
virtual void set_flow_control(AP_HAL::UARTDriver::flow_control flow_control_setting)
{
/* most devices simply ignore this setting */
};
/* Depends on lower level to implement, most devices are fine with defaults */
virtual void set_parity(int v) { }
};