Accessories
Arduino for motors and lights library.
AccessoryMotorTwoWays.cpp
1 /*************************************************************
2 project: <Accessories>
3 author: <Thierry PARIS>
4 description: <Class for a two ways motorized accessory>
5 *************************************************************/
6 
7 #include "Accessories.h"
8 
9 #ifndef NO_MOTOR
10 #ifndef NO_MOTORTWOWAYS
11 
12 void AccessoryMotorTwoWays::beginTwoWays(Port *inpPort, unsigned long inIdRight, unsigned long inIdLeft, int speed, unsigned long inDurationMilli)
13 {
14  this->AccessoryMotor::begin(inpPort, inIdRight, speed, inDurationMilli);
15  this->AddMovingPosition(inIdLeft, LEFT);
16 }
17 
18 ACC_STATE AccessoryMotorTwoWays::MoveToggle(unsigned long inDuration, int inSpeed)
19 {
20  if (this->GetState() == LEFT)
21  {
22  MoveRight(inDuration, inSpeed);
23  return RIGHT;
24  }
25 
26  MoveLeft(inDuration, inSpeed);
27  return LEFT;
28 }
29 
30 #ifdef ACCESSORIES_PRINT_ACCESSORIES
31 void AccessoryMotorTwoWays::printAccessory()
32 {
33  Serial.print(F(" MotorTwoWays : IDRight "));
34  Serial.print(this->GetMovingPositionIdByIndex(0));
35  if (this->GetMovingPositionSize() > 1)
36  {
37  Serial.print(F(" / IDLeft "));
38  Serial.print(this->GetMovingPositionIdByIndex(1));
39  }
40 
41  if (this->GetPort() != NULL)
42  {
43  Serial.print(F(" / Speed: "));
44  Serial.print(this->GetPort()->GetSpeed());
45  }
46  Serial.print(F(" / Delay: "));
47  Serial.print(this->GetDebounceDelay());
48  Serial.print(F(" / "));
49  if (this->GetPort() != NULL)
50  this->GetPort()->printPort();
51  Serial.println(F(" "));
52 }
53 #endif
54 
55 #endif
56 #endif
unsigned int GetDebounceDelay() const
Definition: Accessory.hpp:255
Port * GetPort() const
Definition: Accessory.hpp:205
const uint8_t GetMovingPositionSize() const
Definition: Accessory.hpp:349
unsigned long GetMovingPositionIdByIndex(uint8_t inIndex) const
Definition: Accessory.hpp:339
virtual void MoveLeft(unsigned long inDuration = 0, int inSpeed = 0)
virtual void MoveRight(unsigned long inDuration = 0, int inSpeed = 0)
ACC_STATE GetState() const
Definition: Accessory.hpp:229
ACC_STATE MoveToggle(unsigned long inDuration = 0, int inSpeed = 0)
uint8_t AddMovingPosition(unsigned long inId, int inPosition)
Definition: Accessory.cpp:58
void begin(Port *inpPort, unsigned long inId, int inSpeed, unsigned long inDurationMilli = 0)
Definition: Port.hpp:61
void beginTwoWays(Port *inpPort, unsigned long inIdRight, unsigned long inIdLeft, int inSpeed, unsigned long inDurationMilli = 0)