mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Do not try to import SLG file format 1000
This is the oldest format I know for SmartTrak databases. Probably the first one. It just supports one tank, only air/nitrox and the format of the database is dramatically different from the other two formats known to me. It has different tables, and the "Dives" table differs a lot from newer versions. I don't think it's worth to give support for this format, as newer versions of SmartTrak software automatically comvert the oldest format to newer one. Thus, finding a lot of this format files is not expected except from some corner cases of users who had not updated their SmartTrak software for years now. Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
This commit is contained in:
parent
e3a32f7e92
commit
a8e3cd97cd
1 changed files with 14 additions and 4 deletions
|
@ -52,12 +52,15 @@ static void smtk_free(char **array, int count)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* There are AFAIK two versions of Smarttrak. The newer one supports trimix and up
|
* There are AFAIK three versions of Smarttrak DB format. The newer one supports trimix and up
|
||||||
* to 10 tanks. The other one just 3 tanks and no trimix but only nitrox. This is a
|
* to 10 tanks. The intermediate one just 3 tanks and no trimix but only nitrox. This is a
|
||||||
* problem for an automated parser which has to support both formats.
|
* problem for an automated parser which has to support both formats.
|
||||||
* In this solution I made an enum of fields with the same order they would have in
|
* In this solution I made an enum of fields with the same order they would have in
|
||||||
* a smarttrak db, and a tiny function which returns the number of the column where
|
* a smarttrak db, and a tiny function which returns the number of the column where
|
||||||
* a field is expected to be, taking into account the different db formats .
|
* a field is expected to be, taking into account the different db formats.
|
||||||
|
* The older version (version 10000), just one tank (nitrox) but it's critically different from
|
||||||
|
* the newer version, not only in the Dives table format, but it has different tables. We won't
|
||||||
|
* give support for this oldest DB format.
|
||||||
*/
|
*/
|
||||||
enum field_pos {IDX = 0, DIVENUM, _DATE, INTIME, INTVAL, DURATION, OUTTIME, DESATBEFORE, DESATAFTER, NOFLYBEFORE,
|
enum field_pos {IDX = 0, DIVENUM, _DATE, INTIME, INTVAL, DURATION, OUTTIME, DESATBEFORE, DESATAFTER, NOFLYBEFORE,
|
||||||
NOFLYAFTER, NOSTOPDECO, MAXDEPTH, VISIBILITY, WEIGHT, O2FRAC, HEFRAC, PSTART, PEND, AIRTEMP,
|
NOFLYAFTER, NOSTOPDECO, MAXDEPTH, VISIBILITY, WEIGHT, O2FRAC, HEFRAC, PSTART, PEND, AIRTEMP,
|
||||||
|
@ -980,8 +983,15 @@ void smartrak_import(const char *file, struct divelog *log)
|
||||||
smtk_build_list(mdb_clon, "Surface", surface_list);
|
smtk_build_list(mdb_clon, "Surface", surface_list);
|
||||||
smtk_build_buddies(mdb_clon, buddy_list);
|
smtk_build_buddies(mdb_clon, buddy_list);
|
||||||
|
|
||||||
/* Check Smarttrak version (different number of supported tanks, mixes and so) */
|
/* Check Smarttrak version (different number of supported tanks, mixes and so).
|
||||||
|
* File format 10000 is quite different from other formats, just drop it and give
|
||||||
|
* a tip to the user.
|
||||||
|
*/
|
||||||
smtk_version = atoi(smtk_ver[0]);
|
smtk_version = atoi(smtk_ver[0]);
|
||||||
|
if (smtk_version == 10000) {
|
||||||
|
report_error("[Error]\t File %s is SmartTrak file format %d which is not supported. Please load the file in a newer SmartTrak software version and upgrade it.", file, smtk_version);
|
||||||
|
return;
|
||||||
|
}
|
||||||
tanks = (smtk_version < 10213) ? 3 : 10;
|
tanks = (smtk_version < 10213) ? 3 : 10;
|
||||||
|
|
||||||
mdb_table = smtk_open_table(mdb, "Dives", bound_values, bound_lens);
|
mdb_table = smtk_open_table(mdb, "Dives", bound_values, bound_lens);
|
||||||
|
|
Loading…
Add table
Reference in a new issue