diff --git a/server/src/main.rs b/server/src/main.rs index 9044369..3bf1fe8 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -102,6 +102,7 @@ async fn main() -> Result<(), Error> { .route("/turtle/:id/setGoal", post(set_goal)) .route("/turtle/:id/dig", post(dig)) .route("/turtle/:id/cancelTask", post(cancel)) + .route("/turtle/:id/manual", post(run_command)) .route("/turtle/:id/info", get(turtle_info)) //.route("/turtle/:id/placeUp", get(place_up)) .route("/turtle/updateAll", get(update_turtles)) @@ -163,6 +164,17 @@ async fn place_up( Json(response) } +async fn run_command( + Path(id): Path, + State(state): State, + Json(req): Json, +) -> Json { + let state = state.read().await; + let commander = state.get_turtle(id).await.unwrap().clone(); + drop(state); + Json(commander.execute(req).await.ret) +} + async fn dig( Path(id): Path, State(state): State, diff --git a/server/src/turtle.rs b/server/src/turtle.rs index 3f9bea5..4486827 100644 --- a/server/src/turtle.rs +++ b/server/src/turtle.rs @@ -355,6 +355,7 @@ pub(crate) async fn process_turtle_update( } } + println!("{} idle, connected", turtle.name.to_str()); Ok(TurtleCommand::Wait(IDLE_TIME)) }