From c99c923e28afd4983107a9321446b08dfd4e9a4d Mon Sep 17 00:00:00 2001 From: Franz Bethke <bethke@math.hu-berlin.de> Date: Thu, 17 May 2018 14:43:11 +0200 Subject: [PATCH] Fix dist dependence in PLC --- .../src/car/include/mainNode/PlatoonController.h | 2 ++ .../src/car/src/mainNode/PlatoonController.cpp | 13 +++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/catkin_ws/src/car/include/mainNode/PlatoonController.h b/modules/catkin_ws/src/car/include/mainNode/PlatoonController.h index b63c65bf..ab3bbe47 100644 --- a/modules/catkin_ws/src/car/include/mainNode/PlatoonController.h +++ b/modules/catkin_ws/src/car/include/mainNode/PlatoonController.h @@ -43,6 +43,8 @@ public: { return platoonConfig.getNonAtomicCopy(); } private: + float maxPlatoonRange = 250.0; // cm + MessageOStream messageOStream; Callback cruiseControllerNotify; platoonProtocol::VehicleFacade & c2c; diff --git a/modules/catkin_ws/src/car/src/mainNode/PlatoonController.cpp b/modules/catkin_ws/src/car/src/mainNode/PlatoonController.cpp index 91b67b6e..7d2fa747 100644 --- a/modules/catkin_ws/src/car/src/mainNode/PlatoonController.cpp +++ b/modules/catkin_ws/src/car/src/mainNode/PlatoonController.cpp @@ -67,6 +67,7 @@ void PlatoonController::setupC2C() void PlatoonController::run() { + // messageOStream.write("MSG", "RUUUUUUUUUUUUUUN!"); switch (currState.load()) { case PlatoonState::ACC: @@ -89,8 +90,9 @@ void PlatoonController::run() void PlatoonController::run_ACC() { - messageOStream.write("run - ACC", ""); bool wantsPlatoon = pc->isPlatoonEnabled().get(); + messageOStream.write("wantsPlatoon",wantsPlatoon); + messageOStream.write("c2cAlive",c2cAlive); if (!wantsPlatoon) { @@ -111,6 +113,7 @@ void PlatoonController::run_ACC() return; } + messageOStream.write("c2c.isPlatoonRunning",c2c.isPlatoonRunning()); // c2cAlive + wantsPlatoon if (c2c.isPlatoonRunning()) { @@ -126,7 +129,9 @@ void PlatoonController::run_ACC() // !inPlatoon + c2cAlive + wantsPlatoon bool isLeader = c2c.getRole() == platoonProtocol::Vehicle::Role::LEADER; - bool hasFiniteDistance = egoMotion.getDistance() < std::numeric_limits<float>::infinity(); + bool inPlatoonRange = egoMotion.getDistance() < maxPlatoonRange; + messageOStream.write("isLeader",isLeader); + messageOStream.write("inPlatoonRange",inPlatoonRange); if (isLeader == inPlatoonRange) { // role does not fit c2c.leavePlatoon(); @@ -144,7 +149,7 @@ void PlatoonController::run_ACC() void PlatoonController::run_CACC_FV() { - messageOStream.write("run - FV", ""); + messageOStream.write("run", "FV"); bool inPlatoon = c2c.isPlatoonRunning(); bool wantsPlatoon = pc->isPlatoonEnabled().get(); @@ -173,7 +178,7 @@ void PlatoonController::run_CACC_FV() void PlatoonController::run_CACC_LV() { - messageOStream.write("run - LV", ""); + messageOStream.write("run", "LV"); bool inPlatoon = c2c.isPlatoonRunning(); bool wantsPlatoon = pc->isPlatoonEnabled().get(); -- GitLab