package nl.ru.ai.projects.parrot.dronecontrol.groundstation;
import java.nio.ByteBuffer;
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
import nl.ru.ai.projects.parrot.dronecontrol.ParrotDroneInterface;
import nl.ru.ai.projects.parrot.dronecontrol.SensorDataObserver;
static {
System.loadLibrary("GroundStation");
}
private static GroundStation instance = null;
public synchronized static GroundStation
getInstance() {
if (instance == null) {
instance = new GroundStation();
}
return instance;
}
private static final int FLYINGSTATE_LANDED = 0;
private static final int FLYINGSTATE_FLYING = 1;
private static final int FLYINGSTATE_EMERGENCY = 2;
private static final int FLYINGSTATE_DISCONNECTED = 3;
private native void land0();
private native void spin0(
double speed);
createInstance0();
}
@Override
ByteBuffer buffer = getFrontCameraImage0();
return buffer.array();
}
@Override
return getFrontCameraTimeStamp0();
}
@Override
throw new NotImplementedException();
}
@Override
throw new NotImplementedException();
}
@Override
return getRotationVector0();
}
@Override
return getSensoryTimeStamp0();
}
@Override
clearEmergencyFlag0();
}
@Override
flyForward0(Math.min(1, Math.max(-1, speed)));
}
@Override
flySideways0(Math.min(1, Math.max(-1, speed)));
}
@Override
switch (getFlyingState0()) {
case FLYINGSTATE_DISCONNECTED:
return FlyingState.DISCONNECTED;
case FLYINGSTATE_FLYING:
return FlyingState.FLYING;
case FLYINGSTATE_EMERGENCY:
return FlyingState.EMERGENCY;
case FLYINGSTATE_LANDED:
return FlyingState.LANDED;
default:
throw new Error("Native interface returned erronous state");
}
}
@Override
hover0();
}
@Override
land0();
}
@Override
setEmergencyFlag0();
}
@Override
setHeight0(Math.min(1, Math.max(0, height)));
}
@Override
public void spin(
double speed) {
spin0(Math.min(1, Math.max(-1, speed)));
}
@Override
takeoff0();
}
@Override
public void droneSleep(
long arg0)
throws InterruptedException {
throw new NotImplementedException();
}
@Override
throw new NotImplementedException();
}
@Override
throw new NotImplementedException();
}
}