Ankündigung

Einklappen
Keine Ankündigung bisher.

Convert - Verständisfrage

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

    Convert - Verständisfrage

    Hallo zusammen,

    ich habe zwei Unterschiedliche Datentypen (u08 und f32) die ich anpassen möchte um dann zu vergleichen. Dabei ist die Nachkommastelle nicht relevant:

    Code:
    HBox_RcvStatus = 0f32
    TX_val=1u08
    
    if change(TX_val) then {
        if (TX_val==convert(HBox_RcvStatus,TX_val)) then {
            LogTxtHaus=$Mqtt Msg OK$
            } else {
            LogTxtHaus=$Mqtt Msg NOK$
        }endif
    }endif
    So sehe ich dann im Debugger die Werte:
    Bildschirmfoto 2018-04-22 um 08.59.52.png
    Und das Ergebniss ist niemals gleich. Dabei spielt es keine Rolle ob ich eine Konvertierung auf 0f32 oder wie im Beispiel u08 mache.
    Wo ist hier mein Denkfehler?

    Herzlichen Dank!

    #2
    Ich vermute mal, dass es am change(TX_val) liegt und dass zu dem Zeitpunkt wo TX_val sich auf 30 ändert, HBox_RcvStatus noch nicht 30.0 ist. Mach vielleicht folgendes draus:

    if change(TX_val) or change(HBox_RcvStatus) then { ....

    Kommentar


      #3
      Vielleicht hilft Dir eine Differenzbildung auf u08 Basis weiter?

      Code:
      diff = TX_val - convert(HBox_RcvStatus, 0u08);
      
      if change(diff) then {[INDENT]if (diff == 0u08) then {
              LogTxtHaus=$Mqtt Msg OK$;
              } else {
              LogTxtHaus=$Mqtt Msg NOK$;
          } endif;[/INDENT]
       } endif;
      In diesem Fall würden asychrone Wertzuweisungen nicht so schlimm durchschlagen...

      Kommentar


        #4
        Vielen Dank für die Hilfe!
        Es war tatsächlich ein Laufzeitproblem. Ich hätte nur auf den Change des HBox_RcvStatus schauen sollen da dieser sich erst nach dem anderen Status ändert.
        Jetzt passt es, ich bin happy, vielen Dank!

        Kommentar

        Lädt...
        X