diff --git a/Logiciel/Firmware_testeur/.cproject b/Logiciel/Firmware_testeur/.cproject
index a16d0cf69c0aaf46480a884b9757fc9af3b93dda..838b3f6bf211f052cb41f2975711f56978d80d1e 100644
--- a/Logiciel/Firmware_testeur/.cproject
+++ b/Logiciel/Firmware_testeur/.cproject
@@ -38,16 +38,12 @@
 									<listOptionValue builtIn="false" value="DEBUG"/>
 								</option>
 								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.170695699" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
-									<listOptionValue builtIn="false" value="Drivers/STM32F0xx_HAL_Driver/Inc"/>
-									<listOptionValue builtIn="false" value="Drivers/CMSIS/Include"/>
-									<listOptionValue builtIn="false" value="Drivers/CMSIS/Device/ST/STM32F0xx/Include"/>
-									<listOptionValue builtIn="false" value="Drivers/STM32F0xx_HAL_Driver/Inc/Legacy"/>
-									<listOptionValue builtIn="false" value="Inc"/>
 									<listOptionValue builtIn="false" value="../Inc"/>
 									<listOptionValue builtIn="false" value="../Drivers/STM32F0xx_HAL_Driver/Inc"/>
 									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
 									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F0xx/Include"/>
 									<listOptionValue builtIn="false" value="../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy"/>
+									<listOptionValue builtIn="false" value="../Drivers"/>
 								</option>
 								<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.2008519693" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
 							</tool>
@@ -176,5 +172,13 @@
 		</scannerConfigBuildInfo>
 	</storageModule>
 	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-	<storageModule moduleId="refreshScope"/>
+	<storageModule moduleId="refreshScope" versionNumber="2">
+		<configuration configurationName="Debug">
+			<resource resourceType="PROJECT" workspacePath="/Firmware_testeur"/>
+		</configuration>
+		<configuration configurationName="Release">
+			<resource resourceType="PROJECT" workspacePath="/Firmware_testeur"/>
+		</configuration>
+	</storageModule>
+	<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
 </cproject>
diff --git a/Logiciel/Firmware_testeur/Drivers/alim2v.c b/Logiciel/Firmware_testeur/Drivers/alim2v.c
index c2c0c6ecd83a3323be30d40fc53236505da6db7f..b041b1a89df5dbd5c0d73a52ab5f00bee2db24e8 100644
--- a/Logiciel/Firmware_testeur/Drivers/alim2v.c
+++ b/Logiciel/Firmware_testeur/Drivers/alim2v.c
@@ -5,4 +5,4 @@
  *      Author: Yann Roberge (Lenclume)
  */
 
-
+#include "alim2v.h"
diff --git a/Logiciel/Firmware_testeur/Drivers/alim2v_port_stm32f071v8.c b/Logiciel/Firmware_testeur/Drivers/alim2v_port_stm32f071v8.c
index d01e250745a94d7c6dec2bc1ff96b1b7d687cd14..9325b2e3b8606adaff6fea4412fcaa912e3e421c 100644
--- a/Logiciel/Firmware_testeur/Drivers/alim2v_port_stm32f071v8.c
+++ b/Logiciel/Firmware_testeur/Drivers/alim2v_port_stm32f071v8.c
@@ -5,4 +5,4 @@
  *      Author: Yann Roberge (Lenclume)
  */
 
-
+#include "alim2v_port_stm32f071v8.h"
diff --git a/Logiciel/Firmware_testeur/Drivers/rj45.c b/Logiciel/Firmware_testeur/Drivers/rj45.c
index 30097b4f19e103908a9ad1c47e899f12c3a6bf1e..58160f7aa004e0e0ed0a115b7836440480cc346d 100644
--- a/Logiciel/Firmware_testeur/Drivers/rj45.c
+++ b/Logiciel/Firmware_testeur/Drivers/rj45.c
@@ -5,4 +5,101 @@
  *      Author: Yann Roberge (Lenclume)
  */
 
