Files
OBD2-car-display/due_obd2/obd2_elm327.cpp

62 lines
1.3 KiB
C++

#include <string.h>
#include "ELMduino.h"
#include "obd2_elm327.h"
ELM327 myELM327;
void obd2_elm327_init(obd2_elm327_t *elm327)
{
elm327->bt_state = BT_INITIALISING;
}
void obd2_elm327_get_state(obd2_elm327_t *elm327, char *state)
{
// char bt_states[3][13] = {"Initializing", "Connecting ", "Connected "};
// char bt_states;
// (void) bt_states;
if (sizeof(state) != BT_STATE_LENGTH)
{
/* result string must be of size 13 */
return;
}
switch (elm327->bt_state)
{
case BT_INITIALISING:
strcpy(state, "Initializing");
break;
case BT_CONNECTING:
strcpy(state, "Connecting ");
break;
case BT_CONNECTED:
strcpy(state, "Connected ");
break;
default:
strcpy(state, "Unknown ");
break;
}
}
void obd2_elm327_process(obd2_elm327_t *elm327)
{
if (elm327->bt_state != BT_CONNECTED)
{
__UINT32_TYPE__ bt_state = digitalRead(BT_STATE_PIN);
if (bt_state != elm327->bt_state)
{
if (bt_state)
{
elm327->bt_state = BT_CONNECTED;
}
else
{
elm327->bt_state = BT_INITIALISING;
}
elm327->on_state_change();
}
}
/* TODO read from Serial2 to read OBD2 data */
}