// %flair:license{ // This file is part of the Flair framework distributed under the // CECILL-C License, Version 1.0. // %flair:license} // created: 2013/12/19 // filename: ParrotBldc_impl.h // // author: Guillaume Sanahuja // Copyright Heudiasyc UMR UTC/CNRS 7253 // // version: $Id: $ // // purpose: Classe integrant les moteurs ardrone // // /*********************************************************************/ #ifndef PARROTBLDC_IMPL_H #define PARROTBLDC_IMPL_H #include #include namespace flair { namespace core { class SerialPort; } namespace actuator { class ParrotBldc; } } class ParrotBldc_impl { public: ParrotBldc_impl(flair::actuator::ParrotBldc* self,flair::core::SerialPort* serialport); ~ParrotBldc_impl(); void UpdateFrom(flair::core::io_data *data); void SetMotors(float* value); private: typedef struct GpioData_t { int gpio; int value; } GpioData_t; enum class GpioMode_t { GpioInput = 0, // Pin configured for input GpioOutputLow, // Pin configured for output with low level GpioOutputHigh, // Pin configured for output with high level }; typedef struct GpioDirection_t { int gpio; GpioMode_t mode; } GpioDirection_t; void StartTest(void); void StopTest(void); void ResetBldc(void); void SetGPIODirection(int gpio,GpioMode_t mode); void SetGPIOValue(int gpio,bool value); int WriteCmd(uint8_t cmd, uint8_t *reply, int replylen); void SetLeds(uint8_t led0, uint8_t led1, uint8_t led2, uint8_t led3); flair::actuator::ParrotBldc* self; flair::core::SerialPort* serialport; bool is_reseted; int fd; }; #endif // PARROTBLDC_IMPL_H