Minor change.

Dependents:   nanoNucleo_Serial-Bluetooth_test

Fork of HC-05 by Jesper Jakobsen

HC05.cpp

Committer:
Kio_Liex
Date:
2016-03-09
Revision:
3:18a71e6ed851
Parent:
2:10334c0d9835

File content as of revision 3:18a71e6ed851:

#include "mbed.h"
#include "HC05.h"

HC05::HC05(PinName tx, PinName rx): myBT(tx, rx)
{
    myBT.baud(9600);
    
    index = 0;
    
    started = false;
    ended = false;   
}

bool HC05::getValue(int16_t* x, int16_t* y, int16_t* c)
{   
    while(myBT.readable())
    {
        btChar = myBT.getc();
        
        if(btChar == SOP)
        {
            index = 0;
            btData[index] = '\0';
            started = true;
            ended = false;
        }
        else if(btChar == EOP)
        {
            ended = true;
            break;
        }
        else
        {
            if(index < 19)
            {
                btData[index] = btChar;
                index++;
                btData[index] = '\0';
            }
        }
    }
    
    if(started && ended)
    {
        char *name = strtok(btData, "=");
                    
        while(name)
        {                  
            char *valToken = strtok(NULL, ",");
            if(valToken)
            {                    
                int val = atoi(valToken);
                                
                if(strcmp(name, "X") == 0)
                {
                    *x = val;            
                }
                else if(strcmp(name, "Y") == 0) 
                {
                    *y = val;
                }
                else if(strcmp(name, "C") == 0) 
                {
                    *c = val;
                }
            }
            name = strtok(NULL, "=");
        }
            
        // Reset for the next packet
        started = false;
        ended = false;
        index = 0;
        btData[index] = '\0';    
          
        return true;     
    }
    return false; 
}