yokokawa
Dependencies: ADXL345 AigamozuControlPackets HMC5843 ITG3200 MBed_Adafruit-GPS-Library XBee agzIDLIST agz_common mbed
Fork of aigamozu_program_ver2 by
Revision 4:39d2aadf3068, committed 2014-06-04
- Comitter:
- m5171135
- Date:
- Wed Jun 04 09:12:29 2014 +0000
- Parent:
- 3:1229ca3df855
- Child:
- 5:940424ec98a8
- Commit message:
- aaaa
Changed in this revision
--- a/AigamozuControlPackets.lib Fri May 30 15:36:33 2014 +0000 +++ b/AigamozuControlPackets.lib Wed Jun 04 09:12:29 2014 +0000 @@ -1,1 +1,1 @@ -AigamozuControlPackets#2b8b56ac7a82 +AigamozuControlPackets#80448565c15c
--- a/agzIDLIST.lib Fri May 30 15:36:33 2014 +0000 +++ b/agzIDLIST.lib Wed Jun 04 09:12:29 2014 +0000 @@ -1,1 +1,1 @@ -agzIDLIST#47077248134f +agzIDLIST#01ef30559773
--- a/main.cpp Fri May 30 15:36:33 2014 +0000
+++ b/main.cpp Wed Jun 04 09:12:29 2014 +0000
@@ -5,24 +5,25 @@
// Program name: Aigamozu Robot Control
// author: Atsunori Maruyama
// ver -> 1.0
-// day -> 2014/05/21
//
//
//
/**********************************************/
+
#include "mbed.h"
#include "XBee.h"
#include "MBed_Adafruit_GPS.h"
+#include "AigamozuControlPackets.h"
#include "VNH5019.h"
#include "agzIDLIST.h"
#include "aigamozuSetting.h"
-#include "AigamozuControlPackets.h"
/////////////////////////////////////////
//
//Connection Setting
//
/////////////////////////////////////////
+
//Serial Connect Setting: PC <--> mbed
Serial pc(USBTX, USBRX);
@@ -39,11 +40,11 @@
//Pin Setting
//
/////////////////////////////////////////
+
//Motor Contorol Pin Setting
VNH5019 motorShield(p21,p22,p23,p24,p25,p26);
AigamozuControlPackets agz;
-
//Interrupt Setting
Ticker axis;
Ticker auth_axis;
@@ -109,6 +110,8 @@
count++;
}
+
+
/////////////////////////////////////////
//
//Main Processing
@@ -140,10 +143,11 @@
//interrupt start
axis.attach(&axisRenovation, 0.1);
refresh_Timer.start();
-
+
+
while (true) {
- //recive xbee module
+ //Check Xbee Buffer Available
xbee.readPacket();
if (xbee.getResponse().isAvailable()) {
if (xbee.getResponse().getApiId() == ZB_RX_RESPONSE) {
@@ -151,39 +155,42 @@
unsigned char *buf = zbRx.getFrameData();
- //Analyze the command type
+ //Check Command Type
switch(agz.checkCommnadType(buf)){
-
- //CommnadType -> ChangeModeCommand;;;
- case CHANGE_MODE:{
+ //CommandType -> ChanegeMode
+ case CHANGE_MODE :{
my_mode = buf[19];
motorShield.changeSpeed(0,0,0,0);
if(my_mode == 2) auth_axis.attach(&randomRenovation, 1.0);
else auth_axis.detach();
break;
}
-
- //CommnadType -> ManualCommand;;;
+
+ //CommandType -> Manual
case MANUAL:{
- /// @todo Magic.
- if(my_mode == 1){
- manual_count = 0;
- motorShield.changeSpeed(buf[20],buf[21],buf[23],buf[24]);
+ //Check now Mode
+ if(agz.nowMode == MANUAL_MODE){
+ //manual_count = 0;
+ //Change Motor Behavior
+ motorShield.changeSpeed(buf[20],buf[21],buf[23],buf[24]);
}
break;
}
- //SendStatus
+ //CommandType -> Send Status
case STATUS_REQUEST:{
- //Create packet
- uint8_t* data = agz.createStatusPacket(myGPS.latitudeH, myGPS.latitudeL, myGPS.longitudeH, myGPS.longitudeL,1,2);
- ZBTxRequest tx64request(remoteAddress,data,sizeof(data));
- //Send GPS ingomation
+ //Create GPS Infomation Packet
+ uint8_t* data = agz.createStatusPacket(myGPS.longitudeH,myGPS.longitudeL,myGPS.latitudeH,myGPS.latitudeL,'B','a');
+ //Select Destination
+ ZBTxRequest tx64request(remoteAddress,data,RECEIVES_GPS_STATUS_LENGTH);
+ //Send -> Base
xbee.send(tx64request);
- break;
+ //Buffer Release
+ delete data;
+ break;
+
}
-
- //Default
+
default:
{
break;
@@ -191,7 +198,6 @@
}
}
}
-
myGPS.read();
//recive gps module
@@ -204,8 +210,8 @@
if (refresh_Timer.read_ms() >= refresh_Time) {
refresh_Timer.reset();
- if (myGPS.fix) my_status = 0;
- else my_status = 1;
+ if (myGPS.fix) agz.nowStatus = GPS_AVAIL;
+ else agz.nowStatus = GPS_UNAVAIL;
}
}
}
\ No newline at end of file
