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
EngineRpm.cpp@7:a19b63c0a0fa, 2014-05-11 (annotated)
- Committer:
- chrta
- Date:
- Sun May 11 09:05:37 2014 +0000
- Revision:
- 7:a19b63c0a0fa
- Parent:
- 6:506b703a8acf
Changed Adafruit_GFX to my own fork.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
chrta | 5:0b229ba8ede5 | 1 | #include "EngineRpm.h" |
chrta | 5:0b229ba8ede5 | 2 | |
chrta | 6:506b703a8acf | 3 | const char EngineRpm::REQUEST_DATA[8] = {0x02, 0x01, 0x0C, 0, 0, 0, 0, 0}; |
chrta | 6:506b703a8acf | 4 | |
chrta | 5:0b229ba8ede5 | 5 | EngineRpm::EngineRpm() |
chrta | 5:0b229ba8ede5 | 6 | : PidValue("Engine RPM", "rpm") |
chrta | 5:0b229ba8ede5 | 7 | { |
chrta | 5:0b229ba8ede5 | 8 | } |
chrta | 5:0b229ba8ede5 | 9 | |
chrta | 5:0b229ba8ede5 | 10 | bool EngineRpm::decode(const uint8_t* data, uint16_t length) |
chrta | 5:0b229ba8ede5 | 11 | { |
chrta | 5:0b229ba8ede5 | 12 | if (length < 2) |
chrta | 5:0b229ba8ede5 | 13 | { |
chrta | 5:0b229ba8ede5 | 14 | return false; |
chrta | 5:0b229ba8ede5 | 15 | } |
chrta | 5:0b229ba8ede5 | 16 | |
chrta | 5:0b229ba8ede5 | 17 | if ((data[1] != 0x0C) || length != 4) |
chrta | 5:0b229ba8ede5 | 18 | { |
chrta | 5:0b229ba8ede5 | 19 | return false; |
chrta | 5:0b229ba8ede5 | 20 | } |
chrta | 5:0b229ba8ede5 | 21 | |
chrta | 5:0b229ba8ede5 | 22 | m_value = ((data[2] << 8) | data[3]) >> 2; //rpm |
chrta | 5:0b229ba8ede5 | 23 | return true; |
chrta | 5:0b229ba8ede5 | 24 | } |