Colin Stearns
/
qcControl
QC Control software
Fork of dgps by
handle/handleCommand.cpp@66:5d43988d100c, 2014-05-05 (annotated)
- 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?
User | Revision | Line number | New 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 | } |