+#include "rj45.h"
+
+// Fonctions publiques
+void RJ45_Entree_init               (RJ45_Entree* connecteur,
+RJ45_Entree_lireBroche_ptr lireBroche1, RJ45_Entree_lireBroche_ptr lireBroche2,
+RJ45_Entree_lireBroche_ptr lireBroche3, RJ45_Entree_lireBroche_ptr lireBroche4,
+RJ45_Entree_lireBroche_ptr lireBroche5, RJ45_Entree_lireBroche_ptr lireBroche6,
+RJ45_Entree_lireBroche_ptr lireBroche7, RJ45_Entree_lireBroche_ptr lireBroche8) {
+        connecteur->base_        = connecteur;
+        connecteur->lireBroche1_ = lireBroche1;
+        connecteur->lireBroche2_ = lireBroche2;
+        connecteur->lireBroche3_ = lireBroche3;
+        connecteur->lireBroche4_ = lireBroche4;
+        connecteur->lireBroche5_ = lireBroche5;
+        connecteur->lireBroche6_ = lireBroche6;
+        connecteur->lireBroche7_ = lireBroche7;
+        connecteur->lireBroche8_ = lireBroche8;
+}
+
+RJ45_Etat RJ45_Entree_lireBroche1   (RJ45_Entree* connecteur) {
+        return connecteur->lireBroche1_(connecteur);
+}
+RJ45_Etat RJ45_Entree_lireBroche2   (RJ45_Entree* connecteur) {
+        return connecteur->lireBroche2_(connecteur);
+}
+RJ45_Etat RJ45_Entree_lireBroche3   (RJ45_Entree* connecteur) {
+        return connecteur->lireBroche3_(connecteur);
+}
+
+RJ45_Etat RJ45_Entree_lireBroche4   (RJ45_Entree* connecteur) {
+        return connecteur->lireBroche4_(connecteur);
+}
+
+RJ45_Etat RJ45_Entree_lireBroche5   (RJ45_Entree* connecteur) {
+        return connecteur->lireBroche5_(connecteur);
+}
+
+RJ45_Etat RJ45_Entree_lireBroche6   (RJ45_Entree* connecteur) {
+        return connecteur->lireBroche6_(connecteur);
+}
+
+RJ45_Etat RJ45_Entree_lireBroche7   (RJ45_Entree* connecteur) {
+        return connecteur->lireBroche7_(connecteur);
+}
+
+RJ45_Etat RJ45_Entree_lireBroche8   (RJ45_Entree* connecteur) {
+        return connecteur->lireBroche8_(connecteur);
+}
+
+
+void RJ45_Sortie_init               (RJ45_Sortie* connecteur,
+RJ45_Sortie_ecrireBroche_ptr ecrireBroche1, RJ45_Sortie_ecrireBroche_ptr ecrireBroche2,
+RJ45_Sortie_ecrireBroche_ptr ecrireBroche3, RJ45_Sortie_ecrireBroche_ptr ecrireBroche4,
+RJ45_Sortie_ecrireBroche_ptr ecrireBroche5, RJ45_Sortie_ecrireBroche_ptr ecrireBroche6,
+RJ45_Sortie_ecrireBroche_ptr ecrireBroche7, RJ45_Sortie_ecrireBroche_ptr ecrireBroche8) {
+        connecteur->base_          = connecteur;
+        connecteur->ecrireBroche1_ = ecrireBroche1;
+        connecteur->ecrireBroche2_ = ecrireBroche2;
+        connecteur->ecrireBroche3_ = ecrireBroche3;
+        connecteur->ecrireBroche4_ = ecrireBroche4;
+        connecteur->ecrireBroche5_ = ecrireBroche5;
+        connecteur->ecrireBroche6_ = ecrireBroche6;
+        connecteur->ecrireBroche7_ = ecrireBroche7;
+        connecteur->ecrireBroche8_ = ecrireBroche8;
+}
+
+void RJ45_Sortie_ecrireBroche1      (RJ45_Sortie* connecteur) {
+        connecteur->ecrireBroche1_(connecteur);
+}
+
+void RJ45_Sortie_ecrireBroche2      (RJ45_Sortie* connecteur) {
+        connecteur->ecrireBroche2_(connecteur);
+}
+
+void RJ45_Sortie_ecrireBroche3      (RJ45_Sortie* connecteur) {
+        connecteur->ecrireBroche3_(connecteur);
+}
+
+void RJ45_Sortie_ecrireBroche4      (RJ45_Sortie* connecteur) {
+        connecteur->ecrireBroche4_(connecteur);
+}
+
+void RJ45_Sortie_ecrireBroche5      (RJ45_Sortie* connecteur) {
+        connecteur->ecrireBroche5_(connecteur);
+}
+
+void RJ45_Sortie_ecrireBroche6      (RJ45_Sortie* connecteur) {
+        connecteur->ecrireBroche6_(connecteur);
+}
+
+void RJ45_Sortie_ecrireBroche7      (RJ45_Sortie* connecteur) {
+        connecteur->ecrireBroche7_(connecteur);
+}
+
+void RJ45_Sortie_ecrireBroche8      (RJ45_Sortie* connecteur) {
+        connecteur->ecrireBroche8_(connecteur);
+}
 
