UPDATE: ITS WORKING !!I compiled and ran subsurface but still found problems connecting to the EON Core.I imported the dive log file from DM5 successfully, but found that it showed the temperature data incorrectly.
| |||||||||||||
Hi,I've never compiled anything before, but I followed these instructions and compiled the source code :I did this:Package names for Ubuntu 16.10sudo apt-get install git g++ make autoconf automake libtool cmake pkg-config \libxml2-dev libxslt1-dev libzip-dev libsqlite3-dev \libusb-1.0-0-dev libssl-dev \qt5-default qt5-qmake qtchooser qttools5-dev-tools libqt5svg5-dev \libqt5webkit5-dev libqt5qml5 libqt5quick5 qtdeclarative5-dev \qtscript5-dev libssh2-1-dev libcurl4-openssl-dev qttools5-dev \qtconnectivity5-dev qtlocation5-dev qtpositioning5-dev \libcrypto++-dev libssl-dev qml-module-qtpositioning qml-module-qtlocation \qml-module-qtquick2and then this:mkdir -p ~/srccd ~/src./subsurface/scripts/build.shSubsurface is now running, but when i connect the Eon Core and try to download the dives, Subsurface still throws up "unable to open /dev/ttyS31 Suunto Eon Core" message.Terminal showed:
Starting download from /dev/ttyS31Starting the thread 0
[0.007922] ERROR: Failed to open the usb device (LIBUSB_ERROR_ACCESS). [in ../../src/usbhid.c:666 (dc_usbhid_open)][0.008027] ERROR: unable to open device [in ../../src/suunto_eonsteel.c:776 (suunto_eonsteel_device_open)]INFO: dc_deveice_open error value of -5Finishing the thread Unable to open %s %s (%s) dives downloaded 0lsusb gives me:ajey@Thresher / $ lsusbBus 002 Device 003: ID 147e:1002 Upek Biometric Touchchip/Touchstrip Fingerprint SensorBus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching HubBus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 001 Device 003: ID 04f2:b257 Chicony Electronics Co., Ltd Lenovo Integrated CameraBus 001 Device 004: ID 1493:0033 SuuntoBus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching HubBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubFollowed your instructions and it looks like I don't have permissions:ajey@Thresher / $ /dev/bus/usb/001/004bash: /dev/bus/usb/001/004: Permission deniedIs this what is causing the issue? How do I set permissions/ udev rules??Thanks!Ajey
DIVE GOA Phone: +91 9325030110 Goa: SinQ Beach Club, Opp. Taj Holiday Village, Sinquerim Netrani: RNS Residency, Murudeshwar, Karnataka Website: www.divegoa.com ![]()
![]()
![]()
Linus
--
You received this message because you are subscribed to the Google Groups "Subsurface Divelog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to subsurface-divelog+unsubscribe@googlegroups.com.
To post to this group, send email to subsurface-divelog@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/subsurface-divelog/CA%2B55aFzY2HDCXpM89%3Dg6p4-931YXwrkmz9gFFBQ5s%3D8w1BNGNg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Linus
--
You received this message because you are subscribed to the Google Groups "Subsurface Divelog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to subsurface-divelog+unsub...@googlegroups.com.
To post to this group, send email to subsurface-divelog@googlegroups.com.
| |||||||||||||
Okay, looks like there is no udev directory.bash: /usr/lib/udev/rules.d/91-suunto-eonsteel.rules: No such file or directoryCould you please help me with how to add this ?
DIVE GOA Phone: +91 9325030110 Goa: SinQ Beach Club, Opp. Taj Holiday Village, Sinquerim Netrani: RNS Residency, Murudeshwar, Karnataka Website: www.divegoa.com ![]()
![]()
![]()
--
You received this message because you are subscribed to the Google Groups "Subsurface Divelog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to subsurface-divelog+unsubscribe@googlegroups.com.
To post to this group, send email to subsurface-divelog@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/subsurface-divelog/CA%2B55aFwKC55rOHQ040A7M_di6Cq%2BKX0NOACkO9kCbaRsoU7MWQ%40mail.gmail.com.
| |||||||||||||
| |||||||||||||
--
You received this message because you are subscribed to the Google Groups "Subsurface Divelog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to subsurface-divelog+unsub...@googlegroups.com.
To post to this group, send email to subsurface-divelog@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/subsurface-divelog/CA%2B55aFwKC55rOHQ040A7M_di6Cq%2BKX0NOACkO9kCbaRsoU7MWQ%40mail.gmail.com.
There is however:/etc/udev/rules.d/91-suunto-eonsteel.rulesShould i copy this to /usr/lib ?
| |||||||||||||
--
You received this message because you are subscribed to the Google Groups "Subsurface Divelog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to subsurface-divelog+unsub...@googlegroups.com.
To post to this group, send email to subsurface-divelog@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/subsurface-divelog/685fbd86-c762-40e5-ae14-1ded68bd1f59%40googlegroups.com.
On Wed, Apr 4, 2018 at 9:09 AM, Miika Turkia <miika....@gmail.com> wrote:
>
> Thanks. The problem does reproduce with this sample. So far I have not been able to figure out what has actually changed and how the temperature should be parsed from your log. I wonder if DM5 has changed something or what. Will need to dig into this more...
Isn't the old temperature format just in whole degrees Celsius?
The newer Suunto dive computers support 0.1°C temperatures - I bet
they left the old byte alone (maybe with some insane value), and added
a new field that has temperatures in tenths of degree Celsius.
[ Hmm. Goes and looks a bit ]
The old temperature format was a single byte temperature in C, but you
have some logic for a two-byte one for dm5:
int32_t temp = (sampleBlob[i * block_size + 10] << 8) +
sampleBlob[i * block_size + 11];
and then
if (temp >= -10 && temp < 50)
cur_sample->temperature.mkelvin = C_to_mkelvin(temp);
which is odd for several reasons.
One reason is that the way you decode it, the temperature cannot be
negative. It's between 0-65535.
The other reason is that even if the sign was fixed, it would still be
insane to encode a temperature value between -10 and 50 in a 16-bit
field.
So there's something odd going on. But I've never looked at the DM5
format, so ..
Side note: the code just above this does:
float *depth = (float *)&sampleBlob[i * block_size + 3];
which will only work on little-endian machines that don't have issues
with alignment.
Thankfully, nothing else is relevant or will ever be. ARM got with the
program eventually.
On Fri, Apr 6, 2018 at 12:09 PM, Miika Turkia <miika....@gmail.com> wrote:
>
> I guess I will have to look into it again. Too bad that looking at the code
> does not give any hints on where from some of that parsing weirdness came
> from. :D
Yeah, whoever did that commit 5807e4589 ("Initial support for Suunto
DM5 import") really didn't leave a lot of hints around.
Seems that the same field is still used but depending on blob version it is either decimal or float. And a nice twist was that if some samples don't record the temperature it is indicated by 0x7f in the field. Anyway, I added also some comments that might make it slightly easier for next time to understand what is going on.
On Fri, Apr 6, 2018, 22:29 Miika Turkia <miika....@gmail.com> wrote:
Seems that the same field is still used but depending on blob version it is either decimal or float. And a nice twist was that if some samples don't record the temperature it is indicated by 0x7f in the field. Anyway, I added also some comments that might make it slightly easier for next time to understand what is going on.I'm on mobile right now, but your code looks off.C_to_mkelvin(lrint(temp[0] * 1.0f))What?Why lrint()? Why "* 1.0f"?
Why isn't this justC_to_mkelvin(*temp)Which actually uses the actual new precision of the value..