// %flair:license{ // This file is part of the Flair framework distributed under the // CECILL-C License, Version 1.0. // %flair:license} /*! * \file Gx3_25_imu_impl.h * \brief Classe intégrant la centrale 3dmgx3-25 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253 * \date 2011/08/19 * \version 4.0 */ #ifndef GX3_25_IMU_IMPL_H #define GX3_25_IMU_IMPL_H #include "Gx3_25_imu.h" #include //ssize_t namespace flair { namespace core { class FrameworkManager; class SerialPort; class AhrsData; } namespace gui { class SpinBox; class CheckBox; class PushButton; class Label; } } /*! \class Gx3_25_imu_impl * * \brief Classe intégrant la centrale 3dmgx3-25 */ class Gx3_25_imu_impl { public: Gx3_25_imu_impl(flair::sensor::Gx3_25_imu* self,std::string name,flair::core::SerialPort *serialport,flair::sensor::Gx3_25_imu::Command_t command,flair::gui::GroupBox* setupgroupbox); ~Gx3_25_imu_impl(); void Run(void); private: void DeviceReset(void); void GetData(uint8_t* buf,ssize_t buf_size,flair::core::Time *time); float Dequeue(uint8_t** buf); void GyrosBias(void); void SamplingSettings(void); void SetBaudrate(int value); bool CalcChecksum(uint8_t *buf,int size); int FirmwareNumber(void); void PrintModelInfo(void); void RealignUpNorth(bool realign_up,bool realign_north); void SetContinuousMode(uint8_t continuous_command); flair::gui::GroupBox *setupgroupbox; flair::gui::SpinBox *data_rate,*gyro_acc_size,*mag_size,*up_comp,*north_comp; flair::gui::CheckBox *coning,*disable_magn,*disable_north_comp,*disable_grav_comp; flair::gui::PushButton *button_bias; flair::gui::Label *data_rate_label; flair::core::SerialPort *serialport; uint8_t command; flair::sensor::Gx3_25_imu *self; flair::core::AhrsData *ahrsData; }; #endif // GX3_25_IMU_IMPL_H