mirror of
https://github.com/Team4388/2022NoWayHome.git
synced 2026-06-08 16:28:07 -06:00
Add turret offset to fallback table entries
Add turret offset to sendable table
This commit is contained in:
@@ -67,6 +67,7 @@ public class ShooterTuner extends CommandBase {
|
||||
tableOverrideEntry.distance = 0.0;
|
||||
tableOverrideEntry.hoodExt = 0.0;
|
||||
tableOverrideEntry.drumVelocity = 0.0;
|
||||
tableOverrideEntry.turretOffset = 0.0;
|
||||
m_boomBoom.setShooterTable(new ShooterTableEntry[] { tableOverrideEntry });
|
||||
Shuffleboard.selectTab("Shooter Tuner");
|
||||
SmartDashboard.putData("Shooter Table", m_tableEditor);
|
||||
|
||||
@@ -191,6 +191,7 @@ public class BoomBoom extends SubsystemBase {
|
||||
dummyEntry.distance = 0.0;
|
||||
dummyEntry.hoodExt = 0.0;
|
||||
dummyEntry.drumVelocity = 0.0;
|
||||
dummyEntry.turretOffset = 0.0;
|
||||
LOGGER.log(Level.SEVERE, "Exception while reading shooter CSV table.", exception);
|
||||
m_shooterTable = new ShooterTableEntry[] { dummyEntry };
|
||||
}
|
||||
|
||||
@@ -24,17 +24,18 @@ public class SendableTable implements Sendable {
|
||||
public void initSendable(SendableBuilder builder) {
|
||||
builder.setSmartDashboardType("Table");
|
||||
builder.addRawProperty("table", this::getTableAsBytes, this::setTableFromBytes);
|
||||
builder.addStringArrayProperty("header", () -> new String[] { "distance", "hoodExt", "drumVelocity" }, null);
|
||||
builder.addStringArrayProperty("header", () -> new String[] { "distance", "hoodExt", "drumVelocity", "turretOffset" }, null);
|
||||
}
|
||||
|
||||
private byte[] getTableAsBytes() {
|
||||
ShooterTableEntry[] table = m_tableGetter.get();
|
||||
if (!Arrays.equals(tableCache, table)) {
|
||||
ByteBuffer byteBuffer = ByteBuffer.allocate(Double.BYTES * 3 * table.length);
|
||||
ByteBuffer byteBuffer = ByteBuffer.allocate(Double.BYTES * 4 * table.length);
|
||||
Arrays.stream(table).forEach(e -> {
|
||||
byteBuffer.putDouble(e.distance);
|
||||
byteBuffer.putDouble(e.hoodExt);
|
||||
byteBuffer.putDouble(e.drumVelocity);
|
||||
byteBuffer.putDouble(e.turretOffset);
|
||||
});
|
||||
tableCache = table;
|
||||
bytesCache = byteBuffer.array();
|
||||
@@ -45,11 +46,12 @@ public class SendableTable implements Sendable {
|
||||
private void setTableFromBytes(byte[] bytes) {
|
||||
if (bytes.length > 0 && !Arrays.equals(bytesCache, bytes)) {
|
||||
ByteBuffer byteBuffer = ByteBuffer.wrap(bytes);
|
||||
ShooterTableEntry[] table = new ShooterTableEntry[bytes.length / (3 * Double.BYTES)];
|
||||
ShooterTableEntry[] table = new ShooterTableEntry[bytes.length / (4 * Double.BYTES)];
|
||||
for (int i = 0; i < table.length; i++) {
|
||||
table[i].distance = byteBuffer.getDouble();
|
||||
table[i].hoodExt = byteBuffer.getDouble();
|
||||
table[i].drumVelocity = byteBuffer.getDouble();
|
||||
table[i].turretOffset = byteBuffer.getDouble();
|
||||
}
|
||||
m_tableSetter.accept(table);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user