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@50:3511be172d81, 2017-10-29 (annotated)
- Committer:
- s1210160
- Date:
- Sun Oct 29 00:56:51 2017 +0000
- Revision:
- 50:3511be172d81
- Parent:
- 48:ee5a6906273e
commit;
Who changed what in which revision?
User | Revision | Line number | New 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 |