diff --git a/Logiciel/Firmware_testeur/Drivers/rj45.h b/Logiciel/Firmware_testeur/Drivers/rj45.h
index 190da0f013820049e84cf8721e2a39ee5e19696d..7d87a8e8f14bcb1393825f886787070013555fec 100644
--- a/Logiciel/Firmware_testeur/Drivers/rj45.h
+++ b/Logiciel/Firmware_testeur/Drivers/rj45.h
@@ -8,6 +8,71 @@
 #ifndef RJ45_H_
 #define RJ45_H_
 
+// États logiques
+typedef enum {
+        RJ45_BAS    = 0,
+        RJ45_HAUT   = 1,
+        RJ45_ERREUR
+} RJ45_Etat;
 
+// Pointeurs de fonctions abstraites
+typedef RJ45_Etat   (*RJ45_Entree_lireBroche_ptr)   (void*);
+typedef void        (*RJ45_Sortie_ecrireBroche_ptr) (void*);
+
+// Structures
+typedef struct {
+        void*                        base_;
+        RJ45_Entree_lireBroche_ptr   lireBroche1_;
+        RJ45_Entree_lireBroche_ptr   lireBroche2_;
+        RJ45_Entree_lireBroche_ptr   lireBroche3_;
+        RJ45_Entree_lireBroche_ptr   lireBroche4_;
+        RJ45_Entree_lireBroche_ptr   lireBroche5_;
+        RJ45_Entree_lireBroche_ptr   lireBroche6_;
+        RJ45_Entree_lireBroche_ptr   lireBroche7_;
+        RJ45_Entree_lireBroche_ptr   lireBroche8_;
+} RJ45_Entree;
+
+typedef struct {
+        void*                        base_;
+        RJ45_Sortie_ecrireBroche_ptr ecrireBroche1_;
+        RJ45_Sortie_ecrireBroche_ptr ecrireBroche2_;
+        RJ45_Sortie_ecrireBroche_ptr ecrireBroche3_;
+        RJ45_Sortie_ecrireBroche_ptr ecrireBroche4_;
+        RJ45_Sortie_ecrireBroche_ptr ecrireBroche5_;
+        RJ45_Sortie_ecrireBroche_ptr ecrireBroche6_;
+        RJ45_Sortie_ecrireBroche_ptr ecrireBroche7_;
+        RJ45_Sortie_ecrireBroche_ptr ecrireBroche8_;
+} RJ45_Sortie;
+
+// Fonctions publiques
+void RJ45_Entree_init               (RJ45_Entree* connecteur,
+                RJ45_Entree_lireBroche_ptr lireBroche1, RJ45_Entree_lireBroche_ptr lireBroche2,
+                RJ45_Entree_lireBroche_ptr lireBroche3, RJ45_Entree_lireBroche_ptr lireBroche4,
+                RJ45_Entree_lireBroche_ptr lireBroche5, RJ45_Entree_lireBroche_ptr lireBroche6,
+                RJ45_Entree_lireBroche_ptr lireBroche7, RJ45_Entree_lireBroche_ptr lireBroche8);
+
+RJ45_Etat RJ45_Entree_lireBroche1   (RJ45_Entree* connecteur);
+RJ45_Etat RJ45_Entree_lireBroche2   (RJ45_Entree* connecteur);
+RJ45_Etat RJ45_Entree_lireBroche3   (RJ45_Entree* connecteur);
+RJ45_Etat RJ45_Entree_lireBroche4   (RJ45_Entree* connecteur);
+RJ45_Etat RJ45_Entree_lireBroche5   (RJ45_Entree* connecteur);
+RJ45_Etat RJ45_Entree_lireBroche6   (RJ45_Entree* connecteur);
+RJ45_Etat RJ45_Entree_lireBroche7   (RJ45_Entree* connecteur);
+RJ45_Etat RJ45_Entree_lireBroche8   (RJ45_Entree* connecteur);
+
+void RJ45_Sortie_init               (RJ45_Sortie* connecteur,
+                RJ45_Sortie_ecrireBroche_ptr ecrireBroche1, RJ45_Sortie_ecrireBroche_ptr ecrireBroche2,
+                RJ45_Sortie_ecrireBroche_ptr ecrireBroche3, RJ45_Sortie_ecrireBroche_ptr ecrireBroche4,
+                RJ45_Sortie_ecrireBroche_ptr ecrireBroche5, RJ45_Sortie_ecrireBroche_ptr ecrireBroche6,
+                RJ45_Sortie_ecrireBroche_ptr ecrireBroche7, RJ45_Sortie_ecrireBroche_ptr ecrireBroche8);
+
+void RJ45_Sortie_ecrireBroche1      (RJ45_Sortie* connecteur);
+void RJ45_Sortie_ecrireBroche2      (RJ45_Sortie* connecteur);
+void RJ45_Sortie_ecrireBroche3      (RJ45_Sortie* connecteur);
+void RJ45_Sortie_ecrireBroche4      (RJ45_Sortie* connecteur);
+void RJ45_Sortie_ecrireBroche5      (RJ45_Sortie* connecteur);
+void RJ45_Sortie_ecrireBroche6      (RJ45_Sortie* connecteur);
+void RJ45_Sortie_ecrireBroche7      (RJ45_Sortie* connecteur);
+void RJ45_Sortie_ecrireBroche8      (RJ45_Sortie* connecteur);
 
 #endif /* RJ45_H_ */
