Changeset 13 in flair-dev for trunk/include/FlairSensorActuator/TargetController.h
- Timestamp:
- Apr 8, 2016, 3:39:24 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/FlairSensorActuator/TargetController.h
r4 r13 25 25 26 26 namespace flair { 27 28 29 30 31 32 33 34 35 36 37 27 namespace core { 28 class FrameworkManager; 29 class cvmatrix; 30 class Socket; 31 class io_data; 32 } 33 namespace gui { 34 class Tab; 35 class TabWidget; 36 class DataPlot1D; 37 } 38 38 } 39 39 40 namespace flair { namespace sensor { 41 enum class ControllerAction; 40 namespace flair { 41 namespace sensor { 42 enum class ControllerAction; 42 43 43 /*! \class TargetController 44 * 45 * \brief Base Class for target side remote controls 46 * 47 */ 48 class TargetController : public core::Thread, public core::IODevice { 49 public: 50 TargetController(const core::FrameworkManager* parent,std::string name,uint8_t priority=0); 51 ~TargetController(); 52 //void DrawUserInterface(); 53 virtual bool IsConnected() const=0; 54 virtual bool IsDataFrameReady()=0; 55 //axis stuff 56 unsigned int GetAxisNumber() const; 57 virtual std::string GetAxisName(unsigned int axisId) const; 58 float GetAxisValue(unsigned int axisId) const;// always in the range [-1.0,1.0] 59 //button stuff 60 unsigned int GetButtonNumber() const; 61 bool IsButtonPressed(unsigned int buttonId) const; 62 virtual std::string GetButtonName(unsigned int axisId) const; 63 //controller state stuff 64 virtual bool IsControllerActionSupported(ControllerAction action) const {return false;}; 65 bool SetLedOn(unsigned int ledId); 66 bool SetLedOff(unsigned int ledId); 67 bool Rumble(unsigned int left_force,unsigned int left_timeout,unsigned int right_force,unsigned int right_timeout); 68 bool FlashLed(unsigned int ledId,unsigned int on_timeout,unsigned int off_timeout); 69 void UpdateFrom(const core::io_data *data){}; //TODO 70 gui::Tab* GetTab(void) const; 44 /*! \class TargetController 45 * 46 * \brief Base Class for target side remote controls 47 * 48 */ 49 class TargetController : public core::Thread, public core::IODevice { 50 public: 51 TargetController(const core::FrameworkManager *parent, std::string name, 52 uint8_t priority = 0); 53 ~TargetController(); 54 // void DrawUserInterface(); 55 virtual bool IsConnected() const = 0; 56 virtual bool IsDataFrameReady() = 0; 57 // axis stuff 58 unsigned int GetAxisNumber() const; 59 virtual std::string GetAxisName(unsigned int axisId) const; 60 float 61 GetAxisValue(unsigned int axisId) const; // always in the range [-1.0,1.0] 62 // button stuff 63 unsigned int GetButtonNumber() const; 64 bool IsButtonPressed(unsigned int buttonId) const; 65 virtual std::string GetButtonName(unsigned int axisId) const; 66 // controller state stuff 67 virtual bool IsControllerActionSupported(ControllerAction action) const { 68 return false; 69 }; 70 bool SetLedOn(unsigned int ledId); 71 bool SetLedOff(unsigned int ledId); 72 bool Rumble(unsigned int left_force, unsigned int left_timeout, 73 unsigned int right_force, unsigned int right_timeout); 74 bool FlashLed(unsigned int ledId, unsigned int on_timeout, 75 unsigned int off_timeout); 76 void UpdateFrom(const core::io_data *data){}; // TODO 77 gui::Tab *GetTab(void) const; 71 78 72 protected: 73 virtual bool ProcessMessage(core::Message *msg)=0; 74 void QueueMessage(core::Message msg); 75 virtual bool ControllerInitialization()=0;// {return true;}; 76 //axis stuff 77 unsigned int axisNumber; 78 core::cvmatrix* axis=NULL; 79 virtual void AcquireAxisData(core::cvmatrix &axis)=0; //responsible for getting the axis data from the hardware 80 uint16_t bitsPerAxis; 81 //button stuff 82 unsigned int buttonNumber; 83 core::cvmatrix* button=NULL; 84 virtual void AcquireButtonData(core::cvmatrix &button)=0; //responsible for getting the button data from the hardware 85 //controller state stuff 86 unsigned int ledNumber; 87 private: 88 void Run(); 89 std::queue<core::Message *> changeStateQueue; 90 flair::gui::Tab* main_tab; 91 flair::gui::Tab* setup_tab; 92 }; 79 protected: 80 virtual bool ProcessMessage(core::Message *msg) = 0; 81 void QueueMessage(core::Message msg); 82 virtual bool ControllerInitialization() = 0; // {return true;}; 83 // axis stuff 84 unsigned int axisNumber; 85 core::cvmatrix *axis = NULL; 86 virtual void AcquireAxisData(core::cvmatrix &axis) = 0; // responsible for 87 // getting the axis 88 // data from the 89 // hardware 90 uint16_t bitsPerAxis; 91 // button stuff 92 unsigned int buttonNumber; 93 core::cvmatrix *button = NULL; 94 virtual void AcquireButtonData(core::cvmatrix &button) = 0; // responsible for 95 // getting the 96 // button data 97 // from the 98 // hardware 99 // controller state stuff 100 unsigned int ledNumber; 93 101 94 }} 102 private: 103 void Run(); 104 std::queue<core::Message *> changeStateQueue; 105 flair::gui::Tab *main_tab; 106 flair::gui::Tab *setup_tab; 107 }; 108 } 109 } 95 110 96 111 #endif // TARGETCONTROLLER_H
Note:
See TracChangeset
for help on using the changeset viewer.