Recent Posts

Pages: [1] 2 3 ... 10
1
By the way, latest version allows to get max PDU size (and has event to notify when max PDU size changed). So you can split your data to the max PDU size (-3 bytes) to send it more affective.
2
Unfortunatellyu no. BLE (and GATT) was designed for power saving, not for bulk data transferring. For big data you should use classic Bluetooth. Not GATT. Of course modern BT 5 allows to transfer audio and video but it does not use GATT for that.
3
Bluetooth Framework / Re: GATT Client - How Can I Improve Transmission Rate?
« Last post by briandunham on August 10, 2022, 03:46:29 AM »
So I put timers around the CwclGattClient::WriteCharacteristicValue(...) call and it takes about 78ms to 150ms to run that single line of code. And I am only sending 16 bytes per write notify. This seems incredibly slow as I'm only able to get transmission speeds of about 150 bytes per second. Is there really no other way to make this faster?

Here is a code snippet of how I'm measuring the time:

      DWORD startTime = GetTickCount();

      int Res = m_pGattClient->WriteCharacteristicValue(s_rxDataCharacteristic, (unsigned char*)msg, msg->msgLength, plNone);
      if (Res != WCL_E_SUCCESS)
         TRACE("Error: 0x%x\n", Res);
      else
      {
         result = TRUE;
         DWORD endTime = GetTickCount();

         TRACE("Time: %dms\n", endTime - startTime);
      }
4
And could my application be running both the GATT server and the GATT client simultaneously?

Usually yes, but depends on your hardware
5
I am already currently splitting the data into smaller chunks and have a dedicated write thread. Would changing my application to be the GATT server improve the write speed?

Unfortunatelly no,
6
Bluetooth Framework / Re: GATT Client - How Can I Improve Transmission Rate?
« Last post by briandunham on August 09, 2022, 05:32:25 PM »
And could my application be running both the GATT server and the GATT client simultaneously?
7
Bluetooth Framework / Re: GATT Client - How Can I Improve Transmission Rate?
« Last post by briandunham on August 09, 2022, 05:27:41 PM »
I am already currently splitting the data into smaller chunks and have a dedicated write thread. Would changing my application to be the GATT server improve the write speed?
8
Hello,

Connection parameters can be changed only on Windows 11 with MS drivers.

About writing characterisitc vakue: There are 2 ways to write long vakues for nowL

1. Split data to smallamounts.
2. Run Write operationin separate thread.
9
Bluetooth Framework / Re: GATT Client - How Can I Improve Transmission Rate?
« Last post by briandunham on August 09, 2022, 03:45:43 AM »
I should also mention that I am currently subscribing for notifications from the GATT client, which is mandatory for our design.
10
Bluetooth Framework / GATT Client - How Can I Improve Transmission Rate?
« Last post by briandunham on August 09, 2022, 03:42:21 AM »
I am trying to use the CwclGattClient::SetConnectionParams(const wclBluetoothLeConnectionParametersType Params) function to achieve higher throughput, and I get the returned error: 0X0005105F (WCL_E_BLUETOOTH_LE_FEATURE_NOT_SUPPORTED). I'm wondering if this is just a limitation of Windows 10? Or is this really just my BLE driver not supporting this capability? Does this just set the connection interval to be lower?

Are there other options for improving the transmission rate? My program currently does consecutive CwclGattClient::WriteCharacteristicValue(...) calls when sending large amounts of data and the time it takes to return from the WriteCharacteristicValue call seems to be very slow.
Pages: [1] 2 3 ... 10