Small project to display some OBD values from the Toyota GT86/ Subaru BRZ/ Scion FRS on an OLED display.

Dependencies:   Adafruit_GFX MODSERIAL mbed-rtos mbed

OilTemperature.cpp

Committer:
chrta
Date:
2014-05-11
Revision:
7:a19b63c0a0fa
Parent:
6:506b703a8acf

File content as of revision 7:a19b63c0a0fa:

#include "OilTemperature.h"

const char OilTemperature::REQUEST_DATA[8] = {0x02, 0x21, 0x01, 0, 0, 0, 0, 0};
const char OilTemperature::SECOND_MESSAGE[8] = {0x30, 0, 0, 0, 0, 0, 0, 0};

OilTemperature::OilTemperature()
: PidValue("Oil Temp", "C")
{
}

bool OilTemperature::decode(const uint8_t* data, uint16_t length)
{
    if (length < 2)
    {
        return false;
    }
    
    if ((length != 31) || (data[0] != 0x61) || (data[1] != 0x01))
    {
        return false;
    }
    
    m_value = data[30] - 40; // deg C
    return true;
}