diff --git a/ble/l2cap_le.c b/ble/l2cap_le.c index aeabce0c4..e04c01e06 100644 --- a/ble/l2cap_le.c +++ b/ble/l2cap_le.c @@ -309,7 +309,8 @@ void l2cap_acl_handler( uint8_t *packet, uint16_t size ){ hci_connection_t * connection = hci_connection_for_handle(handle); if (connection){ int update_parameter = 1; - le_connection_parameter_range_t existing_range = gap_le_get_connection_parameter_range(); + le_connection_parameter_range_t existing_range; + gap_le_get_connection_parameter_range(existing_range); uint16_t le_conn_interval_min = READ_BT_16(packet,12); uint16_t le_conn_interval_max = READ_BT_16(packet,14); uint16_t le_conn_latency = READ_BT_16(packet,16); diff --git a/src/hci.c b/src/hci.c index 82c3beb17..02e3ce62f 100644 --- a/src/hci.c +++ b/src/hci.c @@ -133,8 +133,8 @@ static hci_connection_t * create_connection_for_bd_addr_and_type(bd_addr_t addr, * * @return le connection parameter range struct */ -le_connection_parameter_range_t gap_le_get_connection_parameter_range(void){ - return hci_stack->le_connection_parameter_range; +void gap_le_get_connection_parameter_range(le_connection_parameter_range_t range){ + range = hci_stack->le_connection_parameter_range; } /** @@ -143,12 +143,7 @@ le_connection_parameter_range_t gap_le_get_connection_parameter_range(void){ */ void gap_le_set_connection_parameter_range(le_connection_parameter_range_t range){ - hci_stack->le_connection_parameter_range.le_conn_interval_min = range.le_conn_interval_min; - hci_stack->le_connection_parameter_range.le_conn_interval_max = range.le_conn_interval_max; - hci_stack->le_connection_parameter_range.le_conn_interval_min = range.le_conn_latency_min; - hci_stack->le_connection_parameter_range.le_conn_interval_max = range.le_conn_latency_max; - hci_stack->le_connection_parameter_range.le_supervision_timeout_min = range.le_supervision_timeout_min; - hci_stack->le_connection_parameter_range.le_supervision_timeout_max = range.le_supervision_timeout_max; + hci_stack->le_connection_parameter_range = range; } /** diff --git a/src/hci.h b/src/hci.h index 4f8e1ea33..651428c9f 100644 --- a/src/hci.h +++ b/src/hci.h @@ -842,7 +842,7 @@ int hci_send_cmd_packet(uint8_t *packet, int size); /* API_START */ -le_connection_parameter_range_t gap_le_get_connection_parameter_range(void); +void gap_le_get_connection_parameter_range(le_connection_parameter_range_t range); void gap_le_set_connection_parameter_range(le_connection_parameter_range_t range); /* LE Client Start */ diff --git a/src/l2cap.c b/src/l2cap.c index 6cd8728c8..420a067a2 100644 --- a/src/l2cap.c +++ b/src/l2cap.c @@ -1434,7 +1434,8 @@ static void l2cap_acl_handler( uint8_t *packet, uint16_t size ){ break; } int update_parameter = 1; - le_connection_parameter_range_t existing_range = gap_le_get_connection_parameter_range(); + le_connection_parameter_range_t existing_range; + gap_le_get_connection_parameter_range(existing_range); uint16_t le_conn_interval_min = READ_BT_16(packet,12); uint16_t le_conn_interval_max = READ_BT_16(packet,14); uint16_t le_conn_latency = READ_BT_16(packet,16);