#ifndef JOYSTICK_H #define JOYSTICK_H #include #include #include #include #include "QThread" #include "QDebug" #include "QPicture" class JoyStick : public QWidget { Q_OBJECT public: enum { Max_Error = 0, Min_Error, Rate_Error, Dir_Error}; enum { REVERSE = -1, NORMAL = 1 }; explicit JoyStick(QWidget *parent = 0); ~JoyStick(); void setValue(uint16_t ch,uint16_t value); void setRecovery(uint16_t ch,bool state); void setTrim(uint16_t ch,int16_t value); void setMaximum(uint16_t ch,uint16_t value); void setMinimum(uint16_t ch,uint16_t value); void setDirection(uint16_t ch, int8_t value); signals: void error(uint16_t type); void positionChange(uint16_t channel0,uint16_t channel1); protected: void mouseReleaseEvent(QMouseEvent *e); void mousePressEvent(QMouseEvent *e); void mouseMoveEvent(QMouseEvent *e); //void mouseDoubleClickEvent(QMouseEvent *e); //void wheelEvent(QWheelEvent *e); int16_t Limit(int16_t pos,int16_t min,int16_t max); void paintEvent(QPaintEvent *); void drawStick(QPainter*painter); private: uint16_t m_channel[2] = {1500,1500}; uint16_t m_trim[2] = {0,0}; bool m_recovery[2] = {true,true}; int8_t m_dir[2] = {NORMAL,NORMAL};//数据方向 uint16_t m_max[2] = {1900,1900}; uint16_t m_min[2] = {1100,1100}; int16_t m_pos[2] = {0,0}; QList rcdata; }; #endif // JOYSTICK_H