#include #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 */ }