예제 #1
0
QString get_pressure_string(pressure_t pressure, bool showunit)
{
    if (prefs.units.pressure == units::BAR) {
        double bar = pressure.mbar / 1000.0;
        return QString("%1%2").arg(bar, 0, 'f', 1).arg(showunit ? _("bar") : "");
    } else {
        double psi = mbar_to_PSI(pressure.mbar);
        return QString("%1%2").arg(psi, 0, 'f', 0).arg(showunit ? _("psi") : "");
    }
}
예제 #2
0
/* we want bar - so let's not use our unit functions */
static int convert_pressure(int mbar, double *p)
{
	int decimals = 1;
	double pressure;

	if (output_units.pressure == PSI) {
		pressure = mbar_to_PSI(mbar);
		decimals = 0;
	} else {
		pressure = mbar / 1000.0;
	}

	*p = pressure;
	return decimals;
}
예제 #3
0
static void convert_volume_pressure(int ml, int mbar, double *v, double *p)
{
	double volume, pressure;

	volume = ml / 1000.0;
	if (mbar) {
		if (output_units.volume == CUFT) {
			volume = ml_to_cuft(ml);
			volume *= bar_to_atm(mbar / 1000.0);
		}

		if (output_units.pressure == PSI) {
			pressure = mbar_to_PSI(mbar);
		} else
			pressure = mbar / 1000.0;
	}
	*v = volume;
	*p = pressure;
}
예제 #4
0
void TestUnitConversion::testUnitConversions()
{
	QCOMPARE(IS_FP_SAME(grams_to_lbs(1000), 2.204586), true);
	QCOMPARE(lbs_to_grams(1), 454);
	QCOMPARE(IS_FP_SAME(ml_to_cuft(1000), 0.0353147), true);
	QCOMPARE(IS_FP_SAME(cuft_to_l(1), 28.316847), true);
	QCOMPARE(IS_FP_SAME(mm_to_feet(1000), 3.280840), true);
	QCOMPARE(feet_to_mm(1), (long unsigned int) 305);
	QCOMPARE(to_feet((depth_t){ 1000 }), 3);
	QCOMPARE(IS_FP_SAME(mkelvin_to_C(647000), 373.85), true);
	QCOMPARE(IS_FP_SAME(mkelvin_to_F(647000), 704.93), true);
	QCOMPARE(F_to_mkelvin(704.93), (unsigned long)647000);
	QCOMPARE(C_to_mkelvin(373.85), (unsigned long)647000);
	QCOMPARE(IS_FP_SAME(psi_to_bar(14.6959488), 1.01325), true);
	QCOMPARE(psi_to_mbar(14.6959488), (long)1013);
	QCOMPARE(to_PSI((pressure_t){ 1013 }), (int)15);
	QCOMPARE(IS_FP_SAME(bar_to_atm(1.013), 1.0), true);
	QCOMPARE(IS_FP_SAME(mbar_to_atm(1013), 1.0), true);
	QCOMPARE(mbar_to_PSI(1013), (int)15);
	get_units();
}
예제 #5
0
파일: dive.c 프로젝트: dblchu/subsurface
int get_pressure_units(unsigned int mb, const char **units)
{
	int pressure;
	const char* unit;

	switch (output_units.pressure) {
	case PASCAL:
		pressure = mb * 100;
		unit = _("pascal");
		break;
	case BAR:
		pressure = (mb + 500) / 1000;
		unit = _("bar");
		break;
	case PSI:
		pressure = mbar_to_PSI(mb);
		unit = _("psi");
		break;
	}
	if (units)
		*units = unit;
	return pressure;
}
예제 #6
0
파일: dive.c 프로젝트: Exhora/subsurface
int get_pressure_units(unsigned int mb, const char **units)
{
	int pressure;
	const char* unit;
	struct units *units_p = get_units();

	switch (units_p->pressure) {
	case PASCAL:
		pressure = mb * 100;
		unit = translate("gettextFromC","pascal");
		break;
	case BAR:
		pressure = (mb + 500) / 1000;
		unit = translate("gettextFromC","bar");
		break;
	case PSI:
		pressure = mbar_to_PSI(mb);
		unit = translate("gettextFromC","psi");
		break;
	}
	if (units)
		*units = unit;
	return pressure;
}