QC Control software

Dependencies:   mbed

Fork of dgps by Colin Stearns

Committer:
dylanembed123
Date:
Mon May 05 13:20:35 2014 +0000
Revision:
66:5d43988d100c
Parent:
62:31ed14d02627
Final Project;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
krobertson 20:81d5655fecc2 1 #include "handleCommand.h"
krobertson 20:81d5655fecc2 2
krobertson 20:81d5655fecc2 3 CommandHandle* CommandHandle::hand = NULL;
krobertson 20:81d5655fecc2 4
krobertson 20:81d5655fecc2 5 void CommandHandle::setup(){
krobertson 20:81d5655fecc2 6 initialized = false;
krobertson 20:81d5655fecc2 7 }
krobertson 20:81d5655fecc2 8
krobertson 20:81d5655fecc2 9 int CommandHandle::getNextPacketType(){
krobertson 20:81d5655fecc2 10 PacketStruct pack;
krobertson 20:81d5655fecc2 11 char rx_status = getPS().receivePacket(&pack);
krobertson 20:81d5655fecc2 12 if(rx_status == 1){
krobertson 20:81d5655fecc2 13 return pack.type;
krobertson 20:81d5655fecc2 14 }
krobertson 20:81d5655fecc2 15 return -1;
krobertson 20:81d5655fecc2 16 }
krobertson 20:81d5655fecc2 17
krobertson 20:81d5655fecc2 18 void CommandHandle::getCommands(){
krobertson 20:81d5655fecc2 19 getPS().openConnection();
krobertson 20:81d5655fecc2 20 getPS().sendPacket(0,NULL,0,PT_EMPTY);
krobertson 20:81d5655fecc2 21 getPS().sendPacket(0,NULL,0,PT_GETCOMMANDS);
krobertson 20:81d5655fecc2 22 getPS().clearRXBuffer();
krobertson 20:81d5655fecc2 23 getPS().sendPacket(0,NULL,0,PT_END);
krobertson 20:81d5655fecc2 24 char startCommandsReceived = 0;
krobertson 20:81d5655fecc2 25 char endCommandsReceived = 0;
krobertson 20:81d5655fecc2 26 char pack_type_failed = 0;
krobertson 20:81d5655fecc2 27 char waypoints_sent = 0;
krobertson 20:81d5655fecc2 28 char location_requested = 0;
krobertson 20:81d5655fecc2 29 if(getPS().getSynced() == 1){
krobertson 20:81d5655fecc2 30 while(!endCommandsReceived && !pack_type_failed){
krobertson 20:81d5655fecc2 31 int pack_type = getNextPacketType();
krobertson 20:81d5655fecc2 32 if(pack_type < 0){
krobertson 20:81d5655fecc2 33 USB::getSerial().printf("Failed to get packet type!\r\n");
krobertson 20:81d5655fecc2 34 pack_type_failed = 1;
krobertson 20:81d5655fecc2 35 }else{
krobertson 20:81d5655fecc2 36 switch(pack_type){
krobertson 20:81d5655fecc2 37 case PT_STARTCOMMANDS:
krobertson 51:d6b64ac3c30d 38 //USB::getSerial().printf("Start Commands\r\n");
krobertson 20:81d5655fecc2 39 startCommandsReceived = 1;
krobertson 20:81d5655fecc2 40 break;
krobertson 20:81d5655fecc2 41 case PT_ENDCOMMANDS:
krobertson 20:81d5655fecc2 42 endCommandsReceived = 1;
krobertson 20:81d5655fecc2 43 USB::getSerial().printf("End Commands\r\n");
krobertson 20:81d5655fecc2 44 break;
krobertson 20:81d5655fecc2 45 case PT_WAY:
krobertson 20:81d5655fecc2 46 GPSHandle::getGPSHand().readWaypoints();
krobertson 20:81d5655fecc2 47 break;
krobertson 20:81d5655fecc2 48 case PT_REQLOC:
krobertson 20:81d5655fecc2 49 USB::getSerial().printf("\r\n\r\nLocation Requested!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n\r\n\r\n");
krobertson 20:81d5655fecc2 50 location_requested = 1;
krobertson 20:81d5655fecc2 51 break;
krobertson 20:81d5655fecc2 52 default:
krobertson 20:81d5655fecc2 53 USB::getSerial().printf("Unknown command issued: %d\r\n",pack_type);
krobertson 20:81d5655fecc2 54 break;
krobertson 20:81d5655fecc2 55 }
krobertson 20:81d5655fecc2 56 }
krobertson 20:81d5655fecc2 57 }
krobertson 20:81d5655fecc2 58 }else{
krobertson 20:81d5655fecc2 59 USB::getSerial().printf("Failed to sync!!!!!\r\n");
krobertson 20:81d5655fecc2 60 }
krobertson 20:81d5655fecc2 61 USB::getSerial().printf("Done Getting Commands. Closing Connection.\r\n");
krobertson 20:81d5655fecc2 62 getPS().closeConnection();
krobertson 62:31ed14d02627 63 //if(location_requested){
krobertson 20:81d5655fecc2 64 USB::getSerial().printf("sending location...\r\n");
krobertson 20:81d5655fecc2 65 GPSHandle::getGPSHand().sendLoc();
krobertson 62:31ed14d02627 66 //}
krobertson 20:81d5655fecc2 67 }
krobertson 20:81d5655fecc2 68
krobertson 20:81d5655fecc2 69 void CommandHandle::locationRequest(){
krobertson 20:81d5655fecc2 70
krobertson 20:81d5655fecc2 71 }
krobertson 20:81d5655fecc2 72
krobertson 20:81d5655fecc2 73 bool CommandHandle::check(){
krobertson 20:81d5655fecc2 74 return true;
krobertson 20:81d5655fecc2 75 }
krobertson 20:81d5655fecc2 76
krobertson 20:81d5655fecc2 77 void CommandHandle::run(){
krobertson 20:81d5655fecc2 78 if(!initialized){
krobertson 20:81d5655fecc2 79 initialized=true;
krobertson 20:81d5655fecc2 80 USB::getSerial().printf("Setup Command Handler\r\n");
krobertson 20:81d5655fecc2 81 setup();
krobertson 20:81d5655fecc2 82 }
krobertson 20:81d5655fecc2 83 if(check()){
krobertson 20:81d5655fecc2 84 USB::getSerial().printf("Getting Commands\r\n");
krobertson 20:81d5655fecc2 85 getCommands();
krobertson 20:81d5655fecc2 86 USB::getSerial().printf("Done Getting Commans\r\n");
krobertson 20:81d5655fecc2 87 }
krobertson 20:81d5655fecc2 88 }