6个版本

0.3.2 2021年1月25日
0.3.1 2021年1月25日
0.2.2 2021年1月18日
0.2.1 2020年9月14日
0.1.0 2020年7月25日

#87 in #decompression

MIT 许可证

57KB
995 代码行,不包括注释

capra

潜水规划库。目前支持混合气体开放回路潜水。


lib.rs:

潜水规划库

快速示例

一个快速示例,展示了如何使用此库

use capra::modes::open_circuit::OpenCircuitParams;
use capra_core::{common, deco};
use time::Duration;
use capra::modes::OpenCircuit;
use capra::DivePlan;
use capra_core::deco::zhl16::tissue_constants::TissueConstants;
use capra_core::deco::zhl16::variant::Variant::B;
let air = common::Gas::new(21, 0, 79).unwrap();

// Make a new ZHL16 decompression model
let zhl16 = deco::zhl16::ZHL16::new(
    deco::Tissue::default(),
    TissueConstants::new_by_variant(B),
    50,
    70,
);

// Make a dive segment
let dive_segment = common::DiveSegment::new(
    common::SegmentType::DiveSegment,
    45,
    45,
    Duration::minutes(60),
    -10,
    20,
)
.unwrap();

let deco_gases = vec![(air, None)];
let segments = vec![(dive_segment, air)];
let parameters = OpenCircuitParams {
    ascent_rate: -10,
    descent_rate: 20,
    metres_per_bar: 10000.0 / common::DENSITY_SALTWATER,
    sac_bottom: 20,
    sac_deco: 15
};
let open_circuit = OpenCircuit::new(
    zhl16,
    &deco_gases,
    &segments,
    parameters
);

let results = open_circuit.plan();

for (segment, gas) in results.total_segments() {
    println!("{:?}, {:?}", segment, gas);
}

for (gas, qty) in results.gas_used() {
    println!("{:?}: {}", gas, qty);
}

依赖项

~2.5MB
~55K 额外代码行数