annotate code_part1/OSTC_code_c_part2/p2_definitions.h @ 664:9c13bf8a3033

Ignore decoplanner in gauge and apnoe mode
author heinrichsweikamp
date Wed, 14 Nov 2012 12:02:14 +0100
parents d1719622111e
children f555590f1419
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
1 // *********************************************************
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
2 // ** Common definitions for the OSTC decompression code **
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
3 // *********************************************************
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
4
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
5 //////////////////////////////////////////////////////////////////////////////
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
6 // OSTC - diving computer code
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
7 // Copyright (C) 2008 HeinrichsWeikamp GbR
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
8 //
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
9 // This program is free software: you can redistribute it and/or modify
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
10 // it under the terms of the GNU General Public License as published by
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
11 // the Free Software Foundation, either version 3 of the License, or
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
12 // (at your option) any later version.
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
13 //
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
14 // This program is distributed in the hope that it will be useful,
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
17 // GNU General Public License for more details.
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
18 //
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
19 // You should have received a copy of the GNU General Public License
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
20 // along with this program. If not, see <http://www.gnu.org/licenses/>.
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
21 //
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
22 //////////////////////////////////////////////////////////////////////////////
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
23 // history:
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
24 // 12/25/10 v110: [jDG] split in three files (deco.c, main.c, definitions.h)
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
25
532
f5a06b9e2fef cleanup debug stuff
heinrichsweikamp
parents: 488
diff changeset
26 /*
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
27 #define DBG_c_gas 0x0001
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
28 #define DBG_c_ppO2 0x0002
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
29 #define DBG_RUN 0x0004
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
30 #define DBG_RESTART 0x0008
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
31
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
32 #define DBG_CdeSAT 0x0010
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
33 #define DBG_C_MODE 0x0020
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
34 #define DBG_C_SURF 0x0040
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
35 #define DBG_HEwoHE 0x0080
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
36
321
a99073445c18 Cleanup auto setpoint switch
JeanDo
parents: 235
diff changeset
37 // #define DBG_UNUSED 0x0100
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
38 #define DBG_C_DGAS 0x0200
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
39 #define DBG_C_DIST 0x0400
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
40 #define DBG_C_LAST 0x0800
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
41
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
42 #define DBG_C_GF 0x1000
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
43 #define DBG_ZH16ERR 0x2000
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
44 #define DBG_PHIGH 0x4000
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
45 #define DBG_PLOW 0x8000
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
46
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
47 #define DBS_mode 0x0001
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
48 #define DBS_ppO2 0x0002
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
49 #define DBS_HE_sat 0x0004
321
a99073445c18 Cleanup auto setpoint switch
JeanDo
parents: 235
diff changeset
50 // #define DBS_UNUSED 0x0008
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
51
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
52 #define DBS_SAT2l 0x0010
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
53 #define DBS_SAT2h 0x0020
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
54 #define DBS_GFLOW2l 0x0040
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
55 #define DBS_GFLOW2h 0x0080
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
56
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
57 #define DBS_GFHGH2l 0x0100
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
58 #define DBS_GFHGH2h 0x0200
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
59 #define DBS_GASO22l 0x0400
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
60 #define DBS_GASO22h 0x0800
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
61
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
62 #define DBS_DIST2h 0x1000
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
63 #define DBS_LAST2h 0x2000
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
64 #define DBS_DECOO2l 0x4000
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
65 #define DBS_DECOO2h 0x8000
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
66
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
67 #define DBS2_PRES2h 0x0001
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
68 #define DBS2_PRES2l 0x0002
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
69 #define DBS2_SURF2l 0x0004
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
70 #define DBS2_SURF2h 0x0008
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
71
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
72 #define DBS2_DESAT2l 0x0010
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
73 #define DBS2_DESAT2h 0x0020
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
74 #define DBS2_GFDneg 0x0040
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
75
532
f5a06b9e2fef cleanup debug stuff
heinrichsweikamp
parents: 488
diff changeset
76 */
f5a06b9e2fef cleanup debug stuff
heinrichsweikamp
parents: 488
diff changeset
77
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
78 #define MBAR_REACH_GASCHANGE_AUTO_CHANGE_OFF 150
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
79
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
80 // *************************
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
81 // ** P R O T O T Y P E S **
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
82 // *************************
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
83
167
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
84 extern void calc_percentage(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
85 extern void deco_calc_hauptroutine(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
86 extern void deco_clear_tissue(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
87 extern void deco_calc_percentage(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
88 extern void deco_calc_wo_deco_step_1_min(void);
368
de3b267e1fd9 Adding calc_dive_interval()
JeanDo
parents: 321
diff changeset
89 extern void deco_calc_dive_interval(void);
532
f5a06b9e2fef cleanup debug stuff
heinrichsweikamp
parents: 488
diff changeset
90 //extern void deco_debug(void);
167
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
91 extern void deco_gradient_array(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
92 extern void deco_hash(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
93 extern void deco_calc_desaturation_time(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
94 extern void deco_calc_CNS_fraction(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
95 extern void deco_clear_CNS_fraction(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
96 extern void deco_push_tissues_to_vault(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
97 extern void deco_pull_tissues_from_vault(void);
488
7c48692dd17c BUGFIX Missed surface pressure for CNS in decoplan.
JeanDo
parents: 368
diff changeset
98 extern void deco_calc_CNS_planning(void);
222
638f8e17bd51 Prototyping deco_gas_volumes() to compute gas consumption per tank with decoplanning.
JeanDo
parents: 200
diff changeset
99 extern void deco_gas_volumes(void);
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
100
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
101 // ***********************************************
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
102 // ** Allow compile on VisualC **
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
103 // ***********************************************
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
104
548
c35473dc6831 Make shared headers UNIX compatibles.
JeanDo
parents: 532
diff changeset
105 #if defined(WIN32) || defined(UNIX)
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
106 // Some keywords just dont exists on Visual C++:
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
107 # define CROSS_COMPILE
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
108 # define __18CXX
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
109 # define ram
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
110 # define rom
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
111 # define overlay
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
112 # define PARAMETER
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
113
548
c35473dc6831 Make shared headers UNIX compatibles.
JeanDo
parents: 532
diff changeset
114 # include <assert.h>
192
c8816e4bc724 GF Model
JeanDo
parents: 184
diff changeset
115
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
116 // Avoid warnings about float/double mismatches:
548
c35473dc6831 Make shared headers UNIX compatibles.
JeanDo
parents: 532
diff changeset
117 # ifdef WIN32
c35473dc6831 Make shared headers UNIX compatibles.
JeanDo
parents: 532
diff changeset
118 # pragma warning(disable: 4244 4068 4305)
601
d1719622111e Minor LLVM compatibility cleanups.
JeanDo <jd.gascuel@free.fr>
parents: 548
diff changeset
119 # elif defined(Q_OS_MAC)
d1719622111e Minor LLVM compatibility cleanups.
JeanDo <jd.gascuel@free.fr>
parents: 548
diff changeset
120 //# pragma GCC diagnostic error "-Wunknown-pragmas"
d1719622111e Minor LLVM compatibility cleanups.
JeanDo <jd.gascuel@free.fr>
parents: 548
diff changeset
121 # pragma GCC diagnostic error "-Wunused-variable"
548
c35473dc6831 Make shared headers UNIX compatibles.
JeanDo
parents: 532
diff changeset
122 # endif
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
123 #else
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
124 # define PARAMETER static
235
ade0848c8b8b New runtime asserts when compiled in DEBUG more.
JeanDo
parents: 222
diff changeset
125 # ifdef __DEBUG
ade0848c8b8b New runtime asserts when compiled in DEBUG more.
JeanDo
parents: 222
diff changeset
126 # define assert(predicate) if( !(predicate) ) assert_failed(__LINE__)
ade0848c8b8b New runtime asserts when compiled in DEBUG more.
JeanDo
parents: 222
diff changeset
127 # else
ade0848c8b8b New runtime asserts when compiled in DEBUG more.
JeanDo
parents: 222
diff changeset
128 # define assert(predicate)
ade0848c8b8b New runtime asserts when compiled in DEBUG more.
JeanDo
parents: 222
diff changeset
129 # endif
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
130 #endif
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
131
167
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
132 //////////////////////////////////////////////////////////////////////////////