Suunto app Forum Suunto Community Forum
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Ambit Apps Compilation

    Scheduled Pinned Locked Moved Digital service transition
    43 Posts 14 Posters 5.7k Views 17 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Z Offline
      zt_zzzzz @Guest
      last edited by

      @pavel-samokha
      Excellent

      1 Reply Last reply Reply Quote 0
      • Z Offline
        zt_zzzzz
        last edited by

        ask for advice,how to use it?😊 😊

        1 Reply Last reply Reply Quote 0
        • Aleksander HA Offline
          Aleksander H Bronze Member
          last edited by

          We’ll, this is just plain wonderfull!

          1 Reply Last reply Reply Quote 0
          • pavel.samokhaP Offline
            pavel.samokha @sebchastang
            last edited by

            @sebchastang said in Ambit Apps Compilation:

            Is it possible to create new apps with this method?

            I assume so, though as it lacks proper error handling n etc I’d rather see it as a tool for existing apps users to adjust existing app settings than developing app from scratch.

            How to declare new variables?

            See “detailed instructions” section on user variables and sample request. Is that what you are asking for or something else?

            How can we set the output format (0 decimal, 1 decimal, time, …)?
            Do we set prefix and postfix values just like other variables?

            I just added info about that int “detailed instructions” section

            It is definitely a great step forward to be able to edit Suunto Apps using a command line but it would be much more easy in a graphical way. Any plan for such a user interface?

            Well, it’s not difficult to create simple UI for that (like editor form & compilation output, not trying to copy Movescount UI) but not sure if I have time to do that and when. Also may be even better to integrate such UI into SL, but we’re unlikely have resources to do that soon.

            Opinions expressed are solely my own and do not express the views or opinions of my employer

            sebchastangS 1 Reply Last reply Reply Quote 5
            • sebchastangS Online
              sebchastang Silver Members @pavel.samokha
              last edited by

              @pavel-samokha Thanks for the clarification and answers.

              I also think it is more a way to modify an existing app than creating a new ones.

              I asked for new variables because there was a specific section to declare them in movescount but I understand I have to declare and set variable values at the same time in the header section now.

              Suunto Vertical
              Suunto Traverse

              1 Reply Last reply Reply Quote 0
              • pavel.samokhaP Offline
                pavel.samokha
                last edited by

                Added Simple UI for Compiler

                Opinions expressed are solely my own and do not express the views or opinions of my employer

                1 Reply Last reply Reply Quote 6
                • EgikaE Offline
                  Egika Platinum Member
                  last edited by

                  Now I have learned more old watches internal names 🙂

                  t6, S6, Elementum Terra, Ambit 3 Sapphire, Spartan Ultra Copper, Traverse Alpha, S7 Graphite LE, S9B Ambassador, S9P Granite Blue Titanium, S9PP Titanium Sand, Vertical All Black, Race Titanium Charcoal,
                  Race S All Black - TI Canary - Titanium Courtney

                  sebchastangS 1 Reply Last reply Reply Quote 1
                  • sebchastangS Online
                    sebchastang Silver Members @Egika
                    last edited by

                    Hi,

                    I have compilation error when I set prefix and postfix values in the header section.
                    I have tried:
                    prefix = “xxx”
                    prefix = ‘xxx’
                    prefix = xxx

                    format is OK. Only prefix and postfix give errors.

                    Can anybody help me?
                    Thanks.

                    Suunto Vertical
                    Suunto Traverse

                    ? pavel.samokhaP 2 Replies Last reply Reply Quote 0
                    • ? Offline
                      A Former User @sebchastang
                      last edited by A Former User

                      @sebchastang did you put prefix/postfix in the header?
                      yes (sorry I’ve just relized you wrote that). I moved those in the code .

                      1 Reply Last reply Reply Quote 1
                      • pavel.samokhaP Offline
                        pavel.samokha @sebchastang
                        last edited by

                        @sebchastang I’ll check on the weekend

                        Opinions expressed are solely my own and do not express the views or opinions of my employer

                        sebchastangS 1 Reply Last reply Reply Quote 1
                        • sebchastangS Online
                          sebchastang Silver Members @pavel.samokha
                          last edited by

                          @G-Q @pavel-samokha thanks for your answers.

                          Suunto Vertical
                          Suunto Traverse

                          pavel.samokhaP 1 Reply Last reply Reply Quote 0
                          • pavel.samokhaP Offline
                            pavel.samokha @sebchastang
                            last edited by

                            @sebchastang prefix = xxx should work now

                            Opinions expressed are solely my own and do not express the views or opinions of my employer

                            sebchastangS 1 Reply Last reply Reply Quote 2
                            • sebchastangS Online
                              sebchastang Silver Members @pavel.samokha
                              last edited by

                              @pavel-samokha Thanks a lot!
                              It’s all good now 👍

                              Do you think there is a possibility (in a near future) to give access to the app simulator we had in movescount to test the apps?

                              Suunto Vertical
                              Suunto Traverse

                              pavel.samokhaP 1 Reply Last reply Reply Quote 1
                              • pavel.samokhaP Offline
                                pavel.samokha @sebchastang
                                last edited by

                                @sebchastang Unfortunately, I think it’s unlikely

                                Opinions expressed are solely my own and do not express the views or opinions of my employer

                                1 Reply Last reply Reply Quote 0
                                • Z Offline
                                  zt_zzzzz
                                  last edited by

                                  The trial is OK, thank you!

                                  1 Reply Last reply Reply Quote 0
                                  • C Offline
                                    Christos Palikaras
                                    last edited by

                                    @pavel-samokha Thank you for the implementation!

                                    I’ve created the below app, but when trying to create or edit a sport mode, displays are not loading.

                                    d15da542-be98-47cd-85fe-c83b568601af-image.png

                                    curl --location --request POST 'https://ambitappscompiler.azurewebsites.net/api/compile' \
                                    --header 'x-functions-key: qakj8vb/62VgzmSl19mDQzRmW7nCSDv0zAo2A1aC3ldfd8U8r5jksA==' \
                                    --header 'Content-Type: text/plain' \
                                    --data-raw '/* Duration App */
                                    /* Interval 1 */
                                    
                                    /* Initialize variables */
                                    if (SUUNTO_DURATION == 0) {
                                      RESULT = 0;
                                    }
                                    
                                    /* Lap 1, 2 is step type Interval with duration type Time */
                                    if (SUUNTO_LAP_NUMBER == 1 || SUUNTO_LAP_NUMBER == 2) {
                                      prefix = "int";
                                      postfix = "s";
                                      RESULT = 5 - SUUNTO_LAP_DURATION;
                                    }
                                    
                                    /* Lap 3 is step type Interval with duration type Time */
                                    if (SUUNTO_LAP_NUMBER == 3) {
                                      prefix = "int";
                                      postfix = "s";
                                      RESULT = 10 - SUUNTO_LAP_DURATION;
                                    }
                                    
                                    /* Lap 4, 5, 6 is step type Interval with duration type Time */
                                    if (SUUNTO_LAP_NUMBER == 4 || SUUNTO_LAP_NUMBER == 5 || SUUNTO_LAP_NUMBER == 6) {
                                      prefix = "int";
                                      postfix = "s";
                                      RESULT = 15 - SUUNTO_LAP_DURATION;
                                    }
                                    
                                    /* Lap 7 is step type Interval with duration type Time */
                                    if (SUUNTO_LAP_NUMBER == 7) {
                                      prefix = "int";
                                      postfix = "s";
                                      RESULT = 20 - SUUNTO_LAP_DURATION;
                                    }
                                    
                                    /* Check if duration is reached */
                                    if (RESULT < 0) {
                                      RESULT = 0;
                                      /* Alert that duration is reached */
                                      Suunto.alarmBeep();
                                      Suunto.light();
                                    }'
                                    
                                    pavel.samokhaP 1 Reply Last reply Reply Quote 0
                                    • pavel.samokhaP Offline
                                      pavel.samokha @Christos Palikaras
                                      last edited by

                                      @christos-palikaras I guess corrupted index.json may be cause this. I’ll try to update doc with more detailed instructions.

                                      Opinions expressed are solely my own and do not express the views or opinions of my employer

                                      C 1 Reply Last reply Reply Quote 0
                                      • C Offline
                                        Christos Palikaras @pavel.samokha
                                        last edited by

                                        @pavel-samokha It seems that the output of the Compiler UI should be an array of json objects. That fixed my issue.

                                        pavel.samokhaP 1 Reply Last reply Reply Quote 1
                                        • pavel.samokhaP Offline
                                          pavel.samokha @Christos Palikaras
                                          last edited by

                                          @christos-palikaras yes, in index.json it’s an JSON array, but compiler output is one json object with assumption that user might want to add it to existing array of apps, not replacing it completely with one.

                                          Opinions expressed are solely my own and do not express the views or opinions of my employer

                                          1 Reply Last reply Reply Quote 0
                                          • Z Offline
                                            zt_zzzzz
                                            last edited by

                                            share Power_Zone:
                                            /FTP=SUUNTO_USER_HEIGHT+100; Because SUUNTO_USER_HEIGHT≤250;of course you can +200 or +300/

                                            /*FTP=SUUNTO_USER_HEIGHT+100; Because SUUNTO_USER_HEIGHT≤250;*/
                                            RESULT = 0;
                                            FTP=SUUNTO_USER_HEIGHT+100;
                                            if(SUUNTO_BIKE_POWER_AVG[3] < FTP * 25/100) {
                                              RESULT=( 0 + (SUUNTO_BIKE_POWER_AVG[3] / (FTP * 25/100)) );postfix="Rest";
                                            }
                                            else if (SUUNTO_BIKE_POWER_AVG[3] < FTP * 55/100) {
                                              RESULT=(1 + ( ( SUUNTO_BIKE_POWER_AVG[3] - (FTP * 25/100) ) / ( (FTP * 55/100) - (FTP * 25/100) ) ) ) ;postfix="Rec";
                                            }
                                            else if (SUUNTO_BIKE_POWER_AVG[3]>FTP * 55/100 && SUUNTO_BIKE_POWER_AVG[3]< FTP * 75/100)
                                             {RESULT=(2 + ( ( SUUNTO_BIKE_POWER_AVG[3] - (FTP * 55/100) ) / ( (FTP * 75/100) - (FTP * 55/100) ) ) );postfix="End"; }
                                            else if (SUUNTO_BIKE_POWER_AVG[3]>FTP * 75/100 && SUUNTO_BIKE_POWER_AVG[3] < FTP * 90/100)
                                            
                                            {RESULT=(3 + ( ( SUUNTO_BIKE_POWER_AVG[3] - (FTP * 75/100) ) / ( (FTP * 90/100) - (FTP * 75/100) ) ) ) ;postfix="Temp"; }
                                            
                                            
                                            else if (SUUNTO_BIKE_POWER_AVG[3]> FTP * 90/100 && SUUNTO_BIKE_POWER_AVG[3]< FTP* 105/100 )
                                                  {RESULT=(4 + ( ( SUUNTO_BIKE_POWER_AVG[3] - (FTP * 90/100) ) / ( (FTP * 105/100) - (FTP * 90/100) ) ) );postfix="Thresh"; }
                                                     
                                            else if(SUUNTO_BIKE_POWER_AVG[3]> FTP * 105/100 && SUUNTO_BIKE_POWER_AVG[3]< FTP * 120/100)
                                                  {RESULT=(5 + ( ( SUUNTO_BIKE_POWER_AVG[3] - (FTP * 105/100) ) / ( (FTP * 120/100) - (FTP * 105/100) ) ) ) ;postfix="VO2M"; }
                                                     
                                            else if(SUUNTO_BIKE_POWER_AVG[3]> FTP * 120/100 && SUUNTO_BIKE_POWER_AVG[3]< FTP * 150/100)
                                                {RESULT=(6 + ( ( SUUNTO_BIKE_POWER_AVG[3] - (FTP * 120/100) ) / ( (FTP * 150/100) - (FTP * 120/100) ) ) );postfix="Anaer"; }
                                                     
                                            else if (SUUNTO_BIKE_POWER_AVG[3] > FTP * 150/100 )
                                               {RESULT=(7 + ( ( SUUNTO_BIKE_POWER_AVG[3] - (FTP * 150/100) ) / ( 2000 - (FTP * 150/100) ) ) ) ;postfix="SPRINT"; }
                                              
                                            

                                            [json]

                                            {"ruleId":11000004,"name":"Power_Zone","categoryId":0,"activityId":1,"userCount":1,"binary":[73,65,77,82,85,76,69,0,8,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,130,0,0,0,42,0,50,0,60,0,70,0,80,0,88,0,110,0,0,0,114,117,108,101,48,0,255,191,82,69,83,85,76,84,0,0,255,63,112,111,115,116,102,105,120,0,255,63,112,114,101,102,105,120,0,0,255,63,116,105,116,108,101,0,85,0,83,85,85,78,84,79,95,85,83,69,82,95,72,69,73,71,72,84,0,0,69,0,83,85,85,78,84,79,95,66,73,75,69,95,80,79,87,69,82,0,4,0,2,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,1,0,0,0,0,0,2,0,0,0,32,0,7,0,0,0,0,0,6,0,0,0,32,0,1,0,0,0,0,0,14,0,0,0,32,0,1,0,0,0,0,0,16,0,0,0,4,0,1,0,0,0,0,0,18,0,0,0,4,0,4,0,0,0,0,0,22,0,0,0,4,0,0,0,0,0,0,0,38,0,0,0,4,0,0,0,0,0,0,0,42,0,0,0,160,0,1,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,46,0,0,0,4,0,0,0,0,0,0,0,50,0,0,0,4,0,0,0,0,0,0,0,54,0,0,0,160,0,5,0,0,0,0,0,2,0,0,0,160,0,4,0,0,0,0,0,8,0,0,0,160,0,4,0,0,0,0,0,12,0,0,0,160,0,5,0,0,0,0,0,16,0,0,0,160,0,7,0,0,0,0,0,22,0,0,0,160,0,5,0,0,0,0,0,30,0,0,0,160,0,6,0,0,0,0,0,36,0,0,0,160,0,7,0,0,0,0,0,42,0,0,0,58,0,50,0,0,0,82,101,115,116,0,0,82,101,99,0,69,110,100,0,84,101,109,112,0,0,84,104,114,101,115,104,0,0,86,79,50,77,0,0,65,110,97,101,114,0,83,80,82,73,78,84,0,0,52,3,28,7,0,22,32,0,144,0,0,0,0,21,8,0,25,16,9,24,89,2,0,25,16,9,24,89,3,0,25,16,9,24,89,4,0,16,1,21,7,0,28,5,0,28,6,0,12,22,6,0,13,0,3,18,252,2,144,0,0,64,64,21,10,0,20,10,0,144,0,0,0,0,7,22,48,0,20,10,0,144,0,0,128,191,1,144,0,0,128,63,1,84,6,0,20,10,0,144,0,0,128,63,1,85,6,0,20,10,0,144,0,0,128,191,1,21,10,0,13,202,255,144,0,0,0,0,21,11,0,144,0,0,128,63,21,10,0,20,10,0,144,0,0,128,64,5,22,61,0,20,11,0,20,10,0,144,0,0,128,63,1,84,6,0,1,21,11,0,20,10,0,144,0,0,64,64,9,22,15,0,20,11,0,144,171,170,170,62,3,21,8,0,20,10,0,144,0,0,128,63,1,21,10,0,13,189,255,144,0,0,0,0,21,1,0,20,5,0,144,0,0,200,66,1,21,12,0,20,8,0,20,12,0,144,0,0,128,62,3,5,22,35,0,20,8,0,20,12,0,144,0,0,128,62,3,4,144,0,0,0,0,1,21,1,0,25,16,13,24,89,2,0,13,30,2,20,8,0,20,12,0,144,205,204,12,63,3,5,22,55,0,20,8,0,20,12,0,144,0,0,128,62,3,2,20,12,0,144,205,204,12,63,3,20,12,0,144,0,0,128,62,3,2,4,144,0,0,128,63,1,21,1,0,25,16,14,24,89,2,0,13,218,1,20,8,0,20,12,0,144,205,204,12,63,3,7,20,8,0,20,12,0,144,0,0,64,63,3,5,11,22,55,0,20,8,0,20,12,0,144,205,204,12,63,3,2,20,12,0,144,0,0,64,63,3,20,12,0,144,205,204,12,63,3,2,4,144,0,0,0,64,1,21,1,0,25,16,15,24,89,2,0,13,136,1,20,8,0,20,12,0,144,0,0,64,63,3,7,20,8,0,20,12,0,144,102,102,102,63,3,5,11,22,55,0,20,8,0,20,12,0,144,0,0,64,63,3,2,20,12,0,144,102,102,102,63,3,20,12,0,144,0,0,64,63,3,2,4,144,0,0,64,64,1,21,1,0,25,16,16,24,89,2,0,13,54,1,20,8,0,20,12,0,144,102,102,102,63,3,7,20,8,0,20,12,0,144,102,102,134,63,3,5,11,22,55,0,20,8,0,20,12,0,144,102,102,102,63,3,2,20,12,0,144,102,102,134,63,3,20,12,0,144,102,102,102,63,3,2,4,144,0,0,128,64,1,21,1,0,25,16,17,24,89,2,0,13,228,0,20,8,0,20,12,0,144,102,102,134,63,3,7,20,8,0,20,12,0,144,154,153,153,63,3,5,11,22,55,0,20,8,0,20,12,0,144,102,102,134,63,3,2,20,12,0,144,154,153,153,63,3,20,12,0,144,102,102,134,63,3,2,4,144,0,0,160,64,1,21,1,0,25,16,18,24,89,2,0,13,146,0,20,8,0,20,12,0,144,154,153,153,63,3,7,20,8,0,20,12,0,144,0,0,192,63,3,5,11,22,55,0,20,8,0,20,12,0,144,154,153,153,63,3,2,20,12,0,144,0,0,192,63,3,20,12,0,144,154,153,153,63,3,2,4,144,0,0,192,64,1,21,1,0,25,16,19,24,89,2,0,13,64,0,20,8,0,20,12,0,144,0,0,192,63,3,7,22,48,0,20,8,0,20,12,0,144,0,0,192,63,3,2,144,0,0,250,68,20,12,0,144,0,0,192,63,3,2,4,144,0,0,224,64,1,21,1,0,25,16,20,24,89,2,0,13,4,0,19,31,0],"compatibleVariants":["Colibri","Duck","Emu","Finch","Kaka"]}
                                            
                                            D 1 Reply Last reply Reply Quote 0
                                            • pavel.samokhaP pavel.samokha referenced this topic on
                                            • Z zt_zzzzz referenced this topic on
                                            • Z zt_zzzzz referenced this topic on
                                            • First post
                                              Last post

                                            Suunto Terms | Privacy Policy