I commented everything else out, but for two pins.

When I start the activity the Log prints my "Catch O" message below in 
clusters of two every second. (This is without any input on the pins). When 
I connect to one of the pins the Log prints "Catch O" one time each second. 
The text on screen continues to hang after disconnect. I don't understand 
why the catch would execute, but the text remain the same.



class  PulseInputThread extends Thread {
 private final PulseInput input_;
  private final Timer timer_;
  public float last_;
 public PulseInputThread(PulseInput input,Timer timer) {
 input_ = input;
    timer_ = timer;
}

 
 private synchronized void read() throws ConnectionLostException {
    TimerTask task = new TimerTask() {public void run() {
     interrupt();
  }};
  
   * timer_.schedule(task, 1000);*
*    try {*
*      last_ = 1/input_.getDuration();*
*      task.cancel();*
*    } catch (InterruptedException e) {*
*      last_ = 0;*
*      Log.d("CATCH", "CATCHO");*
    
*    }*
  }
 
  public void run() {
    try {
      while (true) {
        read();
      
        try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
      }
    } catch (ConnectionLostException e) {
     e.printStackTrace();
    }
  }

public synchronized float getLastReading() {
    return last_;
  }
 }
  class Looper extends BaseIOIOLooper {
 PulseInputThread thread1_;
PulseInputThread thread2_;
  @Override
protected void setup() throws ConnectionLostException {
 PulseInput  input1_ = ioio_.openPulseInput(new 
DigitalInput.Spec(1,Mode.PULL_DOWN), ClockRate.RATE_62KHz,  PulseMode.FREQ, 
false);
PulseInput  input2_ = ioio_.openPulseInput( new 
DigitalInput.Spec(2,Mode.PULL_DOWN ), ClockRate.RATE_62KHz, 
 PulseMode.FREQ, false);

 Timer t = new Timer();
   thread1_ = new PulseInputThread(input1_, t);
   thread2_ = new PulseInputThread(input2_, t);
 
   
  thread1_.start();
  thread2_.start();
 
}

 @Override
public void loop() throws ConnectionLostException {
 setText1(thread1_.getLastReading());
  setText2(thread2_.getLastReading());
 
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
 public void disconnected() {
   try {
 
     thread1_.join();
     thread2_.join();
 
   } catch (InterruptedException e) {
   }
}
 }



@Override
protected IOIOLooper createIOIOLooper() {
return new Looper();
}

private void setText1(final float freqHZ1) {
runOnUiThread(new Runnable() {
@Override
public void run() {
 row1.setText("Seeds per second: " + freqHZ1);
 }
});
}
 private void setText2( final float freqHZ2) {
runOnUiThread(new Runnable() {
@Override
public void run() {
 row2.setText("Seeds per second: " + freqHZ2);
 }
});
}

-- 
You received this message because you are subscribed to the Google Groups 
"ioio-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/ioio-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to