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. |
