Jump to content

Recommended Posts

Geschrieben

hallo,

gibt es eine Möglichkeit, ein Callback Ereignis manuell auszulösen?

Quasi als Initialisierung.

Vereinfachtes Beispiel: Ich gebe die Spannung vom VoltageCurrent-Bricklet auf einer LCD Anzeige aus (mittels Callback bei VOLTAGE_CHANGE). Damit bekomme ich die Anzeige erst, wenn sich die Spannung erstmals ändert.

Mir ist schon klar, dass ich als Initialisierung die Spannung abfragen kann und auf's LCD schreiben - ich würde aber gern die Callback Funktion auslösen (DRY).

Geschrieben

Ich habe das mit dem (alten) AnalogIn so gelöst, dass mit relativ niedrigem Averaging und Periode der Callback nach dem Starten des Programms recht zügig Werte liefert. Nach rund 1-2sec spätestens sehe ich im 4x7 Display einen Wert. Das reicht mir und alles andere macht eig. keinen Sinn, für die Mittelwertbildung müssen ja erstmal Werte gesammelt werden.

Geschrieben

Die API hat keine Funktion um einen Callback zu erzwingen.

 

Wenn du z.B. im Brick Viewer den Tab wechselst wird zuerst immer einmal ein Getter aufgerufen (damit sofort ein Wert angezeigt werden kann) und danach der Callback konfiguriert für die laufenden Werte.

Geschrieben

@NIC::

Guter Ansatz, der passt aber leider nicht immer -> z.B. wenn der Callback nur angezeigt wird, wenn sich der Wert ändert. Dass sich der Spannungswert um einige mV ändert ist sicher häufig, die aktuelle Position vom Rotary-Poti z.B. würde damit nicht funktionieren.

@borg::

Danke für die klärenden Worte. Ich werd mir mir also eine Lösung dafür basteln. Ist deshalb kompliziert, weil ich komplexe Userdaten übergebe.

Geschrieben

Du hast nichts vom Rotary erzählt, noch dass es um komplexe Userdaten geht. Dann solltest Du schon genauer schildern was du machen möchtest. Ansonsten wird das Feedback hier mager ausfallen ;) Der Getter auf die aktuelle Position des Rotary ist m.E. gar nicht kompliziert...

Geschrieben

Hej NIC, alles easy - es war kein Vorwurf. Ich habe versucht, ein einfaches & anschauliches Beispiel zu generieren. Ist mir vielleicht nicht optimal gelungen.

Mit euren beiden Feedbacks kann ich aber sehr gut was anfangen. Danke dafür.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...