Minor change.
Dependents: nanoNucleo_Serial-Bluetooth_test
Fork of HC-05 by
HC05.cpp@2:10334c0d9835, 2016-02-13 (annotated)
- Committer:
- Kio_Liex
- Date:
- Sat Feb 13 21:38:00 2016 +0000
- Revision:
- 2:10334c0d9835
- Parent:
- 1:703352bac629
- Child:
- 3:18a71e6ed851
Work version with the "BT Bot Control" app for Android. ; Running on a NuCleo-F303K8 and a HC-05 bluetooth module.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Kio_Liex | 0:e0c6e95761d2 | 1 | #include "mbed.h" |
Kio_Liex | 0:e0c6e95761d2 | 2 | #include "HC05.h" |
Kio_Liex | 0:e0c6e95761d2 | 3 | |
Kio_Liex | 0:e0c6e95761d2 | 4 | HC05::HC05(PinName tx, PinName rx): myBT(tx, rx) |
Kio_Liex | 0:e0c6e95761d2 | 5 | { |
Kio_Liex | 1:703352bac629 | 6 | myBT.baud(9600); |
Kio_Liex | 1:703352bac629 | 7 | |
Kio_Liex | 1:703352bac629 | 8 | index = 0; |
Kio_Liex | 1:703352bac629 | 9 | |
Kio_Liex | 1:703352bac629 | 10 | started = false; |
Kio_Liex | 1:703352bac629 | 11 | ended = false; |
Kio_Liex | 0:e0c6e95761d2 | 12 | } |
Kio_Liex | 0:e0c6e95761d2 | 13 | |
Kio_Liex | 1:703352bac629 | 14 | bool HC05::getValue(int16_t* x, int16_t* y, int16_t* c) |
Kio_Liex | 1:703352bac629 | 15 | { |
Kio_Liex | 0:e0c6e95761d2 | 16 | while(myBT.readable()) |
Kio_Liex | 0:e0c6e95761d2 | 17 | { |
Kio_Liex | 0:e0c6e95761d2 | 18 | btChar = myBT.getc(); |
Kio_Liex | 0:e0c6e95761d2 | 19 | |
Kio_Liex | 0:e0c6e95761d2 | 20 | if(btChar == SOP) |
Kio_Liex | 0:e0c6e95761d2 | 21 | { |
Kio_Liex | 0:e0c6e95761d2 | 22 | index = 0; |
Kio_Liex | 0:e0c6e95761d2 | 23 | btData[index] = '\0'; |
Kio_Liex | 0:e0c6e95761d2 | 24 | started = true; |
Kio_Liex | 0:e0c6e95761d2 | 25 | ended = false; |
Kio_Liex | 0:e0c6e95761d2 | 26 | } |
Kio_Liex | 0:e0c6e95761d2 | 27 | else if(btChar == EOP) |
Kio_Liex | 0:e0c6e95761d2 | 28 | { |
Kio_Liex | 0:e0c6e95761d2 | 29 | ended = true; |
Kio_Liex | 0:e0c6e95761d2 | 30 | break; |
Kio_Liex | 0:e0c6e95761d2 | 31 | } |
Kio_Liex | 0:e0c6e95761d2 | 32 | else |
Kio_Liex | 0:e0c6e95761d2 | 33 | { |
Kio_Liex | 0:e0c6e95761d2 | 34 | if(index < 19) |
Kio_Liex | 0:e0c6e95761d2 | 35 | { |
Kio_Liex | 0:e0c6e95761d2 | 36 | btData[index] = btChar; |
Kio_Liex | 0:e0c6e95761d2 | 37 | index++; |
Kio_Liex | 0:e0c6e95761d2 | 38 | btData[index] = '\0'; |
Kio_Liex | 0:e0c6e95761d2 | 39 | } |
Kio_Liex | 0:e0c6e95761d2 | 40 | } |
Kio_Liex | 0:e0c6e95761d2 | 41 | } |
Kio_Liex | 2:10334c0d9835 | 42 | |
Kio_Liex | 1:703352bac629 | 43 | *x=0; |
Kio_Liex | 1:703352bac629 | 44 | *y=0; |
Kio_Liex | 1:703352bac629 | 45 | *c=0; |
Kio_Liex | 0:e0c6e95761d2 | 46 | |
Kio_Liex | 0:e0c6e95761d2 | 47 | if(started && ended) |
Kio_Liex | 0:e0c6e95761d2 | 48 | { |
Kio_Liex | 0:e0c6e95761d2 | 49 | char *name = strtok(btData, "="); |
Kio_Liex | 0:e0c6e95761d2 | 50 | |
Kio_Liex | 0:e0c6e95761d2 | 51 | while(name) |
Kio_Liex | 0:e0c6e95761d2 | 52 | { |
Kio_Liex | 0:e0c6e95761d2 | 53 | char *valToken = strtok(NULL, ","); |
Kio_Liex | 0:e0c6e95761d2 | 54 | if(valToken) |
Kio_Liex | 0:e0c6e95761d2 | 55 | { |
Kio_Liex | 0:e0c6e95761d2 | 56 | int val = atoi(valToken); |
Kio_Liex | 0:e0c6e95761d2 | 57 | |
Kio_Liex | 0:e0c6e95761d2 | 58 | if(strcmp(name, "X") == 0) |
Kio_Liex | 0:e0c6e95761d2 | 59 | { |
Kio_Liex | 0:e0c6e95761d2 | 60 | *x = val; |
Kio_Liex | 0:e0c6e95761d2 | 61 | } |
Kio_Liex | 0:e0c6e95761d2 | 62 | else if(strcmp(name, "Y") == 0) |
Kio_Liex | 0:e0c6e95761d2 | 63 | { |
Kio_Liex | 0:e0c6e95761d2 | 64 | *y = val; |
Kio_Liex | 0:e0c6e95761d2 | 65 | } |
Kio_Liex | 0:e0c6e95761d2 | 66 | else if(strcmp(name, "C") == 0) |
Kio_Liex | 0:e0c6e95761d2 | 67 | { |
Kio_Liex | 0:e0c6e95761d2 | 68 | *c = val; |
Kio_Liex | 0:e0c6e95761d2 | 69 | } |
Kio_Liex | 0:e0c6e95761d2 | 70 | } |
Kio_Liex | 0:e0c6e95761d2 | 71 | name = strtok(NULL, "="); |
Kio_Liex | 0:e0c6e95761d2 | 72 | } |
Kio_Liex | 0:e0c6e95761d2 | 73 | |
Kio_Liex | 0:e0c6e95761d2 | 74 | // Reset for the next packet |
Kio_Liex | 0:e0c6e95761d2 | 75 | started = false; |
Kio_Liex | 0:e0c6e95761d2 | 76 | ended = false; |
Kio_Liex | 0:e0c6e95761d2 | 77 | index = 0; |
Kio_Liex | 1:703352bac629 | 78 | btData[index] = '\0'; |
Kio_Liex | 1:703352bac629 | 79 | |
Kio_Liex | 1:703352bac629 | 80 | return true; |
Kio_Liex | 0:e0c6e95761d2 | 81 | } |
Kio_Liex | 1:703352bac629 | 82 | return false; |
Kio_Liex | 0:e0c6e95761d2 | 83 | } |