Mercurial > public > hwos_code
comparison doc/readme-2-95.txt @ 560:b7eb98dbd800
bump to 2.96beta (REFACTORED VERSION)
author | heinrichsweikamp |
---|---|
date | Wed, 31 Jan 2018 19:39:37 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
559:9cb967d844f0 | 560:b7eb98dbd800 |
---|---|
1 | |
2 Doku- & Info-Sammlung zu p2_deco.c und der Einbettung in die V2.95a | |
3 =================================================================== | |
4 | |
5 Bedeutung der Bildschirm-Farben (in der Normaleinstellung): | |
6 | |
7 grün: feste Kolumnen oder "gute" Zustände. | |
8 weiß: Zahlenwerte die im Normalbereich liegen | |
9 blau: inaktive Einstellungen und Gase, sowie Werte die noch nicht | |
10 berechnet wurden oder die aufgrund von Einstellungsänderungen | |
11 (Gaswechsel, LostGas, Setpoint-Wechsel, GF/aGF-Umschaltung, usw.) | |
12 nicht mehr aktuell sind und gerade neu berechnet werden. | |
13 gelb: Hinweise und Vorwarnungen die zu beachten sind, jedoch noch | |
14 kein unmittelbares Handeln erfordern. | |
15 rot : Hinweise und Warnungen, die ein unmittelbaren Handeln erfordern. | |
16 | |
17 Die Schwellen für Vorwarnungen sind generell immer auf 70% eingestellt, | |
18 für den aktuellen GF-Wert wird die GF-high Einstellung als Schwelle für | |
19 die Vorwarnung benutzt. | |
20 Vorwarnungen erscheinen als Warnungstext und/oder als Darstellung in | |
21 gelber Farbe. Die endgültige Warnung erscheint dann in roter Farbe. | |
22 | |
23 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
24 | |
25 Die Deco-Engine wird über zwei Parameter kommandiert: | |
26 | |
27 char_O_main_status: | |
28 steuert die Berechnung für die realen Gewebe | |
29 | |
30 char_O_deco_status: | |
31 steuert die Berechnung der Deko/Aufstiegssimulation | |
32 | |
33 Die Kommandos werden über Flags gegeben. Für beide Kommandoparameter | |
34 definert sind: | |
35 | |
36 DECO_MODE_LOOP: | |
37 Wenn gesetzt wird für Kreislaufsysteme gerechnet wenn nicht gesetzt | |
38 wird in OC gerechnet. | |
39 | |
40 DECO_MODE_PSCR: | |
41 nur in Verbindung mit DECO_MODE_LOOP, schaltet von CCR auf pSCR um. | |
42 | |
43 Nur für char_O_deco_status definiert sind: | |
44 | |
45 DECO_PLAN_ALTERNATE: | |
46 Auswahl ob der Normalplan oder ein alternativer Plan gerechnet | |
47 werden soll. Von den Ergebnissen des Normal-Plans leiten sich die | |
48 meisten Bildschirmanzeigen ab. Vom alternativen Plan werden nur | |
49 ausgewählte Daten angezeigt, z.B. die der fTTS oder Bailout- | |
50 Berechnung. | |
51 | |
52 DECO_CNS_CALCULATE: | |
53 Wenn aktiviert, wird der CNS%-Wert berechnet wie er am Ende des | |
54 Tauchgangs sein wird. Dies kann sowohl im Rahmen des normalen wie | |
55 auch des alternativen Plans geschehen, es existieren für beide | |
56 Pläne eigene Ausgabevariablen. | |
57 | |
58 DECO_VOLUME_CALCULATE: | |
59 Wenn aktiviert, werden die Gasbedarfe für den gesamten Tauchgang | |
60 berechnet. Dies kann sowohl im Rahmen des normalen wie auch des | |
61 alternativen Plans geschehen, jedoch existiert für diese Funktion | |
62 nur ein gemeinsamer Satz Ausgabevariablen. Wenn DECO_MODE_LOOP | |
63 gesetzt ist erfolgen keine Berechnungen, es werden stattdessen | |
64 Nullwerte ausgegeben. | |
65 | |
66 DECO_ASCENT_DELAYED: | |
67 Wenn aktiviert wird der Aufstieg / dier Dekompression so berechnet | |
68 als ob der Aufstieg nicht sofort, sondern um char_I_extra_time | |
69 verzögert beginnt. Die Funktion kann in beiden Plänen verwendet | |
70 werden, wird jedoch sinnvoller Weise in Verbindung mit dem | |
71 alternativen Plan für fTTS bzw. Bailout-Berechnungen mit delayed | |
72 ascent benutzt. | |
73 | |
74 Die Deco-Engine generiert Warnungen, die in Form von Flags über die | |
75 Variable char_O_deco_warnings ausgegeben werden: | |
76 | |
77 DECO_WARNING_IBCD: | |
78 Wird gesetzt wenn das führende Gewebe im Zustand der isobaren | |
79 Gegendiffusion ist und derzeit netto tatsächlich am aufsättigen | |
80 ist. Auf dem Bildschirm wird unter der IBCD-Warnung zusätzlich | |
81 der aktuelle GF angezeigt, der bei Vorliegen dieser Warnung am | |
82 steigen ist. | |
83 | |
84 DECO_WARNING_IBCD_lock: | |
85 In diesem Flag wird das Auftreten einer IBCD-Warnung bis über | |
86 das Tauchgangsende hinaus gespeichert. Wird im Deko-Kalkulator | |
87 benutzt um eine IBCD-Warnung zu geben falls eine solche irgend | |
88 wann im Verlaufe der Tauchgangs-Berechnung ausgetreten ist. | |
89 | |
90 DECO_WARNING_MBUBBLES: | |
91 Wird gesetzt, wenn die Gewebe aktuell soweit übersättigt sind | |
92 dass mit der Produktion von Mikroblasen gerechnet werden muss. | |
93 Achtung: wenn dieses Flag zurückgesetzt wird sind nicht etwa | |
94 die Mikroblasen nicht mehr da, es liegen nur vermutlich nicht | |
95 mehr die Bedingungen für eine Produktion weiterer Mikroblasen | |
96 vor. Der Zustand der aktiven Mikroblasengeneration wird über | |
97 eine Mikroblasen-Warnung in Rot dargestellt. | |
98 | |
99 DECO_WARNING_MBUBBLES_lock: | |
100 Wird gesetzt sowie erstmalig während eines Tauchgangs die | |
101 Mikroblasen-Warnung gegeben wurde. Bleibt über das Ende des | |
102 Tauchgangs hinaus gesetzt bis die Oberflächen-Berechnungen eine | |
103 Entsättigung der Gewebe melden. Solange diese Warnung aktiv ist | |
104 wird eine Mikroblasen-Warnung in Gelb ausgegeben, sowohl im Tauch- | |
105 wie auch im Oberflächen-Modus. | |
106 | |
107 DECO_WARNING_OUTSIDE: | |
108 Wird gesetzt, wenn die Gewebe aktuell soweit übersättigt sind, dass | |
109 der Gültigkeitsbereich des ZHL-16 Modells verlassen ist. | |
110 Achtung: wenn dieses Flag zurückgesetzt wird ist nicht etwa der | |
111 Gültigkeitsbereich des Modells wiederhergestellt, es wird lediglich | |
112 weiter gerechnet als ob das Modell noch gelten würde. Inwieweit die | |
113 berechneten Werte (Deko-Plan, Ceiling, ...) dann tatsächlich noch | |
114 praktische Relevanz haben ist unbekannt und extrem von den | |
115 Rahmenbedingungen des Einzelfalls abhängig. | |
116 Solange die Gewebesättigungen außerhalb des Modellbereichs sind | |
117 wird eine Warnung in Rot ausgegeben. | |
118 | |
119 DECO_WARNING_OUTSIDE_lock: | |
120 Wird zusammen mit DECO_WARNING_OUTSIDE gesetzt und wie bei den | |
121 Mikroblasen erst bei Entsättigung wieder gelöscht. | |
122 | |
123 DECO_WARNING_STOPTABLE_OVERFLOW: | |
124 Diese Warnung zeigt an, dass der Tauchgang mehr Stopps erfordert | |
125 als in der Stopp-Tabelle gespeichert werden können. Abgeleitete | |
126 Werte wie die Aufstiegszeit, die CNS-Werte am Tauchgangsende und | |
127 die Gasbedarfe können nicht mehr vollständig ermittelt werden und | |
128 werden daher in der Farbe Blau für ungültige Werte dargestellt. Die | |
129 wahren Werte sind mindestens so hoch wie die derart angezeigten. | |
130 Die Angaben zu den ersten Stopps auf dem Bildschirm und in den | |
131 Custom-Views sind jedoch trotzdem korrekt und im weiteren Verlaufe | |
132 des Tauchgangs, wenn die ersten Stopps vorüber sind, wird die | |
133 Tabelle wieder ausreichen um alle restlichen Stopp-Daten zu | |
134 speichern und die Warnung wird zurückgenommen. | |
135 Diese Warnung wird nicht direkt angezeigt, sondern nur indirekt | |
136 über die ungültig-Kennzeichnung der betroffenen Werte und sollte | |
137 bei praktisch durchführbaren Tauchgängen nicht auftreten. | |
138 | |
139 DECO_FLAG: | |
140 Dieses Flag wird gesetzt, wenn mindestens ein Gewebe am absättigen | |
141 ist. Mit ihm wird die Warnschwelle für zu hohe ppO2-Werte von der | |
142 normalen Schwelle auf die Deko-Schwelle umgeschaltet. Sollte wieder | |
143 tiefer getaucht werden (Jo-Jo) so dass alle Gewebe wieder am | |
144 aufsättigen sind, dann wird das Flag zurückgenommen und auch die | |
145 Warnschwelle wieder zurückgeschaltet. | |
146 | |
147 | |
148 Viele der internen Routinen der Deko-Engine sind generisch ausgelegt und | |
149 können sowohl für Berechnungen zu den realen Geweben benutzt werden, als | |
150 auch für die Berechnungen im Rahmen des normalen und des alternativen | |
151 Aufstiegs-/Dekompressionsplans. Gesteuert wird dies intern über die | |
152 Variable tissue_increment, diese besteht aus einem Flag auf der höchsten | |
153 Bitposition und einer Interger-Zahl in den Bitstellen darunter | |
154 (Wertebereich 0 - 127). Ist das Flag (Bit 7) gesetzt, so werden die | |
155 Berechnungen auf die realen Gewebedaten angewendet, andernfalls auf die | |
156 von den Plänen simulierten. Mit der Integerzahl wird die Zeitdauer | |
157 bestimmt, für die die Berechnung durchgeführt werden soll. Null bedeutet | |
158 eine Zeitdauer von 2 Sekunden, die Zahlen von 1 bis 127 stehen für 1 bis | |
159 127 volle Minuten. Durch dieses Vorgehen konnten viele Programmabschnitte | |
160 deutlich beschleunigt werden. | |
161 | |
162 Die Deko-Engine wird jede Sekunde aufgerufen und aktualisiert die obigen | |
163 sowie weitere Warnungen jede Sekunde bzw. wenn die entsprechenden | |
164 Berechnungen durchgeführt wurden. Die Berechnungen für die realen Gewebe | |
165 werden jede zweite Sekunde durchgeführt, sekündlich abwechselnd zwischen | |
166 der Aktualisierung der Gewebedrücke und des CNS%-Wertes. | |
167 Die Aufstiegs- und Dekompressions-Berechnungen werden bei jedem Aufruf | |
168 bearbeitet, also in jeder Sekundescheibe. Es wird abwechselnd der Normal- | |
169 und der Alternativ-Plan berechnet. | |
170 Werden für die Aufstiegsberechnung wesentliche Parameter geändert, wie | |
171 z.B. das geatmete oder die verfügbaren Gase, der Setpoint, die GF- | |
172 Faktoren, usw., dann wird die laufende Berechnung abgebrochen und im | |
173 nächsten Sekunden-Zyklus mit dem nächsten Normalplan begonnen. | |
174 | |
175 Die Daten zu den Gasen werden von der Assembler-Seite aus über folgende | |
176 Funktionen gesetzt: | |
177 | |
178 Für die Berechnung der realen Gewebe: | |
179 | |
180 setup_gas_registers: | |
181 setzt ein OC-Gas und schaltet den Rechenmodus auf OC | |
182 | |
183 setup_dil_registers: | |
184 setzt ein Diluent und schaltet auf CCR bzw. pSCR Modus | |
185 | |
186 Für die Aufstiegs-/Dekoplanung: | |
187 | |
188 deco_setup_oc_gases: | |
189 übermittelt die Daten OC-Gase sowie das aktuell geatmete | |
190 Gas und schaltet den Rechnenmodus auf OC | |
191 | |
192 deco_setup_cc_diluents: | |
193 übermittelt die Daten der Diluent sowie das aktuell benutzte | |
194 Diluent und schaltet auf den CCR bzw. pSCR Modus | |
195 | |
196 Die Aufstiegs-/Dekoplanung wird über einen Enum in char_O_deco_status | |
197 gesteuert: | |
198 | |
199 - Einmalig am Beginn des Tauchgangs wird der Zustand DECO_STATUS_INIT | |
200 aufgerufen, dieser initialisiert die Deco-Engine. Nach Abschluss der | |
201 Initialisierung wechselt die Deco-Engine selbsttätig in den Zustand | |
202 DECO_STATUS_START weiter. | |
203 | |
204 - DECO_STATUS_START | |
205 startet eine neue Aufstiegs-/Dekoplanung basierend auf den gesetzten | |
206 Flags und Gasdaten, falls noch eine Aufstiegs- oder Dekoplanung läuft | |
207 wird diese abgebrochen. In diesem Zustand wird auch berechnet ob sich | |
208 der Tauchgang noch innerhalb der Nullzeit befindet. Falls ja, endet die | |
209 Aufstiegsplanung hier im Zustand ECO_STATUS_FINISHED, ansonsten wird | |
210 sie beim nächsten Aufruf der Deco-Engine im Zustand DECO_STATUS_ASCENT | |
211 fortgesetzt. | |
212 | |
213 - DECO_STATUS_ASCENT | |
214 führt die Berechnung des Aufstiegs bis zum ersten Deko-Stopp aus | |
215 (initial ascent). Im alternativen Planungsmodus werden hierbei auch | |
216 Gaswechsel ermittelt. Nach Abschluss der Aufstiegsberechnung wird der | |
217 Zustand auf DECO_STATUS_STOPS weitergeschaltet, der dann beim wiederum | |
218 nächsten Aufruf der Deco-Engine bearbeitet wird. | |
219 | |
220 - DECO_STATUS_STOPS | |
221 berechnet die Dekostopps und alle weiteren Aufstiege, sowie die CNS%- | |
222 Werte am Tauchgangsende und die Gasbedarfe sofern jeweils angefordert. | |
223 Diese Berechnungen laufen üblicherweise über mehrere Aufrufzyklen der | |
224 Deco-Engine, diese signalisiert am Ende jedes Zykluses mit | |
225 DECO_STATUS_STOPS dass (mindestens) ein weiterer Zyklus benötigt wird | |
226 oder mit DECO_STATUS_FINISHED dass die Berechnungen abgeschlossen sind. | |
227 | |
228 - DECO_STATUS_FINISHED | |
229 signalisiert, dass die Aufstiegs-/Dekompressionsplanung abgeschlossen | |
230 ist und die Ergebnisse in den entsprechenden Variablen bereitstehen | |
231 bzw. aktualisiert sind. | |
232 Die Kodierung von DECO_STATUS_FINISHED (benutzt als Ausgabe aus der | |
233 Deco-Engine) entspricht der Kodierung von DECO_STATUS_START (benutzt | |
234 als Eingabe in die Deco-Engine). Die Deco-Engine kann sofort wieder im | |
235 Zustand DECO_STATUS_START aufgerufen werden, worauf ein neuer Planungs- | |
236 zyklus beginnt. | |
237 | |
238 Die Einstellungen und Gasdaten können zwischen zwei Planungszyklen (d.h. | |
239 zwischen den Zuständen DECO_STATUS_FINISHED und DECO_STATUS_START) ohne | |
240 Einschränkungen geändert werden. Während ein Planungszyklus läuft ist | |
241 dies nicht zulässig und kann zu falschen Ergebnissen führen. | |
242 | |
243 | |
244 Planungsfunktionen 2nd Deco Plan: | |
245 | |
246 Über die Deko-Einstellungen, Untermenu "2nd Deco Plan" können erweiterte | |
247 sowie alternative Aufstiegs-/Dekompressionsberechnungen aktiviert werden. | |
248 | |
249 fTTS/Delay: | |
250 | |
251 Wird hier ein Wert größer Null ausgewählt, dann wird ein zweiter, | |
252 alternativer Aufstiegs-/Dekoplan berechnet unter der Annahme, dass | |
253 die eingestellte Zeit in Minuten weiterhin auf der aktuellen Tiefe | |
254 verbracht wird und erst dann der Aufstieg beginnt. Die unter dieser | |
255 Annahme berechnete Aufstiegszeit wird als fTTS (future Time to | |
256 Surface) angezeigt. Weiterhin wird der CNS-Wert berechnet, der sich | |
257 am Ende eines derart verlängerten Tauchgangs ergeben wird, er kann | |
258 über einen CustomView angesehen werden. Wenn dieser CNS-Wert 100% | |
259 erreicht wird außerdem eine Warnung ausgegeben. | |
260 | |
261 Im Bailout-Fall wird keine fTTS-Berechnung durchgeführt, dafür | |
262 Erfolgt die Aktualisierung der Bailout-Aufstiegsberechnung dann in | |
263 Schnellerer Folge. | |
264 | |
265 | |
266 Calc.Gas(B/O): | |
267 | |
268 Wird diese Option aktiviert, dann wird der Gasbedarf berechnet, der | |
269 für die Beendigung des Tauchgangs unter Einhaltung der Aufstiegs- | |
270 geschwindigkeiten und ggf. Dekompressionsstopps benötigt wird. Wenn | |
271 bei fTTS/Delay Null eingestellt ist, dann wird diese Berechnung | |
272 während der normalen Aufstiegs-/Dekoberechnung durchgeführt und die | |
273 ermittelten Werte gelten bei sofortigem Beginn des Aufstiegs. Wenn | |
274 bei fTTS/Delay eine Zeit größer Null eingestellt ist, dann wird die | |
275 Berechnung im Rahmen des zweiten, alternativen Plans durchgeführt | |
276 Und die berechneten Gasbedarfe gelten für den verzögerten Aufstieg. | |
277 | |
278 | |
279 fTTS/Delay und Calc.Gas(B/O) im Modus CCR und pSCR: | |
280 | |
281 Das oben beschriebene Verhalten verändert sich, wenn sich der OSTC | |
282 im CCR oder im pSCR Modus befindet: Wenn die Option Calc.Gas(B/O) | |
283 ausgeschaltet ist, dann gelten die berechnete Aufstiegszeit und der | |
284 CNS-Wert unter der Annahme dass bis zum Ende des Tauchgangs weiterhin | |
285 vom Kreislaufgerät geatmet wird. | |
286 Wenn die Option Calc-Gas(B/O) hingegen eingeschaltet ist, dann wird | |
287 die Aufstiegszeit und der CNS-Wert unter der Annahme berechnet, | |
288 dass ab sofort ein Bailout erfolgt, auf dem ersten Bailoutgas für | |
289 die bei fTTS/Delay eingestellte Zeit auf der aktuellen Tiefe | |
290 verblieben wird und dann ein Bailout-Aufstieg eingeleitet wird. | |
291 Die sich so ergebende Aufstiegszeit wird als B/O-Zeit (BailOut) | |
292 angezeigt und die berechneten Gasmengen gelten für die OC-Bailout- | |
293 Gase. | |
294 | |
295 | |
296 Bottom Gas, Deco Gas: | |
297 | |
298 Hier werden die Gasbedarfe in Litern pro Minute Oberflächenrate | |
299 (SAC) eingestellt. Diese Einstellungen werden auch vom Deko- | |
300 Kalkulator benutzt, der über das Simulations-Menu zu erreichen ist. | |
301 | |
302 | |
303 Tank Sizes: | |
304 | |
305 Hier sind die Größen der Tanks für die OC-/Bailout-Gase in Litern | |
306 (Wasservolumen) einzustellen. Diese Einstellungen sind wichtig, da | |
307 sie für die Berechnung der Gasbedarfe im Tauchmodus benötigt | |
308 werden: Im Tauchmodus erfolgt die Ausgabe der benötigten Gasmengen | |
309 in Bar, bezogen auf die jeweiligen Flaschengrößen. | |
310 | |
311 | |
312 Tank Press Budget: (ex Tank Fill Press) | |
313 | |
314 Hier wird festgelegt wie viel Gas aus den jeweiligen Tanks (Flaschen) | |
315 für den Tauchgang verwendet werden darf. Die Einstellung erfolgt in | |
316 Bar Flaschendruck. Erreicht der Bedarf eines Gases 70% des für das | |
317 Gas eingestellten Budgets, dann erfolgt eine Warnung in gelber Farbe. | |
318 Bei 100% erscheint die Warnung in roter Farbe. | |
319 Die benötigten Flaschendrücke können jederzeit über einen CustomView | |
320 eingesehen werden. Dieser zeigt aufgrund der begrenzten Bildschirm- | |
321 fläche nur die Bedarfe von bis zu vier Gasen an, die Warnungen werden | |
322 jedoch für alle 5 Gas erzeugt. | |
323 Alle Gasbedarfs- und Druckberechnungen erfolgen unter der Annahme | |
324 idealer Gase und ohne Betrachtung von temperaturbedingten Druck- | |
325 änderungen. | |
326 | |
327 | |
328 Gaswechsel: | |
329 | |
330 Im Rahmen der Deko-Pläne werden automatisch Gaswechsel eingeplant, wenn | |
331 ein besseres Gas verfügbar ist. Ein besseres, bzw. das beste Gas ist | |
332 dasjenige Gas, dessen Wechseltiefe am dichtesten unterhalb der aktuellen | |
333 Tiefe liegt. Nur aktivierte Gase die nicht als "Lost" markiert sind | |
334 werden berücksichtigt. Gaswechsel werden als Stopp in die Stopp-Tabelle | |
335 eingetragen. Die Dauer dieser Stopps beträgt standardmäßig 1 Minute. | |
336 Sollte auf der Stopp-Stufe für den Gaswechsel auch ein Dekompressions- | |
337 Stopp notwendig sein, so addiert sich die notwendige Stoppzeit für die | |
338 Dekompression zu der für den Gaswechsel hinzu. | |
339 | |
340 Im Bereich zwischen der Grundtiefe und dem ersten Dekompressions-Stopp | |
341 werden die Gaswechsel-Stopps auf die Tiefen gelegt, ab denen jeweils | |
342 bessere Gase verfügbar werden. Gibt es ein besseres Gas auf der aktuellen | |
343 Tiefe, so wird ein Wechsel auf der aktuellen Tiefe geplant. Dies geschieht | |
344 jedoch nur im Modus alternativer Plan und nur wenn das nächste bessere | |
345 Gas nicht in <= 1 Minute Aufstiegszeit erreicht wird. In Normal-Plan | |
346 werden Wechsel auf ein besseres Gas erst ab dem ersten echten Deko-Stopp | |
347 eingeplant. | |
348 Im Falle, dass im alternativen Plan ein Bail-Out Szenario gerechnet wird | |
349 sieht die Gaswahl- und Gaswechsel-Strategie wie folgt aus: zunächst wird | |
350 dasjenige OC-Gas gewählt welches als 'First' konfiguriert ist. Auf diesem | |
351 wird auf aktueller Tiefe für die Zeit verblieben, die als Delayed-Acent- | |
352 Time eingestellt ist. Dann erfolgt die Suche nach einem besseren Gas, auf | |
353 das je nach Verfügbarkeit im direkten Anschluss oder während des | |
354 initialen Aufstiegs gewechselt wird. Ab Erreichen des ersten Dekostopps | |
355 werden Gaswechsel in beiden Plänen (normaler und alternativer Plan) | |
356 automatisch ermittelt und immer auf die nächsten passenden Dekostopps | |
357 gelegt. Im CCR und im pSCR Modus werden derzeit keine automatischen | |
358 Gaswechsel berechnet. | |
359 | |
360 -> Die Gaswechselzeit ist bereits in der Options-Tabelle angelegt, wird | |
361 aber momentan noch innerhalb von p2_deco.c auf 1 Minute erzwungen. | |
362 | |
363 Die Deko-Engine plant den Aufstieg mit einer einstellbaren Aufstiegs- | |
364 geschwindigkeit von 5-10 Meter pro Minute, diese wird über eine Option in | |
365 der Options-Tabelle eingestellt. | |
366 | |
367 -> Die Aufstiegsgeschwindigkeit ist bereits in der Options-Tabelle | |
368 angelegt, wird aber momentan noch innerhalb von p2_deco.c auf 10 m/min | |
369 erzwungen. | |
370 | |
371 Für die Ceiling-Berechnung ist eine neue Codezeile angelegt die dafür | |
372 sorgt, dass die Ceiling genau dann zu Null wird, wenn auch die TTS zur | |
373 NDL umschaltet. Bisher wird so gerundet, dass die Ceiling zu Null wird | |
374 während noch eine TTS angezeigt wird. Die neue Zeile ist noch | |
375 auskommentiert und die alte Formel in Betrieb um eine Vergleichbarkeit | |
376 der gesamten Berechnungen mit der V2.27 zu ermöglichen. Zur Release- | |
377 Version sollte entsprechend umkommentiert werden. | |
378 | |
379 | |
380 Gasbedarfs-Berechnung: | |
381 | |
382 Es werden die Bedarfe aller Gase berechnet, die bei der Aufstiegs-/ | |
383 Dekompressionsberechnung eingeplant wurden. Es sind diese die Gase 1 | |
384 bis 5. Wird aktuell ein manuell konfiguriertes Gas ("Gas 6") geatmet, | |
385 so wird dieses in der Gasbedarfsberechnung außen vor gelassen. Die | |
386 Berechnung teilt sich in die Bereiche bottom und initial ascent, stops | |
387 und intermediate ascents sowie final ascent. | |
388 | |
389 Im Bereich bottom und initial ascent wird die Bottom-Verbrauchsrate | |
390 angesetzt, in den übrigen Bereichen die Deko-Verbrauchsrate. | |
391 Die Aufstiegssegmente werden mit der konfigurierten Aufstiegsrate (5-10 | |
392 m/min) berechnet, der final ascent vom letzten Stopp bis zur Oberfläche | |
393 mit 1 Meter/Minute. Gibt es keine Stopps, dann reicht der initial ascent | |
394 vom Bottom bis zur Oberfläche und wird mit der konfigurierten Aufstiegs- | |
395 rate gerechnet, zuzüglich eines Sicherheitsstopps von 3 Minuten auf 5 | |
396 Metern. Wenn es keinen Deko-Stopp gibt, aber einen Gaswechsel-Stopp der | |
397 tiefer liegt als ein letzter regulärer Deko-Stopp liegen würde, dann wird | |
398 der Aufstieg geteilt in einen intermediate ascent und einen final ascent. | |
399 Für beide werden dann die entsprechenden Aufstiegsraten angesetzt. | |
400 | |
401 Alle Gaswechsel werden der Stopp-Tabelle entnommen, daher sind dort | |
402 auch reine Gaswechsel-Stopps eingetragen, d.h. Stopps auf denen keine | |
403 Dekompression notwendig ist. Auf den Stopps die einen Gaswechsel | |
404 beinhalten wird der Gasbedarf wie folgt berechnet: Der Bedarf für die | |
405 gesamte Stoppdauer wird dem neuen Gas zugerechnet, für die konfigurierte | |
406 Gaswechsel-Dauer wird ein entsprechender Bedarf zusätzlich auf das alte | |
407 Gas aufgeschlagen. So ist sichergestellt, dass die berechneten Gasvolumina | |
408 genügend Reserve ausweisen um auf einem Gaswechsel-Stopp die Zeit zu haben | |
409 das neue Gas verfügbar zu machen (Stage-Handling). | |
410 | |
411 Die Gasbedarfe werden zum einen in Litern berechnet, diese Werte werden | |
412 vom Deko-Kalkulator genutzt, und zum anderen in bar Flaschendruck | |
413 entsprechend der eingestellten Flaschengrößen. Hierbei wird mit idealen | |
414 Gasen gerechnet, sprich Druck = benötigtes Volumen / Flaschengröße. | |
415 Aus dem Vergleich von berechnetem Druckbedarf und konfiguriertem | |
416 Flaschendruck werden die Vorwarnung (70%, gelb) und die Hauptwarnung | |
417 (100%, rot) generiert. Um bei der Hauptwarnung noch eine minimale Reserve | |
418 zu haben sollte daher der Flaschendruck etwas niedriger eingestellt | |
419 werden als er tatsächlich ist. | |
420 | |
421 | |
422 Gewebegrafik: | |
423 | |
424 Die Gewebegrafik ist so skaliert, dass die Länge der Balken dem Druck des | |
425 Jeweiligen Inertgases entspricht. Während des Tauchgangs werden die | |
426 Balken zusätzlich eingefärbt, die Farbe kennzeichnet ob das Gewebe gerade | |
427 am aufsättigen oder am entsättigen ist. Die Balken für den Stickstoff | |
428 beginnen weiter links da die Gewebe im Ausgleichzustand an der Oberfläche | |
429 bereits zu einem Teil Stickstoff enthalten, nicht jedoch Helium. So | |
430 beginnen die "Überdrücke" aus dem Ausgleichszustand heraus auf gleicher | |
431 Linie. | |
432 | |
433 | |
434 Stopp-Tabelle (Deko-Tabelle): | |
435 | |
436 Der Funktionsaufruf ist so verändert, dass beim Aufruf die Menge | |
437 der einzutragenden Minuten übergeben werden kann. Diese werden dann auf | |
438 den bestehenden Stopp aufaddiert bzw. es wird ein neuer Stopp angelegt. | |
439 Es können auch Null Minuten übergeben werden und so ein Stopp "on the | |
440 fly" erzeugt werden, z.B. für einen reinen Gaswechsel. Alle Operationen | |
441 auf der Stopp-Tabelle sind angepasst um mit Stopps von Null-Dauer zu | |
442 funktionieren. | |
443 Ein Stopp-Eintrag kann maximal 99 Minuten Stoppdauer aufnehmen. Dauert | |
444 ein Stopp länger, so wird eine weiterer Stopp auf gleicher Tiefe angelegt. | |
445 | |
446 | |
447 No-Fly bzw. Altitude-Wait-Zeit: | |
448 | |
449 Diese Wartezeit wird wie eine Dekompression aus dem aktuellen Gewebe- | |
450 zustand heraus auf eine fiktive Tiefe gerechnet, die der gewählten | |
451 Höhenstufe entspricht. Für No-Fly wird dabei ein Kabinendruck von 0,6 | |
452 bar angesetzt. Der Rechenaufwand für diese Berechnung wird die die | |
453 Verwendung eines iterativen Optimierungs-Algorithmus wesentlich | |
454 reduziert. Der aktuelle Umgebungsdruck wird laufend in die Berechnung | |
455 einbezogen, die sich ergebene Zeit auf volle 10 Minuten gerundet | |
456 ausgegeben. | |
457 | |
458 | |
459 Entsättigungszeit: | |
460 | |
461 Die Entsättigungzeit ist so definert dass der Rest-Stickstoffdruck in | |
462 allen Geweben maximal 5% des Gewebedrucks aus natürlicher Sättigung | |
463 (Atmung von Luft unter aktuellem Umgebungsdruck) entspricht. Der sich | |
464 ergebene Druckwert wird dann ebenfalls für das Rest-Helium angesetzt. | |
465 Der aktuelle Umgebungsdruck wird laufend in die Berechnung einbezogen, | |
466 die sich ergebene Zeit auf volle 10 Minuten gerundet ausgegeben. | |
467 | |
468 | |
469 pSCR Modus: | |
470 | |
471 Neben dem CCR-Modus wird nun auch der pSCR-Modus vollständig unterstützt, | |
472 inklusive optionalen Sensoren. Die Bedienung und die Menus sind weitest- | |
473 gehend identisch, nur dort wo im CCR-Modus zwischen den Setpoints und | |
474 Sensorbetrieb ausgewählt wird befindet sich im pSCR-Modus die Auswahl | |
475 zwischen Sensorbetrieb und berechneten ppO2-Werten. | |
476 | |
477 | |
478 Handling von Gas 6: | |
479 | |
480 In der bisherigen Implementierung wurden Änderungen an den O2- und He- | |
481 Prozenten des Gases 6 sofort an die Berechnungen für die realen Gewebe | |
482 innerhalb von p2_deco.c übergeben, ohne dass dazu der dedizierte Menu- | |
483 Eintrag welcher die Zusammensetzung von Gas 6 anzeigt explizit ausgewählt | |
484 werden musste. Ebenso wurde das Gas6-Event ausgelöst sowie einer der | |
485 Prozentwerte verstellt wurde. In den Teil von p2_deco.c, der die Deko- | |
486 Berechnungen ausführt, wurden die Werte von Gas 6 jedoch erst übernommen, | |
487 wenn besagter Menu-Eintrag ausgewählt wurde, was in der Praxis zu | |
488 Diskrepanzen führen muss. | |
489 | |
490 In der jetzigen Implementierung werden die O2- und He-Prozentwerte erst | |
491 dann übernommen und als Gas 6 aktiviert, wenn der Gas6-Menueintrag | |
492 explizit ausgewählt wird. Die Übernahme erfolgt sodann konsistent in die | |
493 Berechnung sowohl der realen Gewebe als auch in die Dekoberechnung, und | |
494 auch das Gas6-Event wird erst dann gesetzt. | |
495 | |
496 | |
497 Deko-Kalkulator: | |
498 | |
499 Der Deko-Kalkulator benutzt die Gasverbrauchsraten, die im Deko-Menu, | |
500 Untermenu "2nd Deco Plan" eingestellt sind. Über das Menu "Calculator | |
501 Setup" kann eingestellt werden, welcher CCR Setpoint für die Berechnungen | |
502 benutzt werden soll (nur relevant im CCR Modus) und ob die normalen oder | |
503 die alternativen (aGF) GF-Faktoren für die Dekoberechnung benutzt werden | |
504 sollen (gilt für alle Modi). Der Deko-Kalkulator ermittelt die benötigten | |
505 Gasmengen in Litern (exakt: Barlitern). | |
506 Kommt es aufgrund der benutzen Gase und des Deko-Profils zu einer IBCD, | |
507 dann wird auf der Ergebnisseite eine entsprechende Warnung ausgegeben. | |
508 Erfordert die Dekompression mehr Stopps als im OSTC gespeichert werden | |
509 können, dann wird die Deko-Berechnung abgebrochen und eine "incomplete" | |
510 Warnung ausgegeben. Die angezeigte Aufstiegszeit, der CNS-Wert und die | |
511 ermittelten Gasbedarfe gelten nur bis zum Ende der angezeigten Stopps. | |
512 Achtung: Die tatsächlichen Werte bis zum Erreichen der Oberfläche können | |
513 unter Umständen deutlich größer sein als die angezeigten, da insbesondere | |
514 die letzten Stopps (die nicht mehr berücksichtigt werden konnten) typisch | |
515 am längsten dauern! Dieser Fall sollte jedoch bei Profilen praktisch | |
516 durchführbarer Tauchgängen nicht auftreten. | |
517 | |
518 | |
519 "DECO ZONE" and GF-"Ampel" | |
520 | |
521 Sobald beim Aufstieg mindestens ein Gewebe beginnt abzusättigen erscheint | |
522 auf der Anzeige "DECO ZONE" in grüner Schrift. Ab diesem Zeitpunkt wird | |
523 auch die Warnschwelle für den ppO2 von der normalen Max-Schwelle auf die | |
524 Deco-Max-Schwelle umgestellt. Sollte wieder tiefer getaucht werden und | |
525 keines der Gewebe mehr absättigen, so verschwindet die Anzeige "DECO | |
526 ZONE" wieder und auch die ppO2 Warnschwelle wird wieder auf den normalen | |
527 Max-Wert zurück geschaltet. | |
528 Überschreitet während des Aufenthalts in der DECO ZONE der aktuelle GF- | |
529 Wert den eingestellten Wert für den GF-high, dann erscheint anstatt des | |
530 Textes "DECO ZONE" der aktuelle GF-Wert in gelber Farbe. Erreicht oder | |
531 überschreitet der aktuelle GF-Wert 100%, dann wird dieser in roter Farbe | |
532 angezeigt. | |
533 | |
534 | |
535 Allgemeines: | |
536 | |
537 Der Quellcode von p2_deco.c ist in bezüglich Lesbarkeit und Kommentierung | |
538 überarbeitet, alle Variablen in p2_deco.c und shared_definitions.h sind | |
539 funktional gruppiert und ebenfalls vollständig kommentiert. In diversen | |
540 Assembler-Quellcode-Dateien wurde ebenfalls die Kommentierung verbessert. |