#include "ETLineTracer.h"\r
+#include "LinePos.h"\r
+#include "Runner.h"\r
\r
ETLineTracer::ETLineTracer(LinePos& linepos, Runner& runner)\r
- : LineTracer(linepos,runner), m_pid(0.3, 0.0, 10.0)\r
+ : m_linepos(linepos), m_runner(runner), m_pid(0.3, 0.0, 10.0)\r
{\r
}\r
ETLineTracer::~ETLineTracer(void)\r
{\r
}\r
+void ETLineTracer::Run(int speed)\r
+{\r
+ int forward = 0;\r
+ int turn = 0;\r
+ CalcOutput(speed,m_linepos.GetLinePos(),forward,turn);\r
+ m_runner.Run(forward,turn);\r
+}\r
+bool ETLineTracer::IsException() const\r
+{\r
+ return false;\r
+}\r
+void ETLineTracer::Stop()\r
+{\r
+}\r
+void ETLineTracer::Reset()\r
+{\r
+}\r
void ETLineTracer::CalcOutput(int speed, int linepos, int& forward, int& turn)\r
{\r
forward = speed * 7 / 10; // \82Æ\82è\82 \82¦\82¸\82Ì\8eÀ\91\95\r
#pragma once\r
-#include "LineTracer.h"\r
+#include "Robot.h"\r
#include "PID.h"\r
\r
-class ETLineTracer : public LineTracer\r
+class LinePos;\r
+class Runner;\r
+\r
+class ETLineTracer : public Robot\r
{\r
+ LinePos& m_linepos;\r
+ Runner& m_runner;\r
PID<float> m_pid;\r
public:\r
ETLineTracer(LinePos& linepos, Runner& runner);\r
virtual ~ETLineTracer(void);\r
+ virtual void Run(int speed);\r
+ virtual bool IsException() const;\r
+ virtual void Stop();\r
+ virtual void Reset();\r
//\r
private:\r
- virtual void CalcOutput(int speed, int linepos, int& forward, int& turn);\r
+ void CalcOutput(int speed, int linepos, int& forward, int& turn);\r
};\r
+++ /dev/null
-#include "LineTracer.h"\r
-#include "LinePos.h"\r
-#include "Runner.h"\r
-\r
-LineTracer::LineTracer(LinePos& linepos, Runner& runner)\r
- : m_linepos(linepos), m_runner(runner)\r
-{\r
-}\r
-LineTracer::~LineTracer(void)\r
-{\r
-}\r
-void LineTracer::RunTrace(int speed)\r
-{\r
- int forward = 0;\r
- int turn = 0;\r
- CalcOutput(speed,m_linepos.GetLinePos(),forward,turn);\r
- m_runner.Run(forward,turn);\r
-}\r
+++ /dev/null
-#pragma once\r
-\r
-class LinePos;\r
-class Runner;\r
-\r
-class LineTracer\r
-{\r
- LinePos& m_linepos;\r
- Runner& m_runner;\r
-public:\r
- LineTracer(LinePos& linepos, Runner& runner);\r
- virtual ~LineTracer(void);\r
- //\r
- void RunTrace(int speed);\r
-private:\r
- virtual void CalcOutput(int speed, int linepos, int& forward, int& turn) = 0;\r
-};\r
-\r
# Target specific macros
TARGET = tonden
-TARGET_CPP_SOURCES = main.cpp LineTracer.cpp LinePos.cpp Runner.cpp ETLinePos.cpp ETBalanceRunner.cpp ETLineTracer.cpp \
+TARGET_CPP_SOURCES = main.cpp LinePos.cpp Runner.cpp ETLinePos.cpp ETBalanceRunner.cpp ETLineTracer.cpp \
context.cpp \
runstate.cpp \
exceptionstate.cpp \
--- /dev/null
+#pragma once
+
+class Robot
+{
+public:
+ virtual ~Robot(void){}
+ //
+ virtual void Run(int speed) = 0;
+ virtual bool IsException() const = 0;
+ virtual void Stop() = 0;
+ virtual void Reset() = 0;
+};
+
<ClCompile Include="ETTailControl.cpp" />\r
<ClCompile Include="exceptionstate.cpp" />\r
<ClCompile Include="LinePos.cpp" />\r
- <ClCompile Include="LineTracer.cpp" />\r
<ClCompile Include="main.cpp" />\r
<ClCompile Include="Runner.cpp" />\r
<ClCompile Include="runstate.cpp" />\r
<ClInclude Include="ETTailControl.h" />\r
<ClInclude Include="exceptionstate.h" />\r
<ClInclude Include="LinePos.h" />\r
- <ClInclude Include="LineTracer.h" />\r
+ <ClInclude Include="Robot.h" />\r
<ClInclude Include="PID.h" />\r
<ClInclude Include="Runner.h" />\r
<ClInclude Include="runstate.h" />\r
<ClCompile Include="tsprintf.c">\r
<Filter>ソース ファイル</Filter>\r
</ClCompile>\r
- <ClCompile Include="LineTracer.cpp">\r
- <Filter>ソース ファイル</Filter>\r
- </ClCompile>\r
<ClCompile Include="ETLineTracer.cpp">\r
<Filter>ソース ファイル</Filter>\r
</ClCompile>\r
<ClInclude Include="tsprintf.h">\r
<Filter>ヘッダー ファイル</Filter>\r
</ClInclude>\r
- <ClInclude Include="LineTracer.h">\r
- <Filter>ヘッダー ファイル</Filter>\r
- </ClInclude>\r
<ClInclude Include="ETLineTracer.h">\r
<Filter>ヘッダー ファイル</Filter>\r
</ClInclude>\r
<ClInclude Include="ETTailControl.h">\r
<Filter>ヘッダー ファイル</Filter>\r
</ClInclude>\r
+ <ClInclude Include="Robot.h">\r
+ <Filter>ヘッダー ファイル</Filter>\r
+ </ClInclude>\r
</ItemGroup>\r
</Project>
\ No newline at end of file
\r
void RunState::CyclicExcute()\r
{\r
- m_tracer->RunTrace(100);\r
+ m_tracer->Run(100);\r
}\r