feature/servo_motor_component #17

Merged
Mathis merged 13 commits from feature/servo_motor_component into develop 2024-01-19 15:46:01 +00:00
3 changed files with 42 additions and 31 deletions
Showing only changes of commit 15bd7c7741 - Show all commits

View File

@ -1,22 +1,29 @@
#include "ServoMotorComponent.h"
ServoMotorComponent::ServoMotorComponent(int PIN, unsigned long updatePeriod) {
/////////////////////////////////////////////////////////////////////////////////////
// Functions for setting up the ServoMotor
/////////////////////////////////////////////////////////////////////////////////////
/**
* Constructor.
* Prepares the ServoMotor.
*/
ServoMotorComponent::ServoMotorComponent(int PIN, unsigned long updatePeriod, float step) {
this->PIN = PIN;
this->myservo.attach(PIN);
this->desiredposition = Position::MIDDLE;
this->currentPosition = 0;
this->currentPosition = 32;

???

???
this->lastUpTime = millis();
this->updatePeriod = updatePeriod;
this->step = step;
this->myservo.write(this->PIN, this->currentPosition);

Nom des variables pas claire

Nom des variables pas claire
}
int ServoMotorComponent::getCurrentPosition() {
return this->myservo.read(this->PIN);
}
void ServoMotorComponent::setCurrentPosition() {
this->currentPosition = this->myservo.read(this->PIN);
}
/**
* Set the desired position
* @desiredPosition: Give desired position
*/
void ServoMotorComponent::setDesiredPosition(Position desiredPosition) {
switch (desiredPosition) {
case Position::LEFT:
@ -34,6 +41,9 @@ void ServoMotorComponent::setDesiredPosition(Position desiredPosition) {
}

Limite faire en sorte de pouvoir configurer le pas dans le constructeur (avec une valeur par défaut)
en double ou float

Limite faire en sorte de pouvoir configurer le pas dans le constructeur (avec une valeur par défaut) en double ou float
/**
* Write a new servoMotor position when it's necessary
*/
void ServoMotorComponent::refresh() {
Clement marked this conversation as resolved Outdated

typo ctrl C

typo ctrl C
if (this->desiredposition == this->currentPosition
|| millis() - this->lastUpTime <= this->updatePeriod) return;
@ -46,11 +56,4 @@ void ServoMotorComponent::refresh() {
}
this->lastUpTime = millis();
this->myservo.write(this->PIN, this->currentPosition);
}
void ServoMotorComponent::setPin(int PIN) {
this->PIN = PIN;
this->myservo.attach(PIN);
return;
}

View File

@ -12,21 +12,18 @@ enum Position {
class ServoMotorComponent
Mathis marked this conversation as resolved Outdated

il n'y a pas d'interface

il n'y a pas d'interface
{
public:
ServoMotorComponent(int PIN, unsigned long updatePeriod);
~ServoMotorComponent() = default;
int getCurrentPosition();
void setCurrentPosition();
ServoMotorComponent(int PIN, unsigned long updatePeriod, float step = 1);
void setDesiredPosition(Position desiredPosition);

tu peut viré le destructeur

tu peut viré le destructeur
void setPin(int PIN);
void refresh();

met des commentaire doxygen sur tes fonction

met des commentaire doxygen sur tes fonction
private:
int PIN;
int currentPosition;
int desiredposition;
float currentPosition;
float desiredposition;
Servo myservo;
unsigned long lastUpTime;
unsigned long updatePeriod;
float step;
};

View File

@ -2,17 +2,28 @@
#include "Arduino.h"
Review

vire tes changement dans Program.CPP avant de push

vire tes changement dans Program.CPP avant de push
#include "DolibarrClient.h"
int initialize_wifi(WifiConfig wifi) {
WiFiClass::mode(WIFI_STA); //Optional
WiFi.setSleep(false);
WiFi.begin(wifi.ssid, wifi.password);
Serial.print("Connecting ");
while(WiFiClass::status() != WL_CONNECTED){
delay(WAITING_WIFI_DELAY);
Serial.print(".");
}
Serial.println("Connected to the WiFi network");
return 0;
}
Program::Program() {
this->servo = new ServoMotorComponent(2);
Serial.begin(MONITOR_SPEED);
struct WifiConfig wifi_c = {WIFI_SSID, WIFI_PASSWORD};
struct DolibarrConfig dolibarr = {DOLIBARR_URL, DOLIBARR_API_TOKEN};
initialize_wifi(wifi_c);
this->client = new DolibarrClient(dolibarr);
}
void Program::loop() {
// this->servo->goLeft();
// delay(3000);
this->servo->goMiddle();
// delay(3000);
// this->servo->goRight();
// delay(3000);
}