SDK 2.2.2 watch example and ancs

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi all.

I try to test the ancs service with watch example. (with BCM 20737 DK)

When I download the application firmware and connect with my iPhone, the bonding is completed.

However, when I check it with terminal (putty), there is no ancs message.

when I get a message, call, and etc. , it doesn't display anything.

Is there any setting steps for displaying ancs service?

+ when I check the watch_db.c there is no information about ancs service.

please check it. (I didn't change any codes)

Have a good day

Regards,

Kyu.

0 Likes
1 Solution
Anonymous
Not applicable

(for other developers)

OK. I got the solution from Broadcom support team.

Just put this line ancs_client_initialize function on ancs_client.c

.....

......

    ancs_client_initialize_complete_callback = initialize_complete_callback;

    memset (&ancs_client, 0, sizeof (ancs_client));

    ///////////////////////////////////////////////

    ancs_client.ancs_e_handle=e_handle;     <--- this

    //////////////////////////////////////////////

    ancs_client.state =      ANCS_CLIENT_STATE_WAIT_READ_ANCS_CHARACTERISTIC;

.....

.....

It is working well now.

Thanks.

Regards,

Jun-Kyu

View solution in original post

16 Replies
Anonymous
Not applicable

This is a first time to use BCM solution.

Even if the question looks stupid, please help me.

Thanks.

0 Likes

Can you use the "Trace" feature of the IDE instead? Check out Quick Start Guide (QSG202.pdf) under the /Doc folder on how to do that. Let me know whether can you see traces.

0 Likes
BoonT_56
Employee
Employee
500 likes received 250 likes received 100 likes received
0 Likes
Anonymous
Not applicable

Thanks for reply.

This is a original log. !

ancs_client.connection_up: 020100200400 64onded 0 handle 64

@$*#04FF86F700920110000002FA240000000000078633000000000007E6200000000000078E1E0000000080E4310E459C776A80E4350E4000D1C280E4390E2000010280E43D0E0004000000078E1E0000000000E579022000010200E57D020004000080034E1B1400000080034E1B1800000080034E1B1C00000080036E1B0000000000075A3300000000@$*#04FF0EF700920101008004D61D02000000@$*#04FF16F700920102000007F610FA0005000007FA1001000000@$*#04FF0EF7009201010080041A1D00000000@$*#04FF0EF7009201010080041A1D00000000Watch: encryption changed: on 020100200400

@$*#04FF2EF7009201050080041A1D0000000080041A1D0000000080041A1D0000000080041A1D00ancs_client, bond result 03: bonded: 6a779c45c2d1 type 1 bonded 1 handle 64

@$*#04FF26F7009201040080E49D100300000080E4E5100300000000E5E5030300000000E5490408watch_write_handler: NVRAM write:0018te = 15150

watch_write_handler: len:2 handle 0014

write_handler: hid_report_client_configuration: 0001

watch_write_handler: NVRAM write:0018

@$*#04FF26F7009201040000E575041400000000E575041400000080033A1B1400000000E5750414000000watch_write_handler: len:2 handle 001c

@$*#04FF26F7009201040000E575041C00000000E575041C00000080033A1B1400000000E575041C000000@$*#04FF16F700920102000007F610FA0005000007FA1001000000@$*#04FF16F700920102000007F610FA0005000007FA1001000000@$*#04FF16F700920102000007F610FA0005000007FA1001000000@$*#04FF16F700920102000007F610FA0005000007FA1001000000@$*#04FF16F700920102000007F610FA0005000007FA1001000000@$*#04FF16F700920102000007F610FA0005000007FA@$*#04FF0EF7009201010000E5490B6400000010FA0005000007FA100100000064

--------------------------------------------------------------------------------------------------------------------------------------------------------

In this log, It looks like that it doesn't make a new line for logging. So I attach other log that I modify.

In the modify log, I didn't changed any source code but log message.

Also, I found that it cannot search the notification source characteristic  in ancs_client_process_rsp function.

It just find control point characteristic.

watch_connection_up: 020100200400 type 1 bonded 0 handle 64

ancs_client.connection_up: 020100200400 64

Watch: sending security request

@$*#04FF86F700920110000002FA240000000000078633000000000007E6200000000000078E1E0000000080E4310E459C776A80E4350E4000D1C280E4390E2000010280E43D0E0004000000078E1E0000000000E579022000010200E57D020004000080034E1B1400000080034E1B1800000080034E1B1C00000080036E1B0000000000075A3300000000@$*#04FF16F700920102000007F610FA0005000007FA1001000000@$*#04FF0EF700920101008004D61D02000000@$*#04FF0EF7009201010080041A1D00000000@$*#04FF0EF7009201010080041A1D00000000Watch: encryption changed: on 020100200400

ANCS encryption changed:00 bonded:1

@$*#04FF2EF7009201050080041A1D0000000080041A1D0000000080041A1D0000000080041A1D000000008004521D00000000Watch: bonded: 6a779c45c2d1 type 1 bonded 1 handle 64

NVRAM write:0018

ancs_client, bond result 03

NVRAM write:6

Service Search

watch_write_handler: len:2 handle 0014

write_handler: hid_report_client_configuration: 0001

watch_write_handler: NVRAM write:0018

@$*#04FF46F7009201080080E49D100300000080E4E5100300000000E5E5030300000000E549040800000000E575041400000000E575041400000080033A1B1400000000E5750414000000Client Rsp len:12, attr_len:6

s:0001 e:0005 uuid:1800

s:0006 e:0009 uuid:1801

Service Search s_hdl:000a, e_hdl:ffff

watch_write_handler: len:2 handle 001c

@$*#04FF26F7009201040000E575041C00000000E575041C00000080033A1B1400000000E575041C000000Client Rsp len:20, attr_len:20

000a e:000e uuid

6643ae107948f8a59145b4bb781e61d0

Service Search s_hdl:000f, e_hdl:ffff

Client Rsp len:12, attr_len:6

s:000f e:0012 uuid:180f

s:0013 e:0018 uuid:1805

Service Search s_hdl:0019, e_hdl:ffff

Client Rsp len:20, attr_len:20

0019 e:0022 uuid

d0002d121e4b0fa4994eceb531f40579

#### ANCS service founded!!!!####                 <------ I added this log.

Service Search s_hdl:0023, e_hdl:ffff

Client Rsp len:20, attr_len:20

0023 e:002e uuid

dcf855ad02c5f48e3a43360f2b50d389

Service Search s_hdl:002f, e_hdl:ffff

Client Rsp len:0, attr_len:0

###### GATT client init successed####                       <------ I added this log.

state = 15:00:177.(128/256) (Day) 71,  Reason:0

ANCS Client Rsp len:10, attr_len:0 state = 15

state = 15

ANCS client process rsp len = 0a    ####                                     <------ I added this log.

ANCS Client Rsp state = 15

ANCS Client Rsp len:21, attr_len:21 state = 15

!!!!!permission:88   !!!!                                                    <------ I added this log.

!!!!! handle:001b   !!!!                                                                      <------ I added this log.

@@@@ afdbd9b2198a849e145f3d8d169               <------ I added this log.   "ble_tracen (&data[i + 5], 16);"  (It looks be cut.)

control point hdl:001b

state = 15

ANCS Client Rsp state = 15

ANCS Client Rsp len:0, attr_len:0 state = 15

watch_write_handler: NVRAM write:0018

###### ANCS client init successed####                      <------ I added this log.

state = 00

ANCS Client Rsp state = 00

@$*#04FF16F700920102000007F610FA0005000007FA1001000000@$*#04FF16F700920102000007F610FA0005000007FA1001000000

Thanks.

0 Likes
Anonymous
Not applicable
0 Likes
Anonymous
Not applicable

Hello JunKyu,

We observed the same error and are meeting with the developers tomorrow to seek a resolution.

Which iOS version are you using on the iPhone?

Can you try iOS 9.2 to see if it works?

Thank you.

JT

0 Likes
Anonymous
Not applicable

Hi JT.

It doesn't work on iOS 9.2 still.

(Also, the log is looks same with before)

Thanks.

Regards,

Jun-Kyu

0 Likes

Below is a log with on iphone5 with iOS9.2. Towards the end of the log, a button-press was registered while I pause and un-pause the music play on the phone. After that, I also did a time-date change. For your reference...

14:23:02 - 14:23:02 - 0018

14:23:02 - 14:23:02 - 020300002a

14:23:02 - 14:23:02 - 4d792057617463680000000000000000

14:23:02 - 14:23:02 - 020500012a

14:23:02 - 14:23:02 - c000

14:23:02 - 14:23:02 - 020700042a

14:23:02 - 14:23:02 - 060006000a003200

14:23:02 - 14:23:02 - 0118

14:23:02 - 14:23:02 - 1218

14:23:02 - 14:23:02 - 020b004a2a

14:23:02 - 14:23:02 - 11010000

14:23:02 - 14:23:02 - 060d004e2a

14:23:02 - 14:23:02 - 01

14:23:02 - 14:23:02 - 040f004c2a

14:23:02 - 14:23:02 - ff

14:23:02 - 14:23:02 - 0211004b2a

14:23:02 - 14:23:02 - 05010906a101850175019508050719e0

14:23:02 - 14:23:02 - 29e71500250181029501750881039505

14:23:02 - 14:23:02 - 75010508190129059102950175039103

14:23:02 - 14:23:02 - 95067508150026ff000507190029ff81

14:23:02 - 14:23:02 - 00c0050c0901a1018502751095021501

14:23:02 - 14:23:02 - 268c0219012a8c028160c0

14:23:02 - 14:23:02 - 1213004d2a

14:23:02 - 14:23:02 - 0000000000000000

14:23:02 - 14:23:02 - 0000

14:23:02 - 14:23:02 - 0101

14:23:02 - 14:23:02 - 0e17004d2a

14:23:02 - 14:23:02 - 00

14:23:02 - 14:23:02 - 0000

14:23:02 - 14:23:02 - 0102

14:23:02 - 14:23:02 - 121b004d2a

14:23:02 - 14:23:02 - 00000000

14:23:02 - 14:23:02 - 0000

14:23:02 - 14:23:02 - 0201

14:23:02 - 14:23:02 - 0318

14:23:02 - 14:23:02 - 0a1103062a

14:23:02 - 14:23:02 - 01

14:23:02 - 14:23:02 - 0218

14:23:02 - 14:23:02 - 041104062a

14:23:02 - 14:23:02 - 00

14:23:02 - 14:23:02 - 0418

14:23:02 - 14:23:02 - 021105072a

14:23:02 - 14:23:02 - 04

14:23:02 - 14:23:02 - 0f18

14:23:02 - 14:23:02 - 02f207192a

14:23:02 - 14:23:02 - 64

14:23:02 - 14:23:02 - 0a18

14:23:02 - 14:23:02 - 021108502a

14:23:02 - 14:23:02 - 025c0a20200100

14:23:02 - 14:23:02 - 020106030303180319c00009094d7920

14:23:02 - 14:23:02 - 5761746368

14:23:02 - 14:23:02 - 020a04

14:23:02 - 14:23:02 - 01

14:23:02 - 14:23:02 - 00

14:23:02 - 14:23:02 - 04

14:23:02 - 14:23:02 - 00

14:23:02 - 14:23:02 - 0000

14:23:02 - 14:23:02 - 01

14:23:02 - 14:23:02 - 0100

14:23:02 - 14:23:02 - a834dc448f66

14:23:02 - 14:23:02 - watch_create()

14:23:02 - 14:23:02 - 1.00

14:23:02 - 14:23:02 - 01

14:23:02 - 14:23:02 - 0100

14:23:02 - 14:23:02 - 02010507021218021819200319c00009

14:23:02 - 14:23:02 - 094d79205761746368

14:23:02 - 14:23:02   Trace Decoding Error - Could not find line number 314

14:23:02 - 14:23:02   bd_addr[1:0] = 68A2 00

14:23:02 - 14:23:02   GPIO 0001 (11)

14:23:02 - 14:23:02   GPIO 0000 (104)

14:23:02 - 14:23:02   GPIO 0015 (20)

14:23:02 - 14:23:02   GPIO 0014 (1003)

14:23:02 - 14:23:02   GPIO 0028 (2001)

14:23:02 - 14:23:02   Interrupt mask[0,1]:0001 0000

14:23:02 - 14:23:02   Interrupt mask[2]:0000

14:23:02 - 14:23:02   GPIO_WP:OFF= 00

14:23:02 - 14:23:02   GPIOBTN1:OFF=1,INT:0

14:23:02 - 14:23:02   GPIOBAT

14:23:02 - 14:23:02   GPIO_LED:OFF=1

14:23:02 - 14:23:02   GPIO_BUZ:OFF=0

14:23:02 - 14:23:02   bleprox_ll_alt_hdl:0311

14:23:02 - 14:23:02   bleprox_ia_alt_hdl:0411

14:23:02 - 14:23:02   bleprox_tx_pw_hdl:0511

14:23:02 - 14:23:02   Battery level: 0/100

14:23:02 - 14:23:02   Battery level: 1/100

14:23:02 - 14:23:02   LEDBlink(250, 250)

14:23:02 - 14:23:02   LEDBlink Num = 1

14:23:02 - 14:23:02   Fine Timer(100 ms, 10/sec)

14:23:02 - 14:23:02   Fine TImer tick 8

14:23:02 - 14:23:02   Normal Timer(1 s, 80 tick)

14:23:02 - 14:23:02   connDown

14:23:02 - 14:23:02   BLE_high_un_adv:timer(1)

14:23:02 - 14:23:02   LL_Alert_Level:1

14:23:02 - 14:23:02   TimersKilled

14:23:02 - 14:23:02   Fine Timer(100 ms, 10/sec)

14:23:02 - 14:23:02   Fine TImer tick 0

14:23:02 - 14:23:02   Normal Timer(1 s, 80 tick)

14:23:02 - 14:23:02   Battery level: 1/100

14:23:02 - 14:23:02   BLE_high_un_adv:timer(0)

14:23:03 - 14:23:03   LEDBlink(5, 250)

14:23:03 - 14:23:03   LEDBlink Num = 1

14:23:03 - 14:23:03   BUZBeep(0)

14:23:04 - 14:23:04   LEDBlink(5, 250)

14:23:04 - 14:23:04   LEDBlink Num = 1

14:23:04 - 14:23:04   BUZBeep(0)

14:23:06 - 14:23:06   LEDBlink(5, 250)

14:23:06 - 14:23:06   LEDBlink Num = 0

14:23:11 - 14:23:11   LEDBlink(5, 250)

14:23:11 - 14:23:11   LEDBlink Num = 0

14:23:16 - 14:23:16   LEDBlink(5, 250)

14:23:16 - 14:23:16   LEDBlink Num = 0

14:23:21 - 14:23:21   LEDBlink(5, 250)

14:23:21 - 14:23:21   LEDBlink Num = 0

14:23:26 - 14:23:26 - watch_connection_up: 668f44dc34a8 type 1 bonded 1 handle 64

14:23:26 - 14:23:26 - 0000

14:23:26 - 14:23:26 - 0000

14:23:26 - 14:23:26 - 0000

14:23:26 - 14:23:26 - 0000

14:23:26 - 14:23:26 - 0000

14:23:26 - 14:23:26 - 0000

14:23:26 - 14:23:26 - 0000

14:23:26 - 14:23:26 - 0000

14:23:26 - 14:23:26 - 0000

14:23:26 - 14:23:26 - 0000

14:23:26 - 14:23:26 - ancs_client.connection_up: 668f44dc34a8 64

14:23:26 - 14:23:26 -

14:23:26 - 14:23:26 - device bonded

14:23:26 - 14:23:26   Connection is UP.

14:23:26 - 14:23:26   profile idle timer stop

14:23:26 - 14:23:26   connUp

14:23:26 - 14:23:26   noAdv

14:23:26 - 14:23:26   bleprox_connUp: bda[5..2] = 50 42 26 28

14:23:26 - 14:23:26   bleprox_connUp: bda[1..0], handle = 40 81, 0040

14:23:26 - 14:23:26   puba[5..2] = 66 8f 44 dc

14:23:26 - 14:23:26   puba[1..0] = 34A8 00

14:23:26 - 14:23:26   noAdv

14:23:26 - 14:23:26   blebat_connUp[5:2]: 66 8f 44 dc

14:23:26 - 14:23:26   blebat_connUp[1:0]: 34a8 00

14:23:26 - 14:23:26   0014:NOT_OFF

14:23:26 - 14:23:26   0018:NOT_OFF

14:23:26 - 14:23:26   001c:NOT_OFF

14:23:26 - 14:23:26   All Notifications Off

14:23:26 - 14:23:26   profile idle timer(0)

14:23:26 - 14:23:26   LEDBlink(5, 250)

14:23:26 - 14:23:26   LEDBlink Num = 0

14:23:27 - 14:23:27   smp timer started 00

14:23:28 - 14:23:28   SMPTmrRef

14:23:28 - 14:23:28   SMPTmrRef

14:23:29 - 14:23:29 - Watch: encryption changed: on 668f44dc34a8

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - ANCS encryption changed:00 bonded:1

14:23:29 - 14:23:29 - Watch: bonded: 504226284081 type 1 bonded 1 handle 64

14:23:29 - 14:23:29 - NVRAM write:0018

14:23:29 - 14:23:29 - ancs_client, bond result 03

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - NVRAM write:6

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - Service Search

14:23:29 - 14:23:29   SMPTmrRef

14:23:29 - 14:23:29   SMPTmrRef

14:23:29 - 14:23:29   SMPTmrRef

14:23:29 - 14:23:29   SMPTmrRef

14:23:29 - 14:23:29   SMPTmrStp

14:23:29 - 14:23:29   bleprox, bond result 03

14:23:29 - 14:23:29   NVRAM write:0003

14:23:29 - 14:23:29   blebat, bond result 03

14:23:29 - 14:23:29   NVRAM write:0000

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - Client Rsp len:12, attr_len:6

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - s:0001 e:0005 uuid:1800

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - s:0006 e:0009 uuid:1801

14:23:29 - 14:23:29 - Service Search s_hdl:000a, e_hdl:ffff

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - Client Rsp len:20, attr_len:20

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - 000a e:000e uuid

14:23:29 - 14:23:29 - 6643ae107948f8a59145b4bb781e61d0

14:23:29 - 14:23:29 - Service Search s_hdl:000f, e_hdl:ffff

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - Client Rsp len:18, attr_len:6

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - s:000f e:0012 uuid:180f

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - s:0013 e:0018 uuid:1805

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - s:0019 e:001d uuid:180a

14:23:29 - 14:23:29 - Service Search s_hdl:001e, e_hdl:ffff

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - Client Rsp len:20, attr_len:20

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - 001e e:0027 uuid

14:23:29 - 14:23:29 - d0002d121e4b0fa4994eceb531f40579

14:23:29 - 14:23:29 - Service Search s_hdl:0028, e_hdl:ffff

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - Client Rsp len:20, attr_len:20

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - 0028 e:0033 uuid

14:23:29 - 14:23:29 - dcf855ad02c5f48e3a43360f2b50d389

14:23:29 - 14:23:29 - Service Search s_hdl:0034, e_hdl:ffff

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - Client Rsp len:0, attr_len:0

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - GATT Client Rsp len:7, attr_len:7

14:23:29 - 14:23:29 - service_changed hdl:0008

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - TIME Client Rsp state:1 len:14 attr_len:7

14:23:29 - 14:23:29 - current_time hdl:0015

14:23:29 - 14:23:29 -

14:23:29 - 14:23:29 - TIME Client Rsp state:2 len:4 attr_len:4

14:23:30 - 14:23:30 - current_time ccc hdl:0016

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - TIME Client Rsp state:3 len:0 attr_len:0

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - TIME Client Rsp state:4 len:2120585 attr_len:19

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - TIME Notification: attr_len:19 len:2120585

14:23:30 - 14:23:30 - (Date) 45237/72/128

14:23:30 - 14:23:30 - (Time) 105:00:177.(128/256) (Day) 71,  Reason:0

14:23:30 - 14:23:30 - state = 15

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - ANCS Client Rsp len:10, attr_len:0 state = 15

14:23:30 - 14:23:30 - state = 15

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - ANCS Client Rsp state = 15

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - ANCS Client Rsp len:21, attr_len:21 state = 15

14:23:30 - 14:23:30 - control point hdl:0020

14:23:30 - 14:23:30 - state = 15

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - ANCS Client Rsp state = 15

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - ANCS Client Rsp len:0, attr_len:0 state = 15

14:23:30 - 14:23:30 - watch_write_handler: NVRAM write:0018

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - state = 00

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - ANCS Client Rsp state = 00

14:23:30 - 14:23:30 - watch_write_handler: len:2 handle 0014

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - write_handler: hid_report_client_configuration: 0001

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - watch_write_handler: NVRAM write:0018

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30   WriteCb: handle 0014

14:23:30 - 14:23:30   WriteCb: handle 0014

14:23:30 - 14:23:30   0014:NOT_ON

14:23:30 - 14:23:30   WriteCb: handle 0000

14:23:30 - 14:23:30 - watch_write_handler: len:2 handle 001c

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30   WriteCb: handle 001c

14:23:30 - 14:23:30   WriteCb: handle 001c

14:23:30 - 14:23:30   0014:NOT_ON

14:23:30 - 14:23:30   WriteCb: handle 0000

14:23:31 - 14:23:31   LEDBlink(5, 250)

14:23:31 - 14:23:31   LEDBlink Num = 0

14:23:36 - 14:23:36   LEDBlink(5, 250)

14:23:36 - 14:23:36   LEDBlink Num = 0

14:23:38 - 14:23:38 - (INT)But1:1 But2:0 But3:0 handle:64 CCC:1

14:23:41 - 14:23:41 -

14:23:41 - 14:23:41   LEDBlink(5, 250)

14:23:41 - 14:23:41   LEDBlink Num = 0

14:23:45 - 14:23:45 - (INT)But1:1 But2:0 But3:0 handle:64 CCC:1

14:23:46 - 14:23:46 -

14:23:46 - 14:23:46   LEDBlink(5, 250)

14:23:46 - 14:23:46   LEDBlink Num = 0

14:23:51 - 14:23:51   LEDBlink(5, 250)

14:23:51 - 14:23:51   LEDBlink Num = 0

14:23:56 - 14:23:56   LEDBlink(5, 250)

14:23:56 - 14:23:56   LEDBlink Num = 0

14:24:01 - 14:24:01   LEDBlink(5, 250)

14:24:01 - 14:24:01   LEDBlink Num = 0

14:24:02 - 14:24:02 - 01

14:24:02 - 14:24:02 - 0100

14:24:02 - 14:24:02   Battery level: 0/100

14:24:05 - 14:24:05 -

14:24:05 - 14:24:05 - Watch Notification handle:15 len:10

14:24:05 - 14:24:05 -

14:24:05 - 14:24:05 - TIME Notification: attr_len:21 len:10

14:24:05 - 14:24:05 - (Date) 2016/01/13

14:24:05 - 14:24:05 - (Time) 11:54:05.(3/256) (Day) 134,  Reason:2

14:24:06 - 14:24:06   LEDBlink(5, 250)

14:24:06 - 14:24:06   LEDBlink Num = 0

14:24:11 - 14:24:11   LEDBlink(5, 250)

14:24:11 - 14:24:11   LEDBlink Num = 0

14:24:16 - 14:24:16   LEDBlink(5, 250)

14:24:16 - 14:24:16   LEDBlink Num = 0

14:24:18 - 14:24:18 -

14:24:18 - 14:24:18 - Watch Notification handle:15 len:10

14:24:18 - 14:24:18 -

14:24:18 - 14:24:18 - TIME Notification: attr_len:21 len:10

14:24:18 - 14:24:18 - (Date) 2016/01/13

14:24:18 - 14:24:18 - (Time) 14:24:18.(3/256) (Day) 143,  Reason:2

14:24:21 - 14:24:21   LEDBlink(5, 250)

14:24:21 - 14:24:21   LEDBlink Num = 0

14:24:26 - 14:24:26   LEDBlink(5, 250)

14:24:26 - 14:24:26   LEDBlink Num = 0

0 Likes
Anonymous
Not applicable

Thanks boont.

However, ANCS notification characteristic still not active.

(Only, control point is active)

I think, ancs_client_process_rsp in ancs_client.c can not detect notification source characteristic.

and it goes to idle state.

you can check it on your log.

------------------------------------------------------------------------------------------------------

14:23:30 - 14:23:30 - state = 15

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - ANCS Client Rsp len:10, attr_len:0 state = 15        

14:23:30 - 14:23:30 - state = 15

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - ANCS Client Rsp state = 15

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - ANCS Client Rsp len:21, attr_len:21 state = 15           

14:23:30 - 14:23:30 - control point hdl:0020

14:23:30 - 14:23:30 - state = 15

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - ANCS Client Rsp state = 15

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - ANCS Client Rsp len:0, attr_len:0 state = 15

14:23:30 - 14:23:30 - watch_write_handler: NVRAM write:0018

14:23:30 - 14:23:30 -

14:23:30 - 14:23:30 - state = 00

------------------------------------------------------------------------------------------------------

I want show what happen in the ancs_client_rsp function, but I can not check it.

please check it.

Thanks.

Regards,

Jun-Kyu

0 Likes

신준규

We are still working internally on this and will update when there is a fix.

0 Likes
Anonymous
Not applicable

Dear boont.

Thanks for reply.

Have a good day

0 Likes
Anonymous
Not applicable

Is there anybody here?

I update something like bug.

In the ancs_client.c, I added trace log for checking handle value in the ancs_client_initialize function.

// command from the main app to start search for characteristics

int ancs_client_initialize(UINT16 s_handle, UINT16 e_handle, BLEPROFILE_SINGLE_PARAM_CB initialize_complete_callback)

{

  ble_trace0("###ANCS INIT START ####\n\r");

    if ((s_handle == 0) || ((ancs_client.ancs_e_handle = e_handle) == 0))

    {

        return FALSE;

    }

    // Functions of this module willl need to receive GATT client callbacks

    leatt_regReadRspCb((LEATT_TRIPLE_PARAM_CB) ancs_client_process_rsp);

    leatt_regReadByTypeRspCb((LEATT_TRIPLE_PARAM_CB) ancs_client_process_rsp);

    leatt_regReadByGroupTypeRspCb((LEATT_TRIPLE_PARAM_CB) ancs_client_process_rsp);

    leatt_regWriteRspCb((LEATT_NO_PARAM_CB) ancs_client_write_rsp);

    ancs_client_initialize_complete_callback = initialize_complete_callback;

    memset (&ancs_client, 0, sizeof (ancs_client));

    ancs_client.state = ANCS_CLIENT_STATE_WAIT_READ_ANCS_CHARACTERISTIC;

    ble_trace1("state = %02x", ancs_client.state);

    bleprofile_sendReadByTypeReq(s_handle, e_handle, UUID_ATTRIBUTE_CHARACTERISTIC);

    ble_trace2("*****ANCS request handle value s_hdl:%04x, e_hdl:%04x*****\n\r", s_handle, e_handle);

    return TRUE;

}

16:02:15 - *****ANCS request handle value s_hdl:001e, e_hdl:0027*****

It looks like, BCM 20737 sends the characteristic discovery request to the iOS(server).  (handle 001e~ 0027)

But in the ancs_client_process_rsp function, 20737 finds only one characteristic for control point, and the attr_len become 0.

and it goes to the IDLE STATE on here. Because ancs_client.current_characteristic_index++; is not executed anymore.

            if (ancs_client.current_descriptor_index == ancs_client.current_characteristic_index)

            {

                ancs_client.state = ANCS_CLIENT_STATE_IDLE;

                (*ancs_client_initialize_complete_callback)(1);

            }

this is a log.

16:02:15 - state = 15

16:02:15 - *****ANCS request handle value s_hdl:001e, e_hdl:0027*****

16:02:15 -

16:02:15 -

16:02:15 -

16:02:15 - ANCS Client Rsp len:21, attr_len:21 state = 15

16:02:15 -

16:02:15 - #### data:

16:02:15 - 1f00882000d9d9aafdbd9b2198a849e1                                            <- ANCS_CONTROL_POINT

16:02:15 - 45f3d8d169

16:02:15 - ####

16:02:15 -

16:02:15 - control point hdl:0020

16:02:15 - ***ANCS char num: 1  ****

16:02:15 -

16:02:15 -

16:02:15 - state = 15

16:02:15 -

16:02:15 - ANCS Client Rsp state = 15

16:02:15 -

16:02:15 - ANCS Client Rsp len:0, attr_len:0 state = 15                               <- attr_len become zero

please check it.

Thanks.

Regards, Jun-Kyu

0 Likes

Unfortunately, there is no update to provide at this time.

boont

0 Likes

I am still tracking this internally with the factory. Sorry for the delay.

0 Likes

신준규

Please close this case as you have gotten the fix.

0 Likes
Anonymous
Not applicable

(for other developers)

OK. I got the solution from Broadcom support team.

Just put this line ancs_client_initialize function on ancs_client.c

.....

......

    ancs_client_initialize_complete_callback = initialize_complete_callback;

    memset (&ancs_client, 0, sizeof (ancs_client));

    ///////////////////////////////////////////////

    ancs_client.ancs_e_handle=e_handle;     <--- this

    //////////////////////////////////////////////

    ancs_client.state =      ANCS_CLIENT_STATE_WAIT_READ_ANCS_CHARACTERISTIC;

.....

.....

It is working well now.

Thanks.

Regards,

Jun-Kyu