OSDN Git Service

IsException,Reset,Stopを実装。
authorkanja <hoge@hoge.hg>
Wed, 11 Sep 2013 12:35:43 +0000 (21:35 +0900)
committerkanja <hoge@hoge.hg>
Wed, 11 Sep 2013 12:35:43 +0000 (21:35 +0900)
12 files changed:
ETBalanceRunner.cpp
ETBalanceRunner.h
ETLineTracer.cpp
LinePos.cpp [deleted file]
LinePos.h
Makefile
PID.h
Runner.cpp [deleted file]
Runner.h
Tonden.vcxproj
Tonden.vcxproj.filters
main.cpp

index 49cfd4d..f0625ef 100644 (file)
@@ -33,6 +33,19 @@ void ETBalanceRunner::Run(int forward, int turn)
        m_motorL.setPWM(l);\r
        m_motorR.setPWM(r);\r
 }\r
+bool ETBalanceRunner::IsException() const\r
+{\r
+       return false;\r
+}\r
+void ETBalanceRunner::Stop()\r
+{\r
+       m_motorL.setPWM(0);\r
+       m_motorR.setPWM(0);\r
+}\r
+void ETBalanceRunner::Reset()\r
+{\r
+       balance_init();\r
+}\r
 void ETBalanceRunner::SetGyroOffset(int offset)\r
 {\r
        m_gyrooffset = offset;\r
index bb77bfd..afada5b 100644 (file)
@@ -19,6 +19,9 @@ public:
        virtual ~ETBalanceRunner(void);\r
        //\r
        virtual void Run(int forward, int turn);\r
+       virtual bool IsException() const;\r
+       virtual void Stop();\r
+       virtual void Reset();\r
        void SetGyroOffset(int offset);\r
 };\r
 \r
index 4b53e77..3f92d47 100644 (file)
@@ -18,13 +18,16 @@ void ETLineTracer::Run(int speed)
 }\r
 bool ETLineTracer::IsException() const\r
 {\r
-       return false;\r
+       return m_runner.IsException();\r
 }\r
 void ETLineTracer::Stop()\r
 {\r
+       m_runner.Stop();\r
 }\r
 void ETLineTracer::Reset()\r
 {\r
+       m_runner.Reset();\r
+       m_pid.ResetPrevDiff();\r
 }\r
 void ETLineTracer::CalcOutput(int speed, int linepos, int& forward, int& turn)\r
 {\r
diff --git a/LinePos.cpp b/LinePos.cpp
deleted file mode 100644 (file)
index 0a6871d..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "LinePos.h"\r
-\r
-LinePos::LinePos(void)\r
-{\r
-}\r
-LinePos::~LinePos(void)\r
-{\r
-}\r
index 8fac1bc..0c086ab 100644 (file)
--- a/LinePos.h
+++ b/LinePos.h
@@ -2,8 +2,7 @@
 class LinePos\r
 {\r
 public:\r
-       LinePos(void);\r
-       virtual ~LinePos(void);\r
+       virtual ~LinePos(void){}\r
        //\r
        virtual int GetLinePos() = 0;\r
 };\r
index 4ccf4df..c302026 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 # Target specific macros
 TARGET = tonden
 
-TARGET_CPP_SOURCES = main.cpp LinePos.cpp Runner.cpp ETLinePos.cpp ETBalanceRunner.cpp ETLineTracer.cpp \
+TARGET_CPP_SOURCES = main.cpp ETLinePos.cpp ETBalanceRunner.cpp ETLineTracer.cpp \
 context.cpp \
 runstate.cpp \
 exceptionstate.cpp \
diff --git a/PID.h b/PID.h
index 4ec8ee6..4d7d67c 100644 (file)
--- a/PID.h
+++ b/PID.h
@@ -17,6 +17,7 @@ public:
        //
        T CalcControlValue(const T& diff);
        void SetClip(const T& clipMin, const T& clipMax);
+       void ResetPrevDiff();
 };
 
 template<class T>
@@ -54,3 +55,10 @@ void PID<T>::SetClip(const T& clipMin, const T& clipMax)
        m_clipMin = clipMin;
        m_clipMax = clipMax;
 }
+
+template<class T>
+void PID<T>::ResetPrevDiff()
+{
+       m_prevDiff = 0;
+       m_sumDiff = 0;
+}
diff --git a/Runner.cpp b/Runner.cpp
deleted file mode 100644 (file)
index 8552aa7..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "Runner.h"\r
-\r
-Runner::Runner(void)\r
-{\r
-}\r
-Runner::~Runner(void)\r
-{\r
-}\r
index f019790..5e97663 100644 (file)
--- a/Runner.h
+++ b/Runner.h
@@ -2,8 +2,10 @@
 class Runner\r
 {\r
 public:\r
-       Runner(void);\r
-       virtual ~Runner(void);\r
+       virtual ~Runner(void){}\r
        //\r
        virtual void Run(int forward,int turn) = 0;\r
+       virtual bool IsException() const = 0;\r
+       virtual void Stop() = 0;\r
+       virtual void Reset() = 0;\r
 };\r
index c75a1fe..fd4e5a1 100644 (file)
@@ -67,9 +67,7 @@
     <ClCompile Include="ETLineTracer.cpp" />\r
     <ClCompile Include="ETTailControl.cpp" />\r
     <ClCompile Include="exceptionstate.cpp" />\r
-    <ClCompile Include="LinePos.cpp" />\r
     <ClCompile Include="main.cpp" />\r
-    <ClCompile Include="Runner.cpp" />\r
     <ClCompile Include="runstate.cpp" />\r
     <ClCompile Include="tsprintf.c" />\r
   </ItemGroup>\r
index 3fe4914..8c07a2b 100644 (file)
     <ClCompile Include="ETLineTracer.cpp">\r
       <Filter>ソース ファイル</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="LinePos.cpp">\r
-      <Filter>ソース ファイル</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Runner.cpp">\r
-      <Filter>ソース ファイル</Filter>\r
-    </ClCompile>\r
     <ClCompile Include="ETLinePos.cpp">\r
       <Filter>ソース ファイル</Filter>\r
     </ClCompile>\r
index 1942f49..bee6d5c 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -145,8 +145,8 @@ TASK(TaskMain)
 TASK(Task4ms)\r
 {\r
        if(touch.isPressed()){\r
-               motorR.setPWM(0);\r
-               motorL.setPWM(0);\r
+//             motorR.setPWM(0);\r
+//             motorL.setPWM(0);\r
                ActivateTask(TaskMain);\r
                TerminateTask();\r
        }\r