From ba83f1917d001463f0f62cbc2805b5c540cbc908 Mon Sep 17 00:00:00 2001
From: Samuel <samuel.kay@poivron-robotique.fr>
Date: Sun, 20 Nov 2022 13:13:14 +0100
Subject: [PATCH] =?UTF-8?q?Suppression=20de=20la=20d=C3=A9pendance=20entre?=
 =?UTF-8?q?=20QEI=20et=20Moteurs?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Asser_Moteurs.c | 12 +++++++++++-
 QEI.c           | 10 +++++-----
 QEI.h           | 10 +++++++---
 test.c          |  1 +
 4 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/Asser_Moteurs.c b/Asser_Moteurs.c
index eccce28..ae8bcca 100644
--- a/Asser_Moteurs.c
+++ b/Asser_Moteurs.c
@@ -1,4 +1,5 @@
 #include "QEI.h"
+#include "Moteurs.h"
 
 /*** C'est ici que ce fait la conversion en mm 
  * ***/
@@ -26,7 +27,16 @@ void AsserMoteur_setConsigne_mm_s(enum t_moteur moteur, double _consigne_mm_s){
 }
 
 double AsserMoteur_getVitesse_mm_s(enum t_moteur moteur){
-    return (double) QEI_get(moteur) * (double)IMPULSION_PAR_MM;
+    enum QEI_name_t qei;
+    switch (moteur)
+    {
+    case MOTEUR_A: qei = QEI_A_NAME; break;
+    case MOTEUR_B: qei = QEI_B_NAME; break;
+    case MOTEUR_C: qei = QEI_C_NAME; break;
+    
+    default: break;
+    }
+    return (double) QEI_get(qei) / (double)IMPULSION_PAR_MM;
 }
 
 void AsserMoteur_Gestion(int step_ms){
diff --git a/QEI.c b/QEI.c
index 233da1d..30cf071 100644
--- a/QEI.c
+++ b/QEI.c
@@ -54,18 +54,18 @@ void QEI_update(){
 
 }
 
-int QEI_get(enum t_moteur moteur){
-    switch (moteur)
+int QEI_get(enum QEI_name_t qei){
+    switch (qei)
     {
-    case MOTEUR_A:
+    case QEI_A_NAME:
         return QEI_A.value;
         break;
 
-    case MOTEUR_B:
+    case QEI_B_NAME:
         return QEI_B.value;
         break;
     
-    case MOTEUR_C:
+    case QEI_C_NAME:
         return QEI_C.value;
         break;
     
diff --git a/QEI.h b/QEI.h
index 8814079..d800e55 100644
--- a/QEI.h
+++ b/QEI.h
@@ -1,12 +1,16 @@
-#include "Moteurs.h"
-
 struct QEI_t{
     int value;
     int delta;
 };
 
+enum QEI_name_t{
+    QEI_A_NAME=0,
+    QEI_B_NAME=1,
+    QEI_C_NAME=2
+};
+
 extern struct QEI_t QEI_A, QEI_B, QEI_C;
 
 void QEI_update(void);
 void QEI_init(void);
-int QEI_get(enum t_moteur moteur);
\ No newline at end of file
+int QEI_get(enum QEI_name_t qei);
\ No newline at end of file
diff --git a/test.c b/test.c
index 769c0fd..9a10f43 100644
--- a/test.c
+++ b/test.c
@@ -7,6 +7,7 @@
 #include "Temps.h"
 #include "spi_nb.h"
 #include "Servomoteur.h"
+#include "Moteurs.h"
 #include "QEI.h"
 
 const uint LED_PIN = 25;