Author Topic: Sind alle angeschlossenen Bricklets enumerated?  (Read 1876 times)

Lunex

  • Newbie
  • *
  • Posts: 6
    • View Profile
Sind alle angeschlossenen Bricklets enumerated?
« on: June 17, 2019, 10:03:13 »
Hi,
ich arbeite an einem Projekt für welches ich mehrere im Gebäude verteilte Temperatursensoren benötige.

Dazu habe ich mehre Master mit POE veteilt, die jeweils ein Hum Brickelt und bis zu drei weitere Temp Brickelts angeschlossen haben.

Ich frage nun minütlich mit einer VB.NET Anwendung die Master ab:

Wie kann ich, nach Start der Enumerierung, erkennen, dass alle an diesen Master angeschlossenen Bricklets fertig enumeriert sind wenn mir die Gesamtzahl an angeschlossenen Bricklets unbekannt ist?

Bisher habe ich eine fixe Wartezeit nach der ich davon ausgehe, dass nun alles enumeriert sein sollte.
Aber da muss es doch eine elegantere Lösung geben oder?

danke schon mal,
Lunex


photron

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 2.467
    • View Profile
Re: Sind alle angeschlossenen Bricklets enumerated?
« Reply #1 on: June 17, 2019, 10:22:00 »
Bisher habe ich eine fixe Wartezeit nach der ich davon ausgehe, dass nun alles enumeriert sein sollte.

Das ist schon das beste Vorgehen.

Die einfache Variante ist, ein Enumerate per IPConnection.Enumerate() auszulösen und dann ab dann eine fixe Zeit zu warten.

Die dynamische Variante ist nach jedem Enumerate Callback eine fixe Zeit darauf zu warten, dass kein weiteres Enumerate Callback mehr kommt. Das funktioniert robuster bei sehr großen Aufbauten.

Lunex

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: Sind alle angeschlossenen Bricklets enumerated?
« Reply #2 on: June 17, 2019, 12:10:52 »
ok, danke für die schnelle Antwort!

Ich setze das als Custom Sensor für den PRTG Network Monitor ein (ww.prtg.de)
Die exe wird minütlich für jeden einzelnen Sensor(=Master) aufgerufen und die Rückgabe der exe ausgewertet.
Daher sollte die Abfrage möglichst performant sein, also die exe so schnell wie möglich wieder geschlossen sein.
Ich habe im Moment Laufzeiten von ca. 600ms wenn ich warten muss und ca 200ms wenn genau 4 Bricklets angeschlossen sind, da ich nach 4 Enumerationen direkt weiterlaufen kann.

Aber dann werde ich wohl damit leben müssen,

Grüße
Lunex