Mercurial > public > ostc4
annotate Small_CPU/Inc/externalInterface.h @ 1078:082825daccb5 Icon_Integration tip
Added control views for HUD:
The HUD implementation may now be activated by the compile switch ENABLE_HUD_SUPPORT. The HUD will become visible onces detected in the CvOpt overview menu. The first implementation is for testing only => The LEDs may be operated by a number field. Positiv values activate the red, negativ the green LEDs. Depending on the value blink sequences will be scheduled.
At the moment no dive specific data is mapped to the LED operation (like e.g. warnings).
| author | Ideenmodellierer |
|---|---|
| date | Mon, 02 Mar 2026 17:30:38 +0100 |
| parents | bd8ab302ef4a |
| children |
| rev | line source |
|---|---|
|
554
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
1 /** |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
2 ****************************************************************************** |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
3 * @file externalInterface.h |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
4 * @author heinrichs weikamp gmbh |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
5 * @version V0.0.1 |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
6 * @date 07-Nov-2020 |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
7 * @brief Interface functionality to proceed external analog signal via i2c connection |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
8 * |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
9 @verbatim |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
10 ============================================================================== |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
11 ##### How to use ##### |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
12 ============================================================================== |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
13 @endverbatim |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
14 ****************************************************************************** |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
15 * @attention |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
16 * |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
17 * <h2><center>© COPYRIGHT(c) 2014 heinrichs weikamp</center></h2> |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
18 * |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
19 ****************************************************************************** |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
20 */ |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
21 |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
22 /* Define to prevent recursive inclusion -------------------------------------*/ |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
23 #ifndef EXTERNAL_INTERFACE_H |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
24 #define EXTERNAL_INTERFACE_H |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
25 |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
26 #ifdef __cplusplus |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
27 extern "C" { |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
28 #endif |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
29 |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
30 /* Includes ------------------------------------------------------------------*/ |
| 742 | 31 #include "configuration.h" |
| 794 | 32 #include "data_central.h" |
| 33 #include "data_exchange.h" | |
|
554
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
34 |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
35 #define MAX_ADC_CHANNEL (3u) /* number of channels to be read */ |
| 781 | 36 #define MAX_MUX_CHANNEL (4u) /* number of channels provided by the UART multiplexer */ |
|
554
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
37 #define EXTERNAL_ADC_NO_DATA 0xFF |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
38 |
| 662 | 39 #define EXT33V_CONTROL_PIN GPIO_PIN_7 /* PortC */ |
| 40 | |
|
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
41 #define MIN_ADC_VOLTAGE_MV (5.0f) /* miminal voltage to rate an ADC channel as active */ |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
42 |
| 794 | 43 #define COMMON_SENSOR_STATE_INIT (0x0u) /* All individual state definitions shall start with a INIT state = 0 */ |
|
798
e9eba334b942
Migrated CO2 protocol implementation to new format:
Ideenmodellierer
parents:
794
diff
changeset
|
44 #define COMMON_SENSOR_STATE_INVALID (0xFFu) /* All individual state definitions shall not use 0xFF for operation control */ |
|
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
45 |
| 839 | 46 |
| 47 enum /* Definitions for supported UART protocols */ | |
| 48 { | |
| 49 EXT_INTERFACE_UART_OFF = 0, | |
| 50 EXT_INTERFACE_UART_CO2, | |
| 51 EXT_INTERFACE_UART_SENTINEL, | |
|
918
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
52 EXT_INTERFACE_UART_O2, |
|
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
53 EXT_INTERFACE_UART_GNSS |
| 839 | 54 }; |
| 55 | |
| 56 | |
|
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
57 typedef enum |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
58 { |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
59 DETECTION_OFF = 0, /* no detection requested */ |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
60 DETECTION_INIT, /* prepare external interface for operation if not already activated */ |
| 731 | 61 DETECTION_START, |
| 62 DETECTION_ANALOG1, /* check ADC channels for connected sensors */ | |
| 63 DETECTION_ANALOG2, | |
|
779
0b5f45448eb6
Added UART multiplexer support for DiveO2:
Ideenmodellierer
parents:
742
diff
changeset
|
64 DETECTION_UARTMUX, /* check if a uart multiplexer is present */ |
|
0b5f45448eb6
Added UART multiplexer support for DiveO2:
Ideenmodellierer
parents:
742
diff
changeset
|
65 DETECTION_DIGO2_0, /* check UART channel for connected DigO2 sensor */ |
|
0b5f45448eb6
Added UART multiplexer support for DiveO2:
Ideenmodellierer
parents:
742
diff
changeset
|
66 DETECTION_DIGO2_1, |
|
0b5f45448eb6
Added UART multiplexer support for DiveO2:
Ideenmodellierer
parents:
742
diff
changeset
|
67 DETECTION_DIGO2_2, |
| 781 | 68 DETECTION_DIGO2_3, |
| 742 | 69 #ifdef ENABLE_CO2_SUPPORT |
|
798
e9eba334b942
Migrated CO2 protocol implementation to new format:
Ideenmodellierer
parents:
794
diff
changeset
|
70 DETECTION_CO2_0, /* check UART channel for connected CO2 sensor */ |
|
e9eba334b942
Migrated CO2 protocol implementation to new format:
Ideenmodellierer
parents:
794
diff
changeset
|
71 DETECTION_CO2_1, |
|
e9eba334b942
Migrated CO2 protocol implementation to new format:
Ideenmodellierer
parents:
794
diff
changeset
|
72 DETECTION_CO2_2, |
|
e9eba334b942
Migrated CO2 protocol implementation to new format:
Ideenmodellierer
parents:
794
diff
changeset
|
73 DETECTION_CO2_3, |
| 742 | 74 #endif |
| 988 | 75 #ifdef ENABLE_GNSS_EXTERN |
|
918
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
76 DETECTION_GNSS_0, /* check UART channel for connected gnss sensor */ |
|
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
77 DETECTION_GNSS_1, |
|
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
78 DETECTION_GNSS_2, |
|
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
79 DETECTION_GNSS_3, |
|
f72613a152dd
Switch external interface tx communication to DMA:
Ideenmodellierer
parents:
839
diff
changeset
|
80 #endif |
| 742 | 81 #ifdef ENABLE_SENTINEL_MODE |
| 82 DETECTION_SENTINEL, /* check UART channel for connected Sentinel */ | |
| 83 DETECTION_SENTINEL2, | |
| 84 #endif | |
| 1077 | 85 #ifdef ENABLE_HUD_SUPPORT |
| 86 DETECTION_HUD_0, | |
| 87 DETECTION_HUD_1, | |
| 88 DETECTION_HUD_2, | |
| 89 DETECTION_HUD_3, | |
| 90 #endif | |
|
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
91 DETECTION_DONE |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
92 } externalInterfaceAutoDetect_t; |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
93 |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
94 |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
95 |
|
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
96 |
|
554
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
97 void externalInterface_Init(void); |
| 662 | 98 void externalInterface_InitPower33(void); |
|
738
30717de00f3a
Added data init function for external interface:
Ideenmodellierer
parents:
731
diff
changeset
|
99 void externalInterface_InitDatastruct(void); |
|
554
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
100 uint8_t externalInterface_StartConversion(uint8_t channel); |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
101 uint8_t externalInterface_ReadAndSwitch(); |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
102 float externalInterface_CalculateADCValue(uint8_t channel); |
|
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
103 float getExternalInterfaceChannel(uint8_t channel); |
| 691 | 104 uint8_t setExternalInterfaceChannel(uint8_t channel, float value); |
| 662 | 105 void externalInterface_SwitchPower33(uint8_t state); |
| 691 | 106 void externalInterface_SwitchADC(uint8_t state); |
|
704
f1b40364b0af
Added protocol functions for UART DiveO2 sensor:
Ideenmodellierer
parents:
691
diff
changeset
|
107 void externalInterface_SwitchUART(uint8_t protocol); |
| 691 | 108 uint8_t externalInterface_isEnabledPower33(void); |
| 109 uint8_t externalInterface_isEnabledADC(void); | |
| 794 | 110 uint8_t externalInterface_GetUARTProtocol(void); |
| 111 void externalInterface_HandleUART(void); | |
| 112 void externalInterface_SetCO2Scale(float CO2Scale); | |
| 113 float externalInterface_GetCO2Scale(void); | |
| 662 | 114 void externalInterface_SetCO2Value(uint16_t CO2_ppm); |
| 115 void externalInterface_SetCO2SignalStrength(uint16_t LED_qa); | |
| 116 uint16_t externalInterface_GetCO2Value(void); | |
| 117 uint16_t externalInterface_GetCO2SignalStrength(void); | |
| 1062 | 118 void externalInterface_SetBottlePressure(uint8_t bottle, uint8_t bar); |
| 119 uint8_t externalInterface_GetBottlePressure(uint8_t bottle); | |
| 1077 | 120 void externalInterface_GetHUDSequence(uint8_t* pSequence, uint8_t* brightness); |
| 121 void externalInterface_SetHUDSequence(uint8_t* pSequence, uint8_t brightness); | |
|
779
0b5f45448eb6
Added UART multiplexer support for DiveO2:
Ideenmodellierer
parents:
742
diff
changeset
|
122 uint8_t externalInterface_GetSensorData(uint8_t sensorId, uint8_t* pDataStruct); |
| 786 | 123 void externalInterface_SetSensorData(uint8_t sensorId, uint8_t* pDataStruct); |
|
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
124 void externalInface_SetSensorMap(uint8_t* pMap); |
| 731 | 125 uint8_t* externalInterface_GetSensorMapPointer(uint8_t finalMap); |
|
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
parents:
714
diff
changeset
|
126 void externalInterface_AutodetectSensor(void); |
| 662 | 127 void externalInterface_ExecuteCmd(uint16_t Cmd); |
|
554
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
128 |
| 794 | 129 uint8_t externalInterface_GetActiveUartSensor(void); |
| 130 void externalInterface_SetSensorState(uint8_t sensorIdx, uint8_t state); | |
| 131 uint8_t externalInterface_GetSensorState(uint8_t sensorIdx); | |
| 132 | |
| 133 | |
| 134 | |
|
554
3328189786e7
Added external ADC interface functionality (MCP3424):
Ideenmodellierer
parents:
diff
changeset
|
135 #endif /* EXTERNAL_INTERFACE_H */ |
