annotate Discovery/Inc/base.h @ 776:45b8f3c2acce

Add support for a configurable compass declination in a range of -99 to 99 degrees. This allows the displayed compass reading to be configured to take into account the compass declination (difference between the measured magnetic North direction and the actual geographical North direction) that has different values for different locations around the globe. See https://magnetic-declination.com/ for more information. (mikeller)
author heinrichsweikamp
date Thu, 18 May 2023 09:49:17 +0200
parents 5078da3845c0
children f29369fff71e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1 ///////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
2 /// -*- coding: UTF-8 -*-
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
3 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
4 /// \file Discovery/Inc/base.h
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
5 /// \brief main(): init hardware and start sub-systems
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
6 /// \author MCD Application Team
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
7 /// \date 26-February-2014
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
8 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
9 /// $Id$
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
10 ///////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
11 /// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
12 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
13 /// This program is free software: you can redistribute it and/or modify
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
14 /// it under the terms of the GNU General Public License as published by
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
15 /// the Free Software Foundation, either version 3 of the License, or
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
16 /// (at your option) any later version.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
17 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
18 /// This program is distributed in the hope that it will be useful,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
19 /// but WITHOUT ANY WARRANTY; without even the implied warranty of
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
20 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
21 /// GNU General Public License for more details.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
22 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
23 /// You should have received a copy of the GNU General Public License
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
24 /// along with this program. If not, see <http://www.gnu.org/licenses/>.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
25 //////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
26 /// \par COPYRIGHT(c) 2014 STMicroelectronics
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
27 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
28 /// Redistribution and use in source and binary forms, with or without modification,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
29 /// are permitted provided that the following conditions are met:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
30 /// 1. Redistributions of source code must retain the above copyright notice,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
31 /// this list of conditions and the following disclaimer.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
32 /// 2. Redistributions in binary form must reproduce the above copyright notice,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
33 /// this list of conditions and the following disclaimer in the documentation
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
34 /// and/or other materials provided with the distribution.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
35 /// 3. Neither the name of STMicroelectronics nor the names of its contributors
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
36 /// may be used to endorse or promote products derived from this software
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
37 /// without specific prior written permission.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
38 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
39 /// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
40 /// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
41 /// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
42 /// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
43 /// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
44 /// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
45 /// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
46 /// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
47 /// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
48 /// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
49 //////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
50
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
51 /* Define to prevent recursive inclusion -------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
52 #ifndef BASE_H
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
53 #define BASE_H
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
54
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
55 /* Includes ------------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
56 #include "stm32f4xx_hal.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
57 #include "tStructure.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
58
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
59 /* Exported types ------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
60 /* Exported constants --------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
61 /* Exported macro ------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
62
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
63 #define TOP_LAYER 1
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
64 #define BACKGRD_LAYER 0
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
65
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
66 #define SURFMODE 1
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
67 #define DIVEMODE 2
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
68
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
69 typedef enum
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
70 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
71 ST_Boot = 0,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
72 ST_Surface,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
73 ST_Dive,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
74 ST_Menu,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
75 ST_END
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
76 } SState;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
77
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
78 typedef enum
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
79 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
80 ACTION_IDLE_TICK = 0,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
81 ACTION_IDLE_SECOND,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
82 ACTION_MODE_CHANGE,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
83 ACTION_TIMEOUT,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
84 ACTION_BUTTON_CUSTOM,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
85 ACTION_BUTTON_BACK,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
86 ACTION_BUTTON_NEXT,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
87 ACTION_BUTTON_ENTER,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
88 ACTION_BUTTON_ENTER_FINAL,
368
50ea68c7a153 Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents: 361
diff changeset
89 ACTION_PITCH_POS,
50ea68c7a153 Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents: 361
diff changeset
90 ACTION_PITCH_NEG,
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
91 ACTION_END
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
92 } SAction;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
93
740
5078da3845c0 Added button lock after wakeup in surface mode:
Ideenmodellierer
parents: 611
diff changeset
94 typedef enum
5078da3845c0 Added button lock after wakeup in surface mode:
Ideenmodellierer
parents: 611
diff changeset
95 {
5078da3845c0 Added button lock after wakeup in surface mode:
Ideenmodellierer
parents: 611
diff changeset
96 LOCK_OFF = 0,
5078da3845c0 Added button lock after wakeup in surface mode:
Ideenmodellierer
parents: 611
diff changeset
97 LOCK_FIRST_PRESS,
5078da3845c0 Added button lock after wakeup in surface mode:
Ideenmodellierer
parents: 611
diff changeset
98 LOCK_1,
5078da3845c0 Added button lock after wakeup in surface mode:
Ideenmodellierer
parents: 611
diff changeset
99 LOCK_2,
5078da3845c0 Added button lock after wakeup in surface mode:
Ideenmodellierer
parents: 611
diff changeset
100 LOCK_3,
5078da3845c0 Added button lock after wakeup in surface mode:
Ideenmodellierer
parents: 611
diff changeset
101 LOCK_UNLOCKED
5078da3845c0 Added button lock after wakeup in surface mode:
Ideenmodellierer
parents: 611
diff changeset
102 } SButtonLock;
5078da3845c0 Added button lock after wakeup in surface mode:
Ideenmodellierer
parents: 611
diff changeset
103
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
104 /* Exported macro ------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
105 /* Exported functions ------------------------------------------------------- */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
106
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
107 uint32_t get_globalState(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
108 void set_globalState(uint32_t newID);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
109 void get_globalStateList(SStateList *output);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
110 void set_globalState_Menu_Page(uint8_t page);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
111 void set_globalState_Menu_Line(uint8_t line);
776
45b8f3c2acce Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents: 740
diff changeset
112 uint8_t get_globalState_Menu_Line(void);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
113 void get_idSpecificStateList(uint32_t id, SStateList *output);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
114 void delayMicros(uint32_t micros);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
115 void get_RTC_DateTime(RTC_DateTypeDef * sdatestructureget, RTC_TimeTypeDef * stimestructureget);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
116 void set_RTC_DateTime(RTC_DateTypeDef * sdatestructure, RTC_TimeTypeDef * stimestructure);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
117 uint8_t get_globalMode(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
118 void set_globalMode(uint8_t newMode);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
119 void set_globalState_Log_Page(uint8_t pageIsLine);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
120 void set_returnFromComm(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
121 uint8_t font_update_required(void);
551
e3237f580ae9 Added viewport functionality:
Ideenmodellierer
parents: 368
diff changeset
122 void set_Backlight_Boost(uint8_t level);
611
916998f90e39 Suspend MotionDetection events while diver is operationg the OSTC:
Ideenmodellierer
parents: 551
diff changeset
123 void StoreButtonAction(uint8_t action);
740
5078da3845c0 Added button lock after wakeup in surface mode:
Ideenmodellierer
parents: 611
diff changeset
124 SButtonLock get_ButtonLock(void);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
125
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
126 #endif /* BASE_H */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
127
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
128 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/