Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: NOT AUS Kategorie: Programmierung (von Sven Pauli - 12.08.2005 13:02)
Als Antwort auf NOT AUS von Andy - 12.08.2005 12:01

Ave,
 
 
 thread main {
   // !!!!! DING DONG: Klammer drum, Semi wech:
   // Falsch -> if ports.get(9);
   if (ports.get(9)) {
     lcdext.init();
     Startbildschirm();
     // !!!!! DING DONG: Wie wärs hier mit Semis?
     Sicherheitshinweis(); //  <-- letztes Zeichen = ;
     Auswahl();
     Rechnung();
   }
   else {
     lcdext.goto(1,0);
     lcdext.print("NOT AUS");  // s.o.
   }
 }  // !!!!! DING DONG: SchlieÃ?ende geschw. Klammer
    //                  des threads
 

 
> Würdet ihr es auch so machen...

Ich hatte so ein ähnliches Problem. Als Lösungsvorschlag:
 - schreib einen "Not-Aus-Thread" und lagere alle anderen
   Aufgaben in eigenen Threads ab. Etwa so:
   
     thread job1 { ... }
     thread jobN { ... }

     thread emerg_stop {
       wait ports.get(9);  // Bis der Not-Aus gedrückt wird
       halt job1;
       halt jobN;

       // Ggf. die Threads zurücksetzen
       reset job1;
       reset jobN;

       // Displaymeldungen etc.
       lcdext.goto(1,0);
       lcdext.print("NOT AUS");  // s.o.
       sleep 5000; // alternativ: loop { }
     }
   


Wenn jetzt der Not-Aus gedrückt wird werden sofort alle
Threads da gestoppt, wo sie gerade sind. Danach können sie
entweder mit reset zurückgesetzt werden (dann fangen sie
beim nächsten run wieder ganz vorne an) oder eben nicht
(dann geht's da weiter, wo wir angehalten haben).

MfG compy


    Antwort schreiben


Antworten:

Re: NOT AUS (von Markus - 12.08.2005 15:40)
    Re: NOT AUS (von JackFrost - 10.10.2005 19:10)