mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-14 01:27:41 +00:00
ble client: write long characteristic descriptor implemented, not tested
This commit is contained in:
parent
807e6f62ee
commit
5e457cb758
@ -584,7 +584,19 @@ static void handle_peripheral_list(){
|
||||
if (status != BLE_PERIPHERAL_OK) break;
|
||||
peripheral->state = P_W4_CLIENT_CHARACTERISTIC_CONFIGURATION_RESULT;
|
||||
break;
|
||||
|
||||
|
||||
case P_W2_PREPARE_WRITE_CHARACTERISTIC_DESCRIPTOR:
|
||||
status = send_gatt_prepare_write_request(peripheral);
|
||||
if (status != BLE_PERIPHERAL_OK) break;
|
||||
peripheral->state = P_W4_PREPARE_WRITE_CHARACTERISTIC_DESCRIPTOR_RESULT;
|
||||
break;
|
||||
|
||||
case P_W2_EXECUTE_PREPARED_WRITE_CHARACTERISTIC_DESCRIPTOR:
|
||||
status = send_gatt_execute_write_request(peripheral);
|
||||
if (status != BLE_PERIPHERAL_OK) break;
|
||||
peripheral->state = P_W4_EXECUTE_PREPARED_WRITE_CHARACTERISTIC_DESCRIPTOR_RESULT;
|
||||
break;
|
||||
|
||||
case P_W2_DISCONNECT:
|
||||
peripheral->state = P_W4_DISCONNECTED;
|
||||
hci_send_cmd(&hci_disconnect, peripheral->handle,0x13);
|
||||
@ -905,7 +917,7 @@ le_command_status_t le_central_write_long_characteristic_descriptor(le_periphera
|
||||
peripheral->attribute_offset = 0;
|
||||
peripheral->attribute_value = value;
|
||||
|
||||
peripheral->state = P_W2_SEND_WRITE_CHARACTERISTIC_DESCRIPTOR;
|
||||
peripheral->state = P_W2_PREPARE_WRITE_CHARACTERISTIC_DESCRIPTOR;
|
||||
gatt_client_run();
|
||||
return BLE_PERIPHERAL_OK;
|
||||
}
|
||||
@ -1501,6 +1513,11 @@ static void att_packet_handler(uint8_t packet_type, uint16_t handle, uint8_t *pa
|
||||
trigger_next_prepare_write_query(peripheral, P_W2_PREPARE_WRITE, P_W2_EXECUTE_PREPARED_WRITE);
|
||||
break;
|
||||
}
|
||||
case P_W4_PREPARE_WRITE_CHARACTERISTIC_DESCRIPTOR_RESULT:{
|
||||
peripheral->attribute_offset = READ_BT_16(packet, 3);
|
||||
trigger_next_prepare_write_query(peripheral, P_W2_PREPARE_WRITE_CHARACTERISTIC_DESCRIPTOR, P_W2_EXECUTE_PREPARED_WRITE_CHARACTERISTIC_DESCRIPTOR);
|
||||
break;
|
||||
}
|
||||
case P_W4_PREPARE_RELIABLE_WRITE_RESULT:{
|
||||
if (is_value_valid(peripheral, packet, size)){
|
||||
peripheral->attribute_offset = READ_BT_16(packet, 3);
|
||||
@ -1523,7 +1540,11 @@ static void att_packet_handler(uint8_t packet_type, uint16_t handle, uint8_t *pa
|
||||
break;
|
||||
case P_W4_CANCEL_PREPARED_WRITE_RESULT:
|
||||
peripheral->state = P_CONNECTED;
|
||||
send_gatt_complete_event(peripheral, GATT_LONG_CHARACTERISTIC_VALUE_WRITE_COMPLETE, 1);
|
||||
send_gatt_complete_event(peripheral, GATT_LONG_CHARACTERISTIC_VALUE_WRITE_CANCELED, 1);
|
||||
break;
|
||||
case P_W4_EXECUTE_PREPARED_WRITE_CHARACTERISTIC_DESCRIPTOR_RESULT:
|
||||
peripheral->state = P_CONNECTED;
|
||||
send_gatt_complete_event(peripheral, GATT_LONG_CHARACTERISTIC_DESCRIPTOR_WRITE_COMPLETE, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -127,6 +127,11 @@ typedef enum {
|
||||
P_W2_SEND_WRITE_CHARACTERISTIC_DESCRIPTOR,
|
||||
P_W4_WRITE_CHARACTERISTIC_DESCRIPTOR_RESULT,
|
||||
|
||||
P_W2_PREPARE_WRITE_CHARACTERISTIC_DESCRIPTOR,
|
||||
P_W4_PREPARE_WRITE_CHARACTERISTIC_DESCRIPTOR_RESULT,
|
||||
P_W2_EXECUTE_PREPARED_WRITE_CHARACTERISTIC_DESCRIPTOR,
|
||||
P_W4_EXECUTE_PREPARED_WRITE_CHARACTERISTIC_DESCRIPTOR_RESULT,
|
||||
|
||||
P_W2_CANCEL_CONNECT,
|
||||
P_W4_CONNECT_CANCELLED,
|
||||
P_W2_DISCONNECT,
|
||||
|
@ -237,8 +237,8 @@ extern "C" {
|
||||
#define GATT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 0xAB
|
||||
#define GATT_LONG_CHARACTERISTIC_VALUE_QUERY_COMPLETE 0xAC
|
||||
#define GATT_CHARACTERISTIC_VALUE_WRITE_RESPONSE 0xAD
|
||||
#define GATT_LONG_CHARACTERISTIC_VALUE_WRITE_RESPONSE 0xAE
|
||||
#define GATT_LONG_CHARACTERISTIC_VALUE_WRITE_COMPLETE 0xAF
|
||||
#define GATT_LONG_CHARACTERISTIC_VALUE_WRITE_COMPLETE 0xAE
|
||||
#define GATT_LONG_CHARACTERISTIC_VALUE_WRITE_CANCELED 0xAF
|
||||
|
||||
#define GATT_NOTIFICATION 0xBC
|
||||
#define GATT_INDICATION 0xBD
|
||||
@ -248,8 +248,7 @@ extern "C" {
|
||||
#define GATT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xC3
|
||||
#define GATT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_COMPLETE 0xC4
|
||||
#define GATT_CHARACTERISTIC_DESCRIPTOR_WRITE_RESPONSE 0xC5
|
||||
#define GATT_LONG_CHARACTERISTIC_DESCRIPTOR_WRITE_RESPONSE 0xC6
|
||||
#define GATT_LONG_CHARACTERISTIC_DESCRIPTOR_WRITE_COMPLETE 0xC7
|
||||
#define GATT_LONG_CHARACTERISTIC_DESCRIPTOR_WRITE_COMPLETE 0xC6
|
||||
|
||||
// data: event(8), len(8), status (8), hci_handle (16), attribute_handle (16)
|
||||
#define ATT_HANDLE_VALUE_INDICATION_COMPLETE 0xBF
|
||||
|
Loading…
x
Reference in New Issue
Block a user