branch for tests with T265

Dependencies:   Lib_Cntrl AHRS Lib_Misc

Xtra_Sensors/TFmini.cpp

Committer:
Kiwicjam
Date:
2019-11-22
Revision:
4:dc844fde64d7
Parent:
2:e7874762cc25

File content as of revision 4:dc844fde64d7:

#include "TFmini.h"

using namespace std;

TFmini::TFmini(RawSerial& serial) : serial(serial) {
        
    serial.baud(115200);
    dist = 0;
    strength = 0;
    checksum = 0;
    cnt = 0;
    serial.attach(callback(this, &TFmini::receive), RawSerial::RxIrq);
    
}

TFmini::~TFmini() {
}

float TFmini::readDistance()  {
    return (float)dist/1000.0f;
}

float TFmini::readStrength()  {
    return strength;
}

void TFmini::receive()
{
    if(serial.readable()) {
        uartData[cnt] = serial.getc();
        checksum += uartData[cnt];
        if( uartData[0] != HEADER ) {
            cnt = 0;
            checksum = 0;
        } else if( cnt == 1 && uartData[1] != HEADER ) {
            cnt = 0;
            checksum = 0;
        } else if( cnt == 8 ) {
            checksum -= uartData[cnt];
            if( uartData[8] == (checksum & 0xff) ) {
                dist = (uartData[2] + uartData[3] * 256);
                strength = uartData[4] + uartData[5] * 256;
            }
            cnt = 0;
            checksum = 0;
        } else {
            cnt++;
        }
    }
}