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.