Hayato Kikuchi
/
controllerForMbed_test
Controller Class for Mbed.
Controller.h
- Committer:
- kikuchi8810
- Date:
- 2021-12-17
- Revision:
- 1:ab1c94d6f4fb
- Parent:
- 0:4f5b9889cbc4
File content as of revision 1:ab1c94d6f4fb:
#ifndef CONTROLLER_H #define CONTROLLER_H #include "mbed.h" #include "RawSerial.h" #include "define.h" struct ControllerData{ unsigned int ButtonState; uint8_t RJoyX, RJoyY, LJoyX, LJoyY; }; class Controller{ public: Controller(PinName tx, PinName rx, int baudrate); int count_ms, pre_count_ms; //受信時刻と前回の受信時刻 bool readButton_bin(unsigned int ButtonNum); //押していない時はfalse(0),押してるときはtrue(1)を返す. ButtonNumはデータの欲しいボタンの名前を int readButton(unsigned int ButtonNum); //上にプラスして 押した瞬間は2,放した瞬間は-1を返す. define.hを参考に数字を入力しても良い bool getComCheck(void); //値が更新されたときにtrueを返す. bool update(); //受信の処理+ボタンの情報の更新.受信割込みで処理 void init(int _time_out_ms, int _int_time_ms); //コントローラの通信速度と通信のタイムアウト時間を設定 bool available(void); unsigned int getButtonState(); //分解する前のButtonStateの情報をprint 0~255の値をとる void clearButtonState(); ControllerData getConData(); unsigned int getButtonFlagRise(); unsigned int getButtonFlagFall(); // X double readJoyRX(); // ^ double readJoyRY(); // | double readJoyLX(); // Y<---+---- double readJoyLY(); // | // | // 1.0 ~ -1.0 // X uint8_t readJoyRXbyte(); // ^ uint8_t readJoyRYbyte(); // | uint8_t readJoyLXbyte(); // Y<---+---- uint8_t readJoyLYbyte(); // | // | // 255 ~ 0 private: RawSerial serial; //Timer timer; bool comCheck; ControllerData conData; ControllerData pre_conData; unsigned int lastButtonState; int time_out_ms; double int_time_ms; bool conAvailable; uint8_t serial_recieve(){ char temp; do{ temp = serial.getc(); } while(temp==-1); //CONTROL.write(temp); //受け取ったデータをTXピンからそのまま送っている.他のマイコンにも流したいとき用. return temp; } }; #endif