subsurface/core
Linus Torvalds 02f158b0c2 Fix the dc sensor index fixup
fixup_dc_sample_sensors() would make sure that any pressure sensor
indexes were in range of the cylinders by just clearing the pressure
data if the sensor index was larger than the number of cylinders in the
dive.

That certainly makes the sensor index data consistent, but at the cost
of just dropping the sensor data entirely.

Dirk had some cases of odd sensor data (probably because of an older
version of subsurface, but possibly due to removing cylinders manually
or because of oddities with the downloader for the Atomic Aquatics
Cobalt dive computer he used), and when re-saving the dive, the pressure
data would magically just get removed due to this.

So rewrite the sensor data fixup to strive very hard to avoid throwing
pressure sensor data away.  The simplest way to do that is to just add
the required number of cylinders, and then people can fix up their dives
manually by remapping the sensor data.

This whole "we clear the pressure data" was at least partly hidden by
two things:

 (1) in the git save format, we don't rewrite dives unless you've
     changed the dive some way, so old dives stay around with old data
     in the save until explicitly changed.

 (2) if you had multiple dive computers, and one dive computer does not
     have any pressure data but another one does, our profile will use
     that "other" dive computer pressure data (because often times you
     might have only one dive computer that is air integrated, but you
     still want to see the tank pressure when you look at other dive
     computers - or you have one dive computer give pressure data for
     your deco bottle, and another for your travel gas etc).

So those two facts hid the reality that we had actually cleared the tank
sensor data for Dirk's dive with the Atomic Aquatics dive computer,
because we'd still see pressure data in the profile, and the git data
would still be the old one.

