.. _dipplanner_configfile: dipplanner config file documentation ==================================== In config files, you can * change all the dipplanner parameters (a little bit more than in command line) * specify repetitive dives (in command-line, only one dive can be specified) You may provide more than one config file in dipplanner command-line: it's up to you to organise the config like as you wish. For example, you MAY create one config file for your dive parameters and another config file for your set of repetitive dives. tanks ----- At first you'll need to specify all the tanks you're planning to use in the entire mission. Later, for each dive, you'll only select one or several tanks previously defined Tanks definitions are specific sections in the config file, in the form: :: [tank:NAME] where NAME represent the name you've choosen for the tank. .. warning:: NAME of tanks MUST be unique in the entire mission. .. hint:: you can provide in the config file as many **[tank:NAME]** sections as you want. to define each tank, you can provide one of the following options: .. cmdoption:: f_o2 = (float) fraction of oxygen in the tank. Between 0.0 and 1.0 .. cmdoption:: f_he = (float) fraction of helium in the tank. Between 0.0 and 1.0 .. cmdoption:: f_n2 = (float) fraction of nitrogen in the tank. Between 0.0 and 1.0 .. note:: you're only needed to specify two of the 3 gases to define the tank dipplanner will automatically complete the fraction of the third gas. .. note:: None of the previous fraction of gas is mandatory. By default, dipplanner will create an Air Tank (f_o2=0.21, f_he=0.0, f_n2=0.79) .. cmdoption:: volume = (float) Volume of the tank in liter .. cmdoption:: pressure = (float) Pressure of the tank in bar .. cmdoption:: rule = Minimum gas rule (str) quantity of gas that should remain in the tank after the dive There two format for minimum gas rule: * quantity of bar that should remain in the tank: format: "[0-9]+b" ex: "50b": it should remain 50 bar in the tank at the end of the dive * "fraction rule" (like `the rule of third in cave diving `_) format: "1/[0-9]" ex1: "1/3" : 1/3 of the tank to go in, 1/3 of the tank to go back and it should remain 1/3 of the tank at the end of the dive ex2: "1/6" : 1/6 of the tank to go in, 1/6 of the tank to go back and it should remain 2/3 of the tank at the end of the dive .. cmdoption:: max_ppo2 = (float) max_ppo2 allowed for this tank use. .. note:: if not provided, dipplanner will calculte the value automatically .. cmdoption:: mod = (float) maximum operating depth allowed for this tank use. .. note:: if not provided, dipplanner will calculte the value automatically Example: Mission with two tanks: 12l tank filled with 200b or air. It should remain 50b at the end of the dive. and 12l tank filled with Nitrox80. It should remain 30b at the end of the dive. .. code-block:: ini [tank:airtank] f_o2=0.21 f_he=0 volume=12 pressure=230 rule=50b [tank:decotank] f_o2=0.80 f_he=0 volume=12 pressure=200 rule=30b dive profiles ------------- Dive profiles are specific sections in the config file, in the form: :: [dive:NAME] where NAME represent a name for the dive (it can be a number if you want). The dives whill be processed in croissant order To define a dive, you MUST specify which tank(s) this specific dive will use. The Tank(s) must be defined before in the [tank:XXX] sections. .. hint:: you can provide in the config file as many **[dive:NAME]** sections as you want. the [dive:XXXX] sections use the following options: .. cmdoption:: tanks = list of the tank name you'll be using during this dive. The names MUST match the name provided in the [tank:NAME] sections. ex: :: tanks = airtank, decotank in this example, the dive will use both airtank and decotank .. cmdoption:: surface_interval = surface interval (in seconds) for repetitive dives, you can specify the surface time between the previous dive and this dive .. cmdoption:: automatic_tank_refill = If 'automatic_tank_refill' is set to True, the tank will be full before the dive. If set to False, it'll use the remaining gas from last dive Default: true .. note:: if you use this parameter inside a [dive:NAME] section, it will override the global paramater for this specific Dive. Example: do not refill tank before this dive :: automatic_tank_refill = false segments -------- A segment belongs to a dive, so each segment section MUST refer to a dive. The section structure must respect the following pattern: :: [dive:DIVENAME:segment:SEGNAME] dive:DIVENAME refers to the previously defined [dive:NAME] section .. hint:: you can provide in the config file as many **[dive:NAME:segment:SEGNAME]** sections as you want. SEGNAME is a name you choose for a segment, it can also be numbers segment sections uses the following options: .. cmdoption:: depth = (float) in meter .. cmdoption:: time = (float) in seconds (operators are allowed like: '30 * 60') duration of the segment (in seconds) .. cmdoption:: tank = (str) name of the tank (the 'tank_name' specified in -t option or in config files) .. cmdoption:: set_point = (float) 0.0 if OC, setpoint if CCR .. note:: If you specify a setpoint > 0.0, the dive will automatically switch in CCR mode. Example: 20 min at 30 meter using tank: airtank in OC mode .. code-block:: ini [dive:1:segment:bottom] depth = 30 time = 20*60 tank = airtank set_point = 0.0 20 min at 30 meter using tank: airtank in OC mode and then 25 min at 20 meter using tank: airtank in OC mode .. code-block:: ini [dive:1:segment:1] depth = 30 time = 20*60 tank = airtank set_point = 0.0 [dive:1:segment:2] depth = 20 time = 25*60 tank = airtank set_point = 0.0 Examples ^^^^^^^^ Full example with two subsequent dives, with a surface interval of 1h30 between the two .. code-block:: ini [tank:airtank] f_o2=0.21 f_he=0 volume=15 pressure=230 rule=50b [tank:decotank] f_o2=0.80 f_he=0 volume=12 pressure=230 rule=50b [dive:1] tanks = airtank, decotank [dive:1:segment:bottom] depth = 30 time = 20*60 tank = airtank set_point = 0.0 [dive:2] surface_interval = 90*60 automatic_tank_refill = true tanks = airtank [dive:2:segment:bottom] depth = 20 time = 30*60 tank = airtank set_point = 0.0 Controling the output --------------------- It's done via the section: :: [output] .. cmdoption:: template =