Add spline goal to 2022 field visualization
Signed-off-by: James Kuszmaul <jabukuszmaul+collab@gmail.com>
Change-Id: Iedfab5a04eca4239ea58aee1fcf850f6b6f7596f
diff --git a/aos/network/www/reflection.ts b/aos/network/www/reflection.ts
index a765eea..328ee58 100644
--- a/aos/network/www/reflection.ts
+++ b/aos/network/www/reflection.ts
@@ -6,8 +6,8 @@
// constructed flatbuffers.
// See reflection_test_main.ts for sample usage.
-import * as aos from 'org_frc971/aos/configuration_generated';
-import * as reflection from '../../../external/com_github_google_flatbuffers/reflection/reflection_generated';
+import * as aos from '../../configuration_generated';
+import * as reflection from 'flatbuffers_reflection/reflection_generated';
import {ByteBuffer} from 'flatbuffers';
// Returns the size, in bytes, of the given type. For vectors/strings/etc.
diff --git a/y2020/www/field_handler.ts b/y2020/www/field_handler.ts
index c165bcc..28c35aa 100644
--- a/y2020/www/field_handler.ts
+++ b/y2020/www/field_handler.ts
@@ -1,10 +1,9 @@
import {ByteBuffer} from 'flatbuffers';
-import {Connection} from 'org_frc971/aos/network/www/proxy';
-import * as flatbuffers_builder from 'org_frc971/external/com_github_google_flatbuffers/ts/builder';
-import {Status as DrivetrainStatus} from 'org_frc971/frc971/control_loops/drivetrain/drivetrain_status_generated';
-import {LocalizerDebug, RejectionReason, ImageMatchDebug} from 'org_frc971/y2020/control_loops/drivetrain/localizer_debug_generated';
-import {Status as SuperstructureStatus, FlywheelControllerStatus} from 'org_frc971/y2020/control_loops/superstructure/superstructure_status_generated'
-import {ImageMatchResult} from 'org_frc971/y2020/vision/sift/sift_generated';
+import {Connection} from '../../aos/network/www/proxy';
+import {Status as DrivetrainStatus} from '../../frc971/control_loops/drivetrain/drivetrain_status_generated';
+import {LocalizerDebug, RejectionReason, ImageMatchDebug} from '../control_loops/drivetrain/localizer_debug_generated';
+import {Status as SuperstructureStatus, FlywheelControllerStatus} from '../control_loops/superstructure/superstructure_status_generated'
+import {ImageMatchResult} from '../vision/sift/sift_generated';
import {FIELD_LENGTH, FIELD_WIDTH, FT_TO_M, IN_TO_M} from './constants';
diff --git a/y2022/www/BUILD b/y2022/www/BUILD
index 88e54a5..957045d 100644
--- a/y2022/www/BUILD
+++ b/y2022/www/BUILD
@@ -24,6 +24,7 @@
"//aos/network:connect_ts_fbs",
"//aos/network:web_proxy_ts_fbs",
"//aos/network/www:proxy",
+ "//frc971/control_loops/drivetrain:drivetrain_status_ts_fbs",
"//y2022/control_loops/superstructure:superstructure_status_ts_fbs",
"//y2022/localizer:localizer_output_ts_fbs",
"//y2022/localizer:localizer_status_ts_fbs",
diff --git a/y2022/www/field_handler.ts b/y2022/www/field_handler.ts
index 22989be..5072ffd 100644
--- a/y2022/www/field_handler.ts
+++ b/y2022/www/field_handler.ts
@@ -1,9 +1,10 @@
import {ByteBuffer} from 'flatbuffers';
-import {Connection} from 'org_frc971/aos/network/www/proxy';
-import {IntakeState, Status as SuperstructureStatus, SuperstructureState} from 'org_frc971/y2022/control_loops/superstructure/superstructure_status_generated'
-import {LocalizerOutput} from 'org_frc971/y2022/localizer/localizer_output_generated';
-import {RejectionReason} from 'org_frc971/y2022/localizer/localizer_status_generated';
-import {LocalizerVisualization, TargetEstimateDebug} from 'org_frc971/y2022/localizer/localizer_visualization_generated';
+import {Connection} from '../../aos/network/www/proxy';
+import {IntakeState, Status as SuperstructureStatus, SuperstructureState} from '../control_loops/superstructure/superstructure_status_generated'
+import {LocalizerOutput} from '../localizer/localizer_output_generated';
+import {RejectionReason} from '../localizer/localizer_status_generated';
+import {Status as DrivetrainStatus} from '../../frc971/control_loops/drivetrain/drivetrain_status_generated';
+import {LocalizerVisualization, TargetEstimateDebug} from '../localizer/localizer_visualization_generated';
import {FIELD_LENGTH, FIELD_WIDTH, FT_TO_M, IN_TO_M} from './constants';
@@ -19,6 +20,7 @@
export class FieldHandler {
private canvas = document.createElement('canvas');
private localizerOutput: LocalizerOutput|null = null;
+ private drivetrainStatus: DrivetrainStatus|null = null;
private superstructureStatus: SuperstructureStatus|null = null;
// Image information indexed by timestamp (seconds since the epoch), so that
@@ -105,6 +107,10 @@
this.handleLocalizerDebug(data);
});
this.connection.addHandler(
+ '/drivetrain', DrivetrainStatus.getFullyQualifiedName(), (data) => {
+ this.handleDrivetrainStatus(data);
+ });
+ this.connection.addHandler(
'/localizer', LocalizerOutput.getFullyQualifiedName(), (data) => {
this.handleLocalizerOutput(data);
});
@@ -154,6 +160,11 @@
this.localizerOutput = LocalizerOutput.getRootAsLocalizerOutput(fbBuffer);
}
+ private handleDrivetrainStatus(data: Uint8Array): void {
+ const fbBuffer = new ByteBuffer(data);
+ this.drivetrainStatus = DrivetrainStatus.getRootAsStatus(fbBuffer);
+ }
+
private handleSuperstructureStatus(data: Uint8Array): void {
const fbBuffer = new ByteBuffer(data);
this.superstructureStatus = SuperstructureStatus.getRootAsStatus(fbBuffer);
@@ -377,6 +388,14 @@
}
}
+ if (this.drivetrainStatus && this.drivetrainStatus.trajectoryLogging()) {
+ this.drawRobot(
+ this.drivetrainStatus.trajectoryLogging().x(),
+ this.drivetrainStatus.trajectoryLogging().y(),
+ this.drivetrainStatus.trajectoryLogging().theta(), null, "#000000FF",
+ false);
+ }
+
if (this.localizerOutput) {
if (!this.localizerOutput.zeroed()) {
this.setZeroing(this.x);