With Connect IQ 3.2 where do we lookup the Device CIQ version compatibility?

Hi,

ConnectIQ SDK 3.2 appears to be a breath of fresh air! Looking great!

Now, I was using the devices.xml file to lookup device specific quirks and CIQ version compatibility. It seems this file is no longer available in the SDK after the restructuring, instead I see some of this info in the reference guides (which are great), but not the latest supported CIQ version for each device.

Is there a convenient place where this information can be looked-up?

Thanks!

  • if you are on windows (not sure of the path on a mac) the device info is in

    C:\Users\(you)\AppData\Roaming\Garmin\ConnectIQ\Devices

    and there's a folder for each device

    Another option is to just put together a simple app that displays the info you want.  Run it in the sim for the specific target, you see what the sim thinks.  The advantage is you can side load it and see what's actually on the device (the two can be different - the 945  with the 5.00 FW has CIQ 3.2, while the sim shows 4.00 FW and CIQ 3.1.6 right now for example.)

  • Check, I've been referring to https://docs.google.com/spreadsheets/d/1vnLyeX8RQt4JtpJVnVSvJ65Nb1X1eWeuj_A6tAis9Uc/edit#gid=1170817151

    Posted by a fellow a developer, but it's at this point heavily outdated (although still somewhat useful).

    I'll have a look at your suggestions Thumbsup

    Ps: it would be really convenient to have all the device info in the SDK provided reference guide since this could be updated with each release.

  • Things are different now.  The devices can be updated without the SDK/doc being updated.  That's the reason behind the new SDK manager and the two being separated.

  • Well, there is info here for all devices already: /Library/Application Support/Garmin/ConnectIQ/Sdks/connectiq-sdk-mac-3.2.1-2020-08-20-56ff593b7/ReferenceGuides.html

    In the "Device Reference" section, there's a table where basically just the CIQ version is missing.

    I assume these docs could also be updated without updating the whole SDK.

    I already found a few errors, that seem to point to this being WIP, the "References_toc.md" is trying to be included, but there is no markdown file in the folder where ReferenceGuides.html is. Hope its updated, and the CIQ version info is added.

  • That doc is actually part of the SDK. So to be updated, the SDK needs to be updated.

    What's happening now is really no different than what happened with 2.4.0, 3.0.0, and 3.1.0 where devices get the new FW at different times.  As I said, this is a case where "has" is really handy.

  • I started using it, but quickly changed into using exclusion annotations.

    I'm a bit scared of memory usage creeping up as I'm already looming on the limits of some devices. Wouldn't that approach imply keeping more state and state handling logic, or?

    But you're right in that using the "has" would make things easier to maintain. Specially since devices get updates, then you need to adjust things in the jungles to cope with it.

  • has works great for things you plan to add, but can only be used when there is the proper FW.

    Her's an example.  In initialize(), I do this:

    		if(Toybox.Graphics.Dc has :setAntiAlias){
    			hasAA=true;				
    		}

    then in onUpdate():

    if(hasAA) {dc.setAntiAlias(true);}

    "has" is much more expensive than checking the state of a boolean.  "Has" searches a dictionary each time, so I only do that once..

    With this, AntiAliasing will work on any device that has the FW to support it

  • It seems like it would be nice if we could view the installed device info right in the SDK manager. That would kill two birds with one stone (make device info easy to view and we could avoid maintaining the poorly maintained docs). I'll make a suggestion and see where that goes. It seems especially useful now that device configs can be independently updated, leaving the docs out of date.

  • You can see the list of installed devices in the SDK manger, so maybe make it part of that?  Maybe include FW and CIQ level?

  • That's pretty much what I was thinking. :)