cancel
Showing results for 
Search instead for 
Did you mean: 

characteristic type change CHAR_PROP_WRITE to CHAR_PROP_WRITE_WITHOUT_RESP issue

DS.4
Senior II

I have changed my service characteristic from CHAR_PROP_WRITE to CHAR_PROP_WRITE_WITHOUT_RESP.

(following android issues) 


But, when I try to write it , using a stm32wb55 dongle (ACI_GATT_WRITE_CHAR_VALUE)  , I get : 


ACI_GATT_ERROR_RESP_EVENT ( 0x03: Write not permitted) 
ACI_GATT_PROC_COMPLETE_EVENT (0x91 Failed)

 

Only if I set my characteristic to both ( CHAR_PROP_WRITE | CHAR_PROP_WRITE_WITHOUT_RESP ) all work well.

 

Can you explain the route cause for this? what does _WITHOUT_RESP mean ? and why dongle GATT rejects the write request?

 

2 REPLIES 2
_Joe_
ST Employee

Hi DS.4,

The command ACI GATT WRITE WITHOUT RESP starts the procedure to write a characteristic value without waiting for any response from the server. However, no events are generated after this command is executed, unlike the command ACI_GATT_WRITE_CHAR_VALUE.

So, if you use ACI GATT WRITE WITHOUT RESP, you will not have an ACI_GATT_PROC_COMPLETE_EVENT.

You can take an example from the p2pServer application, which uses an ACI GATT WRITE WITHOUT RESP to control an LED.

You can find more explanations about the ACI commands here.

BR, Joé

Ok,


So what I understand is that to be able to write a "_WITHOUT RESP" characteristic I need to use a differenet aci command ACI GATT WRITE WITHOUT RESP?


On another level, What is this "response" that is being disabled? is it a response from the other side? some sort of ack from the server side that he got a write request? will it speed things up if I disable it? where can I find more information regarding it?