24 #define BENEWAKE_FRAME_HEADER 0x59 25 #define BENEWAKE_FRAME_LENGTH 9 49 uint8_t serial_instance,
55 if (
uart !=
nullptr) {
73 if (
uart ==
nullptr) {
79 bool dist_reliable =
false;
83 while (nbytes-- > 0) {
97 dist_reliable =
false;
105 uint16_t checksum = 0;
110 if ((uint8_t)(checksum & 0xFF) ==
linebuf[BENEWAKE_FRAME_LENGTH-1]) {
115 if (dist != 0xFFFF) {
122 dist_reliable =
true;
125 dist_reliable = (
linebuf[6] >= 7);
135 dist_reliable =
false;
143 reading_cm = sum_cm /
count;
const AP_HAL::HAL & hal
-*- tab-width: 4; Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*-
static AP_SerialManager serial_manager
AP_RangeFinder_Benewake(RangeFinder::RangeFinder_State &_state, AP_SerialManager &serial_manager, uint8_t serial_instance, benewake_model_type model)
static bool detect(AP_SerialManager &serial_manager, uint8_t serial_instance)
virtual void begin(uint32_t baud)=0
#define BENEWAKE_FRAME_HEADER
benewake_model_type model_type
uint32_t find_baudrate(enum SerialProtocol protocol, uint8_t instance) const
AP_HAL::UARTDriver * uart
bool get_reading(uint16_t &reading_cm, bool &signal_ok)
#define BENEWAKE_FRAME_LENGTH
virtual uint32_t available()=0
void set_status(RangeFinder::RangeFinder_Status status)
RangeFinder::RangeFinder_State & state
AP_HAL::UARTDriver * find_serial(enum SerialProtocol protocol, uint8_t instance) const