Bluetooth Gatt Client Write Attribute Acknowledge

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

cross mob
aglier
Level 4
Level 4
25 replies posted 25 sign-ins 10 replies posted

Hi,

 

according to the documentation "EZ-Serial WICED Firmware Platform User
Guide for CYW2070x-based Modules" it is possible to write an attribute without acknowledge.

But no metter what I set in this command, I will always receive a WriteAcknowledgeEvent.

Is this not implemented?

I'm using a CYBT-343026-01

 

Best regards

Alex

0 Likes
1 Solution
BragadeeshV
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hi @aglier ,

I can confirm that for both Write with response and Write without response, we are receiving a response event. We will file an internal ticket on this. However,  Write without response is sent with the right opcode to the server. I can confirm that I was able to get both Write without response and Write with response separately. So, if you are sending write without response, the response event can be ignored at the client side.

Regards,
Bragadeesh

View solution in original post

0 Likes
5 Replies
Vivek_gunapati
Moderator
Moderator
Moderator
250 replies posted 10 likes given 50 solutions authored

Hi @aglier we are trying to reproduce the issue will get back to you on this.

0 Likes
BragadeeshV
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hi @aglier , Please let us know the exact command you are using. Also please share with the command and response from the serial terminal output.

Regards,
Bragadeesh
0 Likes
aglier
Level 4
Level 4
25 replies posted 25 sign-ins 10 replies posted

Hi @Bragadeesh,

I am not using the serial terminal but instead wrote my own tool that is using the binary protocol format.

cypress.PNG

 

The communication looks as follows:

 

Data send (HEX): c0 0a 06 05 01 18 00 01 04 00 01 02 03 04 96

Explanation: 

  • C0 = Command Type
  • 0A = Payload length
  • 06 = Command Group
  • 05 = Command ID
  • 01 = Connection Handle
  • 18 00 = Attribute Handle
  • 01 = Type of write (1 means write without response)
  • 04 00 = longuint8a length
  • 01 = test byte 1
  • 02 = test byte 2
  • 03 = test byte 3
  • 04 = test byte 4
  • 96 = Checksum

 

No matter if I set type of write to 0 or 1 I will always recieve the the following byte sequences afterwars:

Data received (HEX): C0 02 06 05 00 00 66 

- Binary response with success status code

Data received (HEX): 80 05 06 04 01 18 00 00 00 41

- this is the gattc write response with result code = success according to:

ack.PNG

I hope this helps

 

0 Likes
BragadeeshV
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hi @aglier ,

I can confirm that for both Write with response and Write without response, we are receiving a response event. We will file an internal ticket on this. However,  Write without response is sent with the right opcode to the server. I can confirm that I was able to get both Write without response and Write with response separately. So, if you are sending write without response, the response event can be ignored at the client side.

Regards,
Bragadeesh
0 Likes

Hi BragadeeshV,

thank you for your response.

Did I understand you right, that the Write without response is send correctly to the client and that the response event is just generated on EZSerial?

Is the transmission speed affected by this behavior? Or in other words, will the client send a response in the next connection interval?

My concern is, that I can't achieve the desired data rate because this behavior will not allow me to send multiple ATT packages within one connection interval.

Best regards

Alex

0 Likes