I have a characteristic that supports write and indicate. A command is written to the char, the server responds by indicating the characteristic to the client.
I'm using Stm32CubeMonitor-RF 2.19.0 to test the server, but indications always cause a ACI_GATT_PROC_TIMEOUT_EVENT because STM32CubeMonitor-RF does not issue a ACI_GATT_CONFIRM_INDICATION after an indication is received.
Nb,Time,Port Com,Type,Parameter,Value,Literal,Information 1328,13:56:41:283,COM6,ACI_GATT_WRITE_CHAR_VALUE,hci_packet_indicator,0x01,HCI Command Packet, 1328,13:56:41:283,COM6,ACI_GATT_WRITE_CHAR_VALUE,op_code,0xFD1C,ACI_GATT_WRITE_CHAR_VALUE, 1328,13:56:41:283,COM6,ACI_GATT_WRITE_CHAR_VALUE,parameter_total_length,0x06,, 1328,13:56:41:283,COM6,ACI_GATT_WRITE_CHAR_VALUE,connection_handle,0x0801,,Specifies the ATT bearer for which the command applies.. Possible values:. 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the connection handle). 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the parameter is the connection-oriented channel index) 1328,13:56:41:283,COM6,ACI_GATT_WRITE_CHAR_VALUE,attr_handle,0x0019,,Handle of the characteristic value to be written 1328,13:56:41:283,COM6,ACI_GATT_WRITE_CHAR_VALUE,attribute_val_length,0x01,,Length of the value to be written 1328,13:56:41:283,COM6,ACI_GATT_WRITE_CHAR_VALUE,attribute_val,0x02,,Value to be written 1328,13:56:41:283,COM6,ACI_GATT_WRITE_CHAR_VALUE,Raw,[0x01:0x1C:0xFD:0x06:0x01:0x08:0x19:0x00:0x01:0x02],, 1329,13:56:41:284,COM6,HCI_COMMAND_STATUS_EVENT,hci_packet_indicator,0x04,HCI Event packet, 1329,13:56:41:284,COM6,HCI_COMMAND_STATUS_EVENT,event_code,0x0F,HCI_COMMAND_STATUS_EVENT, 1329,13:56:41:284,COM6,HCI_COMMAND_STATUS_EVENT,parameter_total_length,0x04,, 1329,13:56:41:284,COM6,HCI_COMMAND_STATUS_EVENT,status,0x00,Success,Status error code. 1329,13:56:41:284,COM6,HCI_COMMAND_STATUS_EVENT,num_hci_command_packets,0x01,,The Number of HCI command packets which are allowed to be sent to the Controller from the Host. 1329,13:56:41:284,COM6,HCI_COMMAND_STATUS_EVENT,command_opcode,0xFD1C,ACI_GATT_WRITE_CHAR_VALUE,Opcode of the command which caused this event. 1329,13:56:41:284,COM6,HCI_COMMAND_STATUS_EVENT,Raw,[0x04:0x0F:0x04:0x00:0x01:0x1C:0xFD],, 1330,13:56:41:435,COM6,HCI_VENDOR_EVENT,hci_packet_indicator,0x04,HCI Event packet, 1330,13:56:41:435,COM6,HCI_VENDOR_EVENT,event_code,0xFF,HCI_VENDOR_EVENT, 1330,13:56:41:435,COM6,HCI_VENDOR_EVENT,parameter_total_length,0x05,, 1330,13:56:41:435,COM6,HCI_VENDOR_EVENT,ecode,0x0C10,ACI_GATT_PROC_COMPLETE_EVENT, 1330,13:56:41:435,COM6,HCI_VENDOR_EVENT,connection_handle,0x0801,,Specifies the ATT bearer for which the event applies.. Possible values:. 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the connection handle). 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the parameter is the connection-oriented channel index) 1330,13:56:41:435,COM6,HCI_VENDOR_EVENT,error_code,0x00,,"Indicates whether the procedure completed with an error or was successful (see ""Status error codes"" section)" 1330,13:56:41:435,COM6,HCI_VENDOR_EVENT,Raw,[0x04:0xFF:0x05:0x10:0x0C:0x01:0x08:0x00],, 1331,13:56:46:032,COM6,ACI_GATT_WRITE_CHAR_VALUE,hci_packet_indicator,0x01,HCI Command Packet, 1331,13:56:46:032,COM6,ACI_GATT_WRITE_CHAR_VALUE,op_code,0xFD1C,ACI_GATT_WRITE_CHAR_VALUE, 1331,13:56:46:032,COM6,ACI_GATT_WRITE_CHAR_VALUE,parameter_total_length,0x07,, 1331,13:56:46:032,COM6,ACI_GATT_WRITE_CHAR_VALUE,connection_handle,0x0801,,Specifies the ATT bearer for which the command applies.. Possible values:. 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the connection handle). 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the parameter is the connection-oriented channel index) 1331,13:56:46:032,COM6,ACI_GATT_WRITE_CHAR_VALUE,attr_handle,0x0018,,Handle of the characteristic value to be written 1331,13:56:46:032,COM6,ACI_GATT_WRITE_CHAR_VALUE,attribute_val_length,0x02,,Length of the value to be written 1331,13:56:46:032,COM6,ACI_GATT_WRITE_CHAR_VALUE,attribute_val,0x0104,,Value to be written 1331,13:56:46:032,COM6,ACI_GATT_WRITE_CHAR_VALUE,Raw,[0x01:0x1C:0xFD:0x07:0x01:0x08:0x18:0x00:0x02:0x04:0x01],, 1332,13:56:46:033,COM6,HCI_COMMAND_STATUS_EVENT,hci_packet_indicator,0x04,HCI Event packet, 1332,13:56:46:033,COM6,HCI_COMMAND_STATUS_EVENT,event_code,0x0F,HCI_COMMAND_STATUS_EVENT, 1332,13:56:46:033,COM6,HCI_COMMAND_STATUS_EVENT,parameter_total_length,0x04,, 1332,13:56:46:033,COM6,HCI_COMMAND_STATUS_EVENT,status,0x00,Success,Status error code. 1332,13:56:46:033,COM6,HCI_COMMAND_STATUS_EVENT,num_hci_command_packets,0x01,,The Number of HCI command packets which are allowed to be sent to the Controller from the Host. 1332,13:56:46:033,COM6,HCI_COMMAND_STATUS_EVENT,command_opcode,0xFD1C,ACI_GATT_WRITE_CHAR_VALUE,Opcode of the command which caused this event. 1332,13:56:46:033,COM6,HCI_COMMAND_STATUS_EVENT,Raw,[0x04:0x0F:0x04:0x00:0x01:0x1C:0xFD],, 1333,13:56:46:155,COM6,HCI_VENDOR_EVENT,hci_packet_indicator,0x04,HCI Event packet, 1333,13:56:46:155,COM6,HCI_VENDOR_EVENT,event_code,0xFF,HCI_VENDOR_EVENT, 1333,13:56:46:155,COM6,HCI_VENDOR_EVENT,parameter_total_length,0x05,, 1333,13:56:46:155,COM6,HCI_VENDOR_EVENT,ecode,0x0C10,ACI_GATT_PROC_COMPLETE_EVENT, 1333,13:56:46:155,COM6,HCI_VENDOR_EVENT,connection_handle,0x0801,,Specifies the ATT bearer for which the event applies.. Possible values:. 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the connection handle). 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the parameter is the connection-oriented channel index) 1333,13:56:46:155,COM6,HCI_VENDOR_EVENT,error_code,0x00,,"Indicates whether the procedure completed with an error or was successful (see ""Status error codes"" section)" 1333,13:56:46:155,COM6,HCI_VENDOR_EVENT,Raw,[0x04:0xFF:0x05:0x10:0x0C:0x01:0x08:0x00],, 1334,13:56:46:156,,HCI_VENDOR_EVENT,hci_packet_indicator,0x04,HCI Event packet, 1334,13:56:46:156,,HCI_VENDOR_EVENT,event_code,0xFF,HCI_VENDOR_EVENT, 1334,13:56:46:156,,HCI_VENDOR_EVENT,parameter_total_length,0x1B,, 1334,13:56:46:156,,HCI_VENDOR_EVENT,ecode,0x0C0E,ACI_GATT_INDICATION_EVENT, 1334,13:56:46:156,,HCI_VENDOR_EVENT,connection_handle,0x0801,,Specifies the ATT bearer for which the event applies.. Possible values:. 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the connection handle). 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the parameter is the connection-oriented channel index) 1334,13:56:46:156,,HCI_VENDOR_EVENT,attribute_handle,0x0018,,The handle of the attribute 1334,13:56:46:156,,HCI_VENDOR_EVENT,attribute_value_length,0x14,,Length of Attribute_Value in octets 1334,13:56:46:156,,HCI_VENDOR_EVENT,attribute_value,0x0000000000000000000000000000000000000304,,The current value of the attribute 1334,13:56:46:156,,HCI_VENDOR_EVENT,Raw,[0x04:0xFF:0x1B:0x0E:0x0C:0x01:0x08:0x18:0x00:0x14:0x04:0x03:0x00:0x00:0x00:0x00:0x00:0x00:0x00:0x00:0x00:0x00:0x00:0x00:0x00:0x00:0x00:0x00:0x00:0x00],, 1335,13:57:16:156,,HCI_VENDOR_EVENT,hci_packet_indicator,0x04,HCI Event packet, 1335,13:57:16:156,,HCI_VENDOR_EVENT,event_code,0xFF,HCI_VENDOR_EVENT, 1335,13:57:16:156,,HCI_VENDOR_EVENT,parameter_total_length,0x04,, 1335,13:57:16:156,,HCI_VENDOR_EVENT,ecode,0x0C02,ACI_GATT_PROC_TIMEOUT_EVENT, 1335,13:57:16:156,,HCI_VENDOR_EVENT,connection_handle,0x0801,,Specifies the ATT bearer for which the event applies.. Possible values:. 0x0000 ... 0x0EFF: Unenhanced ATT bearer (the parameter is the connection handle). 0xEA00 ... 0xEA3F: Enhanced ATT bearer (the LSB-byte of the parameter is the connection-oriented channel index) 1335,13:57:16:156,,HCI_VENDOR_EVENT,Raw,[0x04:0xFF:0x04:0x02:0x0C:0x01:0x08],,
Sound like being a bug in CubeMonitor-RF, because ACI_GATT_PROC_COMPLETE_EVENT happens, the tool considers the command is finished and does not wait for any further event and ignores the ACI_GATT_INDICATION_EVENT.