Получать данные из BLE 4.0 с Xabre - PullRequest
0 голосов
/ 10 сентября 2018

В настоящее время у меня есть этот довольно простой проект Arduino, который выполняет следующее:

if (BTSerial.available())
{
  c = BTSerial.read();
  Serial.print(c);

if (c == 1) {
  digitalWrite(ledpin, HIGH);
  delay(100);
  BTSerial.write("Hello");
}

Приведенный выше код возвращает строку после получения байта от подключенного устройства. Я проверил это с помощью LightBlue Explorer и подтвердил, что он работает!

Однако это не относится к моему приложению Xamarin, которое я собираюсь сделать самостоятельно. В настоящее время я написал следующий код:

public UtilityPage()
{
        Scan_Page();
        InitializeComponent();

        //Method for updating characteristic   
        MyDevice.characteristic.ValueUpdated += (sender, e) =>
        {
            var text_returned = e.Characteristic.Value;
        };
}

//Push page on top of this in order to connect to pheripheral 
async void Scan_Page()
{
        await Navigation.PushModalAsync(new MainPage());
}

То, что происходит выше, это то, что я нажимаю модал поверх моего UtilityPage, который содержит listview с устройствами для подключения. Как только устройство подключено, модал выталкивается.

Когда я нажимаю кнопку на моем телефоне (код не указан), он должен отправить строку байтов, и наоборот, получить ее от Arduino. Он отправляет байтовую строку, но не получает ее, что означает, что основной проблемой является MyDevice.characteristic.ValueUpdated, которая, очевидно, не прослушивает никаких уведомлений от подключенного периферийного устройства.

Плагин Xamarin, который я использую, называется Xabre

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...