Hi,
ich habe ein Problem mit der Übergabe von Werten von einem Thread zum anderen.
Ich will in einem Thread einen Schalter auslesen und in einem anderen Thread eine Lampe blinken lassen.
Bisher mache ich beides in demselben Thread. Das ist aber nicht ideal, da Statusänderungen vom Schalter während der Laufzeit nicht berücksichtigt werden.
Wie muss ich das Programm ändern. Ich denke mal mit Get.Value...
ich habe ein Problem mit der Übergabe von Werten von einem Thread zum anderen.
Ich will in einem Thread einen Schalter auslesen und in einem anderen Thread eine Lampe blinken lassen.
Bisher mache ich beides in demselben Thread. Das ist aber nicht ideal, da Statusänderungen vom Schalter während der Laufzeit nicht berücksichtigt werden.
Wie muss ich das Programm ändern. Ich denke mal mit Get.Value...
Java:
import jcontrol.io.GPIO;
class LegoThreadBlinker extends Thread{
int gpioIn ;
int gpioOut;
public LegoThreadBlinker(int gpioIn, int gpioOut) {
this.gpioIn = gpioIn;
this.gpioOut = gpioOut;
}
public void run() {
boolean stateSchalter;
for (;;) {
stateSchalter = GPIO.getState(gpioIn);
if (stateSchalter == true){
GPIO.setState(gpioOut, GPIO.HIGH);
try { jcontrol.lang.ThreadExt.sleep(10000); } catch ( InterruptedException e ) {}
GPIO.setState(gpioOut, GPIO.LOW);
try { jcontrol.lang.ThreadExt.sleep(10000); } catch ( InterruptedException e ) {}
}
}
}
}
public class LegoArmaturenbrettMultiThread2 {
public static void main(String args[]) {
int blinkerLinksIn = 4;
int blinkerLinksOut = 8;
GPIO.setMode(blinkerLinksIn, GPIO.FLOATING);
GPIO.setMode(blinkerLinksOut, GPIO.PUSHPULL);
LegoThreadBlinker blinkerLinks;
blinkerLinks = new LegoThreadBlinker(blinkerLinksIn,blinkerLinksOut);
blinkerLinks.start();
}
}