Xiaofei Qiu / Command
Committer:
Xiaofei
Date:
Sat Nov 28 23:11:53 2015 +0000
Revision:
7:3dee2b884e1f
Parent:
4:3fbe2d75f7eb
Child:
8:0752270a196e
C

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Xiaofei 0:4bc34a5fcc29 1 #pragma once
Xiaofei 0:4bc34a5fcc29 2 #include <cstdint>
Xiaofei 0:4bc34a5fcc29 3
Xiaofei 7:3dee2b884e1f 4 /** Command class.
Xiaofei 7:3dee2b884e1f 5 * Author Xiaofei Qiu
Xiaofei 7:3dee2b884e1f 6 */
Xiaofei 0:4bc34a5fcc29 7 class Command
Xiaofei 0:4bc34a5fcc29 8 {
Xiaofei 0:4bc34a5fcc29 9 public:
Xiaofei 1:13c4bf8989d5 10 Command();
Xiaofei 7:3dee2b884e1f 11
Xiaofei 0:4bc34a5fcc29 12 Command(const Command&);
Xiaofei 7:3dee2b884e1f 13
Xiaofei 0:4bc34a5fcc29 14 virtual ~Command(){}
Xiaofei 7:3dee2b884e1f 15
Xiaofei 7:3dee2b884e1f 16 /** Uses vitual function for dynamic binding */
Xiaofei 0:4bc34a5fcc29 17 virtual void execute() = 0;
Xiaofei 7:3dee2b884e1f 18
Xiaofei 7:3dee2b884e1f 19 /** Sets Speed, if is_negative is true, then speed will be negative. otherwaise, speed is position */
Xiaofei 7:3dee2b884e1f 20 void setSpeed(const std::int8_t& sp, const std::int8_t& is_negative = 0);
Xiaofei 0:4bc34a5fcc29 21
Xiaofei 0:4bc34a5fcc29 22 protected:
Xiaofei 3:97a5a3744481 23 float _SPEED;
Xiaofei 7:3dee2b884e1f 24
Xiaofei 7:3dee2b884e1f 25 /** Direction of the motor speed */
Xiaofei 3:97a5a3744481 26 bool _IS_NEGATIVE;
Xiaofei 0:4bc34a5fcc29 27 };
Xiaofei 0:4bc34a5fcc29 28
Xiaofei 0:4bc34a5fcc29 29 class LedCommand : public Command
Xiaofei 0:4bc34a5fcc29 30 {
Xiaofei 0:4bc34a5fcc29 31 public:
Xiaofei 0:4bc34a5fcc29 32 LedCommand(){}
Xiaofei 0:4bc34a5fcc29 33 virtual void execute();
Xiaofei 0:4bc34a5fcc29 34 };
Xiaofei 0:4bc34a5fcc29 35
Xiaofei 0:4bc34a5fcc29 36 class TurnLeftCommand : public Command
Xiaofei 0:4bc34a5fcc29 37 {
Xiaofei 0:4bc34a5fcc29 38 public:
Xiaofei 0:4bc34a5fcc29 39 TurnLeftCommand(){}
Xiaofei 0:4bc34a5fcc29 40 virtual void execute();
Xiaofei 0:4bc34a5fcc29 41 };
Xiaofei 0:4bc34a5fcc29 42
Xiaofei 0:4bc34a5fcc29 43 class TurnRightCommand : public Command
Xiaofei 0:4bc34a5fcc29 44 {
Xiaofei 0:4bc34a5fcc29 45 public:
Xiaofei 0:4bc34a5fcc29 46 TurnRightCommand(){}
Xiaofei 0:4bc34a5fcc29 47 virtual void execute();
Xiaofei 0:4bc34a5fcc29 48 };
Xiaofei 0:4bc34a5fcc29 49
Xiaofei 0:4bc34a5fcc29 50 class StopCommand : public Command
Xiaofei 0:4bc34a5fcc29 51 {
Xiaofei 0:4bc34a5fcc29 52 public:
Xiaofei 0:4bc34a5fcc29 53 StopCommand(){}
Xiaofei 0:4bc34a5fcc29 54 virtual void execute();
Xiaofei 1:13c4bf8989d5 55 };