+/*
+ * Did I mention how bat-shit crazy divinglog is? The sample
+ * pressures are in PSI. But the tank working pressure is in
+ * bar. WTF^2?
+ *
+ * Crazy stuff like this is why subsurface has everything in
+ * these inconvenient typed structures, and you have to say
+ * "pressure->mbar" to get the actual value. Exactly so that
+ * you can never have unit confusion.
+ */
+static void psi(char *buffer, void *_pressure)
+{
+ pressure_t *pressure = _pressure;
+ union int_or_float val;
+
+ switch (integer_or_float(buffer, &val)) {
+ case FLOAT:
+ pressure->mbar = val.fp * 68.95 + 0.5;
+ break;
+ default:
+ fprintf(stderr, "Crazy Diving Log PSI reading %s\n", buffer);
+ }
+ free(buffer);
+}
+