import josx.platform.rcx.Sensor; /** *
LightWatcher.java A background thread that continuously
* reads input from the sensors updating the state variable of the
* JavaRCX
*
* @author CS371 2002
* @version 1.0
* @since 1.0
*/
class LightWatcher extends Thread{
/**
* Coninuosly loops update the state of lightsensor.*/ public void run(){ while(true){ /*We found that reading the sensors all up front and then executing the code below works better than constantly reading inputs in each comparison below*/ int s1 = Sensor.S1.readValue(); int s2 = Sensor.S2.readValue(); int s3 = Sensor.S3.readValue(); if(s1 <= JavaRCX.DARK){ if(s2 <= JavaRCX.DARK){ if(s3 <= JavaRCX.DARK) JavaRCX.state = JavaRCX.ALL; else JavaRCX.state = JavaRCX.LEFT_CENTER; } else{ if(s3 <= JavaRCX.DARK) JavaRCX.state = JavaRCX.LEFT_RIGHT; else JavaRCX.state = JavaRCX.LEFT_ONLY; } } else{ if(s2 <= JavaRCX.DARK){ if(s3 <= JavaRCX.DARK) JavaRCX.state = JavaRCX.CENTER_RIGHT; else JavaRCX.state = JavaRCX.CENTER_ONLY; } else{ if(s3 <= JavaRCX.DARK) JavaRCX.state = JavaRCX.RIGHT_ONLY; else JavaRCX.state = JavaRCX.NONE; } } } } }// LightWatcher