#include #include "obd2_bt.h" void obd2_bt_init(obd2_bt_t *bt) { bt->state = BT_INITIALISING; } void obd2_bt_get_state(obd2_bt_t *bt, 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 (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_bt_process(obd2_bt_t *bt) { if (bt->state != BT_CONNECTED) { __UINT32_TYPE__ bt_state = digitalRead(BT_STATE_PIN); if (bt_state != bt->state) { if (bt_state) { bt->state = BT_CONNECTED; } else { bt->state = BT_INITIALISING; } bt->on_state_change(); } } /* TODO read from Serial1 to read OBD2 data */ }