Scubacastor
Contributor
Depending on the browser you have, look for a "display source code of the page" function and then look for the links I mentionned.
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
I'm optimistic it will.Ok, a friend just told me about this thread.
I think if will join our efforts everything will work out just fine ;-)
Actually, no, that's not what we are doing. We are trying to talk directly to the device. The command structure is pretty straight forward. Commands are written to /req.txt and responses are in /ANS/ANSxx.txtYou 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 guess it all depends what you are comfortable with - I'd much rather figure out the weird communication protocol through tthe USB file systemI 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.
Jef from libdivecomputer is very well versed in deciphering those binary pieces - so if you get to something that works quicker than we do, by all means post pointers here. Since we can get the corresponding XML from their server I'm sure this is relatively easy to parse.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 ;-)
If you guys figure out how to interpret the "file_content" parts and all other binary information we should not have to worry anymore ;-)
after spending one or two hours to it, i am now able to read the xml-divelog direct from the device - without the need of the "SyncSDA.jar".
I am not sure if the UEMIS drive content is really usefull for you - this device gets reset on every connect...
I mainly need dives with as much variation as possible (e.g. air/nitrox, deco/non-deco, gas switches, violations, etc). The actual number of dives is less important.How many dives do you want? I am able to read all of my dives from the SDA...
Do you mean the xml data that is send to the server (and the ones you can see in the logfile too)? These are obtained by reading the ANS files. What we really need to figure out at the moment is how we can make the device populate these ANS files for us, without running the applet. And we don't know how to do that yet.
xxxx@wintermute >java -jar myuemis.jar
Initialize RPC...
DeviceID : 37623xxxxx
Geting device data...
Device:
<string>ae6b30eb6efdd8dcaf25d0bf614b4a18</string>
<list>
<hash ref="device" version="1.0">
<val key="computer_id">
<int>xxxxx</int>
</val>
<val key="computer_type">
<string>14</string>
</val>
<val key="hardware_version">
<string>100</string>
</val>
<val key="firmware_version">
<string>1.20</string>
</val>
</hash>
</list>
Start Session...
Process Sync...
Trying to get divelog...
Downloaded 8 logs
LOG-XML:
<string>ae6b30eb6efdd8dcaf25d0bf614b4a18</string>
<list>
<hash ref="divelog" version="1.0">
<val key="computer_id">
<int>xxxxx</int>
</val>
<val key="object_id">
<int>161</int>
</val>
<val key="date">
<ts>2011-06-19T13:18:37</ts>
</val>
<val key="duration">
<float>26.000000</float>
</val>
<val key="depth">
<int>1237</int>
</val>
<val key="gas">
<int>0</int>
</val>
<val key="water">
<int>0</int>
</val>
<val key="file_content">
<bin format="base64">RGl2ZQEAAKEAbY5B4GQAAAA....
Hello Fabian,
that's impressive. Is it possible to get your myuemis.jar file ?