UART Driver to receive asynchronous Serial Comms from a Raspberry Pi and parse the results.
Diff: SerialComms.cpp
- Revision:
- 7:34c5934a01f0
- Parent:
- 6:74b5ac7719f4
- Child:
- 8:2cbaea485ddb
diff -r 74b5ac7719f4 -r 34c5934a01f0 SerialComms.cpp --- a/SerialComms.cpp Fri Mar 04 05:53:11 2016 +0000 +++ b/SerialComms.cpp Fri Mar 04 06:43:50 2016 +0000 @@ -36,6 +36,13 @@ incomingDataUpdate = FALSE; } +#define MOTORS_FORWARD 0x09 +#define MOTORS_BACKWARD 0x06 +#define MOTORS_LEFT 0x05 +#define MOTORS_RIGHT 0x0A +#define MOTORS_ARM 0x01 + + void SerialComms::incomingDataISR() { @@ -47,8 +54,16 @@ { if(incomingDataUpdate == TRUE) { - incomingDataUpdate = FALSE; - return receiverBuffer; + if( (receiverBuffer>&0x0F)==MOTORS_FORWARD || + (receiverBuffer>&0x0F)==MOTORS_BACKWARD || + (receiverBuffer>&0x0F)==MOTORS_LEFT || + (receiverBuffer>&0x0F)==MOTORS_RIGHT || + (receiverBuffer>&0x0F)==MOTORS_ARM + /* AND BALLAST REQUIREMENTS */) + { + incomingDataUpdate = FALSE; + return receiverBuffer; + } } else {