2016_05_19ver Auto mode 10sec forward, 2sec stop, 2sec right turn Please change test_mode's right turn ppm
Dependencies: VNH5019 AigamozuControlPackets_2016
Dependents: Aigamozu_Robot_2016_ver1 GPSLOG_program AigamozuControlPackets_2016
Fork of AigamozuControlPackets by
AigamozuControlPackets.h
- Committer:
- s1210160
- Date:
- 2017-10-29
- Revision:
- 50:3511be172d81
- Parent:
- 48:ee5a6906273e
File content as of revision 50:3511be172d81:
#include "mbed.h" #include "VNH5019.h" #ifndef AIGAMOZU_CONTROL_PACKETS #define AIGAMOZU_CONTROL_PACKETS #define MANUAL_COMMAND_LENGTH 17 #define REQUEST_COMMNAD_LENGTH 11 #define CHANGE_MODE_COMMAND_LENGTH 12 #define RECEIVE_STATUS_COMMNAD_LENGTH 64 #define vertex2D vector2D #define BASENUMBER 10 #define speed 96 enum COMMAND_TYPE {MANUAL = 'M', STATUS_REQUEST = 'S', CHANGE_MODE = 'C', RECEIVE_STATUS = 'R',RECEIVE_KALMAN = 'K'}; enum MODE {STANDBY_MODE = 0, MANUAL_MODE = 1, AUTO_MODE = 2, AUTO_GPS_MODE = 3}; enum STATUS {GPS_AVAIL = 0, GPS_UNAVAIL = 1, GPS_OUT_AREA = 2}; class AigamozuControlPackets { //--------PRIVATE-----------// private: VNH5019 _agzSheild; MODE nowMode; STATUS nowStatus; bool out_flag; union UNION_double_char { double double_value; uint8_t char_value[8]; }; struct vector2D { double x; double y; }; uint8_t* packetData; int packetLength; // 割り込み Ticker eachModeInt; //自分自身の位置の情報(double型) vector2D agzPoint; //ベースの位置の情報(double型) vector2D basePoint[BASENUMBER]; //--------PUBLIC-----------// public: AigamozuControlPackets(VNH5019 agzSheild); vector2D sub_vector(vector2D A, vector2D B); bool checkInOut(vector2D A, vector2D B, vector2D C, vector2D P); void autoMoving(void); // Create Packet: Robot -> Base, Manager -> Robot/Base void createRequestCommand(uint8_t fromID, uint8_t toID); // Create Packet: Base -> Robot/Manager, Robot -> Manager void createReceiveStatusCommand(uint8_t fromID, uint8_t toID, int state); // update data void reNewRobotPoint(long latitudeH, long latitudeL, long longitudeH, long longitudeL); void reNewBasePoint(int id, uint8_t *latitude, uint8_t *longitude); // Manual Mode void manualMode(void); // Change Mode void changeMode(uint8_t *buf); // set void set_nowStatus(STATUS s); // get MODE get_nowMode(void); uint8_t* get_packetData(void); int get_packetLength(void); bool get_out_flag(void); double get_agzPoint_latitude(void); double get_agzPoint_longitude(void); double get_basePoint_latitude(int i); double get_basePoint_longitude(int i); }; #endif