mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-11-03 01:11:36 +08:00
simulator move to PX4Accelerometer, PX4Gyroscope, PX4Magnetometer, PX4Barometer helpers (#12081)
This commit is contained in:
@@ -32,3 +32,4 @@
|
||||
############################################################################
|
||||
|
||||
px4_add_library(drivers_accelerometer PX4Accelerometer.cpp)
|
||||
target_link_libraries(drivers_accelerometer PRIVATE drivers__device)
|
||||
|
||||
@@ -98,6 +98,12 @@ void PX4Accelerometer::set_device_type(uint8_t devtype)
|
||||
_sensor_accel_pub.get().device_id = device_id.devid;
|
||||
}
|
||||
|
||||
void PX4Accelerometer::set_sample_rate(unsigned rate)
|
||||
{
|
||||
_sample_rate = rate;
|
||||
_filter.set_cutoff_frequency(_sample_rate, _filter.get_cutoff_freq());
|
||||
}
|
||||
|
||||
void PX4Accelerometer::update(hrt_abstime timestamp, int16_t x, int16_t y, int16_t z)
|
||||
{
|
||||
sensor_accel_s &report = _sensor_accel_pub.get();
|
||||
|
||||
@@ -47,7 +47,7 @@ class PX4Accelerometer : public cdev::CDev, public ModuleParams
|
||||
{
|
||||
|
||||
public:
|
||||
PX4Accelerometer(uint32_t device_id, uint8_t priority, enum Rotation rotation);
|
||||
PX4Accelerometer(uint32_t device_id, uint8_t priority = ORB_PRIO_DEFAULT, enum Rotation rotation = ROTATION_NONE);
|
||||
~PX4Accelerometer() override;
|
||||
|
||||
int ioctl(cdev::file_t *filp, int cmd, unsigned long arg) override;
|
||||
@@ -57,9 +57,7 @@ public:
|
||||
void set_scale(float scale) { _sensor_accel_pub.get().scaling = scale; }
|
||||
void set_temperature(float temperature) { _sensor_accel_pub.get().temperature = temperature; }
|
||||
|
||||
void set_sample_rate(unsigned rate) { _sample_rate = rate; _filter.set_cutoff_frequency(_sample_rate, _filter.get_cutoff_freq()); }
|
||||
|
||||
void configure_filter(float cutoff_freq) { _filter.set_cutoff_frequency(_sample_rate, cutoff_freq); }
|
||||
void set_sample_rate(unsigned rate);
|
||||
|
||||
void update(hrt_abstime timestamp, int16_t x, int16_t y, int16_t z);
|
||||
|
||||
@@ -67,6 +65,8 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
void configure_filter(float cutoff_freq) { _filter.set_cutoff_frequency(_sample_rate, cutoff_freq); }
|
||||
|
||||
uORB::Publication<sensor_accel_s> _sensor_accel_pub;
|
||||
|
||||
math::LowPassFilter2pVector3f _filter{1000, 100};
|
||||
@@ -79,7 +79,7 @@ private:
|
||||
|
||||
int _class_device_instance{-1};
|
||||
|
||||
unsigned _sample_rate{1000};
|
||||
unsigned _sample_rate{1000};
|
||||
|
||||
DEFINE_PARAMETERS(
|
||||
(ParamFloat<px4::params::IMU_ACCEL_CUTOFF>) _param_imu_accel_cutoff
|
||||
|
||||
Reference in New Issue
Block a user