final
[des2015.git] / mart / ev3 / ex2 / nl / ru / des / behaviours / ReactiveBehaviour.java
1 package nl.ru.des.behaviours;
2
3 import lejos.robotics.SampleProvider;
4 import lejos.robotics.subsumption.Behavior;
5
6 public abstract class ReactiveBehaviour implements Behavior {
7 private SampleProvider sampleProvider;
8 private long lastSampleTaken;
9 protected float[] samples;
10 protected boolean suppressed;
11
12 public ReactiveBehaviour(SampleProvider sampleProvider) {
13 this.sampleProvider = sampleProvider;
14 this.samples = new float[sampleProvider.sampleSize()];
15 this.lastSampleTaken = System.currentTimeMillis();
16 }
17
18 public void fetchSample(){
19 if(System.currentTimeMillis()-lastSampleTaken > 100){
20 sampleProvider.fetchSample(samples, 0);
21 }
22 }
23
24 @Override
25 public void action() {
26 suppressed = false;
27 }
28
29 @Override
30 public void suppress() {
31 suppressed = true;
32 }
33 }