Getracht de acceleratie normalisatie van wiigee te benaderen. Dit lukt redelijk, maar niet goed genoeg om zonder de filters te hoeven tunen direct goede herkenning te krijgen.
This commit is contained in:
@@ -348,4 +348,5 @@ public class WiiUseApi {
|
||||
*/
|
||||
native void specialPoll(EventsGatherer gath);
|
||||
|
||||
native short[] getCalibration(int id);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import javax.swing.event.EventListenerList;
|
||||
|
||||
import wiiusej.values.Calibration;
|
||||
import wiiusej.values.RawAcceleration;
|
||||
import wiiusej.wiiusejevents.utils.EventsGatherer;
|
||||
import wiiusej.wiiusejevents.utils.WiiUseApiListener;
|
||||
import wiiusej.wiiusejevents.wiiuseapievents.WiiUseApiEvent;
|
||||
@@ -661,4 +663,11 @@ public class WiiUseApiManager extends Thread {
|
||||
shutdown();
|
||||
}
|
||||
|
||||
public Calibration getCalibration(int id) {
|
||||
short[] data = wiiuse.getCalibration(id);
|
||||
return new Calibration(
|
||||
new RawAcceleration(data[0], data[1], data[2]),
|
||||
new RawAcceleration(data[3], data[4], data[5]));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ package wiiusej;
|
||||
|
||||
import javax.swing.event.EventListenerList;
|
||||
|
||||
import wiiusej.values.Calibration;
|
||||
import wiiusej.wiiusejevents.utils.WiiUseApiListener;
|
||||
import wiiusej.wiiusejevents.utils.WiimoteListener;
|
||||
import wiiusej.wiiusejevents.wiiuseapievents.ClassicControllerInsertedEvent;
|
||||
@@ -492,4 +493,7 @@ public class Wiimote implements WiiUseApiListener {
|
||||
return "Wiimote with ID : " + id;
|
||||
}
|
||||
|
||||
public Calibration getCalibration() {
|
||||
return manager.getCalibration(id);
|
||||
}
|
||||
}
|
||||
|
||||
33
java/src/wiiusej/values/Acceleration.java
Normal file
33
java/src/wiiusej/values/Acceleration.java
Normal file
@@ -0,0 +1,33 @@
|
||||
package wiiusej.values;
|
||||
|
||||
public class Acceleration {
|
||||
protected double x;
|
||||
protected double y;
|
||||
protected double z;
|
||||
|
||||
public Acceleration(double x, double y, double z) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
public double getX() {
|
||||
return x;
|
||||
}
|
||||
|
||||
public double getY() {
|
||||
return y;
|
||||
}
|
||||
|
||||
public double getZ() {
|
||||
return y;
|
||||
}
|
||||
|
||||
public double[] toArray() {
|
||||
return new double[] {getX(), getY(), getZ()};
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "Acceleration : (" + x + ", " + y + ", " + z + ")";
|
||||
}
|
||||
}
|
||||
36
java/src/wiiusej/values/Calibration.java
Normal file
36
java/src/wiiusej/values/Calibration.java
Normal file
@@ -0,0 +1,36 @@
|
||||
package wiiusej.values;
|
||||
|
||||
public class Calibration {
|
||||
protected RawAcceleration zeroAcceleration;
|
||||
protected RawAcceleration gAcceleration;
|
||||
protected RawAcceleration differenceAcceleration;
|
||||
|
||||
public Calibration(RawAcceleration zeroAcceleration, RawAcceleration gAcceleration) {
|
||||
this.zeroAcceleration = zeroAcceleration;
|
||||
this.gAcceleration = gAcceleration;
|
||||
differenceAcceleration = new RawAcceleration(
|
||||
(short) (zeroAcceleration.getX() - gAcceleration.getX()),
|
||||
(short) (zeroAcceleration.getY() - gAcceleration.getY()),
|
||||
(short) (zeroAcceleration.getZ() - gAcceleration.getZ()));
|
||||
System.out.println(zeroAcceleration);
|
||||
System.out.println(gAcceleration);
|
||||
System.out.println(differenceAcceleration);
|
||||
System.out.println("<");
|
||||
//System.exit(0);
|
||||
}
|
||||
|
||||
public RawAcceleration getZeroAcceleration() {
|
||||
return zeroAcceleration;
|
||||
}
|
||||
|
||||
public RawAcceleration getGAcceleration() {
|
||||
return gAcceleration;
|
||||
}
|
||||
|
||||
public Acceleration getAcceleration(RawAcceleration rawAcceleration) {
|
||||
return new Acceleration(
|
||||
(rawAcceleration.getX() - zeroAcceleration.getX()),// / (double) gAcceleration.getX(),
|
||||
(rawAcceleration.getY() - zeroAcceleration.getY()),// / (double) gAcceleration.getY(),
|
||||
(rawAcceleration.getZ() - zeroAcceleration.getZ()));// / (double) gAcceleration.getZ());
|
||||
}
|
||||
}
|
||||
@@ -75,7 +75,7 @@ public class RawAcceleration {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Raw acceleration : (" + x + ", " + y + "," + z + ")";
|
||||
return "Raw acceleration : (" + x + ", " + y + ", " + z + ")";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user