package ctbot.utils;
import nanovm.ctbot.drivers.DistanceSensor;
public class FreeDist {
static float l1=1.0f, l2=1.0f;
static float r1=1.0f, r2=1.0f;
public static float left;
public static float right;
static final float FACT_A = 47.14f;
static final float FACT_B = 55.71f;
private static float calc(float a0, float a1, float a2) {
if ((a0<a1) && (a1<a2)){
return a0;
} else if ((a0>a1) && (a1>a2)) {
return a0;
} else
return (a0+a1+a2)*(1.0f/3.0f);
}
public static float linearize(float val) {
return FACT_A/(val-FACT_B);
}
public static void update() {
DistanceSensor.updateLeft();
DistanceSensor.updateRight();
float l0 = DistanceSensor.getLeft();
float r0 = DistanceSensor.getRight();
left = linearize(calc(l0, l1, l2));
right = linearize(calc(r0, r1, r2));
l2=l1; l1=l0;
r2=r1; r1=r0;
}
}