Until Dirk renumbered his dives, and the data was rewritten.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2022-09-20 09:49:57 -07:00
..
settings core: move floating point functions to own header file 2022-08-30 22:34:38 +02:00
subsurface-qt Allow editing sensors through equipment tab 2022-03-12 11:24:50 -08:00
android.cpp core: move device related functions from display.h to device.h 2022-03-13 15:07:33 -07:00
btdiscovery.cpp Ratio BLE detection fix 2022-08-30 07:20:33 -07:00
btdiscovery.h bluetooth discovery: report more information about progress 2020-09-30 16:40:41 -07:00
checkcloudconnection.cpp Collect and convert git repo data to 'struct git_info' 2022-04-17 22:14:34 -07:00
checkcloudconnection.h cloudstorage: try alternative server if first connection fails 2021-04-19 12:51:01 -07:00
cloudstorage.cpp mobile: add ability to delete cloud account 2022-08-13 14:08:37 -07:00
cloudstorage.h mobile: add ability to delete cloud account 2022-08-13 14:08:37 -07:00
CMakeLists.txt core: move floating point functions to own header file 2022-08-30 22:34:38 +02:00
cochran.c cleanup: split out divecomputer functions from dive.c 2020-10-25 13:59:52 -07:00
cochran.h
color.cpp profile: rename GF_LINE color to DURATION_LINE 2021-05-08 13:40:24 +02:00
color.h cleanup: prevent distracing conversion warnings 2022-03-12 08:28:32 -08:00
compressibility.r
configuredivecomputer.cpp cleanup: use pointer-to-function connect() in ConfigureDiveComputer 2020-10-06 10:38:45 -07:00
configuredivecomputer.h cleanup: use pointer-to-function connect() in ConfigureDiveComputer 2020-10-06 10:38:45 -07:00
configuredivecomputerthreads.cpp
configuredivecomputerthreads.h
connectionlistmodel.cpp core/bt: ensure that BT/BLE addresses with name sort first 2020-05-15 04:05:06 +03:00
connectionlistmodel.h
datatrak.c cleanup: pass all parameters to weightsystem_t 2022-01-02 13:51:07 -08:00
datatrak.h
deco.c planner: pass in_planner argument to decoMode() 2021-02-17 07:26:55 -08:00
deco.h planner: pass in_planner argument to decoMode() 2021-02-17 07:26:55 -08:00
device.cpp cleanup: remove obsolete includes in core/device.cpp 2022-01-02 13:51:07 -08:00
device.h core: move device related functions from display.h to device.h 2022-03-13 15:07:33 -07:00
devicedetails.cpp
devicedetails.h
dive.c Fix the dc sensor index fixup 2022-09-20 09:49:57 -07:00
dive.h Prefer real data over planned 2022-08-25 13:38:12 -07:00
divecomputer.c core: add a function to test for sensors of a given cylinder 2021-09-03 13:35:28 -07:00
divecomputer.h Clean up divecomputer 'device' handling 2021-08-18 13:22:02 -07:00
divefilter.cpp build-system: make map support its own thing 2022-04-18 07:24:38 +02:00
divefilter.h filter: provide function that returns all shown dives 2020-12-29 08:34:09 -08:00
divelist.c cleanup: remove unused function set_dive_nr_for_current_dive() 2022-08-28 13:34:13 -07:00
divelist.h cleanup: remove unused function set_dive_nr_for_current_dive() 2022-08-28 13:34:13 -07:00
divelogexportlogic.cpp cleanup: remove unused variable 2022-09-03 13:49:02 -07:00
divelogexportlogic.h
divemode.h
divesite-helper.cpp
divesite.c core: avoid crash when reading corrupted git data 2022-02-28 14:31:19 -08:00
divesite.h cleanup: move dive_table from dive.h to divelist.h 2020-05-01 09:42:31 -07:00
divesitehelpers.cpp cleanup: replace QRegExp with QRegularExpression 2021-10-27 12:33:20 -07:00
divesitehelpers.h [Bug #2934] Geo Lookup - support for remote dive sites 2020-09-05 17:34:15 +02:00
downloadfromdcthread.cpp Re-do the libdivecomputer fingerprint save/load code 2021-09-19 16:51:46 -07:00
downloadfromdcthread.h Re-do the libdivecomputer fingerprint save/load code 2021-09-19 16:51:46 -07:00
equipment.c core: fold display.h into profile.h 2022-03-13 15:07:33 -07:00
equipment.h cylinders: add cylinder before hidden cylinders 2021-12-13 11:54:24 -08:00
errorhelper.c clean up logging, and add error reports to it too 2022-08-31 13:58:34 -07:00
errorhelper.h
event.c cleanup: break out event-related code into event.[c|h] 2020-10-25 13:59:52 -07:00
event.h cleanup: break out event-related code into event.[c|h] 2020-10-25 13:59:52 -07:00
exif.cpp cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
exif.h
extradata.h cleanup: split out divecomputer functions from dive.c 2020-10-25 13:59:52 -07:00
file.c git access: add proper cleanup function for git_info 2022-04-22 08:28:17 -07:00
file.h devices: create device nodes in parsers 2020-10-24 09:51:37 -07:00
filterconstraint.cpp core: replace dive master by dive guide 2022-02-15 09:35:43 -08:00
filterconstraint.h filter: add tank size filter constraint 2020-10-03 10:29:15 -07:00
filterpreset.cpp filter: remove filter_preset_table_t 2020-10-17 09:04:20 -07:00
filterpreset.h filter: remove filter_preset_table_t 2020-10-17 09:04:20 -07:00
format.cpp core: C++-ify membuffer 2021-07-23 11:22:43 -07:00
format.h
fulltext.cpp filter: normalize text of fulltext search to base letters 2022-07-08 11:38:44 -07:00
fulltext.h fulltext: remember original query 2020-09-29 16:13:03 -07:00
gas-model.c Don't access gasmix.o2.fraction 2021-10-01 08:50:36 -07:00
gas.c cleanup: fix narrowing type conversion warning 2022-01-02 13:51:07 -08:00
gas.h Don't access gasmix.o2.fraction 2021-10-01 08:50:36 -07:00
gaspressures.c core: fold display.h into profile.h 2022-03-13 15:07:33 -07:00
gaspressures.h cleanup: constify populate_pressure_information() 2021-01-20 10:01:50 -08:00
gettext.h
gettextfromc.cpp
gettextfromc.h
git-access.c git access: add proper cleanup function for git_info 2022-04-22 08:28:17 -07:00
git-access.h git access: add proper cleanup function for git_info 2022-04-22 08:28:17 -07:00
globals.cpp core: add class that collects global objects to be deleted on exit 2022-03-16 13:06:06 -07:00
globals.h core: add class that collects global objects to be deleted on exit 2022-03-16 13:06:06 -07:00
imagedownloader.cpp core: add "transparent" parameter to renderSVGIcon 2021-01-01 21:10:10 +01:00
imagedownloader.h
import-cobalt.c cleanup: split out divecomputer functions from dive.c 2020-10-25 13:59:52 -07:00
import-csv.c core: use free_dive() to free dive 2022-08-22 09:34:25 -07:00
import-csv.h parser: add device_table to parser state 2020-10-24 09:51:37 -07:00
import-divinglog.c core: replace dive master by dive guide 2022-02-15 09:35:43 -08:00
import-seac.c Handle Mulitple Seac Computers colliding during import 2022-05-12 11:07:03 -07:00
import-shearwater.c cleanup: remove system includes from dive.c 2020-10-25 13:59:52 -07:00
import-suunto.c DM5 import: Add dive mode support (OC and CCR) 2022-01-31 09:35:21 -08:00
interpolate.h cleanup: move interpolate inline function to its own header file 2020-10-25 13:59:52 -07:00
ios.cpp core: move device related functions from display.h to device.h 2022-03-13 15:07:33 -07:00
libdivecomputer.c core: move floating point functions to own header file 2022-08-30 22:34:38 +02:00
libdivecomputer.h Re-do the libdivecomputer fingerprint save/load code 2021-09-19 16:51:46 -07:00
liquivision.c core: use free_dive() to free dive 2022-08-22 09:34:25 -07:00
load-git.c Use the right type for sanitize_sensor_id() 2022-09-20 09:41:35 -07:00
macos.c core: move device related functions from display.h to device.h 2022-03-13 15:07:33 -07:00
membuffer.cpp core: C++-ify membuffer 2021-07-23 11:22:43 -07:00
membuffer.h core: C++-ify membuffer 2021-07-23 11:22:43 -07:00
metadata.cpp cleanup: fix SkipEmptyParts warning for mobile 2021-11-24 10:53:26 -08:00
metadata.h
metrics.cpp core: remove DPR from IconMetrics class 2021-12-17 11:54:23 -08:00
metrics.h core: remove DPR from IconMetrics class 2021-12-17 11:54:23 -08:00
namecmp.h Qt6: deal with changes from QStringRef to QStringView 2022-03-12 08:28:32 -08:00
ostctools.c cleanup: move sort_dive_table declaration to divetable.h 2020-10-25 13:59:52 -07:00
parse-gpx.cpp Qt6: deal with changes from QStringRef to QStringView 2022-03-12 08:28:32 -08:00
parse-gpx.h cleanup: only include QString in desktop-widgets/importgps.h 2020-05-01 09:42:31 -07:00
parse-xml.c core: move floating point functions to own header file 2022-08-30 22:34:38 +02:00
parse.c Use the right type for sanitize_sensor_id() 2022-09-20 09:41:35 -07:00
parse.h core: load and save fingerprints to XML 2021-11-12 12:45:22 -08:00
picture.c core/picture: don't compile all on mobile 2020-11-19 17:18:33 -08:00
picture.h core: move picture-related function from dive.c to picture.c 2020-05-06 13:58:09 -07:00
pictureobj.cpp media: add small C++ helper describing a picture struct 2020-05-06 13:58:09 -07:00
pictureobj.h media: add small C++ helper describing a picture struct 2020-05-06 13:58:09 -07:00
planner.c Planner: Correctly compute CNS and OTU for bailout segments 2021-08-19 10:58:08 -07:00
planner.h cleanup: move DECOTIMESTEP from dive.h to planner.h 2020-05-01 09:42:31 -07:00
plannernotes.c planner: pass in_planner argument to decoMode() 2021-02-17 07:26:55 -08:00
pref.c Added option to choose between different depth grid quantization schema. 2022-05-21 17:29:40 -07:00
pref.h Map Short Names - add preference setting 2022-08-21 18:53:35 -07:00
profile.c Use 10ft as deco step size in imperial units in profile 2022-05-06 14:17:29 -07:00
profile.h core: fold display.h into profile.h 2022-03-13 15:07:33 -07:00
qt-ble.cpp Qt6: use the newer createCentral() API 2022-03-12 08:28:32 -08:00
qt-ble.h Qt6: Bluetooth API changes 2022-03-12 08:28:32 -08:00
qt-gui.h mobile/UI: remember the system default font size 2021-01-19 12:35:29 -08:00
qt-init.cpp translations: fix Portuguese parent translation 2022-03-27 17:11:05 -07:00
qthelper.cpp core: allow separators ,; after degree-style coord 2022-03-27 16:37:10 -07:00
qthelper.h clean up logging, and add error reports to it too 2022-08-31 13:58:34 -07:00
qtserialbluetooth.cpp Use QtBluetooth enums from their namespace 2021-03-12 08:41:31 -08:00
sample.c cleanup: split out divecomputer functions from dive.c 2020-10-25 13:59:52 -07:00
sample.h core: use int16_t for sensor-id 2021-07-23 11:16:00 -07:00
save-git.c git access: save to local repository before doing remote access 2022-04-22 08:28:17 -07:00
save-html.c core: replace dive master by dive guide 2022-02-15 09:35:43 -08:00
save-html.h
save-profiledata.c core: fold display.h into profile.h 2022-03-13 15:07:33 -07:00
save-profiledata.h
save-xml.c git access: add proper cleanup function for git_info 2022-04-22 08:28:17 -07:00
selection.cpp selection: when changing current dive make sure it is selected 2020-09-20 18:23:57 -07:00
selection.h selection: create global single_selected_trip() function 2020-05-03 15:02:21 -07:00
serial_ftdi.c core: fix libdivecomputer dc_custom callbacks structures 2020-06-18 09:05:13 -07:00
serial_usb_android.cpp android/usb: remove "autoselect driver" option for unknown VID/PIDs 2020-03-16 07:58:20 -07:00
serial_usb_android.h android/usb: pass in the UsbDevice when downloading 2020-03-16 07:58:20 -07:00
sha1.c
sha1.h
ssrf.h core: remove LOG_STP from mobile 2019-12-13 07:04:00 -05:00
statistics.c cleanup: move minute formating to format-string.cpp 2022-09-03 13:49:02 -07:00
statistics.h cleanup: move minute formating to format-string.cpp 2022-09-03 13:49:02 -07:00
string-format.cpp cleanup: move minute formating to format-string.cpp 2022-09-03 13:49:02 -07:00
string-format.h cleanup: move minute formating to format-string.cpp 2022-09-03 13:49:02 -07:00
strndup.h
strtod.c
structured_list.h media: use table instead of linked list for media 2020-05-06 13:58:09 -07:00
subsurface-float.h core: move floating point functions to own header file 2022-08-30 22:34:38 +02:00
subsurface-string.h core: move floating point functions to own header file 2022-08-30 22:34:38 +02:00
subsurface-time.h cleanup: const-ify utc_mktime() 2020-12-29 08:34:09 -08:00
subsurfacestartup.c git access: add proper cleanup function for git_info 2022-04-22 08:28:17 -07:00
subsurfacestartup.h cleanup: move application flags to core/subsurfacehelper.h 2020-10-25 13:59:52 -07:00
subsurfacesysinfo.cpp cleanup: refactor subsurfacesysinfo.cpp 2020-10-27 16:18:09 -07:00
subsurfacesysinfo.h cleanup: refactor subsurfacesysinfo.cpp 2020-10-27 16:18:09 -07:00
table.h media: create sort_picture_table function via macro 2020-05-06 13:58:09 -07:00
tag.c Don't expose 'detach_buffer()' to membuffer users 2019-10-27 12:42:54 -07:00
tag.h
taxonomy.c cleanup: make taxonomy_index_for_category() local to taxonomy.c 2020-09-06 12:59:54 -07:00
taxonomy.h cleanup: make taxonomy_index_for_category() local to taxonomy.c 2020-09-06 12:59:54 -07:00
time.c trivial: remove obscure division-assignment operator 2022-08-01 11:30:53 -07:00
timer.c Add timestamps to libdivecomputer.log 2020-03-10 17:42:54 -07:00
timer.h Add timestamps to libdivecomputer.log 2020-03-10 17:42:54 -07:00
trip.c cleanup: fix over-eager Coverity warnings 2020-10-25 13:58:03 -07:00
trip.h selection: add selection flag for trips 2020-05-03 15:02:21 -07:00
uemis-downloader.c core: use free_dive() to free dive 2022-08-22 09:34:25 -07:00
uemis.c Maintain sensor index for uemis and liquivision 2022-03-12 11:26:00 -08:00
uemis.h
units.c core: return floating point from to_PSI() functions 2021-12-17 11:54:23 -08:00
units.h Deal with negative variation times 2022-06-04 14:19:05 -07:00
unix.c core: move device related functions from display.h to device.h 2022-03-13 15:07:33 -07:00
uploadDiveLogsDE.cpp Qt6: update the connect calls for QNetworkReply 2022-04-18 07:24:39 +02:00
uploadDiveLogsDE.h export: clean up temp file after divelogs.de upload 2021-08-06 11:05:06 -07:00
uploadDiveShare.cpp Qt6: update the connect calls for QNetworkReply 2022-04-18 07:24:39 +02:00
uploadDiveShare.h core: divehare change slot names 2019-12-12 10:10:01 -05:00
version.c
version.h
videoframeextractor.cpp
videoframeextractor.h
webservice.h
windows.c core: move device related functions from display.h to device.h 2022-03-13 15:07:33 -07:00
windowtitleupdate.cpp
windowtitleupdate.h
worldmap-options.h
worldmap-save.c cleanup: move dive_table from dive.h to divelist.h 2020-05-01 09:42:31 -07:00
worldmap-save.h Cleanup: remove const bool parameters and return types 2020-02-09 12:13:18 -08:00
xmlparams.cpp core: add a small helper-struct that keeps track of xml-parameters 2020-10-23 18:17:02 -07:00
xmlparams.h core: add a small helper-struct that keeps track of xml-parameters 2020-10-23 18:17:02 -07:00
xmp_parser.cpp cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
xmp_parser.h