Subsurface Mobile: Adding mares USB (cp210x) support; how to proceed

Christof Arnosti charno at charno.ch
Sat Mar 7 08:26:42 PST 2020


Hi Stephen,

I hope that it will work with most computers using usb-to-serial
interfaces. The underlying usb-serial-for-android implementation
supports quite some chipsets.

I'd love for you to test the implementation!

You can grab a CI-Built apk from
https://github.com/Subsurface-divelog/subsurface/suites/505662208/artifacts/2634973
for testing. The source can be found at
https://github.com/charno/subsurface/tree/android-serial-clean, the pull
request at https://github.com/Subsurface-divelog/subsurface/pull/2647.

Best regards
Christof

On 07.03.20 17:22, Stephen Goodall wrote:
> Will this affect all USB computers with Android? Very exciting!! I had
> a look but made no progress (C++ is not something I've worked with so
> it would have been a miracle if I had made progress :D )
>
> I've got a Cressi Leonardo and a Suunto Zoop, and an Android 9 phone
> if you want me to test those out with any changes. Let me know the
> branch and I can build it and test it out
>
> Cheers!
>
> On Sun, 8 Mar 2020, 3:14 am Dirk Hohndel via subsurface,
> <subsurface at subsurface-divelog.org
> <mailto:subsurface at subsurface-divelog.org>> wrote:
>
>
>
>>     On Mar 7, 2020, at 5:27 AM, Christof Arnosti <charno at charno.ch
>>     <mailto:charno at charno.ch>> wrote:
>>
>>     Hi Dirk,
>>
>>     I did the integration of the Icon HD VID/PID pair, so if the
>>     testing is successful I think there is nothing left for me to do
>>     before a merge.
>>
>
>     I will play with this in a couple of hours and most likely merge
>     your changes.
>
>>     Someone just tested with an Mares Nemo Wide (Serial < 50000), and
>>     it did also work.
>>
>
>     Excellent.
>
>>     Just for clarification about the possible UI changes (now that
>>     I'm more awake again), I would envision a workflow like this:
>>     - When opening the divecomputer-screen, or pressing the refresh
>>     button ("Neu Scannen" in german), get all UsbDevices by issuing
>>     UsbManager.getDeviceList(). Use these to populate the connection
>>     ("Verbindung") list. (Only show the entries with specified
>>     driver-class when this is activated in the settings). I think
>>     there has to be done some work in the bt-discovery part so that
>>     these two mechanisms can work together.
>>
>
>     I'm not sure what you mean by only showing the entries with a
>     specified driver class. I thought the driver class is something
>     that you would select in that Connection drop down as an
>     alternative to the found devices.
>     My guess is that on the vast, vast majority of Android devices you
>     will only ever get one USB device. Maybe if someone uses a hub for
>     some reason (maybe to power the phone while reading dives?) one
>     might see more, but in general that would surprise me.
>     So we should optimize the user experience for the common case.
>     Which means to try and identify the one USB serial device that is
>     connected.
>>
>>     - When a device from the connection list is selected, maybe try
>>     to guess Vendor / Model by data provided in the UsbDevice-Object.
>>     There is already some code in QMLManager::showDownloadPage. I'm
>>     not sure how much there can be done since it seems that a lot of
>>     devices use the same PID/VIDs.
>>
>
>     Correct - I played with that back when working on the Intent code
>     and while there are a couple you can explicitly identify, for most
>     that is not possible
>
>>     - When the download-button is pressed, the UsbDevice-Object of
>>     the selected connection (and if selected the name of the
>>     driver-class) should be passed to serial_android_usb_open. From
>>     there on I can do the work.
>>
>
>     So again, you are suggesting to have a second (or actually,
>     fourth?) drop down with a driver class?
>
>>     There would probably also have to be done some changes when
>>     receiving the USB_DEVICE_ATTACHED intent so that the correct
>>     entry of the list is preselected.
>>
>
>     I believe so.
>
>     /D
>     _______________________________________________
>     subsurface mailing list
>     subsurface at subsurface-divelog.org
>     <mailto:subsurface at subsurface-divelog.org>
>     http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20200307/f8925a39/attachment.html>


More information about the subsurface mailing list