Projekt 2.1 - Přechod pro chodce
8. Vlastní program
JAVA verze
import lejos.nxt.*;
public class semafory
{
// Nadefinujeme si třídu Lamp pro ovládání světel.
// Využijeme třídy MotorPort k ovládání světla.
// Konkrétně metodu controlMotor, která má parametry (power,mode).
// power - power from 0-100
// mode - 1=forward, 2=backward, 3=stop, 4=float
public static class Lamp {
// soukromé proměnné třídy:
private MotorPort _M = MotorPort.A;
private boolean _IsLighting;
// Konstruktor třídy:
public Lamp(MotorPort M) {
_M = M;
_M.controlMotor(0,1);
_IsLighting = false;
}
// Metoda zapni
public void On() {
_M.controlMotor(100,1);
_IsLighting = true;
}
// metoda vypni
public void Off() {
_M.controlMotor(0,1);
_IsLighting = false;
}
// metoda vracející stav lampy
public boolean IsLighting() {
return _IsLighting;
}
} // Konec třídy Lamp
public static void main (String[] aArg)
throws Exception
{
// Vytvoříme tři nové instance třídy Lamp pro jednotlivé barvy:
Lamp zelena = new Lamp(MotorPort.B);
Lamp cervena = new Lamp(MotorPort.A);
Lamp zluta = new Lamp(MotorPort.C);
// Vytvoříme novou instanci třídy touch sensor - připojeném na vstupu 1:
TouchSensor touch1 = new TouchSensor(SensorPort.S1);
// Vlastní nekonečný cyklus pro řízení přechodu:
while (true) {
zelena.On();
// Čekáme na dotyk senzoru touch1, pokud je stisknuto tlačítko ESCAPE program se ukončí.
while(!touch1.isPressed()) {
if (Button.ESCAPE.isPressed())
System.exit(1);
}
Thread.sleep(10000);
zelena.Off();
zluta.On();
Thread.sleep(5000);
zluta.Off();
cervena.On();
Thread.sleep(10000);
cervena.Off();
zluta.On();
Thread.sleep(5000);
zluta.Off();
} // konec sekvence příkazů nekonečného cyklu
} // konec metody main
} // konec třídy