2016-04-12 4 views
0

Ich versuche einen AllJoyn Consumer mit mehreren Schnittstellen zu implementieren. Das AllJoyn-Menü erstellt die Hilfsdateien für alle Schnittstellen aus der Introspection-XML. Nach dem Hinzufügen des Watcher-Ereignishandlers und dem Starten desselben für alle Schnittstellen wird nur der erste Watcher-Ereignishandler ausgelöst und abgeschlossen.AllJoyn Studio - Multiple Interface Implementierung

zum Beispiel in der LSF Selbstbeobachtung wir vier Schnittstellen daher haben:

AllJoynBusAttachment bus_Consumer = new AlljoynBusAttachment(); 

watcher_Consumer = new LampStateWatcher(bus_Consumer); 
watcher_Consumer.Added += Watcher_Consumer_Added; 
watcher_Consumer.Start(); 

watcher_Details = new LampDetailsWatcher(bus_Consumer); 
watcher_Details.Added += Watcher_Details_Added; 
watcher_Details.Start(); 


private async void Watcher_Details_Added(LampDetailsWatcher sender, AllJoynServiceInfo args) 
     { 
      Join_Session_Details = await LampDetailsConsumer.JoinSessionAsync(args, sender); 
       Consumer_Details = Join_Session_Details.Consumer; 

       if (Join_Session_Details.Status == AllJoynStatus.Ok) 
       { 
        var LampName = await Consumer_Details.GetLampIDAsync(); 
        Status_List.Items.Add(LampName.LampID); 
       } 
     } 


private async void Watcher_Consumer_Added(LampStateWatcher sender, AllJoynServiceInfo args) 
     { 
      Join_Session = await LampStateConsumer.JoinSessionAsync(args, sender); 
       Consumer_Bulb = Join_Session.Consumer; 
      if (Join_Session.Status == AllJoynStatus.Ok) 
      { 
       LightBulbs.Add(Consumer_Bulb); 
      } 

      Consumer_Bulb.SessionMemberRemoved += Consumer_Bulb_SessionMemberRemoved; 
    } 

In diesem Fall wird nur die Watcher_Consumer_Added abgefeuert wird und abgeschlossen, wo als die Watcher_Details_Added gefeuert wird, aber nicht abgeschlossen.

Wie kann ich beide Prozesse abschließen. Ist die obige Methode korrekt, um mehrere Schnittstellen auf dem Verbraucher zu implementieren?

P.S. : Dies wird verwendet, wird die AllJoyn Studio-Erweiterung für VS2015 läuft auf Microsoft Windows 10

Antwort

0

Eine zusätzliche BusAttachement für den zweiten Beobachter erforderlich. Ein einzelner Bus kann nicht von zwei Beobachtern gemeinsam genutzt werden. Dies ist die Antwort, die ich im MSDN-Forum erhalten habe.

Der Link zur gleichen ist hier AllJoyn Studio - Multiple Interface Implementation

Verwandte Themen