APM:Libraries
|
#include <AP_Proximity_Backend.h>
Public Member Functions | |
AP_Proximity_Backend (AP_Proximity &_frontend, AP_Proximity::Proximity_State &_state) | |
virtual | ~AP_Proximity_Backend (void) |
virtual void | update ()=0 |
virtual float | distance_max () const =0 |
virtual float | distance_min () const =0 |
virtual bool | get_upward_distance (float &distance) const |
virtual void | handle_msg (mavlink_message_t *msg) |
bool | get_horizontal_distance (float angle_deg, float &distance) const |
const Vector2f * | get_boundary_points (uint16_t &num_points) const |
bool | get_closest_object (float &angle_deg, float &distance) const |
uint8_t | get_object_count () const |
bool | get_object_angle_and_distance (uint8_t object_number, float &angle_deg, float &distance) const |
bool | get_horizontal_distances (AP_Proximity::Proximity_Distance_Array &prx_dist_array) const |
Protected Member Functions | |
void | set_status (AP_Proximity::Proximity_Status status) |
bool | convert_angle_to_sector (float angle_degrees, uint8_t §or) const |
void | init_boundary () |
void | update_boundary_for_sector (uint8_t sector) |
uint8_t | get_ignore_area_count () const |
bool | get_ignore_area (uint8_t index, uint16_t &angle_deg, uint8_t &width_deg) const |
bool | get_next_ignore_start_or_end (uint8_t start_or_end, int16_t start_angle, int16_t &ignore_start) const |
Protected Attributes | |
AP_Proximity & | frontend |
AP_Proximity::Proximity_State & | state |
uint8_t | _num_sectors = PROXIMITY_MAX_DIRECTION |
uint16_t | _sector_middle_deg [PROXIMITY_SECTORS_MAX] = {0, 45, 90, 135, 180, 225, 270, 315, 0, 0, 0, 0} |
uint8_t | _sector_width_deg [PROXIMITY_SECTORS_MAX] = {45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0} |
float | _angle [PROXIMITY_SECTORS_MAX] |
float | _distance [PROXIMITY_SECTORS_MAX] |
bool | _distance_valid [PROXIMITY_SECTORS_MAX] |
Vector2f | _sector_edge_vector [PROXIMITY_SECTORS_MAX] |
Vector2f | _boundary_point [PROXIMITY_SECTORS_MAX] |
Definition at line 25 of file AP_Proximity_Backend.h.
AP_Proximity_Backend::AP_Proximity_Backend | ( | AP_Proximity & | _frontend, |
AP_Proximity::Proximity_State & | _state | ||
) |
|
inlinevirtual |
|
protected |
Definition at line 237 of file AP_Proximity_Backend.cpp.
Referenced by get_horizontal_distance(), handle_msg(), AP_Proximity_RPLidarA2::parse_response_data(), AP_Proximity_LightWareSF40C::process_reply(), and AP_Proximity_TeraRangerTower::update_sector_data().
|
pure virtual |
Implemented in AP_Proximity_RPLidarA2, AP_Proximity_LightWareSF40C, AP_Proximity_TeraRangerTower, AP_Proximity_SITL, AP_Proximity_MAV, and AP_Proximity_RangeFinder.
Referenced by AP_Proximity::distance_max(), get_horizontal_distances(), and ~AP_Proximity_Backend().
|
pure virtual |
Implemented in AP_Proximity_RPLidarA2, AP_Proximity_LightWareSF40C, AP_Proximity_TeraRangerTower, AP_Proximity_SITL, AP_Proximity_MAV, and AP_Proximity_RangeFinder.
Referenced by AP_Proximity::distance_min(), and ~AP_Proximity_Backend().
const Vector2f * AP_Proximity_Backend::get_boundary_points | ( | uint16_t & | num_points | ) | const |
Definition at line 139 of file AP_Proximity_Backend.cpp.
Referenced by AP_Proximity::get_boundary_points(), and handle_msg().
bool AP_Proximity_Backend::get_closest_object | ( | float & | angle_deg, |
float & | distance | ||
) | const |
Definition at line 48 of file AP_Proximity_Backend.cpp.
Referenced by AP_Proximity::get_closest_object(), and handle_msg().
bool AP_Proximity_Backend::get_horizontal_distance | ( | float | angle_deg, |
float & | distance | ||
) | const |
Definition at line 34 of file AP_Proximity_Backend.cpp.
Referenced by AP_Proximity::get_horizontal_distance(), and handle_msg().
bool AP_Proximity_Backend::get_horizontal_distances | ( | AP_Proximity::Proximity_Distance_Array & | prx_dist_array | ) | const |
Definition at line 89 of file AP_Proximity_Backend.cpp.
Referenced by AP_Proximity::get_horizontal_distances(), and handle_msg().
|
protected |
Definition at line 293 of file AP_Proximity_Backend.cpp.
Referenced by handle_msg(), AP_Proximity_LightWareSF40C::init_sectors(), and AP_Proximity_RPLidarA2::init_sectors().
|
protected |
Definition at line 280 of file AP_Proximity_Backend.cpp.
Referenced by handle_msg(), AP_Proximity_LightWareSF40C::init_sectors(), and AP_Proximity_RPLidarA2::init_sectors().
|
protected |
Definition at line 305 of file AP_Proximity_Backend.cpp.
Referenced by handle_msg(), AP_Proximity_LightWareSF40C::init_sectors(), and AP_Proximity_RPLidarA2::init_sectors().
bool AP_Proximity_Backend::get_object_angle_and_distance | ( | uint8_t | object_number, |
float & | angle_deg, | ||
float & | distance | ||
) | const |
Definition at line 78 of file AP_Proximity_Backend.cpp.
Referenced by AP_Proximity::get_object_angle_and_distance(), and handle_msg().
uint8_t AP_Proximity_Backend::get_object_count | ( | ) | const |
Definition at line 71 of file AP_Proximity_Backend.cpp.
Referenced by AP_Proximity::get_object_count(), and handle_msg().
|
inlinevirtual |
Reimplemented in AP_Proximity_SITL, AP_Proximity_MAV, and AP_Proximity_RangeFinder.
Definition at line 43 of file AP_Proximity_Backend.h.
Referenced by AP_Proximity::get_upward_distance().
|
inlinevirtual |
Reimplemented in AP_Proximity_MAV.
Definition at line 46 of file AP_Proximity_Backend.h.
Referenced by AP_Proximity::handle_msg().
|
protected |
Definition at line 167 of file AP_Proximity_Backend.cpp.
Referenced by AP_Proximity_Backend(), handle_msg(), AP_Proximity_LightWareSF40C::init_sectors(), and AP_Proximity_RPLidarA2::init_sectors().
|
protected |
Definition at line 232 of file AP_Proximity_Backend.cpp.
Referenced by handle_msg(), AP_Proximity_RangeFinder::update(), AP_Proximity_MAV::update(), AP_Proximity_SITL::update(), AP_Proximity_LightWareSF40C::update(), AP_Proximity_TeraRangerTower::update(), and AP_Proximity_RPLidarA2::update().
|
pure virtual |
Implemented in AP_Proximity_RPLidarA2, AP_Proximity_LightWareSF40C, AP_Proximity_TeraRangerTower, AP_Proximity_SITL, AP_Proximity_MAV, and AP_Proximity_RangeFinder.
Referenced by AP_Proximity::update(), and ~AP_Proximity_Backend().
|
protected |
Definition at line 180 of file AP_Proximity_Backend.cpp.
Referenced by AP_Proximity_MAV::handle_msg(), handle_msg(), AP_Proximity_RPLidarA2::parse_response_data(), AP_Proximity_LightWareSF40C::process_reply(), AP_Proximity_RangeFinder::update(), AP_Proximity_SITL::update(), and AP_Proximity_TeraRangerTower::update_sector_data().
|
protected |
Definition at line 98 of file AP_Proximity_Backend.h.
Referenced by get_closest_object(), get_horizontal_distances(), get_object_angle_and_distance(), AP_Proximity_MAV::handle_msg(), AP_Proximity_RPLidarA2::parse_response_data(), AP_Proximity_LightWareSF40C::process_reply(), AP_Proximity_RangeFinder::update(), AP_Proximity_SITL::update(), and AP_Proximity_TeraRangerTower::update_sector_data().
|
protected |
Definition at line 104 of file AP_Proximity_Backend.h.
Referenced by get_boundary_points(), init_boundary(), and update_boundary_for_sector().
|
protected |
Definition at line 99 of file AP_Proximity_Backend.h.
Referenced by get_closest_object(), get_horizontal_distance(), get_horizontal_distances(), get_object_angle_and_distance(), AP_Proximity_MAV::handle_msg(), AP_Proximity_RPLidarA2::parse_response_data(), AP_Proximity_LightWareSF40C::process_reply(), AP_Proximity_RangeFinder::update(), AP_Proximity_SITL::update(), update_boundary_for_sector(), and AP_Proximity_TeraRangerTower::update_sector_data().
|
protected |
Definition at line 100 of file AP_Proximity_Backend.h.
Referenced by get_boundary_points(), get_closest_object(), get_horizontal_distance(), get_horizontal_distances(), get_object_angle_and_distance(), AP_Proximity_MAV::handle_msg(), AP_Proximity_RPLidarA2::parse_response_data(), AP_Proximity_LightWareSF40C::process_reply(), AP_Proximity_RangeFinder::update(), AP_Proximity_SITL::update(), update_boundary_for_sector(), and AP_Proximity_TeraRangerTower::update_sector_data().
|
protected |
Definition at line 93 of file AP_Proximity_Backend.h.
Referenced by convert_angle_to_sector(), get_boundary_points(), get_closest_object(), get_horizontal_distances(), get_object_angle_and_distance(), get_object_count(), init_boundary(), AP_Proximity_LightWareSF40C::init_sectors(), AP_Proximity_RPLidarA2::init_sectors(), AP_Proximity_LightWareSF40C::send_request_for_distance(), AP_Proximity_SITL::update(), and update_boundary_for_sector().
|
protected |
Definition at line 103 of file AP_Proximity_Backend.h.
Referenced by init_boundary(), and update_boundary_for_sector().
|
protected |
Definition at line 94 of file AP_Proximity_Backend.h.
Referenced by convert_angle_to_sector(), init_boundary(), AP_Proximity_LightWareSF40C::init_sectors(), AP_Proximity_RPLidarA2::init_sectors(), AP_Proximity_LightWareSF40C::send_request_for_distance(), and AP_Proximity_SITL::update().
|
protected |
Definition at line 95 of file AP_Proximity_Backend.h.
Referenced by convert_angle_to_sector(), init_boundary(), AP_Proximity_LightWareSF40C::init_sectors(), AP_Proximity_RPLidarA2::init_sectors(), and AP_Proximity_LightWareSF40C::send_request_for_distance().
|
protected |
Definition at line 89 of file AP_Proximity_Backend.h.
Referenced by get_ignore_area(), get_ignore_area_count(), get_next_ignore_start_or_end(), AP_Proximity_LightWareSF40C::initialise(), AP_Proximity_LightWareSF40C::set_forward_direction(), AP_Proximity_LightWareSF40C::set_motor_direction(), and AP_Proximity_RangeFinder::update().
|
protected |
Definition at line 90 of file AP_Proximity_Backend.h.
Referenced by get_boundary_points(), AP_Proximity_LightWareSF40C::initialise(), AP_Proximity_LightWareSF40C::set_forward_direction(), AP_Proximity_LightWareSF40C::set_motor_direction(), and set_status().