Mercurial > public > mk2
diff code_part1/OSTC_code_c_part2/p2_deco.c @ 755:6724df41d4f1
CHANGE: Remove CF55 from decolist
TODO: show gas change stops different from decostops
author | heinrichsweikamp |
---|---|
date | Tue, 22 Oct 2013 10:16:54 +0200 |
parents | 7e7e98247a8a |
children | 50ed645c251d |
line wrap: on
line diff
--- a/code_part1/OSTC_code_c_part2/p2_deco.c Mon Oct 21 15:39:44 2013 +0200 +++ b/code_part1/OSTC_code_c_part2/p2_deco.c Tue Oct 22 10:16:54 2013 +0200 @@ -88,6 +88,7 @@ // 2013/03/05: [jDG] Should vault low_depth too. // 2013/03/05: [jDG] Wrobell remark: ascent_to_first_stop works better with finer steps (2sec). // 2013/05/08: [jDG] A. Salm remark: NOAA tables for CNS are in ATA, not bar. +// 2013/10/22: [mH] Remove CF55 stuff // // TODO: // + Allow to abort MD2 calculation (have to restart next time). @@ -213,7 +214,6 @@ static unsigned char sim_gas_last_depth; // Depth of last used gas, to detected a gas switch. static unsigned char sim_gas_last_used; // Number of last used gas, to detected a gas switch. -static unsigned short sim_gas_delay; // Time of gas-switch-stop ends [min on dive]. static unsigned short sim_dive_mins; // Simulated dive time. static float calc_N2_ratio; // Simulated (switched) nitrogen ratio. static float calc_He_ratio; // Simulated (switched) helium ratio. @@ -884,29 +884,12 @@ // If there is a better gas available if( switch_deco ) { - unsigned char delay; - delay = read_custom_function(55); - assert( !sim_gas_last_depth || sim_gas_last_depth > switch_deco ); - // Should restart gas-switch delay only when gas do changes... - assert( sim_gas_delay <= sim_dive_mins ); - sim_gas_last_depth = switch_deco; sim_gas_last_used = switch_last; - sim_gas_delay = delay - + sim_dive_mins; - - if( delay ) - { - temp_depth_limit = switch_deco; - return 1; - } - else - return 0; + return 0; } - - sim_gas_delay = 0; return 0; } @@ -1046,7 +1029,6 @@ { static unsigned char backup_gas_used = 0; static unsigned char backup_gas_depth = 0; - static unsigned char backup_gas_delay = 0; calc_hauptroutine_data_input(); @@ -1075,7 +1057,6 @@ // Reset gas switch history. backup_gas_used = sim_gas_last_used = 0; backup_gas_depth = sim_gas_last_depth = 0; - backup_gas_delay = sim_gas_delay = 0; sim_dive_mins = 0; break; @@ -1106,7 +1087,6 @@ backup_gas_used = sim_gas_last_used; // And save for later simu steps. backup_gas_depth = sim_gas_last_depth; // And save for later simu steps. - backup_gas_delay = sim_gas_delay; sim_ascent_to_first_stop(); @@ -1124,7 +1104,6 @@ { sim_gas_last_used = backup_gas_used; sim_gas_last_depth = backup_gas_depth; - sim_gas_delay = backup_gas_delay; } break; } @@ -1270,17 +1249,14 @@ if( tmr3() & (512*32) ) break; - // Do not ascent while doing a gas switch ? - if( sim_gas_delay <= sim_dive_mins ) - { - if( calc_nextdecodepth() ) + if( calc_nextdecodepth() ) { if( temp_depth_limit == 0 ) goto Surface; //---- We hit a stop at temp_depth_limit --------------------- temp_deco = temp_depth_limit * METER_TO_BAR // Convert to relative bar, - + pres_surface; // To absolute. + + pres_surface; // To absolute. if( !update_deco_table() ) // Adds a one minute stops. goto Surface; // Deco table full: abort... } @@ -1299,18 +1275,9 @@ calc_ascenttime(); char_O_deco_status = 0; // calc nullzeit next time. char_O_deco_last_stop = 0; // Surface reached (to animate menu) - return; + return; } } - } - else - { - // Note: if loop==0, temp_depth_limit might not be already set here. - temp_depth_limit = (int)(0.5 + (temp_deco - pres_surface) * BAR_TO_METER); - if( !update_deco_table() ) // Just pass one minute. - goto Surface; // Deco table full: abort... - } - //---- Then update tissue -------------------------------------------- sim_dive_mins++; // Advance simulated time by 1 minute. gas_switch_set(); // Apply any simulated gas change, once validated. @@ -1347,10 +1314,6 @@ if(char_O_deco_status & 4) sim_extra_time(); - // Do we have a gas switch going on ? - if( sim_gas_delay > sim_dive_mins ) - return; - //---- Loop until first stop, gas switch, or surface is reached ---------- for(;;) { @@ -1760,8 +1723,6 @@ if( internal_deco_depth[x] == 0 ) { internal_deco_depth[x] = temp_depth_limit; - if( sim_gas_delay >= sim_dive_mins ) - internal_deco_depth[x] |= 0x80; internal_deco_time[x] = 1; return 1; @@ -2229,7 +2190,6 @@ // Backup state machine backup_gas_last_depth = sim_gas_last_depth; backup_gas_last_used = sim_gas_last_used; - backup_gas_delay = sim_gas_delay; backup_dive_mins = sim_dive_mins; backup_actual_ppO2 = char_I_actual_ppO2; @@ -2322,7 +2282,6 @@ char_I_step_is_1min = 0; sim_gas_last_depth = backup_gas_last_depth; sim_gas_last_used = backup_gas_last_used; - sim_gas_delay = backup_gas_delay; sim_dive_mins = backup_dive_mins; char_I_actual_ppO2 = backup_actual_ppO2; }