QC Control software

Dependencies:   mbed

Fork of dgps by Colin Stearns

Committer:
krobertson
Date:
Sat Apr 26 06:49:37 2014 +0000
Revision:
51:d6b64ac3c30d
Parent:
20:81d5655fecc2
Child:
62:31ed14d02627
It mother fucking worked! Just walked the path

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 20:81d5655fecc2 63 if(location_requested){
krobertson 20:81d5655fecc2 64 USB::getSerial().printf("sending location...\r\n");
krobertson 20:81d5655fecc2 65 GPSHandle::getGPSHand().sendLoc();
krobertson 20:81d5655fecc2 66 }
krobertson 20:81d5655fecc2 67 if(waypoints_sent){
krobertson 20:81d5655fecc2 68
krobertson 20:81d5655fecc2 69 }
krobertson 20:81d5655fecc2 70 }
krobertson 20:81d5655fecc2 71
krobertson 20:81d5655fecc2 72 void CommandHandle::locationRequest(){
krobertson 20:81d5655fecc2 73
krobertson 20:81d5655fecc2 74 }
krobertson 20:81d5655fecc2 75
krobertson 20:81d5655fecc2 76 bool CommandHandle::check(){
krobertson 20:81d5655fecc2 77 return true;
krobertson 20:81d5655fecc2 78 }
krobertson 20:81d5655fecc2 79
krobertson 20:81d5655fecc2 80 void CommandHandle::run(){
krobertson 20:81d5655fecc2 81 if(!initialized){
krobertson 20:81d5655fecc2 82 initialized=true;
krobertson 20:81d5655fecc2 83 USB::getSerial().printf("Setup Command Handler\r\n");
krobertson 20:81d5655fecc2 84 setup();
krobertson 20:81d5655fecc2 85 }
krobertson 20:81d5655fecc2 86 if(check()){
krobertson 20:81d5655fecc2 87 USB::getSerial().printf("Getting Commands\r\n");
krobertson 20:81d5655fecc2 88 getCommands();
krobertson 20:81d5655fecc2 89 USB::getSerial().printf("Done Getting Commans\r\n");
krobertson 20:81d5655fecc2 90 }
krobertson 20:81d5655fecc2 91 }