diff --git a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c
index 58dd8a961c6a3e69aeaf8d3f60186465fc823242..950931b37df7fca84bbf63178d9ca8a373a3c132 100644
--- a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c
+++ b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c
@@ -5,4 +5,59 @@
  *      Author: Yann Roberge (Lenclume)
  */
 
+#include "rj45_port_stm32f071v8.h"
 
+// Fonctions publiques
+void RJ45_Entree_Port_init                  (RJ45_Entree_Port* connecteur) {
+        RJ45_Entree base[1];
+        RJ45_Entree_init(base, (void*) RJ45_Entree_Port_lireBroche1,
+                        (void*) RJ45_Entree_Port_lireBroche2,
+                        (void*) RJ45_Entree_Port_lireBroche3,
+                        (void*) RJ45_Entree_Port_lireBroche4,
+                        (void*) RJ45_Entree_Port_lireBroche5,
+                        (void*) RJ45_Entree_Port_lireBroche6,
+                        (void*) RJ45_Entree_Port_lireBroche7,
+                        (void*) RJ45_Entree_Port_lireBroche8);
+        connecteur->base_ = base;
+}
+
+RJ45_Etat RJ45_Entree_Port_lireBroche1      (RJ45_Entree_Port* connecteur) {
+        switch ( HAL_GPIO_ReadPin(ETHA_1_GPIO_Port, ETHA_1_Pin) ) {
+        case GPIO_PIN_SET:
+                return RJ45_HAUT;
+        case GPIO_PIN_RESET:
+                return RJ45_BAS;
+        default:
+                return RJ45_ERREUR;
+        }
+}
+
+RJ45_Etat RJ45_Entree_Port_lireBroche2      (RJ45_Entree_Port* connecteur);
+RJ45_Etat RJ45_Entree_Port_lireBroche3      (RJ45_Entree_Port* connecteur);
+RJ45_Etat RJ45_Entree_Port_lireBroche4      (RJ45_Entree_Port* connecteur);
+RJ45_Etat RJ45_Entree_Port_lireBroche5      (RJ45_Entree_Port* connecteur);
+RJ45_Etat RJ45_Entree_Port_lireBroche6      (RJ45_Entree_Port* connecteur);
+RJ45_Etat RJ45_Entree_Port_lireBroche7      (RJ45_Entree_Port* connecteur);
+RJ45_Etat RJ45_Entree_Port_lireBroche8      (RJ45_Entree_Port* connecteur);
+
+void RJ45_Sortie_Port_init                  (RJ45_Sortie_Port* connecteur) {
+        RJ45_Sortie base[1];
+        RJ45_Sortie_init(base, (void*) RJ45_Sortie_Port_ecrireBroche1,
+                        (void*) RJ45_Sortie_Port_ecrireBroche2,
+                        (void*) RJ45_Sortie_Port_ecrireBroche3,
+                        (void*) RJ45_Sortie_Port_ecrireBroche4,
+                        (void*) RJ45_Sortie_Port_ecrireBroche5,
+                        (void*) RJ45_Sortie_Port_ecrireBroche6,
+                        (void*) RJ45_Sortie_Port_ecrireBroche7,
+                        (void*) RJ45_Sortie_Port_ecrireBroche8);
+        connecteur->base_ = base;
+}
+
+void RJ45_Sortie_Port_ecrireBroche1         (RJ45_Sortie_Port* connecteur);
+void RJ45_Sortie_Port_ecrireBroche2         (RJ45_Sortie_Port* connecteur);
+void RJ45_Sortie_Port_ecrireBroche3         (RJ45_Sortie_Port* connecteur);
+void RJ45_Sortie_Port_ecrireBroche4         (RJ45_Sortie_Port* connecteur);
+void RJ45_Sortie_Port_ecrireBroche5         (RJ45_Sortie_Port* connecteur);
+void RJ45_Sortie_Port_ecrireBroche6         (RJ45_Sortie_Port* connecteur);
+void RJ45_Sortie_Port_ecrireBroche7         (RJ45_Sortie_Port* connecteur);
+void RJ45_Sortie_Port_ecrireBroche8         (RJ45_Sortie_Port* connecteur);
diff --git a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h
index 2455a9c9b6a1cbe868ef72f613202ec45142d453..78436d37554f8f55463c99ad481841e922bf5496 100644
--- a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h
+++ b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h
@@ -8,6 +8,39 @@
 #ifndef RJ45_PORT_STM32F071V8_H_
 #define RJ45_PORT_STM32F071V8_H_
 
