123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #include "Display.h"
- #include "Voltage.h"
- #include "RFEmitter.h"
- #include "Sail.h"
- #include "stdio.h"
- #include "string.h"
-
- // Composants utilisés par l'emetteur
- USART_TypeDef * EMITTER_USART = USART1;
- GPIO_TypeDef * EMITTER_GPIO = GPIOA;
- const int EMITTER_PIN = LL_GPIO_PIN_11;
-
- // Composants utilisés par la batterie
- ADC_TypeDef * VOLTAGE_ADC = ADC2;
- const int VOLTAGE_CHANNEL = 12;
- GPIO_TypeDef * VOLTAGE_GPIO = GPIOC;
- const int VOLTAGE_PIN = LL_GPIO_PIN_2;
-
- void Display_conf()
- {
- Voltage_conf(VOLTAGE_ADC, VOLTAGE_GPIO, VOLTAGE_PIN);
- RFEmitter_conf(EMITTER_USART, EMITTER_GPIO, EMITTER_PIN);
- }
-
- void Display_start()
- {
- Voltage_start(VOLTAGE_ADC);
- RFEmitter_start(EMITTER_USART);
- }
-
- void Display_background(int secCounter)
- {
- static int previousEmergencyState = 0;
- static int prevSendSec = 0;
-
- const int emergency = Sail_getEmergencyState();
-
- if (secCounter - prevSendSec == 1 || (emergency && !previousEmergencyState)) {
- previousEmergencyState = emergency;
- prevSendSec = secCounter;
-
- const float voltage = Voltage_getVoltage(VOLTAGE_ADC, VOLTAGE_CHANNEL);
- const int sailAngle = Sail_getSailAngle();
- const int sailPercent = sailAngle * 100 / 90.0;
- // const int relativeAngle = sailAngle >= 180 ? 360 - sailAngle : sailAngle;
- // const int sailPercent = (90 - relativeAngle) * 100 / 90;
-
-
-
- char displayStr[100] = "";
- char emergStr[30] = "";
-
- if (emergency) {
- sprintf(emergStr, "Limite de roulis atteinte !\n\r");
- RFEmitter_send(EMITTER_USART, emergStr, strlen(emergStr), EMITTER_GPIO, EMITTER_PIN);
- }
-
- sprintf(displayStr, "Angle de la voile : %ddeg\n\rBordage actuel = %d%% \n\rTension de la batterie = %fV \n\r\n\r", sailAngle, sailPercent, voltage);
- RFEmitter_send(EMITTER_USART, displayStr, strlen(displayStr), EMITTER_GPIO, EMITTER_PIN);
- }
-
- previousEmergencyState = emergency;
- }
|