Minor change.

Dependents:   nanoNucleo_Serial-Bluetooth_test

Fork of HC-05 by Jesper Jakobsen

Committer:
Kio_Liex
Date:
Wed Mar 09 19:02:39 2016 +0000
Revision:
3:18a71e6ed851
Parent:
2:10334c0d9835
Removed the zeroing of the variables.

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