+#include "rj45.h"
+#include "main.h"
 
+// Structures
+typedef struct {
+        RJ45_Entree* base_;
+} RJ45_Entree_Port;
+
+typedef struct {
+        RJ45_Sortie* base_;
+} RJ45_Sortie_Port;
+
+// Fonctions publiques
+void RJ45_Entree_Port_init                  (RJ45_Entree_Port* connecteur);
+
+RJ45_Etat RJ45_Entree_Port_lireBroche1      (RJ45_Entree_Port* connecteur);
+RJ45_Etat RJ45_Entree_Port_lireBroche2      (RJ45_Entree_Port* connecteur);
+RJ45_Etat RJ45_Entree_Port_lireBroche3      (RJ45_Entree_Port* connecteur);
+RJ45_Etat RJ45_Entree_Port_lireBroche4      (RJ45_Entree_Port* connecteur);
+RJ45_Etat RJ45_Entree_Port_lireBroche5      (RJ45_Entree_Port* connecteur);
+RJ45_Etat RJ45_Entree_Port_lireBroche6      (RJ45_Entree_Port* connecteur);
+RJ45_Etat RJ45_Entree_Port_lireBroche7      (RJ45_Entree_Port* connecteur);
+RJ45_Etat RJ45_Entree_Port_lireBroche8      (RJ45_Entree_Port* connecteur);
+
+void RJ45_Sortie_Port_init                  (RJ45_Sortie_Port* connecteur);
+
+void RJ45_Sortie_Port_ecrireBroche1         (RJ45_Sortie_Port* connecteur);
+void RJ45_Sortie_Port_ecrireBroche2         (RJ45_Sortie_Port* connecteur);
+void RJ45_Sortie_Port_ecrireBroche3         (RJ45_Sortie_Port* connecteur);
+void RJ45_Sortie_Port_ecrireBroche4         (RJ45_Sortie_Port* connecteur);
+void RJ45_Sortie_Port_ecrireBroche5         (RJ45_Sortie_Port* connecteur);
+void RJ45_Sortie_Port_ecrireBroche6         (RJ45_Sortie_Port* connecteur);
+void RJ45_Sortie_Port_ecrireBroche7         (RJ45_Sortie_Port* connecteur);
+void RJ45_Sortie_Port_ecrireBroche8         (RJ45_Sortie_Port* connecteur);
 
 #endif /* RJ45_PORT_STM32F071V8_H_ */
