CIQ DEVICE ATTRIBUTES FOR EVERY DEVICE

Here is a Google Doc with a bunch of useful attributes for all 71 devices that are available in the latest SDK. Note that 3 of the devices aren't available in the simulator and don't support CIQ applications. You should be able to make a copy of this spreadsheet and then use filters to create subsets. Like: all CIQ 2 and 3 devices that support Power Meters, etc.

https://docs.google.com/spreadsheets/d/1VQzO8iisKttG8g4JWBmOPZhD_4A1DllZ3qmJV2Ae3Do/edit?usp=sharing

A partial screenshot to show you what the table looks like:

  • Do you null check things?  Some things may be null if the sensor isn't connected or valid for the sport.

    In the API Doc for Activity.Info, there is this:

    "Fields in this class may return null so should be checked for null values prior to use."

  • hi jim thank you for answer!! Well i'mstruggling trying to understand where is the bug. I was able few minutes ago to receive the log of the fr645 where the bug find a good palce to stay:

    the log says:

    Error: Invalid Value
    Details: 'Failed invoking <symbol>'
    Time: 2024-01-09T20:13:49Z
    Part-Number: 006-B2886-00
    Firmware-Version: '6.90'
    Language-Code: dut
    ConnectIQ-Version: 4.2.4
    Store-Id: a08d9934-7dec-44c0-9ce8-8322b1100b9d
    Store-Version: 167
    Filename: E19A3639
    Appname: DrakeSpinningApp01
    Stack:
      - pc: 0x10007204
      - pc: 0x100086f6
    for the   - pc: 0x10007204 the debug xml of my app says:
    symbol="EvaluateB2BInterval"/>
    <entry filename="D:\\750 Visual Studio Code\\DrakeSpinningApp01\\source\\DrakeSpinningApp01View.mc" id="85" lineNum="1039" parent="globals/DrakeSpinningApp01View" pc="268464548" symbol="EvaluateB2BInterval"/>
    <entry filename="D:\\750 Visual Studio Code\\DrakeSpinningApp01\\source\\DrakeSpinningApp01View.mc" id="85" lineNum="1043" parent="globals/DrakeSpinningApp01View" pc="268464666"
    my code is the following. It is some math only
                // calculate the rMSSD (MAX 15)
                if (HrIntervSize>1)
                    {

                        for (i=0;i<(HrIntervSize-1);i++)
                            {
    (1039)                           rMSSDTemp= Math.sqrt( Math.pow((HrIntervalArr[i].toFloat()-HrIntervalArr[i+1].toFloat()),2)/(HrIntervSize.toFloat()) );
                            }
                    }
               
    (1043)            rMSSD=((rMSSD.toFloat()+rMSSDTemp.toFloat())/2.0);
                if (rMSSD<15.0) {lastrMSSD=rMSSD;}
                if (rMSSD>=15.0) {rMSSD=lastrMSSD;}
    for the   - pc: 0x100086f6  the debug xml of my app says:
    <entry filename="D:\\750 Visual Studio Code\\DrakeSpinningApp01\\source\\SensorManage.mc" id="110" lineNum="119" parent="globals/SensorManage" pc="268469958" symbol="onUpdate"/>
    <entry filename="D:\\750 Visual Studio Code\\DrakeSpinningApp01\\source\\SensorManage.mc" id="111" lineNum="55" parent="globals/SensorManage" pc="268470035" symbol="onTimer"/>
    my code is the following:
            if (SafeExitCounter<=0)
                {
     (119)               WatchUi.switchToView(new $.DrakeSpinningApp01View(), new $.DrakeSpinningApp01Delegate(), WatchUi.SLIDE_UP);
                }
        //! Timer callback
    (55)    public function onTimer() as Void
            {
                //Kick the display update
                WatchUi.requestUpdate();
            }
    can we have a candle to see something into the dark??
  • i found 2 other watches not working with my app: fenix 5 and vivoactive 3... what is the common thing?

  • how is it possible that the symbol EvaluateB2BInterval failed to be invoked only on fr645? or fenix 5 or vivoactive 3? 

  • I did a check for the code using the garmin simulator but it works for all of the 3 watches simulator... :-(

  • This spreadsheet is a little bit like my dev-tools: https://forums.garmin.com/developer/connect-iq/f/showcase/298405/garmin-dev-tools
    The main difference is that I generated csv files that later can be used from scripts to generate mc code or jungle file, while your table is more for manual use.