2023-06-29 14:55:12 -03:00
|
|
|
#pragma once
|
2023-07-19 05:00:46 -03:00
|
|
|
#include "AP_RangeFinder_config.h"
|
2023-06-29 14:55:12 -03:00
|
|
|
|
|
|
|
#if AP_RANGEFINDER_NRA24_CAN_ENABLED
|
2023-07-19 05:00:46 -03:00
|
|
|
#include "AP_RangeFinder_Backend_CAN.h"
|
2023-06-29 14:55:12 -03:00
|
|
|
|
|
|
|
class AP_RangeFinder_NRA24_CAN : public AP_RangeFinder_Backend_CAN {
|
|
|
|
public:
|
|
|
|
AP_RangeFinder_NRA24_CAN(RangeFinder::RangeFinder_State &_state, AP_RangeFinder_Params &_params);
|
|
|
|
|
|
|
|
void update(void) override;
|
|
|
|
|
|
|
|
// handler for incoming frames
|
|
|
|
bool handle_frame(AP_HAL::CANFrame &frame) override;
|
|
|
|
|
|
|
|
static const struct AP_Param::GroupInfo var_info[];
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
2023-08-01 13:07:59 -03:00
|
|
|
uint32_t get_radar_id(uint32_t id) const { return ((id & 0xF0U) >> 4U); }
|
2023-06-29 14:55:12 -03:00
|
|
|
|
|
|
|
static RangeFinder_MultiCAN *multican_NRA24;
|
|
|
|
|
|
|
|
uint32_t last_heartbeat_ms; // last status message received from the sensor
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // AP_RANGEFINDER_USD1_CAN_ENABLED
|