Re: GSoC Project: Native Bluetooth support for Linux and/or Windows
On Mon, Mar 9, 2015 at 4:05 PM, Tommi Saviranta w...@iki.fi wrote: On Mon, Mar 09, 2015 at 15:33:24 +0300, Purity Musyoki wrote: In the ideas page, it is noted that there is some sample code of what has been done so far regarding the [native] bluetooth idea. I have gone through the source code for the Subsurface project, but I am unable to find the bluetooth downloader code. Perhaps you're looking for the following email and attached patches: http://libdivecomputer.org/pipermail/devel/2014-May/000285.html With those patches libdivecomputer works nicely with my Petrel. Subsurface GUI also works - even if it requires some persuation. Thank you, I was looking only at Subsurface's code. So this means that for this project to be successful, we will have to modify both Subsurface and Libdivecomputer. -- Purity Musyoki ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: GSoC Project: Native Bluetooth support for Linux and/or Windows
On 9 March 2015 at 15:36, Jef Driesen j...@libdivecomputer.org wrote: On 2015-03-09 14:05, Tommi Saviranta wrote: On Mon, Mar 09, 2015 at 15:33:24 +0300, Purity Musyoki wrote: In the ideas page, it is noted that there is some sample code of what has been done so far regarding the [native] bluetooth idea. I have gone through the source code for the Subsurface project, but I am unable to find the bluetooth downloader code. Perhaps you're looking for the following email and attached patches: http://libdivecomputer.org/pipermail/devel/2014-May/000285.html With those patches libdivecomputer works nicely with my Petrel. Subsurface GUI also works - even if it requires some persuation. I created a libdivecomputer ticket and attached the latest patches there. The last patch in the email (#0006) is completely outdated. http://trac.libdivecomputer.org/ticket/14 Basically I have a working proof of concept (including the device discovery), for Linux and Windows. What's still missing is the Mac OS X support, and the proper integration in libdivecomputer. The latter is blocked on the libdivecomputer api redesign. so this is an interesting situation, if Jeff has a working POC in libdc for Linux and Windows, do we really need to reinvent the wheel in Subsurface or should Subsurface use libdc for the device discovery and should students contribute in both libdc (backend) and Subsurface (frontend if needed) in that way? Dirk, how should that be approached GSoC wise? also, seems that we need someone with OSX knowledge on the subject. lubomir -- ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: GSoC Project: Native Bluetooth support for Linux and/or Windows
On 2015-03-09 14:05, Tommi Saviranta wrote: On Mon, Mar 09, 2015 at 15:33:24 +0300, Purity Musyoki wrote: In the ideas page, it is noted that there is some sample code of what has been done so far regarding the [native] bluetooth idea. I have gone through the source code for the Subsurface project, but I am unable to find the bluetooth downloader code. Perhaps you're looking for the following email and attached patches: http://libdivecomputer.org/pipermail/devel/2014-May/000285.html With those patches libdivecomputer works nicely with my Petrel. Subsurface GUI also works - even if it requires some persuation. I created a libdivecomputer ticket and attached the latest patches there. The last patch in the email (#0006) is completely outdated. http://trac.libdivecomputer.org/ticket/14 Basically I have a working proof of concept (including the device discovery), for Linux and Windows. What's still missing is the Mac OS X support, and the proper integration in libdivecomputer. The latter is blocked on the libdivecomputer api redesign. Jef ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
GSoC Project: Native Bluetooth support for Linux and/or Windows
Hi, I am a potential Google Summer of Code student, interested in working on the native bluetooth support idea. I have some experience in working with the bluetooth stack and BTLE. In the ideas page, it is noted that there is some sample code of what has been done so far regarding the bluetooth idea. I have gone through the source code for the Subsurface project, but I am unable to find the bluetooth downloader code. Am I missing something, or is this code located somewhere else? -- Purity Musyoki ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: GSoC Project: Native Bluetooth support for Linux and/or Windows
On Mon, Mar 09, 2015 at 15:18:59 +0200, Benjamin wrote: Could you perhaps elaborate on your statement that Subsurface needs some persuasion to work with the Petrel? In short, when I select Shearwater/Petrel, I cannot (intuitively) enter the device address until I try and fail to download the logs once. If device discovery is supposed to do some magic here, it doesn't work for me. For all I know, device discovery might depend on some desktop environment stuff I'm unlikely to have installed. Actual procedure using fresh sources, libdivecomputer, 134da18190b5ea1581d789564979e3e4c73cd243 (with new set of patches), Subsurface, 2e6fcfc96971ff0fa6cb876b1ef7613ede495d24. 1. Open download dialog. Vendor, computer and device path are restored from my previous run: Suunto, Vyper, /dev/ttyUSB0. All three widgets are enabled. 2. Select Shearwater as vendor. Device widget gets disabled (with the old value (USB0) in it). Select Petrel as dive computer if needed. 3. Click Download. An error dialog is shown: Unable to open /dev/ttyUSB0 Shearwater (Petrel) 4. Click Ok to close the dialog. Device widget is now enabled again. 5. Enter device BT address. 6. Click Retry. Logs are downloaded. This doesn't really bother me too much and with the WIP patches, I didn't see much point in fixing the UI. Because the patches worked so well, I never bothered to look any further in them. Also, yesterday was the second time I had to go through this; the first time I went through this was in October when I first tried the (old) patches. ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: GSoC Project: Native Bluetooth support for Linux and/or Windows
On 9 March 2015 at 15:21, Purity Musyoki purity.sy...@gmail.com wrote: Hi On Mon, Mar 9, 2015 at 4:12 PM, Lubomir I. Ivanov neolit...@gmail.com wrote: i haven't seen any patches reach the mailing list; this could be located in a separate branch which i'm not aware of. perhaps someone else has an idea about this? As Tommi has posted above, these patches were submitted to libdivecomputer: http://libdivecomputer.org/pipermail/devel/2014-May/000285.html just saw that, still wondering what the GSoC idea implies. lubomir -- ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: GSoC Project: Native Bluetooth support for Linux and/or Windows
On Mon, Mar 9, 2015 at 4:27 PM, Lubomir I. Ivanov neolit...@gmail.com wrote: just saw that, still wondering what the GSoC idea implies. If I understand it well, it means that currently Subsurface connects to bluetooth computers using serial emulation, and the need of the GSoC idea is to expand the current bluetooth implementation to include device discovery and other features. To quote the email on the libdivecomputer list: I have arrived at a point where I have a functional implementation for windows and linux. With functional, I mean I'm able to connect to the dive computer and successfully download dives. What is still missing is device discovery, which means you have to figure out the bluetooth address of the device manually. Certainly not perfect yet, but it does work! lubomir -- -- -- Purity Musyoki ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: GSoC Project: Native Bluetooth support for Linux and/or Windows
Could you perhaps elaborate on your statement that Subsurface needs some persuasion to work with the Petrel? On 9 Mar 2015 15:05, Tommi Saviranta w...@iki.fi wrote: On Mon, Mar 09, 2015 at 15:33:24 +0300, Purity Musyoki wrote: In the ideas page, it is noted that there is some sample code of what has been done so far regarding the [native] bluetooth idea. I have gone through the source code for the Subsurface project, but I am unable to find the bluetooth downloader code. Perhaps you're looking for the following email and attached patches: http://libdivecomputer.org/pipermail/devel/2014-May/000285.html With those patches libdivecomputer works nicely with my Petrel. Subsurface GUI also works - even if it requires some persuation. ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: GSoC Project: Native Bluetooth support for Linux and/or Windows
On Mon, Mar 09, 2015 at 15:33:24 +0300, Purity Musyoki wrote: In the ideas page, it is noted that there is some sample code of what has been done so far regarding the [native] bluetooth idea. I have gone through the source code for the Subsurface project, but I am unable to find the bluetooth downloader code. Perhaps you're looking for the following email and attached patches: http://libdivecomputer.org/pipermail/devel/2014-May/000285.html With those patches libdivecomputer works nicely with my Petrel. Subsurface GUI also works - even if it requires some persuation. ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: GSoC Project: Native Bluetooth support for Linux and/or Windows
On Mar 9, 2015, at 7:10 AM, Lubomir I. Ivanov neolit...@gmail.com wrote: On 9 March 2015 at 15:36, Jef Driesen j...@libdivecomputer.org wrote: On 2015-03-09 14:05, Tommi Saviranta wrote: On Mon, Mar 09, 2015 at 15:33:24 +0300, Purity Musyoki wrote: In the ideas page, it is noted that there is some sample code of what has been done so far regarding the [native] bluetooth idea. I have gone through the source code for the Subsurface project, but I am unable to find the bluetooth downloader code. Perhaps you're looking for the following email and attached patches: http://libdivecomputer.org/pipermail/devel/2014-May/000285.html With those patches libdivecomputer works nicely with my Petrel. Subsurface GUI also works - even if it requires some persuation. I created a libdivecomputer ticket and attached the latest patches there. The last patch in the email (#0006) is completely outdated. http://trac.libdivecomputer.org/ticket/14 Basically I have a working proof of concept (including the device discovery), for Linux and Windows. What's still missing is the Mac OS X support, and the proper integration in libdivecomputer. The latter is blocked on the libdivecomputer api redesign. so this is an interesting situation, if Jeff has a working POC in libdc for Linux and Windows, do we really need to reinvent the wheel in Subsurface or should Subsurface use libdc for the device discovery and should students contribute in both libdc (backend) and Subsurface (frontend if needed) in that way? Dirk, how should that be approached GSoC wise? Definitely a combination of libdivecomputer and Subsurface work. But it’s more complicated than just using Jeff’s code. It needs a different user interaction on the Subsurface side - discovery and all that. And when I last looked at Jef’s code it didn’t work for one of my use cases (but that may no longer be true). also, seems that we need someone with OSX knowledge on the subject. I am perfectly happy to have a Linux and Windows implementation the first time around (that’s 80+% of our users). I know that Nick has Mac Bluetooth code and he mentioned that he could be talked into donating that to libdivecomputer, so let’s focus on the rest of what needs to be done… /D ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 2/2] Ticket #831 Fix
On Mon, Mar 09, 2015 at 07:49:47AM +0200, Yosef Hamza wrote: Those 2 patches are actually one, But I think that the second patch needs some discussion. As Robert already mentioned, the second patch (0003) is simply wrong. That code was there for a reason :-) I think it's better this way because through trying and fixing the error there wasn't a way -that I'm aware of at least- to cancel the added event @0:00. There are different reasons why there would be an event at time 0:00 Some dive computers include a gas change event in the first sample (which often is a few seconds into the dive and not at 0:00) to indicate the first gas used. Those are valid and important events for the logic of how we treat a dive, but they shouldn't be displayed as they make no sense to the casual user. The question to ask the bug submitter is why do you want to add a gas change at 0'/0:00? -- is this to correct the first gas used? The other patch (0002) I don't understand. At least in the function where you added this code there is no unsigned comparison. Can you explain this a bit more? /D ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: GSoC Project: Native Bluetooth support for Linux and/or Windows
On Mon, Mar 9, 2015 at 5:44 PM, Dirk Hohndel d...@hohndel.org wrote: I am perfectly happy to have a Linux and Windows implementation the first time around (that’s 80+% of our users). I know that Nick has Mac Bluetooth code and he mentioned that he could be talked into donating that to libdivecomputer, so let’s focus on the rest of what needs to be done… I have access to only Linux and Windows computers so I can work on those platforms to start with. /D -- -- Purity Musyoki ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: GSoC Project: Native Bluetooth support for Linux and/or Windows
On 2015-03-09 14:12, Lubomir I. Ivanov wrote: i'm not very familiar with this GSoC idea and bluetooth in general. Subsurface and the underlying libdivecomputer today use the rfcomm emulation to communicate with Bluetooth enabled dive computers. We should use native Bluetooth instead https://msdn.microsoft.com/en-us/library/windows/desktop/aa362932(v=vs.85).aspx you probably know that BTLE support is Win8 or newer, BT2.1 is since Vista SP2, while we need to support Windows XP (SP1 first introduced BT) in Subsurface which has to be done with things like the WinSock / RFCOMM API, i'd say. hmm, so i wonder what is native Bluetooth support, does that imply writing a device driver for Windows that is installed by Subsurface. for instance i don't think that BNEP and L2CAP are accessible from user space... On the libdivecomputer side, native bluetooth support means using the operating system' native bluetooth api instead of relying on the serial emulation. My main motivation behind that (besides the improved user-experience of no longer having to setup the virtual serial ports) is that the serial emulation isn't always working very well. I have received several reports (including from personal experience) where downloading always fails for unknown reasons. Those problems disappear completely when switching to native bluetooth communication. I suspect this might be a driver problem, but I don't know for sure. Linux and Windows provide a socket based api, which is exactly what I used in my prototype. Right now we only need SPP/RFCOMM (Serial Port Profile). That's what the bluetooth enabled dive computers (Shearwater Petrel, Heinrichs Weikamp OSTC Sport) use today. It's also the protocol used underneath the serial emulation. I don't have any experience with Bluetooth Low Energy (BLE). But as far as I'm concerned that's not a priority. Let's go step by step and take care of normal bluetooth first :-) Jef ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 1/2] Ticket #837 Fix
On Mon, Mar 09, 2015 at 07:45:31AM +0200, Yosef Hamza wrote: The fix is according to the comment on the ticket. - your patch was attached as base64 encoded attachment. Nothing horribly wrong with that, but it's inconvenient as it makes it hard to comment on the code in a response. - changing the names (and the order) of the buttons isn't exactly a fix for the issue -- what needs to happen is that the message bar is shown with actions that make sense: -- Add location / close (if the user hasn't made any changes) -- Save and close / Discard and close (if the user has made changes or selected to add a site) For an easy fix ticket I'd be happy with a solution that ignores the add part of this. So make the message bar show Close by default and Save / Discard once the user starts editing. /D ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: Regarding understanding code
On Sat, Mar 7, 2015 at 7:13 AM, Anton Lundin gla...@acc.umu.se wrote: On 06 March, 2015 - Raghu Ram Vadapalli wrote: Can you please tell me where the code for the styles such as scroll bars is located. We don't use styles, so they aren't located in the code. ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: Galileo Sol dive log decoding.
On 09/03/2015 17:19, Jef Driesen wrote: On 2015-03-09 14:24, Willem Ferguson wrote: I am currently working with dive logs of the Galileo. I am looking at the events during the dive. Are you talking about direct downloading from the dive computer, or importing from the Uwatec application? I am talking of the directly downloaded files I presume: those saved as subsurface.bin. Am I right? Certainly the links you refer to below are helpful in decoding these. I will do controlled dives with a Galileo, generating events in a planned way, then download the dives as subsurface.bin and decode them to see the way the events were recorded. I have written software to do the decoding and I think it is quite sufficient for these purposes. I have a reasonable understanding of the dive structure and the way flags and events are implemented. I can read any arbitrary dive within the whole downloaded dive log. At least, that is my general plan of action. The following events are recorded: a) Several alarms, e.g rapid acscent, MOD alarm, excessive workload, CNS overload, missed deco stop, RBT exceeded. Some of these have a second marker for resetting the alarm (e.g. MOD; ascent rate). b) Events such as gas change and bookmarks. 1) Which of these are handled by libdivecomputer and can therefore be handles in Subsurface? This will determine which ones I will specifically look at. Have a look at the libdivecomputer parser_sample_event_t enum. It lists all the events that are supported today. Note that the current events were modeled after the Suunto event model. This will be reworked significantly after the v0.5 release, and not all events will be kept (especially the Suunto specific ones). Thanks. This is very helpful. 2) I would prefer just providing the dive log details for implementation, for instance this is how gas changes are recorded into the dive log Would this be workable for you at all? Sure. If you're going to reverse engineer the data, you'll be interested in these pages: http://diversity.sourceforge.net/uwatec_smart_format.html http://diversity.sourceforge.net/uwatec_galileo_format.html Thanks, I am in contact with Simon Naunton. Assuming I uncover something useful, I will document this in the libdivecomputer wiki, as well as on Simon's existing web page. They are lacking in a few areas, but as a starting point they are still a good reference. BTW, you can always document your findings on the libdivecomputer wiki. Jef ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 1/2] Ticket #837 Fix
If the user hasn't made any changes and now it displays Add location close. Is there anything special that should happen when the choose Add location? If now why it has to change when the user make changes, we can keep Add location instead of Save and close? Let me know what you think. §Yousef On Mon, Mar 9, 2015 at 5:57 PM, Dirk Hohndel d...@hohndel.org wrote: On Mon, Mar 09, 2015 at 07:45:31AM +0200, Yosef Hamza wrote: The fix is according to the comment on the ticket. - your patch was attached as base64 encoded attachment. Nothing horribly wrong with that, but it's inconvenient as it makes it hard to comment on the code in a response. - changing the names (and the order) of the buttons isn't exactly a fix for the issue -- what needs to happen is that the message bar is shown with actions that make sense: -- Add location / close (if the user hasn't made any changes) -- Save and close / Discard and close (if the user has made changes or selected to add a site) For an easy fix ticket I'd be happy with a solution that ignores the add part of this. So make the message bar show Close by default and Save / Discard once the user starts editing. /D ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 2/2] Ticket #831 Fix
Il 09/mar/2015 18:36 Dirk Hohndel d...@hohndel.org ha scritto: That's a strange edge case. Here are some assumptions that we tend to make a) most people get the data into Subsurface via a download from their dive computer (or, initially, importing from other software). b) if there are errors with the tanks, it is unlikely that it is a tank with relevant data that is at the wrong position (i.e., if you have air integration or start and end pressures, if the gas is wrong you actually WANT to change the gas settings for that tank and not switch to a different tank So basically it seems rather unlikely that the user really has the wrong order of tanks and needs to switch to a different tank. Dirk, does this means that Subsurface does not support Bottom Timer tech diving anymore? I was the reporter of this bug that along with 832 and 834 makes really hard to use it anymore. The copy and paste breaks all manual gas changes. Thanks ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 2/2] Ticket #831 Fix
On 09 Mar 2015, at 19:24, Davide DB dbdav...@gmail.com wrote: Il 09/mar/2015 18:36 Dirk Hohndel d...@hohndel.org ha scritto: So basically it seems rather unlikely that the user really has the wrong order of tanks and needs to switch to a different tank. Dirk, does this means that Subsurface does not support Bottom Timer tech diving anymore? I was the reporter of this bug that along with 832 and 834 makes really hard to use it anymore. The copy and paste breaks all manual gas changes. I’m experiencing the same problem. Henrik ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 2/2] Ticket #831 Fix
About patch -0002- The thing is timeAxis-valueAt(scenePos) can return a negative value if the cursor was pointing to the negative part of the axis to the left, which is the case here. The unsigned assigning happens at the very end of assigning series when assigned finally to duration_t of event which is uint32_t. About -0003- I coded the solution mentioned by Robert and will submit it tonight after making sure It's safe. It just looked like a hack to me though I made the patch and posted here for exactly this discussion Adding gas change at @0:00 can be handy, I'm not a diver myself but as of this moment there's not a way -at least that I'm ware of- to sort Cylinders so If the user entered them in the wrong order and wanted to change the initial one instead of sorting them manually he can add that gas change @0:00 §Yousef On Mon, Mar 9, 2015 at 6:05 PM, Dirk Hohndel d...@hohndel.org wrote: On Mon, Mar 09, 2015 at 07:49:47AM +0200, Yosef Hamza wrote: Those 2 patches are actually one, But I think that the second patch needs some discussion. As Robert already mentioned, the second patch (0003) is simply wrong. That code was there for a reason :-) I think it's better this way because through trying and fixing the error there wasn't a way -that I'm aware of at least- to cancel the added event @0:00. There are different reasons why there would be an event at time 0:00 Some dive computers include a gas change event in the first sample (which often is a few seconds into the dive and not at 0:00) to indicate the first gas used. Those are valid and important events for the logic of how we treat a dive, but they shouldn't be displayed as they make no sense to the casual user. The question to ask the bug submitter is why do you want to add a gas change at 0'/0:00? -- is this to correct the first gas used? The other patch (0002) I don't understand. At least in the function where you added this code there is no unsigned comparison. Can you explain this a bit more? /D ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 2/2] Ticket #831 Fix
On Mon, Mar 09, 2015 at 06:48:52PM +0200, Yosef Hamza wrote: About patch -0002- The thing is timeAxis-valueAt(scenePos) can return a negative value if the cursor was pointing to the negative part of the axis to the left, which is the case here. The unsigned assigning happens at the very end of assigning series when assigned finally to duration_t of event which is uint32_t. That is correct, but the commit message talks about unsigned comparison, right? It's a good practice to try to have clear and precise commit messages. So point out WHERE this is assigned to an unsigned integer. About -0003- I coded the solution mentioned by Robert and will submit it tonight after making sure It's safe. Excellent. It just looked like a hack to me though I made the patch and posted here for exactly this discussion Adding gas change at @0:00 can be handy, I'm not a diver myself but as of this moment there's not a way -at least that I'm ware of- to sort Cylinders so If the user entered them in the wrong order and wanted to change the initial one instead of sorting them manually he can add that gas change @0:00 That's a strange edge case. Here are some assumptions that we tend to make a) most people get the data into Subsurface via a download from their dive computer (or, initially, importing from other software). b) if there are errors with the tanks, it is unlikely that it is a tank with relevant data that is at the wrong position (i.e., if you have air integration or start and end pressures, if the gas is wrong you actually WANT to change the gas settings for that tank and not switch to a different tank So basically it seems rather unlikely that the user really has the wrong order of tanks and needs to switch to a different tank. /D ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Fix #795
0001-Fixes-795.patch Description: Binary data /Jocke ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
GSOC 2015 proposal
Hello, I am a college student who has an idea for android app. I will get straight to my app. I propose an idea of bus tracking using the GPS receiver in our smartphones. We can simply use google maps to pin point the location of that particular bus the user wants. So, I am thinking of proposing this idea in GSOC 2015. But wanted to contact you guys to know if this proposal is acceptable or not. Please reply asap. Thank you, Yash Gadle ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: some patches regarding the location edit.
On Mon, Mar 09, 2015 at 04:01:12PM -0300, Tomaz Canabrava wrote: From 7e89b79afbefd508015841a667cc68a73865754b Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava tomaz.canabr...@intel.com Date: Mon, 9 Mar 2015 15:12:48 -0300 Subject: [PATCH 3/6] Remove redundant code Another bit of piece of software that shouldn't exist. Signed-off-by: Tomaz Canabrava tomaz.canabr...@intel.com --- qt-ui/maintab.cpp | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp index 956a1bc..dff49d8 100644 --- a/qt-ui/maintab.cpp +++ b/qt-ui/maintab.cpp @@ -71,6 +71,7 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent), // filled from a dive, they are made writeable setEnabled(false); + Really? @@ -955,10 +956,7 @@ void MainTab::markChangedWidget(QWidget *w) qApp-palette().color(QPalette::Text).getHslF(h, s, l, a); p.setBrush(QPalette::Base, (l = 0.3) ? QColor(Qt::yellow).lighter() : (l = 0.6) ? QColor(Qt::yellow).light() : /* else */ QColor(Qt::yellow).darker(300)); w-setPalette(p); - if (!modified) { - modified = true; - enableEdition(); - } + modified = true; Are you sure this is correct? I thought the first time something changes we do have to call enableEdition() - or is this taken care of somewhere else? /D ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 2/2] Ticket #831 Fix
On Mon, Mar 09, 2015 at 07:26:05PM +0100, Henrik Brautaset Aronsen wrote: On 09 Mar 2015, at 19:24, Davide DB dbdav...@gmail.com wrote: Il 09/mar/2015 18:36 Dirk Hohndel d...@hohndel.org ha scritto: So basically it seems rather unlikely that the user really has the wrong order of tanks and needs to switch to a different tank. Dirk, does this means that Subsurface does not support Bottom Timer tech diving anymore? I was the reporter of this bug that along with 832 and 834 makes really hard to use it anymore. The copy and paste breaks all manual gas changes. I’m experiencing the same problem. So just to make sure... I'm aware of the bug. I know what causes it... I even have a vague idea how to address it. But I'm completely under water and way behind on many of the Subsurface things that I want to be working on... If this is actually a show stopper for you guys, then I'll try to get in a hack so you can use the software, but a real solution will likely take a little longer. /D ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 1/2] Ticket #837 Fix
Yosef, please try to figure out how to answer inline. This is a technical mailing list where top posting is considered quite annoying. The occasional email from a phone may be acceptable, but in general we expect people to use in line responses... On Mon, Mar 09, 2015 at 07:01:09PM +0200, Yosef Hamza wrote: If the user hasn't made any changes and now it displays Add location close. Is there anything special that should happen when the choose Add location? As I said, that exceeds the easy fix part of this. Yes, we should add the code that allows people to create a new location. But that's a bit more complicated. For the first patch I'll be happy with something that just has a close button there by default. If now why it has to change when the user make changes, we can keep Add location instead of Save and close? I can't parse that sentence. Can you try again Thanks /D ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 2/2] Ticket #831 Fix
On Mon, Mar 09, 2015 at 07:24:15PM +0100, Davide DB wrote: Il 09/mar/2015 18:36 Dirk Hohndel d...@hohndel.org ha scritto: That's a strange edge case. Here are some assumptions that we tend to make a) most people get the data into Subsurface via a download from their dive computer (or, initially, importing from other software). b) if there are errors with the tanks, it is unlikely that it is a tank with relevant data that is at the wrong position (i.e., if you have air integration or start and end pressures, if the gas is wrong you actually WANT to change the gas settings for that tank and not switch to a different tank So basically it seems rather unlikely that the user really has the wrong order of tanks and needs to switch to a different tank. Dirk, does this means that Subsurface does not support Bottom Timer tech diving anymore? Not at all. I was talking about the assumptions that we make. I was the reporter of this bug that along with 832 and 834 makes really hard to use it anymore. Why? Enter your first gas as first tank. Voila. The copy and paste breaks all manual gas changes. Known issue. Non-trivial to fix. /D ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: Customizable Print Formats GSoC 2015
I've only really scanned this thread, so please excuse me if I'm raising something that's already been covered. It seems we're talking about rendering using HTML along with a few other things. Have we considered pagination? I know this is something that HTML isn't great at. You can, of course, print html, and it will paginate it, but is controlling how this happens easy? I understand there is support for pagination in CSS - is this enough for us to do reasonable looking 1 dive per page, 2 dives per page, etc? Or, are we considering rendering each dive as an individual HTML document, and then have the framework code assemble that into a pdf/print commands, etc? One of the reasons i raised this as a possible GSoC project was the poor experience when you have any more than a few lines of 'prose' in the notes for a dive - I tend to waffle a bit in some of my dive logs. Martin ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: Customizable Print Formats GSoC 2015
On Tue, Mar 10, 2015 at 1:20 AM, Long, Martin mar...@longhome.co.uk wrote: I've only really scanned this thread, so please excuse me if I'm raising something that's already been covered. It seems we're talking about rendering using HTML along with a few other things. Have we considered pagination? I know this is something that HTML isn't great at. You can, of course, print html, and it will paginate it, but is controlling how this happens easy? I understand there is support for pagination in CSS - is this enough for us to do reasonable looking 1 dive per page, 2 dives per page, etc? CSS supports 'page-break-inside' property which define whether a page break is allowed inside a specified element or not, also max/min height can be used for pagination, but taking into consideration that the overflow of long notes will either be trimmed or will expand the dive to more printing area and in this case we can't ensure to have N dives per page (this can be something like flow layout). So as I expect yes we can control this easily. -- regards, Gehad ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 2/2] Ticket #831 Fix
On Tue, Mar 10, 2015 at 1:18 AM, Dirk Hohndel d...@hohndel.org wrote: @@ -1392,6 +1395,23 @@ void ProfileWidget2::changeGas() qDebug() failed to parse tank number; tank = get_gasidx(displayed_dive, gasmix); } + + struct event **events = get_dive_dc(displayed_dive, dc_number)-events; + while (*events) { + if ((*events)-time.seconds == 0) { + remove_event(*events); You cannot use remove_event() on events from displayed_dive. It only removes events from current_dive So I should figure out a way to remove it from the displayed_dive or don't do anything about it? §Yousef ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 2/2] Ticket #831 Fix
Here's the proposed change by Robert fixes the problem for all. It doesn't show the gas change icon @0:00, But you can still change gases @0:00. §Yousef On Mon, Mar 9, 2015 at 10:42 PM, Dirk Hohndel d...@hohndel.org wrote: On Mon, Mar 09, 2015 at 07:26:05PM +0100, Henrik Brautaset Aronsen wrote: On 09 Mar 2015, at 19:24, Davide DB dbdav...@gmail.com wrote: Il 09/mar/2015 18:36 Dirk Hohndel d...@hohndel.org ha scritto: So basically it seems rather unlikely that the user really has the wrong order of tanks and needs to switch to a different tank. Dirk, does this means that Subsurface does not support Bottom Timer tech diving anymore? I was the reporter of this bug that along with 832 and 834 makes really hard to use it anymore. The copy and paste breaks all manual gas changes. I’m experiencing the same problem. So just to make sure... I'm aware of the bug. I know what causes it... I even have a vague idea how to address it. But I'm completely under water and way behind on many of the Subsurface things that I want to be working on... If this is actually a show stopper for you guys, then I'll try to get in a hack so you can use the software, but a real solution will likely take a little longer. /D ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface 0003-Preventing-more-than-one-events-0-00.patch Description: Binary data ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 2/2] Ticket #831 Fix
On Tue, Mar 10, 2015 at 12:52:16AM +0200, Yosef Hamza wrote: Here's the proposed change by Robert fixes the problem for all. Well, it may fix one problem, but using that patch would create a lot of others... This whole two patch rule is about making sure you understand how to submit changes and how to deal with feedback... so here we go :-) From ac8291f5f71e4bf17a80f0e82758066174808c9c Mon Sep 17 00:00:00 2001 From: Yousef Hamza jo.adam...@gmail.com Date: Tue, 10 Mar 2015 00:44:46 +0200 Subject: [PATCH] Preventing more than one events @0:00 Removing existing gas change events @0:00 when new one is added. Signed-off-by: Yousef Hamza jo.adam...@gmail.com --- qt-ui/profile/profilewidget2.cpp | 20 1 file changed, 20 insertions(+) diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp index cfcd25d..ab59330 100644 --- a/qt-ui/profile/profilewidget2.cpp +++ b/qt-ui/profile/profilewidget2.cpp @@ -1382,6 +1382,9 @@ void ProfileWidget2::changeGas() // backup the things on the dataModel, since we will clear that out. struct gasmix gasmix; int seconds = timeAxis-valueAt(scenePos); + if (seconds 0) { + seconds = 0; + } So this SHOULD be its own commit. I simply disagreed with your commit message. Please submit as a separate change with an appropriate message. @@ -1392,6 +1395,23 @@ void ProfileWidget2::changeGas() qDebug() failed to parse tank number; tank = get_gasidx(displayed_dive, gasmix); } + + struct event **events = get_dive_dc(displayed_dive, dc_number)-events; + while (*events) { + if ((*events)-time.seconds == 0) { + remove_event(*events); You cannot use remove_event() on events from displayed_dive. It only removes events from current_dive + } + events = (*events)-next; so you remove *events and THEN use *events-next ? That's called accessing freed memory... + } + + events = current_dc-events; + while (*events) { + if ((*events)-time.seconds == 0) { + remove_event(*events); + } + events = (*events)-next; Same as abive. But regardless of the issues oiubted iytm this whole bit of code is flat out wrong. You unconditionally delete ALL events at time stamp zero. And that is not what you should be doing here. What you should do is that IFF the user adds a gas change at time 0 and IFF there already is a gas change at time 0, THEN remove that existing gas change. Look around the sources... there's a helper function that you can use to search for the next gas change event. Use that on the events pointer and check if it returns a gas change at time 0... /D ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 1/2] Ticket #837 Fix
On Tue, Mar 10, 2015 at 01:08:19AM +0200, Yosef Hamza wrote: Is there anything special that should happen when the choose Add location? As I said, that exceeds the easy fix part of this. Yes, we should add the code that allows people to create a new location. But that's a bit more complicated. For the first patch I'll be happy with something that just has a close button there by default. I don't quite get it, Should I create a new location with some default values since the form is empty (user hasn't made any changes to it)? I think Tomaz is working on this as well... I worry that you might both address the same issues. But this part of the UI needs to allow the user to add a new location. Imagine you start with an empty dive log. You manually add a new dive. Now you want to assign a location to it. How do you do that? /D ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 2/2] Ticket #831 Fix
On Mon, Mar 9, 2015 at 9:42 PM, Dirk Hohndel d...@hohndel.org wrote: If this is actually a show stopper for you guys, then I'll try to get in a hack so you can use the software, but a real solution will likely take a little longer. No problem at all, I can live with them. In the last few weeks I read so many times that usually people get everything right (mixes, tanks, gas changes) from their dive computers that I'm becoming feeling a bit outlier. Hence I'm trying to understand if, regardless of each his own convictions, there is still room for DIR/GUE/UTD Subsurface users :) Regarding the gas change 0@0 it's a common scenario in advanced dives or dive locations having to switch to a particular mix on the surface: * I dive with a pscr rebreather and a hypoxic back gas so I have to reach a safe depth prior to change to back gas. * I dive oc/pscr with a hypoxic mix and my dive location (cave or even reef) doesn't permit to reach immediately a safe depth. * I dive in a cave where gas mixes are chosen on the cave profile: first part on mix1 then mix2 and again mix2... The question to ask the bug submitter is why do you want to add a gas change at 0'/0:00? -- is this to correct the first gas used? Why? Enter your first gas as first tank. Voila. What is the main gas and the main tank in the above examples? By default we tend to consider our main gas the back gas and I set it as default tank into Subsurface preference dialog then I describe my dive through the gas change events. In my above example: I made a formal gas change at the surface switching to a 35/25 At 30m I switched to my bottom mix: 16/60 on a AL80 [**] Deco was performed on 35/25, 50/20 and 100% My backgas was a D8,5L on 16/60 (that is set as default tank in Subsurface). It's my bailout reserve, my main tank. [**] I could have more f this. Should I remove the default cylinder to be able to switch at 0@0? If I had a proper DC managing all of this and I forget to press a button, could I fix all of this later? Hummm PS My crappy XDeep BT adds its own oddity: it exports via UDDF an unknown cylinder with real air... Thank you in advance -- Davide https://vimeo.com/bocio/videos ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: [PATCH 1/2] Ticket #837 Fix
On Mon, Mar 9, 2015 at 9:05 PM, Dirk Hohndel d...@hohndel.org wrote: Yosef, please try to figure out how to answer inline. This is a technical mailing list where top posting is considered quite annoying. The occasional email from a phone may be acceptable, but in general we expect people to use in line responses... Sorry about that... On Mon, Mar 09, 2015 at 07:01:09PM +0200, Yosef Hamza wrote: If the user hasn't made any changes and now it displays Add location close. Is there anything special that should happen when the choose Add location? As I said, that exceeds the easy fix part of this. Yes, we should add the code that allows people to create a new location. But that's a bit more complicated. For the first patch I'll be happy with something that just has a close button there by default. I don't quite get it, Should I create a new location with some default values since the form is empty (user hasn't made any changes to it)? If now why it has to change when the user make changes, we can keep Add location instead of Save and close? I can't parse that sentence. Can you try again I meant we can just keep the action text to Add location instead of changing it to Save and close and only change Close to Discard and close when the user make some changes. §Yousef ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
[PATCH 2/2] HTML: Report start cylinder pressure correctly.
Fix start pressure cylinder values. -- regards, Gehad From 8a211da68dabdbccb856f60b68d96558d81d Mon Sep 17 00:00:00 2001 From: Gehad elrobey gehadelro...@gmail.com Date: Tue, 10 Mar 2015 02:05:28 +0200 Subject: [PATCH 2/2] HTML: Report start cylinder pressure correctly. Report start cylinder pressure from the samples with empty value. Must search for the first nonzero value. Signed-off-by: Gehad elrobey gehadelro...@gmail.com --- theme/list_lib.js | 11 ++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/theme/list_lib.js b/theme/list_lib.js index ceaa9c9..986833a 100644 --- a/theme/list_lib.js +++ b/theme/list_lib.js @@ -805,6 +805,14 @@ var points; //reference to the samples array of the shown dive. var ZERO_C_IN_MKELVIN = 273150; var plot1; +function firstNonZero() +{ + for(var i = 0; i = items[dive_id].samples.length-1; i++){ + if(items[dive_id].samples[i][2] !== 0) + return items[dive_id].samples[i][2]; + } +} + function lastNonZero() { for(var i = items[dive_id].samples.length-1; i = 0; i--){ @@ -847,7 +855,8 @@ function get_cylinder_HTML(cylinder) var cEPressure = cylinder.EPressure; if (cSPressure === --) { - cSPressure = Math.round(put_pressure_unit(items[dive_id].samples[0][2])).toFixed(1) + + pressure_unit; + var nonZeroCSPressure = firstNonZero(); + cSPressure = Math.round(put_pressure_unit(nonZeroCSPressure)).toFixed(1) + + pressure_unit; } if (cEPressure === --) { -- 2.1.0 ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
[PATCH v2] Fix building with NO_PRINTING for Android
Back in 4867ee8ad87399f34a399f30def700b2fc045309 (Move the Profile out of the mainwindow.ui) the way to access the PlannerDetails object changed. This does the corresponding change to the NO_PRINTING block, making it build on Android again. Signed-off-by: Anton Lundin gla...@acc.umu.se --- qt-ui/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 6ec4a35..aa708d0 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -134,7 +134,7 @@ MainWindow::MainWindow() : QMainWindow(), connect(locationInformation, SIGNAL(informationManagementEnded()), information(), SLOT(showLocation())); #ifdef NO_PRINTING - ui.printPlan-hide(); + plannerDetails-printPlan()-hide(); ui.menuFile-removeAction(ui.actionPrint); #endif -- 2.1.0 ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Re: Off Topic -- slightly. Dive Computers
On 07 March, 2015 - Steve Butler wrote: On 03/07/2015 03:36 AM, Anton Lundin wrote: ... It got great readability and i love how compact it is. I also like the mecanical push-buttons better than the piezoelectric ones in the OSTC2 and predator/petrel. It doesn't do air-integration. It would be fun to have the pressure-sensor data in subsurface for analysis but i don't care for it during my dive. I don't mind unclipping my spg from my left hip and looking at it to verify my mental model of what pressure I'm at. I like it all in one spot. Anybody have information about Liquid Vision? My instructor said it was just a BT. Then your instructor was wrong. Liquivision has one older trimix computer, the X1. Awesome computer that I've heard a lot of good things about, but its a quite old design, a fixed re-chargeable battery, and its ridiculous expensive. One Swedish webshop lists it at 12500 sek, about $1500. Liquivisions own webshop doesn't list it anylonger. Then they got a newer series of computers. Xeo, Lynx, Xen and Kaon. You can read more about them here: http://www.liquivision.com/estore/page3.html I haven't dived any of there computers my self but I've heard lot of good things about the Xen. One team i spent a week diving with had exclusively Xen computers, and all of them where quite happy with them. I haven't tested their tap-based interface in real life, but the concept is quite cool. Btw. When looking around i found this: Alternate Dive Loggers Following 3rd party dive loggers also work with Liquivision dive logs: Divelogs Diving Log MacDive Subsurface http://www.liquivision.com/downloads/ES_SoftwareDownloads.php Isn't our importer of Liquivision logs a reverse-engineering job? =) Anyhow, awesome that they link to us. //Anton -- Anton Lundin+46702-161604 ___ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface