Edge 130 Plus and 3.2.x

I'm new to this so I may be missing something obviuos.

In the API docs for WorkOutStep, the Edge 130 + is listed as a supported device. 

https://developer.garmin.com/connect-iq/api-docs/Toybox/Activity/WorkoutStep.html

If I set the Min SDK version to 3.2.x in the manifest.xml, I cannot select the Edge 130 + as a build target.

How can I use the WorkOutStep API?

Paul.

  • The Edge 130+ doesn't currently support CIQ 3.2.  It's still on CIQ 3.1.  So the only thing to do is to wait until the E130+ supports 3.2.  If you try to side load an app that uses 3.2 functions to it, it's likely your app with crash unless you took steps to protect the app with jungles or has.

    "Since:

    3.2.0"

    indicates what the device itself supports, not which SDK you use.

  • Jim,

    Thanks for that but still confused.

    What is the "3.2.0" in the API docs?

    Paul.

  • The link you posted to WorkoutStep.html doesn't actually list any supported devices, but does say "Since 3.2.0"

    That's the version of CIQ which needs to be running on the device, not the SDK used to build with it.

    The e130+ is still running 3.1, so when you set a min of 3.2 it's no longer a compatible device, and that's why it's grayed out as a target.

  • Overview

    The Activity.WorkoutStep class contain information about current workout step

    Since:

    3.2.0

    Supported Devices:

    [Hide devices]
    • Captain Marvel
    • D2Tm Air
    • Darth VaderTm
    • Edge® 130
    • Edge® 130 Plus
    • First Avenger
    • Forerunner® 245
    • Forerunner® 245 Music
    • Forerunner® 745
    • Forerunner® 945
    • fēnix® 6 / 6 Solar / 6 Dual Power
    • fēnix® 6 Pro / 6 Sapphire / 6 Pro Solar / 6 Pro Dual Power / quatix® 6
    • fēnix® 6S / 6S Solar / 6S Dual Power
    • fēnix® 6S Pro / 6S Sapphire / 6S Pro Solar / 6S Pro Dual Power
    • fēnix® 6X Pro / 6X Sapphire / 6X Pro Solar / tactix® Delta Sapphire / Delta Solar / Delta Solar - Ballistics Edition / quatix® 6X / 6X Solar / 6X Dual Power
    • MARQTm Adventurer
    • MARQTm Athlete
    • MARQTm Aviator
    • MARQ® Captain / MARQ® Captain: American Magic Edition
    • MARQTm Commander
    • MARQTm Driver
    • MARQTm Expedition
    • MARQTm Golfer
    • ReyTm
    • VenuTm
    • VenuTm Mercedes-Benz® Collection
    • Venu® Sq
    • Venu® Sq. Music Edition
    • vívoactive® 3 Music
    • vívoactive® 3 Music LTE
    • vívoactive® 4
    • vívoactive® 4S

    How do you tell what version the device is running?

    Is it possible the device is running 3.2 but the public SDK has not been updated to allow devs access to these new APIs?

    Paul

  • First place to look is the forum for the device:

    https://forums.garmin.com/sports-fitness/cycling/f/edge-130-plus

    It doesn't look like it has 3.2.x yet, but I may be wrong.  Ask someone there to check "about" on their device for the CIQ version.  If the version for the main FW doesn't end in 0, it has beta FW, and the SDK devices would be updated until it makes it to production FW.

    I do see the supported devices in the SDK doc (but not the online version), and it looks like there is an error where the only edge devices are the e130 and e130+ and shouldn't be there or other edge devices should be there.  All the other devices in the list have 3.2.    Any thoughts?

  • I have the device. There is no reference to the CIQ version. SW version is 2.60.

  • Use this in a simple data field.  In the sim I see [3,1,6] (Ciq 3.1.6)

    using Toybox.WatchUi;
    
    class sdfvView extends WatchUi.SimpleDataField {
    
        // Set the label of the data field here.
        function initialize() {
            SimpleDataField.initialize();
            label = "CIQ Ver";
        }
    
        // The given info object contains all the current workout
        // information. Calculate a value and return it in this method.
        // Note that compute() and onUpdate() are asynchronous, and there is no
        // guarantee that compute() will be called before onUpdate().
        function compute(info) {
            // See Activity.Info in the documentation for available information.
            return (System.getDeviceSettings().monkeyVersion).toString();
        }
    
    }

  • The code that generates our documentation isn't taking the device SDK version into account when deciding if a feature is supported or not. It can't really do that because there are multiple firmware versions possible for a device. For example, the APAC edge130 supports 3.0.1, but the WW edge130 supports 3.1.1. This means that some edge130 devices will have support for 3.1 features and others will not.

  • On the Edge 130 Plus - [3,2,0]

    But the ConnectIQ version on device doesn't have any impact on the functionality of the compiler.

    The edge130plus device definition (downloaded with the SDK manager) lists the currently supported SDK version for that device as 3.1.6. This can be verified by running 's code in the simulator, or by inspecting the device files...

    C:\> findstr "connectIQVersion" %APPDATA%\Garmin\ConnectIQ\Devices\edge130plus\compiler.json
        "connectIQVersion": "3.1.6",
        "connectIQVersion": "3.1.6",

    This means that the compiler doesn't believe that the device has the required support, and that means that you can't set 3.2 as a build target.

    You should not need to set the minSDKVersion to 3.2 to be able to access this feature. You should able to leave it at 3.1 and then do a has check to see if the functionality is available or not. You can expect that it won't be available on the simulator, but it should work on a device that has 3.2 support.

    We try to keep these numbers up-to-date, but we don't typically update them for beta firmware releases, and we often don't get them updated immediately when the production firmware is released. What firmware are you using on your edge130plus?