#ifndef __MW_BLUETOOTH_H__
#define __MW_BLUETOOTH_H__

#include "stm32f10x.h"

typedef enum
{
    hc06 = 0,
    bluetooth_num
}bluetooth_type_enum;

/* usart api define*/
typedef struct
{
    // void * usart_type;
    int8_t (*pf_init)(void);    // system_usart init. func.
    int8_t (*pf_deinit)(void);  // system_usart deinit. func.
    // tx rx function
    int8_t (*pf_trans_one_byte)(uint8_t tx_data);   // system_usart trans. one byte func.
    uint8_t (*pf_recv_one_byte)(void);  // system_usart recv. one byte func.
}system_usart_t;

/* timer api define */
typedef struct
{
    uint32_t (*pf_get_systick_ms)(void);    // system_timers recv. one byte func. You can use software timer here.
}system_timetick_t;

typedef struct
{
    // the type of bluetooth
    bluetooth_type_enum bt_drv;
    // system_usart api
    system_usart_t bt_usart;
    // system_timers api
    system_timetick_t bt_timer;
    void (*pf_init)(void);
    void (*pf_deinit)(void);
    void (*pf_send_bytes)(uint8_t * tx_buf, uint16_t len);
    void (*pf_recv_deal)(void);
}mw_bluetooth_t;



void mw_bluetooth_drv_init(void);

#endif
