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 aigamozu

Committer:
s1210160
Date:
Sun Oct 29 00:56:51 2017 +0000
Revision:
50:3511be172d81
Parent:
48:ee5a6906273e
commit;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
m5171135 0:2b8b56ac7a82 1 #include "mbed.h"
m5171135 0:2b8b56ac7a82 2 #include "VNH5019.h"
m5171135 0:2b8b56ac7a82 3
m5171135 0:2b8b56ac7a82 4 #ifndef AIGAMOZU_CONTROL_PACKETS
m5171135 0:2b8b56ac7a82 5 #define AIGAMOZU_CONTROL_PACKETS
m5171135 0:2b8b56ac7a82 6
m5171135 2:3f2d4f53ceed 7 #define MANUAL_COMMAND_LENGTH 17
m5171135 2:3f2d4f53ceed 8 #define REQUEST_COMMNAD_LENGTH 11
m5171135 2:3f2d4f53ceed 9 #define CHANGE_MODE_COMMAND_LENGTH 12
kityann 17:a6fa8cc96d94 10 #define RECEIVE_STATUS_COMMNAD_LENGTH 64
m5171135 0:2b8b56ac7a82 11
m5171135 7:200ce5c1f486 12 #define vertex2D vector2D
m5171135 7:200ce5c1f486 13
kityann 19:13b24b50800e 14 #define BASENUMBER 10
s1200058 48:ee5a6906273e 15 #define speed 96
kityann 19:13b24b50800e 16
kityann 13:a5bc425540a7 17 enum COMMAND_TYPE {MANUAL = 'M', STATUS_REQUEST = 'S', CHANGE_MODE = 'C', RECEIVE_STATUS = 'R',RECEIVE_KALMAN = 'K'};
s1210160 50:3511be172d81 18 enum MODE {STANDBY_MODE = 0, MANUAL_MODE = 1, AUTO_MODE = 2, AUTO_GPS_MODE = 3};
s1210160 50:3511be172d81 19 enum STATUS {GPS_AVAIL = 0, GPS_UNAVAIL = 1, GPS_OUT_AREA = 2};
m5171135 7:200ce5c1f486 20
s1210160 50:3511be172d81 21 class AigamozuControlPackets
s1210160 50:3511be172d81 22 {
s1210160 50:3511be172d81 23 //--------PRIVATE-----------//
s1210160 50:3511be172d81 24 private:
s1210160 50:3511be172d81 25 VNH5019 _agzSheild;
s1210160 50:3511be172d81 26
m5171135 0:2b8b56ac7a82 27 MODE nowMode;
m5171135 0:2b8b56ac7a82 28 STATUS nowStatus;
s1210160 50:3511be172d81 29 bool out_flag;
s1210160 50:3511be172d81 30
s1210160 50:3511be172d81 31 union UNION_double_char {
s1210160 50:3511be172d81 32 double double_value;
s1210160 50:3511be172d81 33 uint8_t char_value[8];
s1210160 50:3511be172d81 34 };
s1210160 50:3511be172d81 35
s1210160 50:3511be172d81 36 struct vector2D {
s1210160 50:3511be172d81 37 double x;
s1210160 50:3511be172d81 38 double y;
s1210160 50:3511be172d81 39 };
s1210160 50:3511be172d81 40
s1210160 50:3511be172d81 41 uint8_t* packetData;
m5171135 4:04dadf67ecb6 42 int packetLength;
s1210160 50:3511be172d81 43
s1210160 50:3511be172d81 44 // 割り込み
s1210160 50:3511be172d81 45 Ticker eachModeInt;
s1210160 50:3511be172d81 46
s1210160 50:3511be172d81 47 //自分自身の位置の情報(double型)
s1210160 50:3511be172d81 48 vector2D agzPoint;
s1210160 50:3511be172d81 49 //ベースの位置の情報(double型)
s1210160 50:3511be172d81 50 vector2D basePoint[BASENUMBER];
s1210160 50:3511be172d81 51
s1210160 50:3511be172d81 52 //--------PUBLIC-----------//
s1210160 50:3511be172d81 53 public:
s1210160 50:3511be172d81 54 AigamozuControlPackets(VNH5019 agzSheild);
kityann 17:a6fa8cc96d94 55
s1210160 50:3511be172d81 56 vector2D sub_vector(vector2D A, vector2D B);
s1210160 50:3511be172d81 57 bool checkInOut(vector2D A, vector2D B, vector2D C, vector2D P);
s1210160 50:3511be172d81 58 void autoMoving(void);
s1200058 20:fec2d6dec897 59
s1210160 50:3511be172d81 60 // Create Packet: Robot -> Base, Manager -> Robot/Base
s1210160 50:3511be172d81 61 void createRequestCommand(uint8_t fromID, uint8_t toID);
s1210160 50:3511be172d81 62
s1210160 50:3511be172d81 63 // Create Packet: Base -> Robot/Manager, Robot -> Manager
s1210160 50:3511be172d81 64 void createReceiveStatusCommand(uint8_t fromID, uint8_t toID, int state);
s1210160 50:3511be172d81 65
s1210160 50:3511be172d81 66 // update data
s1210160 50:3511be172d81 67 void reNewRobotPoint(long latitudeH, long latitudeL, long longitudeH, long longitudeL);
s1210160 50:3511be172d81 68 void reNewBasePoint(int id, uint8_t *latitude, uint8_t *longitude);
s1210160 50:3511be172d81 69
s1210160 50:3511be172d81 70 // Manual Mode
s1210160 50:3511be172d81 71 void manualMode(void);
s1210160 50:3511be172d81 72
s1210160 50:3511be172d81 73 // Change Mode
s1210160 50:3511be172d81 74 void changeMode(uint8_t *buf);
s1200058 24:ed71894a6952 75
s1210160 50:3511be172d81 76 // set
s1210160 50:3511be172d81 77 void set_nowStatus(STATUS s);
s1210160 50:3511be172d81 78
s1210160 50:3511be172d81 79 // get
s1210160 50:3511be172d81 80 MODE get_nowMode(void);
s1210160 50:3511be172d81 81 uint8_t* get_packetData(void);
s1210160 50:3511be172d81 82 int get_packetLength(void);
s1210160 50:3511be172d81 83 bool get_out_flag(void);
s1210160 50:3511be172d81 84 double get_agzPoint_latitude(void);
s1210160 50:3511be172d81 85 double get_agzPoint_longitude(void);
s1210160 50:3511be172d81 86 double get_basePoint_latitude(int i);
s1210160 50:3511be172d81 87 double get_basePoint_longitude(int i);
s1210160 50:3511be172d81 88
s1210160 50:3511be172d81 89 };
m5171135 0:2b8b56ac7a82 90 #endif