Initial support for McLean Extreme Signed-off by: David McLean Carron <david_de_carron@hotmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
103 lines
7.1 KiB
Plaintext
103 lines
7.1 KiB
Plaintext
|
|
COMPUTER CONFIGURATION
|
|
----------------------
|
|
|
|
The computer configuration (including gradient factors, gasses etc) is read and written as a single, fixed size block.
|
|
|
|
Config section
|
|
--------------
|
|
|
|
Computer configuration and individual dive configurations both start with identical generic configuration sections of length 0x002d bytes
|
|
|
|
0x0000 uint8_t format ZERO
|
|
0x0001 uint8_t gas[0]_pO2 oxygen content [0, 100] (percent)
|
|
0x0002 uint8_t gas[0]_pHe helium content [0, 100] (percent)
|
|
0x0003 uint8_t gas[1]_pO2 oxygen content [0, 100] (percent)
|
|
0x0004 uint8_t gas[1]_pHe helium content [0, 100] (percent)
|
|
0x0005 uint8_t gas[2]_pO2 oxygen content [0, 100] (percent)
|
|
0x0006 uint8_t gas[2]_pHe helium content [0, 100] (percent)
|
|
0x0007 uint8_t gas[3]_pO2 oxygen content [0, 100] (percent)
|
|
0x0008 uint8_t gas[3]_pHe helium content [0, 100] (percent)
|
|
0x0009 uint8_t gas[4]_pO2 oxygen content [0, 100] (percent)
|
|
0x000a uint8_t gas[4]_pHe helium content [0, 100] (percent)
|
|
0x000b uint8_t gas[5]_pO2 oxygen content [0, 100] (percent)
|
|
0x000c uint8_t gas[5]_pHe helium content [0, 100] (percent)
|
|
0x000d uint8_t gas[6]_pO2 oxygen content [0, 100] (percent)
|
|
0x000e uint8_t gas[6]_pHe helium content [0, 100] (percent)
|
|
0x000f uint8_t gas[7]_pO2 oxygen content [0, 100] (percent)
|
|
0x0010 uint8_t gas[7]_pHe helium content [0, 100] (percent)
|
|
0x0011 uint8_t gas_mask bitwise mask of enabled gasses
|
|
0x0012 uint8_t gas_active current gas index
|
|
0x0013 uint8_t setpoint[0] (centibar)
|
|
0x0014 uint8_t setpoint[1] (centibar)
|
|
0x0015 uint8_t setpoint[2] (centibar)
|
|
0x0016 uint8_t setpoint_mask bitwise mask of enabled setpoints
|
|
0x0017 uint8_t setpoint_active current setpoint index
|
|
0x0018 bool metric display units [true: metric, false: imperial]
|
|
0x0019 uint16_t name dive number
|
|
0x001b uint8_t laststop_index last stop depth enumeration [0, 3] (metric: 3m, 4m, 5m, 6m imperial: 10ft, 13ft, 16ft, 18ft)
|
|
0x001c uint16_t Vasc ascent speed limit (millibar/minute)
|
|
0x001e uint16_t Psurf surface pressure (millibar)
|
|
0x0020 uint8_t gfs_index predefined gf enumeration [0, 5] (only used in rec mode)
|
|
0x0021 uint8_t gf lo custom gf low [0, 255] (ignored in rec mode)
|
|
0x0022 uint8_t gf hi custom gf high [0, 255] (ignored in rec mode)
|
|
0x0023 uint8_t density_index predefined water density enumeration [0: 1.000, 1: 1.020, 2: 1.030]
|
|
0x0024 uint16_t ppN2_limit nitrogen partial pressure alert (millibars)
|
|
0x0026 uint16_t ppO2_limit oxygen partial pressure alert (millibars)
|
|
0x0028 uint16_t ppO2_bottomlimit oxygen partial pressure alert (millibars)
|
|
0x002a uint16_t density_limit (units ??)
|
|
0x002c uint8_t operatingmode operating mode enumeration [0: OC rec, 1: OC tec, 2: CC, 3: Gauge]
|
|
|
|
Computer configuration
|
|
----------------------
|
|
|
|
The computer configuration is read and written as a single block of 0x006a bytes formatted thusly:
|
|
|
|
<config section as above>
|
|
0x002d +
|
|
0x0000 int64_t epoch internal adjustment used to set computer time
|
|
0x0008 uint16_t inactive_timeout number of seconds of inactivity before the computer turns itself off
|
|
0x000a uint16_t dive_timeout number of seconds on surface before declaring dive finished
|
|
0x000c uint16_t log_period number of seconds between dive samples
|
|
0x000e uint16_t log_timeout not used
|
|
0x0010 uint16_t brightness_timeout number of seconds of inactivity before the computer dims the screen
|
|
0x0012 uint8_t brightness dimmed screen brightness [0, 10]
|
|
0x0013 uint8_t colorscheme computer color scheme enumeration [0, 12]
|
|
0x0014 uint8_t language computer display language enumeration [0, 1]
|
|
0x0015 uint8_t batterytype user-defined battery type enumeration [0, 4]
|
|
0x0016 uint16_t batterytime computer up time since last battery change
|
|
0x0018 <48 bytes> compass calibration data (cannot be written)
|
|
0x0048 uint8_t button_sensitivity piezo button sensitivity [0, 9]
|
|
0x0049 uint8_t orientation screen and button orientation
|
|
0x004a char[32] diver_name diver name (guaranteed at least one nul terminator)
|
|
0x006a
|
|
|
|
Dive configuration
|
|
------------------
|
|
|
|
Individual dives are read as a single block of 0x002d bytes formatted thusly:
|
|
|
|
<config section as above>
|
|
0x002d +
|
|
0x0000 uint32_t log_start log start (seconds since midnight 1 jan 2000)
|
|
0x0004 uint32_t dive_start dive start (seconds since midnight 1 jan 2000)
|
|
0x0008 uint32_t dive_end dive end (seconds since midnight 1 jan 2000)
|
|
0x000c uint32_t log_end log end (seconds since midnight 1 jan 2000)
|
|
0x0010 uint8_t temp_min minimum ambient temperature (degrees centigrade)
|
|
0x0011 uint8_t temp_max maximum ambient temperature (degrees centigrade)
|
|
0x0012 uint16_t pO2_min minimum inspired oxygen partial pressure during the dive (millibars)
|
|
0x0014 uint16_t pO2_max maximum inspired oxygen partial pressure during the dive (millibars)
|
|
0x0016 uint16_t Pmax maximum ambient pressure during the dive (millibars)
|
|
0x0018 uint16_t Pav average ambient pressure during the dive (millibars)
|
|
0x001a uint32_t ISS integral supersaturation of dive mbar*minutes
|
|
0x001e uint16_t CNS_start CNS at start of dive (percent)
|
|
0x0020 uint16_t CNS_max maximum CNS encountered during the dive (percent)
|
|
0x0022 uint16_t OTU OTU dive
|
|
0x0024 uint16_t tndl shortest NDL calculated during dive (seconds)
|
|
0x0026 uint32_t tdeco longest decompression time calculated during dive (seconds)
|
|
0x002a uint8_t ndeco deepest decompression stop index calculated during dive (seconds)
|
|
0x002b uint16_t tdesat desaturation time calculated at end of dive (seconds)
|
|
0x002d
|
|
|
|
|