diff --git a/Logiciel/Firmware_testeur/Drivers/sept_segments.c b/Logiciel/Firmware_testeur/Drivers/sept_segments.c
index c5119db962bc34ad86c446028c44b008effc9266..bb30b2ed7a0ab048c12784eb23a2f59678ce55b1 100644
--- a/Logiciel/Firmware_testeur/Drivers/sept_segments.c
+++ b/Logiciel/Firmware_testeur/Drivers/sept_segments.c
@@ -5,4 +5,4 @@
  *      Author: Yann Roberge (Lenclume)
  */
 
-
+#include "sept_segments.h"
diff --git a/Logiciel/Firmware_testeur/Drivers/sept_segments_port_stm32f071v8.c b/Logiciel/Firmware_testeur/Drivers/sept_segments_port_stm32f071v8.c
index 574df7df69ae051a72079ddb6da8d5004bf1aad3..be84f7a0d6da12046b8eb57bee9e3e40f24bb10a 100644
--- a/Logiciel/Firmware_testeur/Drivers/sept_segments_port_stm32f071v8.c
+++ b/Logiciel/Firmware_testeur/Drivers/sept_segments_port_stm32f071v8.c
@@ -5,4 +5,4 @@
  *      Author: Yann Roberge (Lenclume)
  */
 
-
+#include "sept_segments_port_stm32f071v8.h"
diff --git a/Logiciel/Firmware_testeur/Drivers/testeur.c b/Logiciel/Firmware_testeur/Drivers/testeur.c
index 6a967c43a9ea6efed6ad0f3627dcda732f84d00b..de0995d87c836c56a98396e414e46ec456d84370 100644
--- a/Logiciel/Firmware_testeur/Drivers/testeur.c
+++ b/Logiciel/Firmware_testeur/Drivers/testeur.c
@@ -5,4 +5,4 @@
  *      Author: Yann Roberge (Lenclume)
  */
 
-
+#include "testeur.h"
diff --git a/Logiciel/Firmware_testeur/Drivers/testeur.h b/Logiciel/Firmware_testeur/Drivers/testeur.h
index fce4d0422b6cf777aafffc22a0dab84b394e2099..38f0799a415bb7765bea40a582da80903d42262f 100644
--- a/Logiciel/Firmware_testeur/Drivers/testeur.h
+++ b/Logiciel/Firmware_testeur/Drivers/testeur.h
@@ -8,6 +8,24 @@
 #ifndef TESTEUR_H_
 #define TESTEUR_H_
 
+#include "rj45_port_stm32f071v8.h"
+#include "sept_segments_port_stm32f071v8.h"
+#include "alim2v_port_stm32f071v8.h"
 
+// Structure
+typedef struct {
+        RJ45_Sortie ethernetA_;
+        RJ45_Entree ethernetB_;
+
+//        TODO: Implémenter les classes SeptSegments et Alim2V
+//        SeptSegments ecrans_[8];
+//        Alim2V alimentation2V_;
+} Testeur;
+
+// Fonctions publiques
+void Testeur_init           (Testeur* testeur, RJ45_Sortie* ethernetA,
+                RJ45_Entree* ethernetB/*, SeptSegments ecrans_,
+                Alim2V alimentation2V*/);
+void Testeur_testerCable    (Testeur* testeur);
 
 #endif /* TESTEUR_H_ */
diff --git a/Logiciel/Firmware_testeur/Inc/main.h b/Logiciel/Firmware_testeur/Inc/main.h
index c3536664da3b96f8ad41e72719a1123c3a53d74c..69a457c8f6bb3e69dc9626806e957b1351a3135b 100644
--- a/Logiciel/Firmware_testeur/Inc/main.h
+++ b/Logiciel/Firmware_testeur/Inc/main.h
@@ -32,7 +32,7 @@ extern "C" {
 
 /* Private includes ----------------------------------------------------------*/
 /* USER CODE BEGIN Includes */
-
+#include "testeur.h"
 /* USER CODE END Includes */
 
 /* Exported types ------------------------------------------------------------*/