Class Robi2LedBlinkerDemo

  • All Implemented Interfaces:
    Ippc32, Actionable

    public class Robi2LedBlinkerDemo
    extends Task
    Wenn der Roboter autonom betrieben werden soll, d.h. er ist nicht mehr an den PC angeschlossen, ist es nicht mehr möglich vom PC aus über einen Command etwas auszuführen. Daher ist es nötig, dass ein Programm eine Operation nacheinander immer wieder aufruft. Dazu gibt es den Treiber Task. Über diesen kann eine Methode definiert werden, welche nacheinander mit einer gewissen Unterbruchszeit (Periode) aufgerufen wird. Beschreibung: Damit die eigene Klasse eine Methode implementieren kann, welche immer wieder über das Task-System aufgerufen wird, muss sie die Klasse Task erweitern: public class Robi2LedBlinkerDemo extends Task Die Methode, welche periodisch aufgerufen werden soll muss action() genannt werden. Um das wiederholte Aufrufen der Methode zu starten, muss die eigene Klasse installiert werden:
     Robi2LedBlinkerDemo task = new LedBlinker(); 
     task.period = 1000; // Periodenlänge des Tasks in ms
     Task.install(task);
    Alle Initialisierungen und auch das Installieren der eigenen Klasse muss im Konstrukt static { ... } erfolgen. Dies ist ein statischer Konstruktor und wird beim ersten Benutzen der Klasse Robi2LedBlinkerDemo aufgerufen. Dementsprechend werden dabei auch die Initialisierungen und das Installieren ausgeführt. Dieses Programm erhält zusätzlich noch eine Methode static void toggleCenterLED () { ... }, welche wiederum von aussen aufgerufen werden kann. In dieser Methode wird die center Led entweder ein- oder ausgeschaltet. Die Methode public void action( ) { ... } wird jede Sekunde aufgerufen (task.period = 1000;). Dabei werden die Leds nacheinander ein- und ausgeschaltet. Die Variable static int zaehler = 0; ist eine globale Variable und kann vom PC aus abgefragt werden.
    • Field Detail

      • col

        static int col
      • col1

        static int col1
      • col2

        static int col2
      • col3

        static int col3
      • zaehler

        static int zaehler
    • Constructor Detail

      • Robi2LedBlinkerDemo

        public Robi2LedBlinkerDemo()
    • Method Detail

      • toggleCenterLED

        static void toggleCenterLED()
      • action

        public void action()
        Description copied from class: Task
        Action to be performed by the task
        Specified by:
        action in interface Actionable
        Overrides:
        action in class Task