Ankündigung

Einklappen
Keine Ankündigung bisher.

Busmonitor mit Falcon KNX SDK in C# programmieren?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Client Busmonitor mit Falcon KNX SDK in C# programmieren?

    Hallo Zusammen,

    ich will in C# ein Programm erstellen, mit dem Werte über ein KNX-IP-Gateway ausgelesen und geschrieben werden können. Hauptsächlich werden allerdings nur Werte gelesen.

    Grundsätzlich funktioniert das Lesen mit folgendem Code:
    Code:
    ConnectorParameters connector_parameter = new KnxIpTunnelingConnectorParameters("192.168.0.2", 3671, false);
    
    using (Bus bus = new Bus(connector_parameter))
    {
        bus.Connect();
    
        GroupAddress group_address1 = new GroupAddress("0/0/0");
        GroupAddress group_address2 = new GroupAddress("0/0/1");
    
        GroupValue group_value1 = bus.ReadValue(group_address1);
        GroupValue group_value2 = bus.ReadValue(group_address2);
    
        bus.Disconnect();
    }
    Allerdings habe ich schon häufig von (Software-)Busmonitoren gehört. Verstehe ich das richtig, dass diese Programme passiv die Daten vom KNX-Bus abhören?

    Wenn ja, (wie) kann ich mit dem Falcon KNX SDK einen solchen Busmonitor erstellen?
    Vielleicht hat jemand etwas Beispielcode...

    Vielen Dank!

    #2
    Ich kann nur meine bescheidenen Falcon-Erfahrungen zum Besten geben. Die lauten: die Doku ist saumäßig, die einzige Chance ist, eines der Beispielprogrämmchen abzuändern.
    Sorry. Alternativ kannst du mal schauen, ob du mit Calimero zu Potte kommst.

    Max

    Kommentar


      #3
      Wo finde ich denn eine Doku zu Falcon?

      Kommentar


        #4
        Beim Falcon SDK ist doch eine Hilfedatei dabei??
        Was du suchst, ist das GroupValueReceived-Event am Bus-Objekt.

        Gruß, Klaus

        Kommentar


          #5
          Die Hilfedatei habe ich gefunden.
          Und auch mit dem Event funktioniert es. Man muss natürlich auch warten bis eines der Devices einen Wert aussendet ;-).

          Danke!

          Kommentar


            #6
            Ich muss mich ein Stück weit korrigieren. Die Doku zum alten Falcon (2.2) war saumäßig. Die zum neuen (5.5) ist besser, nur leider ist jetzt alles .net und C#

            Kommentar


              #7
              Hallo
              ich versuche mich mit Falcon. Zuvor hatte die USB Weiche (Schlaps&Partner) im Einsatz, die leider nicht mehr mit der dazugehörigen DLL unter Windows 7 in Betrieb zu bekommen ist.
              Mit der Library der USB Weiche hatte ich eine Art Busmonitor, mit dem ich jeglichen Verkehr mitbekam. Mit Visual Studio (C# und vb) hab ich eine Applikation gebaut, die die relevanten GAs in einer DB mit ihren Werten abspeichert.
              Basierend auf dieser DB hab eine Web-Visualisierung, die mir auf allen Geräten mit Browser alles darstellt was ich benötige.

              Nun versuche ich das Businterface mit Falcon hinzubekommen, scheitere aber schon am Grundverständnis. Als IP interface zum Bus habe Gira 2167 den ich auch mit meiner ETS5 nutze.
              Ich hab mir die Hilfe Falcon.Net SDK v1.1 angesehen, finde sie aber wenig hilfreich.
              Im Step-by-Step fehlt z.B. komplett der Zusammenhang zwichen IP des Gira und der verbindung dort hin.

              Mir würde ein Beispiel (vb oder c#) helfen, für ein Connect, und wir ich z.B. das Event GroupValueReceived mitbekommen kann.
              Hat jemand so was?

              Kommentar


                #8
                Zitat von sethach Beitrag anzeigen
                Mir würde ein Beispiel (vb oder c#) helfen, für ein Connect, und wir ich z.B. das Event GroupValueReceived mitbekommen kann.
                Hat jemand so was?
                Ein C# Beispiel mit Verwendung des GroupValueReceived Ereignisses ist in dem offiziellen über KNX.org umsonst herunterladbaren Falcon SDK inkludiert (wird standardmäßig unter %ProgramFiles(x86)%\KNX\Falcon.NET\Demo installiert). Dies mit Visual Studio (Community Ausgabe auch kostenlos erhältlich) öffnen und mit F6 bauen.

                Hier die Verwendung kurz erklärt:
                Code:
                _bus.Connect();
                _bus.GroupValueReceived += BusOnGroupValueReceived; // Registriert den Event-Handler
                
                // Eventhandler-Funktion:
                private void BusOnGroupValueReceived(GroupValueEventArgs groupValueEventArgs)
                {
                   if (groupValueEventArgs != null)
                   {
                      // Hier etwas mit dem empfangenen Paket machen, wie z.B. auswerten:
                      String ResultText = "GA: " + groupValueEventArgs.Address.ToString() +
                                          " Sender PA: " + groupValueEventArgs.IndividualAddress.ToString() +
                                          " Priority: " + groupValueEventArgs.TelegramPriority.ToString() +
                                          " Value: " + groupValueEventArgs.Value.ToString();
                   }
                }
                Weitere groupValueEventArgs Eigenschaften sind in dem inkludierten Hilfedatei (Falkon .NET SDK.chm) unter Class libraries -> Knx.Bus Namespace -> Knx.Bus.Common -> GroupValueEventArgs Class -> Properties beschrieben.
                Zuletzt geändert von xrk; 30.05.2018, 10:01.
                Winston Churchill hat mal gesagt: "Ein kluger Mann macht nicht alle Fehler selbst. Er gibt auch anderen eine Chance.“

                Kommentar

                Lädt...
                X