diff --git a/module/API/Measurer.cpp b/module/API/Measurer.cpp index 209727d6..1a1883b3 100644 --- a/module/API/Measurer.cpp +++ b/module/API/Measurer.cpp @@ -37,12 +37,31 @@ int Measurer::getLeftCount() return leftMotor->getCount(); } +// 左モータ角位置更新 +void Measurer::setLeftCount(int count) +{ + leftMotor->setCount(count); +} + // 右モータ角位置取得 int Measurer::getRightCount() { return rightMotor->getCount(); } +// 右モータ角位置更新 +void Measurer::setRightCount(int count) +{ + rightMotor->setCount(count); +} + +// モータ角位置の初期化 +void Measurer::resetCount() +{ + Measurer::setLeftCount(0); + Measurer::setRightCount(0); +} + // アームモータ角位置取得 int Measurer::getArmMotorCount() { diff --git a/module/API/Measurer.h b/module/API/Measurer.h index 54ae3a60..ea203c89 100644 --- a/module/API/Measurer.h +++ b/module/API/Measurer.h @@ -41,12 +41,29 @@ class Measurer { */ static int getLeftCount(); + /** + * 左モータ角位置を更新 + * @param 左モータ角位置[deg] + */ + static void setLeftCount(int count); + /** * 右モータ角位置を取得 * @return 右モータ角位置[deg] */ static int getRightCount(); + /** + * 右モータ角位置を更新 + * @param 右モータ角位置[deg] + */ + static void setRightCount(int count); + + /** + * モータ角位置を初期化 + */ + static void resetCount(); + /** * アームモータ角位置を取得 * @return アームモータ角位置[deg] diff --git a/module/AreaMaster.cpp b/module/AreaMaster.cpp index f3da3c38..339e6519 100644 --- a/module/AreaMaster.cpp +++ b/module/AreaMaster.cpp @@ -39,6 +39,7 @@ void AreaMaster::run() // 各動作を実行する for(const auto& motion : motionList) { + Measurer::resetCount(); motion->logRunning(); motion->run(); } diff --git a/module/AreaMaster.h b/module/AreaMaster.h index 0ab3f0ab..50afbe44 100644 --- a/module/AreaMaster.h +++ b/module/AreaMaster.h @@ -12,6 +12,7 @@ #include #include "MotionParser.h" #include "Logger.h" +#include "Measurer.h" // エリア名を持つ列挙型変数(LineTrace = 0, DoubleLoop = 1, BlockDeTreasure = 2) enum Area { LineTrace, DoubleLoop, BlockDeTreasure };