diff --git a/Logiciel/Firmware_testeur/Drivers/rj45.c b/Logiciel/Firmware_testeur/Drivers/rj45.c index 58160f7aa004e0e0ed0a115b7836440480cc346d..0a34234e09e03c6dd1b7eb6c89c53431b3e64af9 100644 --- a/Logiciel/Firmware_testeur/Drivers/rj45.c +++ b/Logiciel/Firmware_testeur/Drivers/rj45.c @@ -71,35 +71,35 @@ RJ45_Sortie_ecrireBroche_ptr ecrireBroche7, RJ45_Sortie_ecrireBroche_ptr ecrireB connecteur->ecrireBroche8_ = ecrireBroche8; } -void RJ45_Sortie_ecrireBroche1 (RJ45_Sortie* connecteur) { - connecteur->ecrireBroche1_(connecteur); +void RJ45_Sortie_ecrireBroche1 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) { + connecteur->ecrireBroche1_(connecteur, niveauLogique); } -void RJ45_Sortie_ecrireBroche2 (RJ45_Sortie* connecteur) { - connecteur->ecrireBroche2_(connecteur); +void RJ45_Sortie_ecrireBroche2 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) { + connecteur->ecrireBroche2_(connecteur, niveauLogique); } -void RJ45_Sortie_ecrireBroche3 (RJ45_Sortie* connecteur) { - connecteur->ecrireBroche3_(connecteur); +void RJ45_Sortie_ecrireBroche3 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) { + connecteur->ecrireBroche3_(connecteur, niveauLogique); } -void RJ45_Sortie_ecrireBroche4 (RJ45_Sortie* connecteur) { - connecteur->ecrireBroche4_(connecteur); +void RJ45_Sortie_ecrireBroche4 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) { + connecteur->ecrireBroche4_(connecteur, niveauLogique); } -void RJ45_Sortie_ecrireBroche5 (RJ45_Sortie* connecteur) { - connecteur->ecrireBroche5_(connecteur); +void RJ45_Sortie_ecrireBroche5 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) { + connecteur->ecrireBroche5_(connecteur, niveauLogique); } -void RJ45_Sortie_ecrireBroche6 (RJ45_Sortie* connecteur) { - connecteur->ecrireBroche6_(connecteur); +void RJ45_Sortie_ecrireBroche6 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) { + connecteur->ecrireBroche6_(connecteur, niveauLogique); } -void RJ45_Sortie_ecrireBroche7 (RJ45_Sortie* connecteur) { - connecteur->ecrireBroche7_(connecteur); +void RJ45_Sortie_ecrireBroche7 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) { + connecteur->ecrireBroche7_(connecteur, niveauLogique); } -void RJ45_Sortie_ecrireBroche8 (RJ45_Sortie* connecteur) { - connecteur->ecrireBroche8_(connecteur); +void RJ45_Sortie_ecrireBroche8 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) { + connecteur->ecrireBroche8_(connecteur, niveauLogique); } diff --git a/Logiciel/Firmware_testeur/Drivers/rj45.h b/Logiciel/Firmware_testeur/Drivers/rj45.h index 7d87a8e8f14bcb1393825f886787070013555fec..89340d9cf558c6536dd4b0decf23d86759a540a2 100644 --- a/Logiciel/Firmware_testeur/Drivers/rj45.h +++ b/Logiciel/Firmware_testeur/Drivers/rj45.h @@ -17,7 +17,7 @@ typedef enum { // Pointeurs de fonctions abstraites typedef RJ45_Etat (*RJ45_Entree_lireBroche_ptr) (void*); -typedef void (*RJ45_Sortie_ecrireBroche_ptr) (void*); +typedef void (*RJ45_Sortie_ecrireBroche_ptr) (void*, RJ45_Etat niveauLogique); // Structures typedef struct { @@ -66,13 +66,13 @@ void RJ45_Sortie_init (RJ45_Sortie* connecteur, 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); +void RJ45_Sortie_ecrireBroche1 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique); +void RJ45_Sortie_ecrireBroche2 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique); +void RJ45_Sortie_ecrireBroche3 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique); +void RJ45_Sortie_ecrireBroche4 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique); +void RJ45_Sortie_ecrireBroche5 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique); +void RJ45_Sortie_ecrireBroche6 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique); +void RJ45_Sortie_ecrireBroche7 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique); +void RJ45_Sortie_ecrireBroche8 (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique); #endif /* RJ45_H_ */ diff --git a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c index 950931b37df7fca84bbf63178d9ca8a373a3c132..48e9e31d6cfdf55c22638fd8c14e598ea9179582 100644 --- a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c +++ b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c @@ -6,6 +6,31 @@ */ #include "rj45_port_stm32f071v8.h" +#include "main.h" + +// Fonctions privées +RJ45_Etat convertirGPIO_PinState (GPIO_PinState etatBroche) { + switch (etatBroche) { + case GPIO_PIN_SET: + return RJ45_HAUT; + case GPIO_PIN_RESET: + return RJ45_BAS; + default: + return RJ45_ERREUR; + } +} + +GPIO_PinState convertirRJ45_Etat (RJ45_Etat niveauLogique) { + switch (niveauLogique) { + case RJ45_HAUT: + return GPIO_PIN_SET; + case RJ45_BAS: + return GPIO_PIN_RESET; + default: + return GPIO_PIN_RESET; + } +} + // Fonctions publiques void RJ45_Entree_Port_init (RJ45_Entree_Port* connecteur) { @@ -18,27 +43,36 @@ void RJ45_Entree_Port_init (RJ45_Entree_Port* connecteur) { (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; - } + return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_1_GPIO_Port, ETHB_1_Pin) ); } -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); +RJ45_Etat RJ45_Entree_Port_lireBroche2 (RJ45_Entree_Port* connecteur) { + return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_2_GPIO_Port, ETHB_2_Pin) ); +} +RJ45_Etat RJ45_Entree_Port_lireBroche3 (RJ45_Entree_Port* connecteur) { + return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_3_GPIO_Port, ETHB_3_Pin) ); +} + +RJ45_Etat RJ45_Entree_Port_lireBroche4 (RJ45_Entree_Port* connecteur) { + return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_4_GPIO_Port, ETHB_4_Pin) ); +} +RJ45_Etat RJ45_Entree_Port_lireBroche5 (RJ45_Entree_Port* connecteur) { + return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_5_GPIO_Port, ETHB_5_Pin) ); +} + +RJ45_Etat RJ45_Entree_Port_lireBroche6 (RJ45_Entree_Port* connecteur) { + return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_6_GPIO_Port, ETHB_6_Pin) ); +} +RJ45_Etat RJ45_Entree_Port_lireBroche7 (RJ45_Entree_Port* connecteur) { + return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_7_GPIO_Port, ETHB_7_Pin) ); +} + +RJ45_Etat RJ45_Entree_Port_lireBroche8 (RJ45_Entree_Port* connecteur) { + return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_8_GPIO_Port, ETHB_8_Pin) ); +} void RJ45_Sortie_Port_init (RJ45_Sortie_Port* connecteur) { RJ45_Sortie base[1]; @@ -50,14 +84,36 @@ void RJ45_Sortie_Port_init (RJ45_Sortie_Port* connecteur) { (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); +void RJ45_Sortie_Port_ecrireBroche1 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) { + HAL_GPIO_WritePin(ETHA_1_GPIO_Port, ETHA_1_Pin, convertirRJ45_Etat(niveauLogique)); +} + +void RJ45_Sortie_Port_ecrireBroche2 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) { + HAL_GPIO_WritePin(ETHA_2_GPIO_Port, ETHA_2_Pin, convertirRJ45_Etat(niveauLogique)); +} + +void RJ45_Sortie_Port_ecrireBroche3 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) { + HAL_GPIO_WritePin(ETHA_3_GPIO_Port, ETHA_3_Pin, convertirRJ45_Etat(niveauLogique)); +} + +void RJ45_Sortie_Port_ecrireBroche4 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) { + HAL_GPIO_WritePin(ETHA_4_GPIO_Port, ETHA_4_Pin, convertirRJ45_Etat(niveauLogique)); +} + +void RJ45_Sortie_Port_ecrireBroche5 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) { + HAL_GPIO_WritePin(ETHA_5_GPIO_Port, ETHA_5_Pin, convertirRJ45_Etat(niveauLogique)); +} + +void RJ45_Sortie_Port_ecrireBroche6 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) { + HAL_GPIO_WritePin(ETHA_6_GPIO_Port, ETHA_6_Pin, convertirRJ45_Etat(niveauLogique)); +} + +void RJ45_Sortie_Port_ecrireBroche7 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) { + HAL_GPIO_WritePin(ETHA_7_GPIO_Port, ETHA_7_Pin, convertirRJ45_Etat(niveauLogique)); +} + +void RJ45_Sortie_Port_ecrireBroche8 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) { + HAL_GPIO_WritePin(ETHA_8_GPIO_Port, ETHA_8_Pin, convertirRJ45_Etat(niveauLogique)); +} diff --git a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h index 78436d37554f8f55463c99ad481841e922bf5496..3be9a2202dad0de51d3f45711e75a3ec97117ccf 100644 --- a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h +++ b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h @@ -9,7 +9,6 @@ #define RJ45_PORT_STM32F071V8_H_ #include "rj45.h" -#include "main.h" // Structures typedef struct { @@ -34,13 +33,13 @@ 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); +void RJ45_Sortie_Port_ecrireBroche1 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique); +void RJ45_Sortie_Port_ecrireBroche2 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique); +void RJ45_Sortie_Port_ecrireBroche3 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique); +void RJ45_Sortie_Port_ecrireBroche4 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique); +void RJ45_Sortie_Port_ecrireBroche5 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique); +void RJ45_Sortie_Port_ecrireBroche6 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique); +void RJ45_Sortie_Port_ecrireBroche7 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique); +void RJ45_Sortie_Port_ecrireBroche8 (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique); #endif /* RJ45_PORT_STM32F071V8_H_ */ diff --git a/Logiciel/Firmware_testeur/Drivers/testeur.c b/Logiciel/Firmware_testeur/Drivers/testeur.c index de0995d87c836c56a98396e414e46ec456d84370..268c432c266370b8a023c3d5231ff6d72180da23 100644 --- a/Logiciel/Firmware_testeur/Drivers/testeur.c +++ b/Logiciel/Firmware_testeur/Drivers/testeur.c @@ -6,3 +6,18 @@ */ #include "testeur.h" + +// Fonctions publiques +void Testeur_init (Testeur* testeur) { + RJ45_Sortie_Port connecteurA; + RJ45_Entree_Port connecteurB; + RJ45_Sortie_Port_init(&connecteurA); + RJ45_Entree_Port_init(&connecteurB); + + testeur->ethernetA_ = &connecteurA; + testeur->ethernetB_ = &connecteurB; +} + +void Testeur_testerCable (Testeur* testeur) { + ; +} diff --git a/Logiciel/Firmware_testeur/Drivers/testeur.h b/Logiciel/Firmware_testeur/Drivers/testeur.h index 38f0799a415bb7765bea40a582da80903d42262f..6d8f88a6af98fa04f223877d5e98defa2cd31a0f 100644 --- a/Logiciel/Firmware_testeur/Drivers/testeur.h +++ b/Logiciel/Firmware_testeur/Drivers/testeur.h @@ -14,8 +14,8 @@ // Structure typedef struct { - RJ45_Sortie ethernetA_; - RJ45_Entree ethernetB_; + RJ45_Sortie_Port* ethernetA_; + RJ45_Entree_Port* ethernetB_; // TODO: Implémenter les classes SeptSegments et Alim2V // SeptSegments ecrans_[8]; @@ -23,9 +23,7 @@ typedef struct { } Testeur; // Fonctions publiques -void Testeur_init (Testeur* testeur, RJ45_Sortie* ethernetA, - RJ45_Entree* ethernetB/*, SeptSegments ecrans_, - Alim2V alimentation2V*/); +void Testeur_init (Testeur* testeur); void Testeur_testerCable (Testeur* testeur); #endif /* TESTEUR_H_ */ diff --git a/Logiciel/Firmware_testeur/Src/main.c b/Logiciel/Firmware_testeur/Src/main.c index 05542489c1ee71a7442ce758a3bb88750815ed7e..676f8c6bfd46c67537f7dc53ddb57d55c1e9f858 100644 --- a/Logiciel/Firmware_testeur/Src/main.c +++ b/Logiciel/Firmware_testeur/Src/main.c @@ -88,7 +88,8 @@ int main(void) /* Initialize all configured peripherals */ MX_GPIO_Init(); /* USER CODE BEGIN 2 */ - + Testeur testeur; + Testeur_init(&testeur); /* USER CODE END 2 */ /* Infinite loop */