Interface in Schleife abfragen (war: Wie soll ich das machen)



  • Windoof schrieb:

    Ahja.

    Jawoll! 😃

    und wie soll ich mein Problem jetzt lösen? Hat vielleicht dazu jemand eine Idee?



  • Von welchen Datentyp ist Profi_p ?



  • roN schrieb:

    for (i=0; i<=100 && ReceivedResult_int!=Sollpos_ED->Text.ToInt(); i++)
         Sleep(100);
    

    Warum ist das so? Welche Alternative habe ich? Danke!

    Vermutlich kommt der Timer solange Du in der Schleife bist niemals zum Zug?
    Verlagere doch die Überprüfung in den Timer und tue nur dann was, wenn ein gültiger
    Wert drin steht.

    Gruß,

    Alexander



  • Alexander Kempf schrieb:

    Vermutlich kommt der Timer solange Du in der Schleife bist niemals zum Zug?

    Hat der Timer eine so geringe Priorität?

    Die Überprüfung kann ich nicht in den Timer nehmen, da ich mehrere Parameter überprüfen muss und unendlich viele gültige Werte habe...

    Edit:
    Zitate bitte auf das Notwendigste beschränken. Danke!


  • Mod

    Hallo

    wie waere es mit

    void __fastcall TMain_Frm::Timer1Timer(TObject *Sender) 
    { 
    {
    Timer1->Enabled = false;
    .
    . Verarbeitung .....
    .
    .
    Timer1->Enabled = true;
    }
    

    MfG
    Klaus



  • roN schrieb:

    ...unendlich viele...

    Glaube ich nicht 😉
    Oder verwende halt einen zweiten Timer anstatt der for-Schleife.
    Ob das aber elegant ist?
    Oder erzeuge ein Event, sobald ein Wert ankommt.
    Du könntest auch alle Wert brav in einen Puffer reinschreiben und
    dann (z.B. per Timer) ständig den Pufferinhalt überprüfen und ggf.
    wieder leeren.

    Gruß,

    Alexander



  • roN schrieb:

    Warum? Du weisst ja nicht was in dieser Funktion steht, die sieht nähmlich so aus:[...]

    Junge, die Funktion hast Du ganz oben in Deinem Quellcode noch nicht verwendet und parralel zu diesem Thread existiert noch ein zweiter der von Dir eröffnet wurde zum Thema "HexToInt" und daraus habe ich meine Schlußfolgerung abgelitten ;).

    Die Funktion ReadSlave liest Daten die über den Profibus kommen aus dem Buffer des Profibus-Interfaces aus.

    Ist mir Schon klar. Aber ich wollte wissen, was für ein Variablentyp zurückgeliefert wird. INT oder HEX oder was?

    Edit:
    Zitate bitte auf das Notwendigste beschränken. Danke!



  • F98 schrieb:

    ...und daraus habe ich meine Schlußfolgerung abgelitten ;).

    Du tust mir leid.

    @roN: Wieso läuft das nicht im Timer? Bekommst du ne Fehlermeldung?



  • F98 schrieb:

    Ist mir Schon klar. Aber ich wollte wissen, was für ein Variablentyp zurückgeliefert wird. INT oder HEX oder was?

    einen AnsiString der " " Leerzeichen getrennte Bytes enthält, z.B. so: 20 00 01 3E B2 A1 00 usw....im gesamten sind es 12 Bytes wobei das erste kein Byte is, sondern 12 Bit



  • Windoof schrieb:

    @roN: Wieso läuft das nicht im Timer? Bekommst du ne Fehlermeldung?

    Nein, keine Fehlermeldung aber der Timer läuft irgendwie nie ab während der Pause (for-schleife)... 😞

    Edit:
    Zitate bitte auf das Notwendigste beschränken. Danke!


Anmelden zum Antworten