mirror of
https://github.com/SemvdH/OBD2-car-display.git
synced 2025-12-16 04:31:04 +00:00
add updating init percent and add getting OBD2 PIDS
This commit is contained in:
@@ -1,17 +1,19 @@
|
||||
#include "ELMduino.h"
|
||||
#include <string.h>
|
||||
|
||||
|
||||
#include "obd2_elm327.h"
|
||||
|
||||
#define KM_IN_MILES 1.6093440
|
||||
|
||||
ELM327 elm327_obj;
|
||||
|
||||
char bt_states[3][BT_STATE_LENGTH] = {"Initializing", "Connecting ", "Connected "};
|
||||
char bt_states[2][BT_STATE_LENGTH] = {"Initializing", "Connected "};
|
||||
|
||||
char obd2_elm327_init(obd2_elm327_t *elm327)
|
||||
{
|
||||
|
||||
ELM327_SERIAL.begin(ELM327_BAUD);
|
||||
|
||||
|
||||
elm327->bt_state = BT_INITIALISING;
|
||||
elm327->elm327 = &elm327_obj;
|
||||
|
||||
@@ -31,21 +33,81 @@ void obd2_elm327_process(obd2_elm327_t *elm327)
|
||||
{
|
||||
if (elm327->bt_state != BT_CONNECTED)
|
||||
{
|
||||
__UINT32_TYPE__ bt_state = digitalRead(BT_STATE_PIN);
|
||||
__UINT8_TYPE__ bt_state = elm327->elm327->connected;
|
||||
|
||||
if (bt_state != elm327->bt_state)
|
||||
{
|
||||
if (bt_state)
|
||||
{
|
||||
elm327->bt_state = BT_CONNECTED;
|
||||
}
|
||||
else
|
||||
{
|
||||
elm327->bt_state = BT_INITIALISING;
|
||||
}
|
||||
// 0 for initialising, 1 for connected
|
||||
elm327->bt_state = bt_state == 1 ? BT_CONNECTED : BT_INITIALISING;
|
||||
elm327->on_state_change();
|
||||
}
|
||||
}
|
||||
|
||||
/* TODO read from Serial2 to read OBD2 data */
|
||||
/* TODO maybe change to switch statement */
|
||||
|
||||
float rpm = elm327->elm327->rpm();
|
||||
if (elm327->elm327->nb_rx_state == ELM_SUCCESS)
|
||||
{
|
||||
elm327->rpm = (uint16_t)rpm;
|
||||
}
|
||||
|
||||
float throttle = elm327->elm327->throttle();
|
||||
if (elm327->elm327->nb_rx_state == ELM_SUCCESS)
|
||||
{
|
||||
elm327->throttle_percent = (uint8_t)throttle;
|
||||
}
|
||||
|
||||
float coolant_temp = elm327->elm327->engineCoolantTemp();
|
||||
if (elm327->elm327->nb_rx_state == ELM_SUCCESS)
|
||||
{
|
||||
elm327->engine_coolant_temp = (uint8_t)coolant_temp;
|
||||
}
|
||||
|
||||
float intake_air_temp = elm327->elm327->intakeAirTemp();
|
||||
if (elm327->elm327->nb_rx_state == ELM_SUCCESS)
|
||||
{
|
||||
elm327->intake_air_temp = (uint8_t)intake_air_temp;
|
||||
}
|
||||
|
||||
float ambient_air_temp = elm327->elm327->ambientAirTemp();
|
||||
if (elm327->elm327->nb_rx_state == ELM_SUCCESS)
|
||||
{
|
||||
elm327->ambient_air_temp = (uint8_t) ambient_air_temp;
|
||||
}
|
||||
|
||||
float engine_oil_temp = elm327->elm327->oilTemp();
|
||||
if (elm327->elm327->nb_rx_state == ELM_SUCCESS)
|
||||
{
|
||||
elm327->engine_oil_temp = engine_oil_temp;
|
||||
}
|
||||
|
||||
float engine_load = elm327->elm327->engineLoad();
|
||||
if (elm327->elm327->nb_rx_state == ELM_SUCCESS)
|
||||
{
|
||||
elm327->engine_load = (uint8_t)engine_load;
|
||||
}
|
||||
|
||||
float battery_voltage = elm327->elm327->batteryVoltage();
|
||||
if (elm327->elm327->nb_rx_state == ELM_SUCCESS)
|
||||
{
|
||||
elm327->battery_voltage = battery_voltage;
|
||||
}
|
||||
|
||||
float fuel_pressure = elm327->elm327->fuelPressure();
|
||||
if (elm327->elm327->nb_rx_state == ELM_SUCCESS)
|
||||
{
|
||||
elm327->fuel_pressure = fuel_pressure;
|
||||
}
|
||||
|
||||
float speed = elm327->elm327->mph();
|
||||
if (elm327->elm327->nb_rx_state == ELM_SUCCESS)
|
||||
{
|
||||
elm327->speed = (uint8_t)(speed * KM_IN_MILES);
|
||||
}
|
||||
|
||||
float manifold_pressure = elm327->elm327->manifoldPressure();
|
||||
if (elm327->elm327->nb_rx_state == ELM_SUCCESS)
|
||||
{
|
||||
elm327->manifold_pressure = (uint8_t)manifold_pressure;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user