2016-06-08 5 views
0

Ich habe den folgenden Code für meine IOS-Implementierung, das Problem ist, dass das WroteCharacteristicValue-Ereignis nie ausgelöst wird. Wird auf der Android-Seite gefeuert, wenn ich an das gleiche Modul anschließe. Irgendwelche Ideen, was zu tun ist?Xamarin-IOS BTLE WroteCharacteristicValue nicht ausgelöst

public void StartUpdates() 
    { 
     // TODO: should be bool RequestValue? compare iOS API for commonality 
     bool successful = false; 
     if(CanRead) { 
      Console.WriteLine ("** Characteristic.RequestValue, PropertyType = Read, requesting read"); 
      _parentDevice.UpdatedCharacterteristicValue += UpdatedRead; 

      _parentDevice.ReadValue (_nativeCharacteristic); 

      successful = true; 
     } 
     if (CanUpdate) { 
      Console.WriteLine ("** Characteristic.RequestValue, PropertyType = Notify, requesting updates"); 
      _parentDevice.UpdatedCharacterteristicValue += UpdatedNotify; 

      _parentDevice.WroteCharacteristicValue += Wrote; // -DP here?? 

      _parentDevice.SetNotifyValue (true, _nativeCharacteristic); 

      successful = true; 
     } 

     Console.WriteLine ("** RequestValue, Succesful: " + successful.ToString()); 
    } 
    void Wrote(object sender, CBCharacteristicEventArgs e) { 

     System.Diagnostics.Debug.WriteLine("Characteristic Write Complete!"); 

     this.WriteComplete (this, new CharacteristicReadEventArgs() { 
      Characteristic = new Characteristic(e.Characteristic, _parentDevice) 
     }); 
    } 

Antwort

1

Die WroteCharacteristic wird nur ausgelöst, wenn das Merkmal mit Antwort schreibt.

Sie können es mit:

var prop = _nativeCharacteristic.Properties; 
if(prop.HasFlag(CBCharacteristicProperties.Write)) 
{ 
    // Event can be used 
} 
else if(prop.HasFlag(CBCharacteristicProperties.WriteWithoutResponse)) 
{ 
    // Event will not fire if WriteWithoutResponse 
} 

Btw: wir ein Plugin für BLE bieten, so dass Sie nicht über Plattform sepcific Sachen kümmern müssen;) http://smstuebe.de/2016/05/13/blev1.0/

+0

Dank! Ihr Plugin sieht gut aus. Wir haben viel Zeit damit verbracht, Fehler zu beseitigen, die durch das Monkey Robotics-Projekt verursacht wurden. Wir würden gerne zu einem aktiven XAMRIN BTLE-Projekt beitragen – pogorman