Скорость передачи данных BluetoothLE становится медленной
Я общаюсь с устройством Bluno BluetoothLE, которое отправляет данные, считанные с аналогового входа через Bluetooth, в приложение, написанное для Android с использованием Xamarin.Forms. Я использую стек Monkey Robotics и основал свой код на примере из ConceptDev, который взаимодействует с TI SensorTag. Я могу подключиться к устройству, услуге и характеристикам, а также прочитать данные, используя этот код:
protected override async void OnAppearing()
{
base.OnAppearing();
if (characteristic.CanRead)
{
var c = await characteristic.ReadAsync();
UpdateDisplay(c);
}
}
а также
void UpdateDisplay(ICharacteristic c)
{
string[] strArr = c.StringValue.Split(',');
try
{
FirstValue.Text = strArr[0];
SecondValue.Text = strArr[1];
}
catch (IndexOutOfRangeException e)
{
//Just ignore it, I'm sure it will be fine.
Debug.WriteLine("Index out of range, " + e.InnerException);
}
}
Однако после примерно 30 секунд работы отклик значений на аналоговые входы замедляется... Я меняю потенциометр, и результат не отправляется в течение нескольких секунд, это постепенно ухудшается. Есть ли буфер, который мне нужно где-то очистить? Или это что-то еще очевидно, что я скучаю? Длина строки данных CSV, которую я отправляю, составляет не более десяти символов. Любая помощь приветствуется.