Accessing Dive Info on the UEMIS SDA

Please register or login

Welcome to ScubaBoard, the world's largest scuba diving community. Registration is not required to read the forums, but we encourage you to join. Joining has its benefits and enables you to participate in the discussions.

Benefits of registering include

  • Ability to post and comment on topics and discussions.
  • A Free photo gallery to share your dive photos with the world.
  • You can make this box go away

Joining is quick and easy. Log in or Register now!

Hi,

If its of any use I'm taking a bunch of divers from our club to the local Hyperbaric chamber on August 3rd to do a chamber bounce dive to 50m for 10 minutes, deco done using Canadian DCIEM tables. They give a full printout of the deco schedule used afterwards. I can extract the xml files from my computer and send those with a copy of that deco shedule if you want?

Nice to see some other people trying to get out the data of the sda. I started a long time ago, decompiled the jar and created a wrapper class to sniff the communication between the 'web client' and the tinyrpc (which does the actual communication over files with the SDA) but then I stopped due to lack of time.
In my opinion, the hardest part is to get the actual data out of the dive blob... but therefor two options come to my mind:
- ask a former employee
- do several defined dives in a pressure chamber
-> fortunately I have access to both :wink: but as said the biggest problem for me is time...
but maybe if necessary and the interests is big enough I may allocate some spare time for this project as I would really love to sync to a 'real' pc app (as long as it works on linux)
 
WHOOOOHOOOOO>.....GREAT JOB!!!

GUYS---- I please urge you to NOT use the free software and please support the efforts of divinglog by purchasing the software. They didn't need to do this, and I please urge you to support their efforts up to this point, as we all know they will continue to improve upon this platform! $50 is a small price to pay for not getting screwed by what has transpired with UEMIS, and we all know it :wink:

THANKS AGAIN!!!!

For the record - I was (one of ??) the early tester(s) for this. Working with Sven on figuring out a couple of remaining issues was swift and his response time was amazing. The import now works like a charm (for the single gas no deco dives that I have so far).

And yes, I of course immediately bought the full version of DivingLog as I said I would.

So I second Mike's request to PLEASE BUY DivingLog in order to support the developer who's doing such a great job supporting us.

Thank you, Sven.
 
In my opinion, the hardest part is to get the actual data out of the dive blob...
At the moment extracting the (profile) information from the raw binary data is actually the easy part. I have plenty of experience with this type of reverse engineering. Now that I did found a way to get at the decoded data from the server (e.g. the XML files), it's not that difficult to figure out the format of the binary data. I already have found the basic structure and can already extract the depth profile.

But as dirkhh already mentioned in post #23, the hard part is getting at the raw data. We can already grab the data while the applet is uploading dives, but to be really useful we need to be able to do that without the applet. Because, if the uemis server would disappear, the applet will be of no use anymore.
 
Sounds exciting results guys.

For those who like to share their profile online, (it is no longer possible on the uemis website) I managed to replicate the UEMIS interface on my website (still get a silly XML error about something called data_src - not sure if this is an xml file, or some files inside that directory that are the problem - however, I am trying to get rid of this)

works so far with firefox. Can't have it running on IE on my side.

Logbook - uemis - THE UNDERWATER REVOLUTION

The root of my basic "uemis website" is called www.eocean.fr\uemis

You have the following web structure
www.eocean.fr\uemis\en\sda_logbook\data_src
www.eocean.fr\uemis\en\sda_logbook\data_src\test <= name/number of your "dive", here "test"
www.eocean.fr\uemis\en\sda_logbook\locale_src\test
www.eocean.fr\uemis\en\sda_logbook\preview\test
www.eocean.fr\uemis\extension\uemis_sda\design\standard\flash
www.eocean.fr\uemis\extension\uemis_sda\design\standard\flash\data
www.eocean.fr\uemis\extension\uemis_sda\design\standard\flash\swf

And need the following files
www.eocean.fr\uemis\en\sda_logbook\data_src\data_src.xml
www.eocean.fr\uemis\en\sda_logbook\data_src\test\divelog <= your divelog xml file
www.eocean.fr\uemis\en\sda_logbook\data_src\test\dive <= your dive xml file

www.eocean.fr\uemis\en\sda_logbook\preview\test\index.htm <= All the paths inside that file have to be corrected for your website
www.eocean.fr\uemis\en\sda_logbook\preview\test\logbook.css
www.eocean.fr\uemis\en\sda_logbook\preview\test\main.swf
www.eocean.fr\uemis\en\sda_logbook\preview\test\swfobject.js
www.eocean.fr\uemis\extension\uemis_sda\design\standard\flash\main.swf
www.eocean.fr\uemis\extension\uemis_sda\design\standard\flash\data\config.xml
www.eocean.fr\uemis\extension\uemis_sda\design\standard\flash\data\locale_en.xml
www.eocean.fr\uemis\extension\uemis_sda\design\standard\flash\swf\divelog_assets.swf

Next step => putting index.htm at the root of my website and adding some php to select the dives.
 
I have another Diving Log update for the XML import. Just download the zip file again and extract it into the Diving Log 5.0.3 program folder. The following things were improved:

  • You can select now several dive.xml files at once and import them all together
  • Lots of improvements for dives with multiple tanks (gas switches, more than one tank sensor, etc.)
  • Deco dives, deco ceiling and stop time are now imported

Up to 3 tank pressure profiles are now imported, gas type should be now correct. You can see here an Uemis dive with gas switch after import:

Profiles.jpg
 
Awesome work Sven!!

And that's my dive profile from a 52m Trimix dive :D Gotta love those 3 deco stops - I think I nailed those ok! :cool2:

Email sent with 1 little (I mean little) issue that you may be able to resolve.
 
Last edited:
Thank you everyone for your kind words! I would like to thank also Jef Driesen (Scubaboard user TnT) for his great work! Please use the donate button at the bottom of his page to support him! Without the libdivecomputer library, software like MacDive or Diving Log won't have all the direct download functions. He is doing all the hard work on reverse engineering the dive computer communication protocols in his free time and provides his work as open source library to the community. It's not just the Uemis SDA, there are many more computers supported, in most cases without any support from the manufacturers. So please support his project with a donation, thank you!
 
...
But as dirkhh already mentioned in post #23, the hard part is getting at the raw data. We can already grab the data while the applet is uploading dives, but to be really useful we need to be able to do that without the applet. Because, if the uemis server would disappear, the applet will be of no use anymore.

Ok, a friend just told me about this thread.
I think if will join our efforts everything will work out just fine ;-)
You all seem to be logging the traffic to the servers by making use of the fact that the required SSL keys are stored in the testkeys file on the SDA.
I decompiled the SyncSDA.jar and I am certain that I can come up with a solution to communicate with device itself.
It's quite easy to circumvent the VPI infrastructure by calling the Methods of the ininet.tinyRPC.tinyRPCMaster class.
This class use the USBFileCommunication class to access the ANS/ANS*.TXT files for direct communication with the SDA.
The USBFileCommunication is doing "strange" things I don't dare to access directly, but tinyRPCMaster uses the XML Strings you saw within
Applet-Server communication.
I implemented some Parsers to create basic pojos. Just a few more hours and I hopefully dare to run some request directly against my device.
If you guys figure out how to interpret the "file_content" parts and all other binary information we should not have to worry anymore ;-)
 
  • Like
Reactions: BB1

Back
Top Bottom