Minor change.

Dependents:   nanoNucleo_Serial-Bluetooth_test

Fork of HC-05 by Jesper Jakobsen

Committer:
Kio_Liex
Date:
Thu Feb 04 21:25:00 2016 +0000
Revision:
1:703352bac629
Parent:
0:e0c6e95761d2
Child:
2:10334c0d9835
Minor change.

Who changed what in which revision?

UserRevisionLine numberNew 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 1:703352bac629 42 *x=0;
Kio_Liex 1:703352bac629 43 *y=0;
Kio_Liex 1:703352bac629 44 *c=0;
Kio_Liex 0:e0c6e95761d2 45
Kio_Liex 0:e0c6e95761d2 46 if(started && ended)
Kio_Liex 0:e0c6e95761d2 47 {
Kio_Liex 0:e0c6e95761d2 48 char *name = strtok(btData, "=");
Kio_Liex 0:e0c6e95761d2 49
Kio_Liex 0:e0c6e95761d2 50 while(name)
Kio_Liex 0:e0c6e95761d2 51 {
Kio_Liex 0:e0c6e95761d2 52 char *valToken = strtok(NULL, ",");
Kio_Liex 0:e0c6e95761d2 53 if(valToken)
Kio_Liex 0:e0c6e95761d2 54 {
Kio_Liex 0:e0c6e95761d2 55 int val = atoi(valToken);
Kio_Liex 0:e0c6e95761d2 56
Kio_Liex 0:e0c6e95761d2 57 if(strcmp(name, "X") == 0)
Kio_Liex 0:e0c6e95761d2 58 {
Kio_Liex 0:e0c6e95761d2 59 *x = val;
Kio_Liex 0:e0c6e95761d2 60 }
Kio_Liex 0:e0c6e95761d2 61 else if(strcmp(name, "Y") == 0)
Kio_Liex 0:e0c6e95761d2 62 {
Kio_Liex 0:e0c6e95761d2 63 *y = val;
Kio_Liex 0:e0c6e95761d2 64 }
Kio_Liex 0:e0c6e95761d2 65 else if(strcmp(name, "C") == 0)
Kio_Liex 0:e0c6e95761d2 66 {
Kio_Liex 0:e0c6e95761d2 67 *c = val;
Kio_Liex 0:e0c6e95761d2 68 }
Kio_Liex 0:e0c6e95761d2 69 }
Kio_Liex 0:e0c6e95761d2 70 name = strtok(NULL, "=");
Kio_Liex 0:e0c6e95761d2 71 }
Kio_Liex 0:e0c6e95761d2 72
Kio_Liex 0:e0c6e95761d2 73 // Reset for the next packet
Kio_Liex 0:e0c6e95761d2 74 started = false;
Kio_Liex 0:e0c6e95761d2 75 ended = false;
Kio_Liex 0:e0c6e95761d2 76 index = 0;
Kio_Liex 1:703352bac629 77 btData[index] = '\0';
Kio_Liex 1:703352bac629 78
Kio_Liex 1:703352bac629 79 return true;
Kio_Liex 0:e0c6e95761d2 80 }
Kio_Liex 1:703352bac629 81 return false;
Kio_Liex 0:e0c6e95761d2 82 }