summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2011-09-04Clean up 'fixup_dive()' a bitGravatar Linus Torvalds
We don't want to override potentially more exact values for water temperature etc either. The sample save interval may be longer than some internally kept state of key per-dive values like that. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-04Generate date string for the dive list dynamicallyGravatar Linus Torvalds
.. and sort based on the 'time_t' value itself. This allows us to use a more compact date format that doesn't need to sort alphabetically, because sorting by date is always based on the date value. So we can use just a two-digit year, and skip the seconds, to keep the column narrow, while still sorting correctly. Also, "Depth" is a nice header string, but it is wider than the column itself, which makes the whole column wider than necessary. So put the units in the header instead of in the string, keeping things narrow. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-04Merge branch 'ui-improvements' of https://github.com/nathansamson/diveclogGravatar Linus Torvalds
* 'ui-improvements' of https://github.com/nathansamson/diveclog: Split the dive list in columns. Columns are sortable now (name = date, depth, duration) Remove the redundant frames in the notebook. Closes #9 Use a pane so the dive list can be made wider or smaller to the users wishes
2011-09-04Merge branch 'compiler-warning' of https://github.com/nathansamson/diveclogGravatar Linus Torvalds
* 'compiler-warning' of https://github.com/nathansamson/diveclog: Removed the unused startemp and enttemp calculations. This fixes a compiler warning too. Fix up trivial conflict in dive.c due to the temperature simplification (commit 9961c7f89ce6: "Remove redundant temperature readings").
2011-09-04Add placeholder for cylinder type descriptionGravatar Linus Torvalds
So we don't want to save working pressure, but cylinder type knowledge would be lovely and useful. And we can probably make a good initial guess, or at least let people fill it in later. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-04Don't save cylinder working pressureGravatar Linus Torvalds
It was a mistake to save it - and I did it just because other dive managers did. It's a totally nonsensical measure, and nobody cares. The only thing that matters is the size of the cylinder, and the *actual* pressures. Those give actual air consumption numbers, and are meaningful and unambiguous. So the "working pressure" for a cylinder is pointless except for two things: - if you don't know the actual physical size, you need the "working pressure" along with the air size (eg "85 cuft") in order to compute the physical size. So we do use the working pressure on *input* from systems that report cylinder sizes that way. - People may well want to know what kind of cylinder they were diving, and again, you can make a good guess about this from the working pressure. So saving information like "HP100+" for the cylinder would be a good thing. But notice how in neither case do we actually want to save the working pressure itself. And in fact saving it actually makes the output format ambiguous: if we give both size and working pressure, what does 'size' mean? Is it physical size in liters, or air size in cu ft? So saving working pressure is just wrong. Get rid of it. I'm going to add some kind of "cylinder description" thing, which we can save instead (and perhaps guess standard cylinders from input like the working pressure from dive logs that don't do this sanely - which is all of them, as far as I can tell). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-04Remove redundant temperature readingsGravatar Linus Torvalds
I'm aiming to really differentiate in dive log software by making my XML export files be *clean*, dammit. That means that we don't have random names, we don't have crazy random units, and we don't have redundant information. So when the temperature doesn't change, just don't report it. That's already what "no sample" means, just clean things up. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-04Split the dive list in columns. Columns are sortable now (name = date, ↵Gravatar Nathan Samson
depth, duration) Signed-off-by: Nathan Samson <nathansamson@gmail.com>
2011-09-04Merge branch 'master' into ui-improvementsGravatar Nathan Samson
2011-09-04Fix typo in Makefile (LDLAGS -> LDFLAGS)Gravatar Linus Torvalds
Reported-by: Konrad Delong <https://github.com/konryd> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-04Remove the redundant frames in the notebook. Closes #9Gravatar Nathan Samson
Signed-off-by: Nathan Samson <nathansamson@gmail.com>
2011-09-04Merge branch 'fix-entries' of https://github.com/nathansamson/diveclogGravatar Linus Torvalds
* 'fix-entries' of https://github.com/nathansamson/diveclog: Word wrap the info textview. Also do not show the scrollbars if not necessary. Change location to a text entry instead of text view.
2011-09-04Use a pane so the dive list can be made wider or smaller to the users wishesGravatar Nathan Samson
Signed-off-by: Nathan Samson <nathansamson@gmail.com>
2011-09-04Update gitignore for the name-change of the executableGravatar Linus Torvalds
It's not called 'parse' any more. And I think I should rename 'divelog' too to something more unique. Right now the working name for the project is 'diveclog' (kind of like 'jdivelog') , but I'm not convinced that the "C implementation" part is really important enough to make a point of long-term. "subsurface"? I don't know. Maybe I should follow the "name all projects after myself" mantra. "divenut"? Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-04Oops. I forgot to 'fclose()' the file after saving the xmlGravatar Linus Torvalds
It never actually triggered anything for me, but any buffered data might be lost, especially if you force-exit the application after saving a dive log. This probably explains a corrupted (truncated) dive file report from Nathan Samson. Reported-by: Nathan Samson <https://github.com/nathansamson> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-04Removed the unused startemp and enttemp calculations. This fixes a compiler ↵Gravatar Nathan Samson
warning too. Signed-off-by: Nathan Samson <nathansamson@gmail.com>
2011-09-04Word wrap the info textview. Also do not show the scrollbars if not necessary.Gravatar Nathan Samson
Signed-off-by: Nathan Samson <nathansamson@gmail.com>
2011-09-04Change location to a text entry instead of text view.Gravatar Nathan Samson
Signed-off-by: Nathan Samson <nathansamson@gmail.com>
2011-09-03Add 'Quit' menu item, and fix invisible "File" on gtk2Gravatar Linus Torvalds
I didn't even notice that the "File" part of the file menu no longer showed up, since the keyboard accelerator for ^S worked fine.. But apparently there's no default label associated with GTK_STOCK_FILE in gtk2, so the "File" text went away with the conversion to GtkUIManager in commit 4d62478e14fe ("Use the newer GtkUIManager for menu creation.") The addition of a Quit menu entry with the associated keyboard accelerator also makes ^Q "just work". Of course, if we actually tracked dirty state etc, we could perhaps ask the user whether they wanted to save or something. But I'm not exactly famous for my GUI chops, so .. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-03Merge https://github.com/mrjbq7/diveclogGravatar Linus Torvalds
* https://github.com/mrjbq7/diveclog: dive.c: Fix spelling.
2011-09-03Don't bother saving n2 percentageGravatar Linus Torvalds
It's all calculated anyway, and for the same reason we don't bother even parsing it at load time, we really shouldn't bother saving it either. The only thing you can do with that value is "check if the percentages add up to 100%", and so what? Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-03Improve the layout of the text entries in gtk3. For gtk2 this could also be ↵Gravatar Nathan Samson
useful Signed-off-by: Nathan Samson <nathansamson@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-03Use the newer GtkUIManager for menu creation.Gravatar Nathan Samson
Signed-off-by: Nathan Samson <nathansamson@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-03Do better cylinder information managementGravatar Linus Torvalds
Instead of just tracking gasmix, track the size and workng pressure of the cylinder too. And use "cylinder" instead of "tank" throughout. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-03dive.c: Fix spelling.Gravatar John Benediktsson
2011-09-03Add 'mean depth' marker on dive plotGravatar Linus Torvalds
Just because I can. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-03Only update mean/max depths with computed ones if they are way offGravatar Linus Torvalds
The computer may track "real" max depth more closely than it tracks samples. So we trust the non-computed mean/max depths more than the computed ones. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-03Add various dive fixups, and show pressure (if any) in the plotGravatar Linus Torvalds
Now the dive profile plot *really* needs some units. The pressure is just a random line otherwise. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-03Update README a bitGravatar Linus Torvalds
..since this is now on github, might as well tell people what they need to compile it, and warn them about the state of the project. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-02Add location note to the top bar too.Gravatar Linus Torvalds
I really don't understand the packing rules. This does not look like what I intended. Oh well. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-02Do a dive de-dup passGravatar Linus Torvalds
If given multiple dives at the same time, just de-dup the dives. This happens when you've dumped the whole dive-computer several times, and some dives show up in multiple dumps. When de-duping, try to avoid dropping data. So if one dive has notes attached to it, and the other one does not, pick the notes from the dive that does have them. Obvious stuff like that. The sample merge is also written so that it should be possible to merge two dives. Which we don't actually do yet. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-02Improve uemis xml parsing a bitGravatar Linus Torvalds
It looks like the "units.pressure" setting is only about the units that things are *shown* in on the wrist computer: the units in the file are always in bar (or rather, centi-bar). Which is definitely the right thing to do, and means that we shouldn't care about parsing the units setting. It's purely about how something is shown, not about parsing. That's probably true of the other units too, but let's see when I have more data to go on. Also, parse water temperatures and tank pressure. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-02Silently ignore zero pressureGravatar Linus Torvalds
Don't complain about them, they're just missing values Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-02Use 'units' value instead of guessing based on integer/FPGravatar Linus Torvalds
We still end up guessing based on magnitude of the value, though: it might be 'bar' or 'mbar', we end up picking one or the other based on just how big the value is. I should make it look at any possible explicit units too, since at least with good xml, they exist. Of course, the only good xml I've seen so far is the one we generate ourselves ;) Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-02Hack up some very rudimentary support for the Uemis xml formatGravatar Linus Torvalds
I think I'll need to re-organize the handling of per-format code, but for now we just mix it all up. The uemis conversion is also questionable even for just the small parts I do. Does it really do "centiPSI"? That sounds crazy. I'm waiting for Dirk to send me some actual human-readable output from the dives, right now some of it is just rough guesses. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01Show temperature in the info summaryGravatar Linus Torvalds
If it exists, it really does help identify the dive. At least it does for me: "local or Maui"? Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01Generate 'watertemp' field from samples if requiredGravatar Linus Torvalds
Sure, it's redundant, but it's convenient for the general dive info. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01Fix wrongly nested watertemp xml entryGravatar Linus Torvalds
Too much cut-and-paste: the ending tag said "airtemp". Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01We can't save escape characters.Gravatar Linus Torvalds
I think it should be legal xml, but whatever. libxml2 is very unhappy, and complains when loading - even if I escape them. So let's just replace the low escape characters with '?'. The only thing to ever care was my test-case, I suspect. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01Save and parse notes and locationsGravatar Linus Torvalds
It's pretty rough, but it seems to work. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01Do gasmix as an empty element XML tooGravatar Linus Torvalds
Let's make it a goal that the XML we output is pretty. That clearly was never a goal for the Suunto XML, but we can be oh-so-much-better than that. I still don't love XML, but let's try to make the best of a bad situation, and take pride in what we do. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01Clean up save-file output a bitGravatar Linus Torvalds
Use the "empty element" form for samples that don't have any events associated with them (and none do, right now). This avoids that annoying "</sample>" crud. And output the units in the output helpers, so that you can't forget them even if you try. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01Always use proper units when saving.Gravatar Linus Torvalds
When we see a number like 23.145, we'd better always also see a unit. It's just good practice. So add 'min' to duration (and use only two digits for number of seconds), and 'm' to depth. And write the date in international standard format. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01Teach the date parser to also parse the international standard date formatGravatar Linus Torvalds
The standard way to write a date is yyyy-mm-dd, which is unambiguous and sorts correctly. We parsed that right in the 'datetime' case, but not in the normal date case. And we do want to use that in our output format, exactly because it's standard. And also parse 'duration' for the dive duration. It's what we use when saving, it just so happened that we ended up not parsing it right, but then picking it up from the samples instead. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01Save everything in our current dives and samples into the xml fileGravatar Linus Torvalds
Now, as we start parsing more, we just need to also add the code to save it. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01Fix up small details in input/outputGravatar Linus Torvalds
Be more careful with FP conversions, and with the Kelvin<->C offset. And make sure to use the same names when saving as when parsing. Now when we save a set of dives, then re-load them, and save again, the second save image is identical to the first one. Of course, we don't actually save everything we load, so we still do lose information when we load and then save the result. But at least we now don't lose the information that we *do* save. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01Add ability to 'save' divesGravatar Linus Torvalds
This just generates another xml file. Don't get me wrong: I still don't like xml, but this way we can save in the same format we load things from. Except the save-format is a *lot* cleaner than the abortion that is Suunto or libdivecomputer xml. Don't bother with some crazy xml library crap for saving. Just do it! Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01gasmix: stop tracking nitrogen percentagesGravatar Linus Torvalds
The only thing you can do with that thing is screw things up (like libdivecomputer did). There's no value in tracking the "filler" gas, since you can always just calculate it from the gases that actually matter. So just track Oxygen and Helium - and make sure they have sane values. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01libdivecomputer does crazy gas mixes tooGravatar Linus Torvalds
Did I just say "In comparison, the libdivecomputer output is nice and sane"? It turns out that libdivecomputer has been doing some drugs too when it comes to gas mixes. Like showing O2 percentages as 255.0% and N2 percentages as -155.0%. Clearly libdivecomputer uses a 'unsigned char' for oxygen percentage, and makes "-1" be "undefined". And then it prints that non-existing mix out, and in the process does MATH on the damn thing ("100-O2") to "calculate" the nitrogen percentage. Christ. Just make the parser silently ignore the craziness, because printing out "Strange percentage reading -155.0" a few hundred times just doesn't make anything any better. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01Start parsing gas mixesGravatar Linus Torvalds
The suunto xml is just completely crazy. What's the helium percentage companion to "o2pct"? Would it be "hepct"? No. It's "hepct_0". Ok, so they didn't number the first o2pct, which could be seen as sane: that's the only mix value that should always exist. And they clearly started their indexing with 0. So with multiple mixes, you'd then expect "o2pct_1" and "hepct_1", right? Wrong! Because XML people are crazy, the second O2 mix percentage is obviously "o2pct_2". So the O2 percentages are one-based, with an implicit one. But the He percentages are zero-based with an explicit zero. So the second mix is "o2pct_2" and "hepct_1". I'd like to ask what drugs Suunto people are on, but hey, it's a Finnish company. No need to ask. Vodka explains everything. LOTS AND LOTS OF VODKA. In comparison, the libdivecomputer output is nice and sane, and uses a 'gasmix' node. Of course, now we have so many different XML nesting nodes to check that I just made it an array of different noces. That also allows me to mark the suunto case, so that we only do the "check for crazy alcoholic xml entries" when it's a suunto file. The "type of file" thing is probably a good idea for deciding on default units too. Some day. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>