OSDN Git Service

LineTracerが持っていたLinePosとRunnerをETLineTracerに移動させ、LineTracerを廃止し新たにインターフェースクラスRobotを作成。
authorkanja <hoge@hoge.hg>
Wed, 11 Sep 2013 12:16:27 +0000 (21:16 +0900)
committerkanja <hoge@hoge.hg>
Wed, 11 Sep 2013 12:16:27 +0000 (21:16 +0900)
ETLineTracer.cpp
ETLineTracer.h
LineTracer.cpp [deleted file]
LineTracer.h [deleted file]
Makefile
Robot.h [new file with mode: 0644]
Tonden.vcxproj
Tonden.vcxproj.filters
runstate.cpp

index bd7f649..4b53e77 100644 (file)
@@ -1,12 +1,31 @@
 #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
index 3cfdd78..49d0d59 100644 (file)
@@ -1,14 +1,23 @@
 #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
diff --git a/LineTracer.cpp b/LineTracer.cpp
deleted file mode 100644 (file)
index 08ed0a7..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#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
diff --git a/LineTracer.h b/LineTracer.h
deleted file mode 100644 (file)
index 1d29366..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#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
index d51ea17..4ccf4df 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 # 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 \
diff --git a/Robot.h b/Robot.h
new file mode 100644 (file)
index 0000000..7a9f0d6
--- /dev/null
+++ b/Robot.h
@@ -0,0 +1,13 @@
+#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;
+};
+
index b0a5e2f..c75a1fe 100644 (file)
@@ -68,7 +68,6 @@
     <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
@@ -82,7 +81,7 @@
     <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
index b38945e..3fe4914 100644 (file)
@@ -28,9 +28,6 @@
     <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
@@ -66,9 +63,6 @@
     <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
index 27807b4..4224677 100644 (file)
@@ -16,5 +16,5 @@ void RunState::Display(ecrobot::Lcd& lcd)
 \r
 void RunState::CyclicExcute()\r
 {\r
-       m_tracer->RunTrace(100);\r
+       m_tracer->Run(100);\r
 }\r