Hello,
I am working with the le_data_channel_server example as a starting point. I have a question about connection interval changes and a question about MTU changes. Any and all advice would be much appreciated!
Connection Interval:
I read on this forum that calling the function " gap_request_connection_parameter_update(handle, min, max,timeout) " can be used to send a request for a new parameters (such as conn_interval) to the central device. However, after trying different values for min & max I am not noticing any change in both the printed conn_interval value or the time between L2CAP send & subsequent receive logs on the iOS device using Xcode packetlogger.
For more detail, I'm calling it like this from within the packet handler:
case HCI_EVENT_LE_META:
switch (hci_event_le_meta_get_subevent_code(packet)) {
case HCI_SUBEVENT_LE_CONNECTION_COMPLETE:
// print connection parameters (without using float operations)
conn_interval = hci_subevent_le_connection_complete_get_conn_interval(packet);
// min con interval 15 ms - supported from iOS 11
gap_request_connection_parameter_update(le_data_channel_connection.connection_handle, 48,48, 0, 0x0048);
//att_dispatch_server_mtu_exchanged(le_data_channel_connection.connection_handle, 52);
printf("Connected, requesting conn param update for handle 0x%04x\n", le_data_channel_connection.connection_handle);
//
//test_reset(&le_data_channel_connection);
So, is there more to it than that? I also read that the central device must respond to the request; could that be why no change is happening?
MTU:
I also read on this forum that changing MTU is possible. I was curious as to how this can be done. I tried calling "att_dispatch_server_mtu_exchanged(..) " and again noticed no difference, I assume because I used it wrong or it is the wrong way to accomplish this. If possible, could you describe how I could change the size of the packets being sent over the air?
Thank you for your time