#pragma once #include #if CONFIG_HAL_BOARD == HAL_BOARD_LINUX #include #include #include #include "AP_InertialSensor.h" #include "AP_InertialSensor_Backend.h" class AP_InertialSensor_L3G4200D : public AP_InertialSensor_Backend { public: AP_InertialSensor_L3G4200D(AP_InertialSensor &imu, AP_HAL::OwnPtr dev); virtual ~AP_InertialSensor_L3G4200D(); // probe the sensor on I2C bus static AP_InertialSensor_Backend *probe(AP_InertialSensor &imu, AP_HAL::OwnPtr dev); /* update accel and gyro state */ bool update() override; void start(void) override; private: bool _init_sensor(); bool _accumulate(); AP_HAL::OwnPtr _dev; // gyro and accel instances uint8_t _gyro_instance; uint8_t _accel_instance; }; #endif