app_BT_User.c 2.99 KB
Newer Older
1 2

#include "app_BT_User.h"
薛小虎's avatar
薛小虎 committed
3
#include <stdio.h> 
4 5 6 7 8
#include "bt_app_hf.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "bt_app_main.h"
extern esp_bd_addr_t peer_addr;
9 10 11 12 13

#define TAG "APP_BLE_USER"

BT_User_Control_Struct BT_User;

14
#define BT_ReConn_T 300
15

16 17
#define IPHNOE_ACTIVE_CONNENT 0X113

18 19 20 21
void BT_User_Init(void )
{
    BT_User.BT_Sts = BT_Idle;
    BT_User.Call_Sts = Call_Idle;
22
    BT_User.ReconnTime = BT_ReConn_T - 50;
23
    BT_User.HF_Ctrl = HF_Idle;
24 25 26 27
    BT_User.BT_DisConnReason = 0xffff;
    BT_User.Get_Call_Num = 0;
    BT_User.Call_Fitter_sts = Call_Idle;
    BT_User.HfClient_Req_Cnt = 0;
28

29
}
30

薛小虎's avatar
薛小虎 committed
31 32 33 34
void BT_Connect_Event_Pro(void )
{
    BT_User.BT_Sts = BT_Conn;
    BT_User.Call_Sts = Call_Idle;
35
    BT_User.ReconnTime = BT_ReConn_T - 50;
36
    BT_User.HF_Ctrl = HF_Idle;
37
    // printf("TB CONN\r\n");
38 39 40 41 42

    BT_User.BT_DisConnReason = 0xffff;
    BT_User.Get_Call_Num = 0;
    BT_User.Call_Fitter_sts = Call_Idle;
    BT_User.HfClient_Req_Cnt = 0;
薛小虎's avatar
薛小虎 committed
43 44 45 46 47 48 49
}


void BT_DisConnect_Event_Pro(void )
{
    BT_User.BT_Sts = BT_Idle;
    BT_User.Call_Sts = Call_Idle;
50
    BT_User.ReconnTime = BT_ReConn_T - 50;
51
    BT_User.HF_Ctrl = HF_Idle;
52
    // printf("TB DISCONN\r\n");
53 54 55 56

    BT_User.Get_Call_Num = 0;
    BT_User.Call_Fitter_sts = Call_Idle;
    BT_User.HfClient_Req_Cnt = 0;
薛小虎's avatar
薛小虎 committed
57 58
}

59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
void BT_User_Process(void )
{
    switch(BT_User.Call_Sts)
    {
        case Call_OutCalling:
        {
            if(BT_User.HF_Ctrl == HF_Reject)
            {
                hf_reject_handler();
            }
            break;
        }
        case Call_IncomeCalling:
        {
            if(BT_User.HF_Ctrl == HF_Reject)
            {
                hf_reject_handler();
            }
            else if(BT_User.HF_Ctrl == HF_Answer)
            {
                hf_answer_handler();
            }
            break;
        }
        case Call_InProcess:
        {
            if(BT_User.HF_Ctrl == HF_Reject)
            {
                hf_reject_handler();
            }

            break;
        }
92 93 94 95
        case Call_Idle:
        {
            break;
        }
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
        // case Call_Miss:
        // {
        //     if(BT_User.HF_Ctrl == HF_Reject)
        //     {
        //         hf_reject_handler();
        //     }
        //     break;
        // }
        // case Call_Hangup:
        // {
        //     if(BT_User.HF_Ctrl == HF_Reject)
        //     {
        //         hf_reject_handler();
        //     }
        //     break;
        // }
112 113
    }

114 115
    BT_User.HF_Ctrl = HF_Idle;

116
    // if(BT_User.BT_DisConnReason != IPHNOE_ACTIVE_CONNENT)
117
    {
118
        if(BT_User.BT_Sts == BT_Idle)
119
        {
120 121
            BT_User.ReconnTime++;
            if(BT_User.ReconnTime >= BT_ReConn_T)
122
            {
123 124 125 126 127 128 129 130 131
                // printf("Connect Start.................\n");
                if(app_BT_Get_BondDev() == 1)
                {
                    esp_hf_client_connect(peer_addr);
                }
                
                // printf("Connect Over\n");

                BT_User.ReconnTime = 0;
132
            }
133 134 135 136
        }
    }
}

薛小虎's avatar
薛小虎 committed
137 138


139 140 141 142 143