Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Q
QJ_500-7c
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
时昊
QJ_500-7c
Commits
299f458c
Commit
299f458c
authored
Jul 01, 2024
by
chen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat;增加了区分微信电话和普通电话
parent
f1555e0a
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
98 additions
and
46 deletions
+98
-46
app_BT_User.c
qianjiang/main/app_BT_User.c
+16
-0
app_BT_User.h
qianjiang/main/app_BT_User.h
+4
-0
bt_app_hf.c
qianjiang/main/bt_app_hf.c
+76
-45
bt_app_hf.h
qianjiang/main/bt_app_hf.h
+1
-1
main_user.c
qianjiang/main/main_user.c
+1
-0
No files found.
qianjiang/main/app_BT_User.c
View file @
299f458c
...
...
@@ -78,6 +78,22 @@ void BT_User_Process(void )
{
break
;
}
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
;
}
}
BT_User
.
HF_Ctrl
=
HF_Idle
;
...
...
qianjiang/main/app_BT_User.h
View file @
299f458c
...
...
@@ -17,6 +17,8 @@ typedef enum
Call_IncomeCalling
,
Call_OutCalling
,
Call_InProcess
,
Call_Miss
,
Call_Hangup
,
}
Call_Sts_Enum
;
typedef
enum
...
...
@@ -32,6 +34,8 @@ typedef struct
uint8_t
Call_Sts
;
uint16_t
ReconnTime
;
uint8_t
HF_Ctrl
;
char
Number
[
11
];
char
CCLC
[
11
];
}
BT_User_Control_Struct
;
extern
BT_User_Control_Struct
BT_User
;
...
...
qianjiang/main/bt_app_hf.c
View file @
299f458c
...
...
@@ -174,6 +174,7 @@ const char *c_inband_ring_state_str[] = {
};
extern
esp_bd_addr_t
peer_addr
;
static
uint8_t
call_timer
;
// If you want to connect a specific device, add it's address here
// esp_bd_addr_t peer_addr = {0xac, 0x67, 0xb2, 0x53, 0x77, 0xbe};
...
...
@@ -331,13 +332,13 @@ void bt_app_hf_client_cb(esp_hf_client_cb_event_t event, esp_hf_client_cb_param_
ESP_LOGI
(
BT_HF_TAG
,
"--Call indicator %s"
,
c_call_str
[
param
->
call
.
status
]);
if
(
param
->
call
.
status
==
0
)
if
(
(
param
->
call
.
status
==
0
)
&&
((
BT_User
.
Call_Sts
==
Call_InProcess
)
||
(
BT_User
.
Call_Sts
==
Call_OutCalling
)
||
(
BT_User
.
Call_Sts
==
Call_IncomeCalling
))
)
{
BT_User
.
Call_Sts
=
Call_
Idle
;
// printf("call idle
\r\n");
BT_User
.
Call_Sts
=
Call_
Hangup
;
call_timer
=
0
;
printf
(
"call Hangup
\r\n
"
);
}
else
if
(
param
->
call
.
status
==
1
)
else
if
(
(
param
->
call
.
status
==
1
)
&&
((
BT_User
.
Call_Sts
==
Call_OutCalling
)
||
(
BT_User
.
Call_Sts
==
Call_IncomeCalling
)
||
(
BT_User
.
Call_Sts
==
Call_InProcess
))
)
{
BT_User
.
Call_Sts
=
Call_InProcess
;
// printf("call Call_InProcess\r\n");
...
...
@@ -347,44 +348,44 @@ void bt_app_hf_client_cb(esp_hf_client_cb_event_t event, esp_hf_client_cb_param_
case
ESP_HF_CLIENT_CIND_CALL_SETUP_EVT
:
{
ESP_LOGI
(
BT_HF_TAG
,
"--Call setup indicator %s"
,
c_call_setup_str
[
param
->
call_setup
.
status
]);
//
ESP_LOGI(BT_HF_TAG, "--Call setup indicator %s",
//
c_call_setup_str[param->call_setup.status]);
switch
(
param
->
call_setup
.
status
)
{
case
0
:
{
if
(
BT_User
.
Call_Sts
==
Call_IncomeCalling
||
BT_User
.
Call_Sts
==
Call_OutCalling
)
//
switch(param->call_setup.status)
//
{
//
case 0:
//
{
if
(
param
->
call_setup
.
status
==
0
&&
(
BT_User
.
Call_Sts
==
Call_IncomeCalling
)
)
{
BT_User
.
Call_Sts
=
Call_
Idle
;
// printf("call idle
\r\n");
BT_User
.
Call_Sts
=
Call_
Miss
;
call_timer
=
0
;
printf
(
"call Miss
\r\n
"
);
}
break
;
}
case
1
:
{
BT_User
.
Call_Sts
=
Call_IncomeCalling
;
//
printf("call income\r\n");
break
;
}
case
2
:
{
BT_User
.
Call_Sts
=
Call_OutCalling
;
//
printf("call outcall\r\n");
break
;
}
case
3
:
{
BT_User
.
Call_Sts
=
Call_OutCalling
;
//
printf("call outcall\r\n");
break
;
}
}
//
break;
//
}
//
case 1:
//
{
//
BT_User.Call_Sts = Call_IncomeCalling;
//
printf("call income\r\n");
//
break;
//
}
//
case 2:
//
{
//
BT_User.Call_Sts = Call_OutCalling;
//
printf("call outcall\r\n");
//
break;
//
}
//
case 3:
//
{
//
BT_User.Call_Sts = Call_OutCalling;
//
printf("call outcall\r\n");
//
break;
//
}
//
}
if
(
param
->
call_setup
.
status
==
0
)
break
;
//
if(param->call_setup.status == 0)
break
;
}
case
ESP_HF_CLIENT_CIND_CALL_HELD_EVT
:
...
...
@@ -405,6 +406,18 @@ void bt_app_hf_client_cb(esp_hf_client_cb_event_t event, esp_hf_client_cb_param_
{
ESP_LOGI
(
BT_HF_TAG
,
"--clip number %s"
,
(
param
->
clip
.
number
==
NULL
)
?
"NULL"
:
(
param
->
clip
.
number
));
if
(
param
->
clip
.
number
!=
NULL
)
{
for
(
int
i
=
0
;
i
<
11
;
i
++
)
{
BT_User
.
Number
[
i
]
=
param
->
clip
.
number
[
i
];
}
}
if
(
BT_User
.
Call_Sts
!=
Call_InProcess
)
BT_User
.
Call_Sts
=
Call_IncomeCalling
;
printf
(
"call income
\r\n
"
);
printf
(
"%s
\n
"
,
param
->
clip
.
number
);
// printf("1\n");
break
;
}
...
...
@@ -423,6 +436,24 @@ void bt_app_hf_client_cb(esp_hf_client_cb_event_t event, esp_hf_client_cb_param_
c_call_state_str
[
param
->
clcc
.
status
],
c_call_mpty_type_str
[
param
->
clcc
.
mpty
],
(
param
->
clcc
.
number
==
NULL
)
?
"NULL"
:
(
param
->
clcc
.
number
));
if
((
strstr
(
param
->
clcc
.
number
,
"10000000"
)
==
NULL
)
&&
(
BT_User
.
Call_Sts
!=
Call_IncomeCalling
)
&&
(
BT_User
.
Call_Sts
!=
Call_InProcess
))
{
if
(
call_timer
==
7
)
{
BT_User
.
Call_Sts
=
Call_OutCalling
;
printf
(
"call outcall
\r\n
"
);
printf
(
"%s
\n
"
,
param
->
clcc
.
number
);
}
else
{
call_timer
++
;
}
// call_timer ++;
}
else
{
call_timer
=
0
;
}
break
;
}
...
...
@@ -565,12 +596,12 @@ HF_CMD_HANDLER(stop_vr)
}
//
HF_CMD_HANDLER(query_call)
//
{
//
// printf("Query current call status\n");
//
esp_hf_client_query_current_calls();
//
return 0;
//
}
HF_CMD_HANDLER
(
query_call
)
{
// printf("Query current call status\n");
esp_hf_client_query_current_calls
();
return
0
;
}
// HF_CMD_HANDLER(retrieve_subscriber)
// {
...
...
qianjiang/main/bt_app_hf.h
View file @
299f458c
...
...
@@ -32,7 +32,7 @@ int hf_redial_handler(void );
int
hf_dial_mem_handler
(
void
);
int
hf_start_vr_handler
(
void
);
int
hf_stop_vr_handler
(
void
);
int
hf_query_call_handler
(
void
);
#endif
/* __BT_APP_HF_H__*/
qianjiang/main/main_user.c
View file @
299f458c
...
...
@@ -83,6 +83,7 @@ static void Sys_Run_Tasks(void *arg)
if
(
SYS_RUN_TASK_100MS
)
{
Ble_MsgRec_Navi_Timeout
();
esp_hf_client_query_current_calls
();
}
if
(
SYS_RUN_TASK_1000MS
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment