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));
   }
 }