aigamozu / AigamozuControlPackets_展示会

Dependencies:   VNH5019

Dependents:   Aigamozu_Robot_展示会 Aigamozu_Robot_March Aigamozu_Robot_templete

Fork of AigamozuControlPackets by aigamozu

Committer:
s1200058
Date:
Mon Oct 24 08:14:05 2016 +0000
Revision:
41:fbf8f617a6ab
Parent:
40:c0cf45cf5eeb
Child:
42:04ca5242eaf2
Child:
50:61d72f617aa5
for???

Who changed what in which revision?

UserRevisionLine numberNew contents of line
m5171135 0:2b8b56ac7a82 1 #include "AigamozuControlPackets.h"
m5171135 0:2b8b56ac7a82 2 #include "VNH5019.h"
m5171135 0:2b8b56ac7a82 3
s1200058 41:fbf8f617a6ab 4 #define RIGHT_SPEED 16
s1200058 41:fbf8f617a6ab 5 #define LEFT_SPEED 54
s1200058 41:fbf8f617a6ab 6 #define FORWARD_SPEED 64
s1200058 41:fbf8f617a6ab 7
m5171135 6:f164a716be46 8 //////////////////////////////
m5171135 6:f164a716be46 9 // Init //
m5171135 6:f164a716be46 10 //////////////////////////////
m5171135 5:3f51eeb5aedc 11 AigamozuControlPackets::AigamozuControlPackets(VNH5019 agzSheild):_agzSheild(agzSheild){
m5171135 2:3f2d4f53ceed 12 }
m5171135 2:3f2d4f53ceed 13
kityann 17:a6fa8cc96d94 14 //////////////////////////////
m5171135 2:3f2d4f53ceed 15 // Using createPacket //
m5171135 2:3f2d4f53ceed 16 //////////////////////////////
m5171135 4:04dadf67ecb6 17 uint8_t AigamozuControlPackets::checkCommnadType(uint8_t* buf){
m5171135 4:04dadf67ecb6 18 return buf[14];
m5171135 4:04dadf67ecb6 19 }
m5171135 2:3f2d4f53ceed 20
m5171135 2:3f2d4f53ceed 21 uint8_t* AigamozuControlPackets::getPacketData(){
m5171135 2:3f2d4f53ceed 22 return packetData;
m5171135 2:3f2d4f53ceed 23 }
m5171135 2:3f2d4f53ceed 24
m5171135 2:3f2d4f53ceed 25 int AigamozuControlPackets::getPacketLength(){
m5171135 2:3f2d4f53ceed 26 return packetLength;
m5171135 0:2b8b56ac7a82 27 }
m5171135 0:2b8b56ac7a82 28
m5171135 5:3f51eeb5aedc 29 void AigamozuControlPackets::changeSpeed(uint8_t* buf){
m5171135 5:3f51eeb5aedc 30 if(nowMode == MANUAL_MODE){
m5171135 5:3f51eeb5aedc 31 manualCount =0;
m5171135 5:3f51eeb5aedc 32 _agzSheild.changeSpeed(buf[20],buf[21],buf[23],buf[24]);
m5171135 5:3f51eeb5aedc 33 }
m5171135 5:3f51eeb5aedc 34 }
m5171135 4:04dadf67ecb6 35
m5171135 6:f164a716be46 36 //////////////////////////////
m5171135 6:f164a716be46 37 // each mode interrupt //
m5171135 6:f164a716be46 38 //////////////////////////////
m5171135 6:f164a716be46 39
m5171135 6:f164a716be46 40 void AigamozuControlPackets::manualMode(){
m5171135 6:f164a716be46 41 manualCount++;
m5171135 6:f164a716be46 42 if(manualCount > 10){
m5171135 6:f164a716be46 43 _agzSheild.changeSpeed(0,0,0,0);
m5171135 6:f164a716be46 44 manualCount = 0;
m5171135 6:f164a716be46 45 }
m5171135 6:f164a716be46 46 }
m5171135 6:f164a716be46 47
s1200058 41:fbf8f617a6ab 48 bool AigamozuControlPackets::gpsAuto(/*const int autobase[]*/){
m5171135 5:3f51eeb5aedc 49
kityann 10:e77c664ee5e2 50 /*
kityann 10:e77c664ee5e2 51 _agzSheild.changeSpeed(2,128,2,128):for moving robot
kityann 10:e77c664ee5e2 52 */
kityann 10:e77c664ee5e2 53
s1200058 41:fbf8f617a6ab 54 if(nowMode == AUTO_GPS_MODE){
s1200058 41:fbf8f617a6ab 55
s1200058 41:fbf8f617a6ab 56 if(Move_Timer.read_ms() < 6000){
s1200058 41:fbf8f617a6ab 57 _agzSheild.changeSpeed(1,LEFT_SPEED,1,RIGHT_SPEED);//straight
s1200058 41:fbf8f617a6ab 58 }else if(Move_Timer.read_ms() >= 6000){
s1200058 41:fbf8f617a6ab 59 _agzSheild.changeSpeed(0,LEFT_SPEED,0,RIGHT_SPEED);
s1200058 41:fbf8f617a6ab 60 Move_Timer.reset();
kityann 10:e77c664ee5e2 61 }
s1200058 32:cd68a37d1ee1 62 }
s1200058 41:fbf8f617a6ab 63
s1200058 41:fbf8f617a6ab 64 return 1;
kityann 10:e77c664ee5e2 65 }
s1200058 41:fbf8f617a6ab 66
m5171135 7:200ce5c1f486 67
m5171135 7:200ce5c1f486 68
m5171135 7:200ce5c1f486 69
m5171135 5:3f51eeb5aedc 70
m5171135 6:f164a716be46 71 //////////////////////////////
m5171135 6:f164a716be46 72 // Mode change //
m5171135 6:f164a716be46 73 //////////////////////////////
m5171135 2:3f2d4f53ceed 74 bool AigamozuControlPackets::changeMode(uint8_t *buf){
m5171135 2:3f2d4f53ceed 75
m5171135 6:f164a716be46 76 //reset
m5171135 5:3f51eeb5aedc 77 _agzSheild.changeSpeed(0,0,0,0);
m5171135 6:f164a716be46 78 eachModeInt.detach();
m5171135 5:3f51eeb5aedc 79
m5171135 6:f164a716be46 80 //Select Mode
s1200058 29:3a2d87c10e43 81 switch(buf[19]){
m5171135 2:3f2d4f53ceed 82 case 0:
m5171135 2:3f2d4f53ceed 83 nowMode = STANDBY_MODE;
m5171135 2:3f2d4f53ceed 84 break;
m5171135 2:3f2d4f53ceed 85
m5171135 2:3f2d4f53ceed 86 case 1:
m5171135 6:f164a716be46 87 eachModeInt.attach(this,&AigamozuControlPackets::manualMode,1.0);
m5171135 2:3f2d4f53ceed 88 nowMode = MANUAL_MODE;
m5171135 2:3f2d4f53ceed 89 break;
m5171135 2:3f2d4f53ceed 90
m5171135 2:3f2d4f53ceed 91 case 2:
kityann 11:4d71c9cc3b4a 92 nowMode = AUTO_GPS_MODE;
s1200058 33:c11a9cb35840 93 Move_Timer.reset();
m5171135 2:3f2d4f53ceed 94 break;
m5171135 4:04dadf67ecb6 95
m5171135 4:04dadf67ecb6 96 case 3:
m5171135 4:04dadf67ecb6 97 nowMode = AUTO_GPS_MODE;
s1200058 33:c11a9cb35840 98 Move_Timer.reset();
m5171135 4:04dadf67ecb6 99 break;
m5171135 4:04dadf67ecb6 100
m5171135 6:f164a716be46 101 default:
m5171135 6:f164a716be46 102 nowMode = STANDBY_MODE;
m5171135 6:f164a716be46 103 break;
m5171135 5:3f51eeb5aedc 104
m5171135 2:3f2d4f53ceed 105 }
m5171135 2:3f2d4f53ceed 106 return false;
m5171135 2:3f2d4f53ceed 107 }
m5171135 5:3f51eeb5aedc 108
m5171135 5:3f51eeb5aedc 109
m5171135 2:3f2d4f53ceed 110