Files
OBD2-car-display/due_obd2/obd2_bt.h
2024-01-14 12:54:20 +01:00

62 lines
1.3 KiB
C

/*
BT module settings (AT mode):
+NAME=OBD2_BT
+VER=8.0.2,FSC-BT836B
+MAC=DC0D30000FA9
+BAUD=115200
+PIN=1189
AT Commands to connect permanently to the OBD2 module:
AT+RESET
AT+ORGL (Set to original)
AT+ROLE=1 (Set to Master)
AT+CMODE=0 (Set connect to a specific address)
AT+BIND=dc0d,30,000fa9
AT+INIT (Need to connect)
AT+PAIR=dc0d,30,000fa9,30 (,30 means 30 second timeout)
AT+LINK=dc0d,30,000fa9
Be sure to disconnect the TX and RX pins from the BT module when programming the arduino.
*/
#ifndef OBD2_BT_H
#define OBD2_BT_H
#ifdef __cplusplus
extern "C" {
#endif
// #include <Arduino.h>
// #include "obd2_util.h"
/* pins */
#define PIN_BT_RX 19
#define PIN_BT_TX 18
#define BT_STATE_PIN 3 /* state connection pin from bluetooth module -> level high on connected */
#define BT_BAUD 115200
#define BT_STATE_LENGTH 13 /* length of the string identifier used for the states */
enum BluetoothState
{
BT_INITIALISING = 0,
BT_CONNECTING = 1,
BT_CONNECTED = 2
};
typedef struct obt2_bt_tag
{
enum BluetoothState state;
void (*on_state_change)();
} obd2_bt_t;
void obd2_bt_init(obd2_bt_t *bt);
void obd2_bt_process(obd2_bt_t *bt);
void obd2_bt_get_state(obd2_bt_t *bt, char *state);
#ifdef __cplusplus
}
#endif
#endif // OBD2_BT_H