aboutsummaryrefslogtreecommitdiffstats
path: root/uemis.c
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2011-10-03 09:55:17 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2011-10-03 09:58:24 -0700
commit09ef299044246890d6e257593e4f5742191c13bb (patch)
treecdaa3f1174a3784c966cee11f4b690e85fb30352 /uemis.c
parentc15f798a85db53dae404a9113266a4d2bc72fbc6 (diff)
downloadsubsurface-09ef299044246890d6e257593e4f5742191c13bb.tar.gz
Add working pressure to uemis tank data
Turns out they use 202.6bar as default working pressure. WTF? Also I had misunderstood the way I should record the pressure internally (which happened to work since I didn't set the working pressure). This is now fixed as well. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'uemis.c')
-rw-r--r--uemis.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/uemis.c b/uemis.c
index 1be48f33e..46878e22a 100644
--- a/uemis.c
+++ b/uemis.c
@@ -146,10 +146,15 @@ void uemis_parse_divelog_binary(char *base64, void *datap) {
gasoffset = 4;
for (i = 0; i < template; i++) {
float volume = *(float *)(data+116+25*(gasoffset + i)) * 1000.0;
- /* uemis always assumes a working pressure of 3000psi / 206bar - even though that's wrong */
- /* I also think that the unit that it stores (cuft for me) might change with SDA settings */
- // dive->cylinder[i].type.size.mliter = volume * 206.84 / 28.317;
- dive->cylinder[i].type.size.mliter = volume * 200 / 28.317;
+ /* uemis always assumes a working pressure of 202.6bar (!?!?) - I first thought
+ * it was 3000psi, but testing against all my dives gets me that strange number.
+ * Still, that's of course completely bogus and shows they don't get how
+ * cylinders are named in non-metric parts of the world...
+ * we store the incorrect working pressure to get the SAC calculations "close"
+ * but the user will have to correct this manually
+ */
+ dive->cylinder[i].type.size.mliter = volume;
+ dive->cylinder[i].type.workingpressure.mbar = 202600;
dive->cylinder[i].gasmix.o2.permille = *(uint8_t *)(data+120+25*(gasoffset + i)) * 10 + 0.5;
dive->cylinder[i].gasmix.he.permille = 0;
}