Mercurial > public > ostc4
comparison Small_CPU/Src/scheduler.c @ 899:2225c467f1e9 Evo_2_23
Added data path and visualization for position data:
The GNSS data exchange is now initialized and triggered on a cyclic basis (once a second). RTE verion has been increased because of interface change. For now only the position data is shown in a T7 surface views. The functionality may be switched on/off using the compile switch ENABLE_GNSS.
author | Ideenmodellierer |
---|---|
date | Mon, 30 Sep 2024 21:56:05 +0200 |
parents | 5b675077ccfb |
children | 5736b2641cb0 |
comparison
equal
deleted
inserted
replaced
898:fac13aa6ba93 | 899:2225c467f1e9 |
---|---|
41 #include "stm32f4xx_hal_rtc_ex.h" | 41 #include "stm32f4xx_hal_rtc_ex.h" |
42 #include "decom.h" | 42 #include "decom.h" |
43 #include "tm_stm32f4_otp.h" | 43 #include "tm_stm32f4_otp.h" |
44 #include "externalInterface.h" | 44 #include "externalInterface.h" |
45 #include "uart.h" | 45 #include "uart.h" |
46 #include "GNSS.h" | |
47 #include "uartProtocol_GNSS.h" | |
46 #include "math.h" | 48 #include "math.h" |
49 #include "configuration.h" | |
47 | 50 |
48 /* uncomment to enable restoting of last known date in case of a power loss (RTC looses timing data) */ | 51 /* uncomment to enable restoting of last known date in case of a power loss (RTC looses timing data) */ |
49 /* #define RESTORE_LAST_KNOWN_DATE */ | 52 /* #define RESTORE_LAST_KNOWN_DATE */ |
50 | 53 |
51 #define INVALID_PREASURE_VALUE (0.0f) | 54 #define INVALID_PREASURE_VALUE (0.0f) |
99 void copyVpmCrushingData(void); | 102 void copyVpmCrushingData(void); |
100 void copyDeviceData(void); | 103 void copyDeviceData(void); |
101 void copyPICdata(void); | 104 void copyPICdata(void); |
102 void copyExtADCdata(); | 105 void copyExtADCdata(); |
103 void copyExtCO2data(); | 106 void copyExtCO2data(); |
107 void copyGNSSdata(void); | |
104 static void schedule_update_timer_helper(int8_t thisSeconds); | 108 static void schedule_update_timer_helper(int8_t thisSeconds); |
105 static void evaluateAscentSpeed(void); | 109 static void evaluateAscentSpeed(void); |
106 uint32_t time_elapsed_ms(uint32_t ticksstart,uint32_t ticksnow); | 110 uint32_t time_elapsed_ms(uint32_t ticksstart,uint32_t ticksnow); |
107 | 111 |
108 void scheduleSetDate(SDeviceLine *line); | 112 void scheduleSetDate(SDeviceLine *line); |
872 /* evaluate compass data at 70 ms, 170 ms, 270 ms,... duration <1ms */ | 876 /* evaluate compass data at 70 ms, 170 ms, 270 ms,... duration <1ms */ |
873 if(ticksdiff >= Scheduler.counterAmbientLight100msec * 100 + 70) | 877 if(ticksdiff >= Scheduler.counterAmbientLight100msec * 100 + 70) |
874 { | 878 { |
875 adc_ambient_light_sensor_get_data(); | 879 adc_ambient_light_sensor_get_data(); |
876 copyAmbientLightData(); | 880 copyAmbientLightData(); |
881 #ifdef ENABLE_GNSS | |
882 uartGnss_ProcessData(); | |
883 uartGnss_Control(); | |
884 #endif | |
885 copyGNSSdata(); | |
877 Scheduler.counterAmbientLight100msec++; | 886 Scheduler.counterAmbientLight100msec++; |
878 } | 887 } |
879 | 888 |
880 | 889 |
881 | 890 |
1732 global.dataSendToMaster.data[(boolCO2Buffer && DATA_BUFFER_CO2)].externalInterface_CmdAnswer = 0; | 1741 global.dataSendToMaster.data[(boolCO2Buffer && DATA_BUFFER_CO2)].externalInterface_CmdAnswer = 0; |
1733 } | 1742 } |
1734 global.dataSendToMaster.boolADCO2Data |= boolCO2Buffer; | 1743 global.dataSendToMaster.boolADCO2Data |= boolCO2Buffer; |
1735 } | 1744 } |
1736 | 1745 |
1746 void copyGNSSdata(void) | |
1747 { | |
1748 #ifdef ENABLE_GNSS | |
1749 global.dataSendToMaster.data[0].fLat = GNSS_Handle.fLat; | |
1750 global.dataSendToMaster.data[0].fLon = GNSS_Handle.fLon; | |
1751 #else | |
1752 static float tmpLon = 0.0; | |
1753 static float tmpLat= 100.0; | |
1754 global.dataSendToMaster.data[0].fLat = tmpLat; | |
1755 global.dataSendToMaster.data[0].fLon = tmpLon; | |
1756 tmpLon += 0.15; | |
1757 if(tmpLon > 360.0) tmpLon = 0.0; | |
1758 tmpLat += 0.33; | |
1759 if(tmpLat > 360.0) tmpLat = 0.0; | |
1760 #endif | |
1761 } | |
1762 | |
1763 | |
1737 typedef enum | 1764 typedef enum |
1738 { | 1765 { |
1739 SPI3_OK = 0x00, | 1766 SPI3_OK = 0x00, |
1740 SPI3_DEINIT = 0x01, | 1767 SPI3_DEINIT = 0x01, |
1741 } SPI3_StatusTypeDef; | 1768 } SPI3_StatusTypeDef; |