46 lines
1.1 KiB
Java
46 lines
1.1 KiB
Java
package org.firstinspires.ftc.teamcode.util;
|
|
|
|
/**
|
|
* IMU axes signs in the order XYZ (after remapping).
|
|
*/
|
|
public enum AxesSigns {
|
|
PPP(0b000),
|
|
PPN(0b001),
|
|
PNP(0b010),
|
|
PNN(0b011),
|
|
NPP(0b100),
|
|
NPN(0b101),
|
|
NNP(0b110),
|
|
NNN(0b111);
|
|
|
|
public final int bVal;
|
|
|
|
AxesSigns(int bVal) {
|
|
this.bVal = bVal;
|
|
}
|
|
|
|
public static AxesSigns fromBinaryValue(int bVal) {
|
|
int maskedVal = bVal & 0x07;
|
|
switch (maskedVal) {
|
|
case 0b000:
|
|
return AxesSigns.PPP;
|
|
case 0b001:
|
|
return AxesSigns.PPN;
|
|
case 0b010:
|
|
return AxesSigns.PNP;
|
|
case 0b011:
|
|
return AxesSigns.PNN;
|
|
case 0b100:
|
|
return AxesSigns.NPP;
|
|
case 0b101:
|
|
return AxesSigns.NPN;
|
|
case 0b110:
|
|
return AxesSigns.NNP;
|
|
case 0b111:
|
|
return AxesSigns.NNN;
|
|
default:
|
|
throw new IllegalStateException("Unexpected value for maskedVal: " + maskedVal);
|
|
}
|
|
}
|
|
}
|