Ankündigung

Einklappen
Keine Ankündigung bisher.

Falcon

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

    Falcon

    Habe einen Busmonitor basierend auf Falcon 1.6 geschrieben

    und versuche jetzt das Event
    EIBBusmonitor_ICustomMessageEvent_Event_NewMessage (FalconMessage newVal) auszuwerten ?!?

    bin aus dem byte[] newVal.rMessage.cData noch nicht ganz schlau geworden
    und suche eine beschreibung welche bits für die DPT_ID zustandig sind ???

    und wenn möglich eine Umrechnung der Werte in dem korrekten lesbaren Wert!

    #2
    Da steht einfach das empfangene Telegramm drin (wie im Lexikon unter Paketaufbau beschrieben). Der Datenpunkttyp wird nicht übertragen, den muss man sich aus den Projektierungsdaten besorgen.

    Gruß, Klaus

    Kommentar


      #3
      Protokoll

      Hallo Klaus..
      danke für die schnelle antwort.....

      Event liefert
      09 41 188 20 46 25 26 209 00 128 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

      also nicht 24Byte !!

      Gefiltert
      Group = 3/1/26
      Quell = 1.4.46
      Priority = Low
      Nutzerdaten = 0
      Länge = 1 Byte
      Wiederholbit = normal
      Routing = 5

      Code Auszug
      //Priorität
      m_Priority = (Priority)(((EIBMessage.rMessage.cData[2] >> 2) | 252) - 252);
      //B1 B0 Bezeichnung
      //0 0 Systemfunktion
      //0 1 Alarmfunktion
      //1 0 hohe Priorität
      //1 1 normale Priorität

      //Widerholungsbit
      m_Widerholungsbit = (Widerholungsbit)(((EIBMessage.rMessage.cData[2] >> 5) | 254) - 254);

      //Quelladresse
      m_PhysikalAdresse.Teilnehmer = EIBMessage.rMessage.cData[4];
      m_PhysikalAdresse.Linie = (EIBMessage.rMessage.cData[3] | 240) - 240;
      m_PhysikalAdresse.Bereich = EIBMessage.rMessage.cData[3] >> 4;

      //Zieladresse
      m_GruppenAdresse.Untergruppe = (EIBMessage.rMessage.cData[6] | 128) - 128;
      m_GruppenAdresse.Hauptgruppe = ((EIBMessage.rMessage.cData[5] >> 3) | 128) - 128 ;
      m_GruppenAdresse.Mittelgruppe = (EIBMessage.rMessage.cData[5] | 248) - 248;

      //DRL (Destination-Routing-Lenght)-Byte
      m_DRL.NutzerdatenLänge = ((EIBMessage.rMessage.cData[7] | 240) - 240) -1;
      m_DRL.RoutingZähler = ((EIBMessage.rMessage.cData[7] | 128) - 128) >> 4;
      m_DRL.DestinationAddressTyp = Convert.ToBoolean(EIBMessage.rMessage.cData[7] & (int)Math.Pow(2, 7)) ? DestinationAddressType.DestinationAddressTypeGroup : DestinationAddressType.DestinationAddressTypeDevic e;

      deswegen muss ich dem Protokoll etwas wiedersprechen, denn mir fehlt die
      DPT_ID raus, denn die nutzerdatenlänge ist zwar vorhanden aber ohne datentyp nur schwer in klartext anzuzeigen.

      Kommentar

      Lädt...
      X