OSDN Git Service

LineTracerが持っていたLinePosとRunnerをETLineTracerに移動させ、LineTracerを廃止し新たにインターフェースクラスRobotを作成。
[tondenhei/et2013.git] / ETLineTracer.cpp
1 #include "ETLineTracer.h"\r
2 #include "LinePos.h"\r
3 #include "Runner.h"\r
4 \r
5 ETLineTracer::ETLineTracer(LinePos& linepos, Runner& runner)\r
6         : m_linepos(linepos), m_runner(runner), m_pid(0.3, 0.0, 10.0)\r
7 {\r
8 }\r
9 ETLineTracer::~ETLineTracer(void)\r
10 {\r
11 }\r
12 void ETLineTracer::Run(int speed)\r
13 {\r
14         int forward = 0;\r
15         int turn = 0;\r
16         CalcOutput(speed,m_linepos.GetLinePos(),forward,turn);\r
17         m_runner.Run(forward,turn);\r
18 }\r
19 bool ETLineTracer::IsException() const\r
20 {\r
21         return false;\r
22 }\r
23 void ETLineTracer::Stop()\r
24 {\r
25 }\r
26 void ETLineTracer::Reset()\r
27 {\r
28 }\r
29 void ETLineTracer::CalcOutput(int speed, int linepos, int& forward, int& turn)\r
30 {\r
31         forward = speed * 7 / 10;       // \82Æ\82è\82 \82¦\82¸\82Ì\8eÀ\91\95\r
32         turn =static_cast<int>(m_pid.CalcControlValue(static_cast<float>(linepos)));\r
33 }\r