Merge "Switch trajectory_plot to 2019 drive base."
diff --git a/y2019/vision/server/server.cc b/y2019/vision/server/server.cc
index 8dd4e85..54eb399 100644
--- a/y2019/vision/server/server.cc
+++ b/y2019/vision/server/server.cc
@@ -159,14 +159,17 @@
stream << "\"x\": " << drivetrain_status->x << ",";
stream << "\"y\": " << drivetrain_status->y << ",";
stream << "\"theta\": " << drivetrain_status->theta;
- if (drivetrain_status->line_follow_logging.frozen) {
- stream << ",\"target\": {";
- stream << "\"x\": " << drivetrain_status->line_follow_logging.x << ",";
- stream << "\"y\": " << drivetrain_status->line_follow_logging.y << ",";
- stream << "\"theta\": " << drivetrain_status->line_follow_logging.theta;
- stream << "} ";
- }
stream << "}\n";
+ stream << ",\"target\": {";
+ stream << "\"x\": " << drivetrain_status->line_follow_logging.x << ",";
+ stream << "\"y\": " << drivetrain_status->line_follow_logging.y << ",";
+ stream << "\"theta\": " << drivetrain_status->line_follow_logging.theta
+ << ",";
+ stream << "\"frozen\": " << drivetrain_status->line_follow_logging.frozen
+ << ",";
+ stream << "\"have_target\": "
+ << drivetrain_status->line_follow_logging.have_target;
+ stream << "} ";
stream << "}";
server->execute(
diff --git a/y2019/vision/server/www/main.ts b/y2019/vision/server/www/main.ts
index 1b3bbf0..8dc0ea9 100644
--- a/y2019/vision/server/www/main.ts
+++ b/y2019/vision/server/www/main.ts
@@ -33,10 +33,10 @@
this.theta = j.robot.theta;
if(j.target) {
- this.drawLocked = true;
- this.lockedX = j.target.x;
- this.lockedY = j.target.y;
- this.lockedTheta = j.target.theta;
+ this.targetLocked = j.target.frozen && j.target.have_target;
+ this.targetX = j.target.x;
+ this.targetY = j.target.y;
+ this.targetTheta = j.target.theta;
}
});
socket.addEventListener('message', (event) => {
@@ -65,12 +65,15 @@
drawField(ctx);
drawRobot(ctx, this.x, this.y, this.theta);
- if (this.drawLocked) {
- ctx.save();
+ ctx.save();
+ ctx.lineWidth = 2.0 * ctx.lineWidth;
+ if (this.targetLocked) {
+ ctx.strokeStyle = 'blue';
+ } else {
ctx.strokeStyle = 'red';
- drawTarget(ctx, this.lockedX, this.lockedY, this.lockedTheta);
- ctx.restore();
}
+ drawTarget(ctx, this.targetX, this.targetY, this.targetTheta);
+ ctx.restore();
window.requestAnimationFrame(() => this.draw(ctx));
}
}