Octopus!!
Dependencies: 2017NHKpin_config FEP HMC6352 PID QEI R1307 ikarashiMDC omni_wheel
Fork of KANIv3 by
bot/controller/controller.h
- Committer:
- number_key
- Date:
- 2017-11-23
- Revision:
- 52:320f910ca6ca
- Parent:
- 49:69a7235d837a
File content as of revision 52:320f910ca6ca:
/** * @file controller.h * @brief FEPを使ったコントローラ受信部 * * Example : * @code * #include "mbed.h" * #include "controller.h" * * Controller pad(PA_9, PA_10, 200); * Serial pc(USBTX, USBRX, 115200); * * int main() * { * while(1) { * if(pad.receiveState()) { * for(int i = 0; i < 7; i++) pc.printf("%d, ", pad.getButton1(i)); * for(int i = 0; i < 6; i++) pc.printf("%d, ", pad.getButton2(i)); * pc.printf("\r\n"); * } else { * pc.printf("ERROR\n\r"); * } * } * } * @endcode */ #ifndef CONTROLLER_H #define CONTROLLER_H #include "mbed.h" #include "pin_config.h" #include <math.h> #include "FEP.h" // const double M_PI = 3.141592653589793; const int ADDR1 = 211; const int ADDR2 = 209; const bool FEP_SUCCESS =0; const int DATA_SIZE = 6; const float STICK_DIVIDE = 255.0; const float STICK_NEWTRAL = 0.1; const float STICK_NORM_MAX =1.0; /** * @brief FEPを使ったコントローラのクラス */ class Controller : public FEP { public : /** * @brief コンストラクタ */ Controller(); /** * @brief コンストラクタ * @param FEPtx FEPtx * @param FEPrx FEPrx * @param addr address */ Controller(PinName FEPtx, PinName FEPrx,int addr); /** * @brief メンバ変数にボタンのステートを格納 */ int receiveState(); /** * ボタン1の状態を取得 * @param number button number * @return status */ bool getButton1(int number) const; /** * ボタン2の状態を取得 * @param number button number * @return status */ bool getButton2(int number) const; /** * スティックの値を取得 * @param number sticknumber(x, y, x, y) * @return stick value */ float getStick(int number) const; /** * スチィックの角度を取得 * @param number left...0 right...1 * @return radian */ float getRadian(int number) const; /** * スティックの距離を取得 * @param number left..0 right..1 * @return norm */ float getNorm(int number) const; private : void setStick(); char data[6]; uint8_t fepTemp; protected : bool button1[7]; bool button2[6]; double stick[4]; double radian[2]; double norm[2]; }; #endif//CONTROLLER_H