NEWS

Blockly - Prüfung des Werts aller Objekte eines Arrays


  • Hallo

    Ich habe in einem Array eine Liste mit Objekten, deren Wert "true/false" sein kann (in meinem Fall Anwesenheitssensoren).

    Gibt es eine elegante Möglichkeit ohne Schleife zu prüfen, ob der WERT all dieser Objekte, die im Array genannt sind, "true" oder "false" ist?

    Als Trigger kann man ja das Array nehmen (was schon sehr "elegant" ist).

    Danke!

    Gruß Nico


  • @daNick Ein Ansatz vielleicht array.toString() und dann den String prüfen auf den gewünschten Wert false oder true.


  • @daNick sagte:

    Array eine Liste mit Objekten

    Du meinst eine Liste mit Datenpunkt-IDs ?
    Was ist Dein Ziel ?


  • @daNick

    .. in C war so etwas zu finden 🙂 Alle Elemente sind 0, wenn das erste Element 0 ist und jedes Element gleich dem Nachfolger ist:

    (a[0]==0) && (memcmp(a,a+1,sizeof(*a)*(a_len-1))==0) // a_len: Anzahl der Elemente in a. Der Typ von *a muss bitvergleichbar sein.
    

    Ansatz !

    LG Klaus


  • @paul53

    Danke für die Nachfrage.

    Meine Grundlage:

    Array in Blockly definiert mit Datenpunkt "occupy" von verschiedenen Sensoren.
    Das Script startet, wenn sich einer der Werte ändert.

    array .png

    Was ist jetzt gerne hätte:
    Prüfung, ob alle Datenpunkt des Arrays auf "false" sind (dann ist keiner mehr im Flur).

    Bisher prüfe ich ja nur, ob sich einer geändert hat.

    Wenn ich den Trigger von "wurde geändert" auf "ist unwahr" ändere, bringt das auch nichts (die Bedingung tritt ja ein, wenn EINER der Datenpunkte auf unwahr springt, ich überwache aber einen Raum mit 3 Sensoren).

    Macht das soweit Sinn?

    Gruß daNick


  • @daNick sagte:

    Möglichkeit ohne Schleife zu prüfen,

    Möglichkeit ohne Schleife "über alle Werte lesen": 2. Array, das die Werte enthält. Im Trigger ermittelt man den Index aus der ID und trägt den zugehörigen Wert in das Werte-Array ein.

    Blockly_temp.JPG

    prüft dann, ob mind. einer der Werte true ist.


  • @paul53

    Danke für Deine Zeit und den Support!

    Was mit nicht klar ist, ist der Schritt

    "Im Trigger ermittelt man den Index aus der ID und trägt den zugehörigen Wert in das Werte-Array ein."

    Wie sieht der Befehl aus, mit dem ich zu einem gegebenen Array, in dem Datenpunkt stehen, ein zweites Array gleicher Größe mit den Werten dieser Datenpunkte befülle?

    Danke!

    Gruß daNick


  • @daNick
    Hier ein Beispiel. Man kann das Werte-Array bei Script start auch mittels einer Schleife befüllen.

    Blockly_temp.JPG


  • @paul53

    Danke!

    Gruß daNick

Suggested Topics

1.9k
Online

36.9k
Users

42.6k
Topics

590.3k
Posts