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

    [Question] No stupid questions - ask anything here

    Scheduled Pinned Locked Moved Suunto Plus Development
    20 Posts 9 Posters 814 Views 9 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.
    • S Away
      SuuntoPartnerTeam @mabe2k
      last edited by

      Hi @mabe2k!
      You can but in most cases you probably shouldn’t. The touch functionality is prone to draining the battery faster than usual and might not be available for all watches. <div> elements (and some other elements) have attributes onTap, onDoubleTap and onLongTapStart that can be used to register event listeners for touch actions (clicks, double clicks and longpress-then-move respectively). To use these, you need a compatible watch with up-to-date software and touch functionality enabled (select “Touch” to be “On” under “Exercise options” when you start an exercise or under “Control panel” from the pause menu during an exercise). The root element (<uiView>) has an even wider variety of touch action related event listeners, but you can probably get started with the ones mentioned (please feel free to ask a follow-up question about this if you’re interested in these).

      Here is a basic example of the explained functionality using the built-in setStyle function to change the color of a box when it is interacted with:


      t.html:

      <uiView>
        <div id="suuntoplus">
          <div id="box"
            style="width: 40%; height: 40%; left: calc(50% - 50%e); top: calc(50% - 50%e); border-radius: 25px; background-color: #FFFFFF;"
            onTap="setStyle('#box', 'background-color', '#00AAFF')"
            onDoubleTap="setStyle('#box', 'background-color', '#44CC00')"
            onLongTapStart="setStyle('#box', 'background-color', '#FF7733')"
            ></div>
        </div>
      </uiView>
      

      Please note that you will need a manifest.json with the mandatory fields and a main.js with getUserInterface function defined. Minimal versions of these are provided here for your convenience:


      main.js:

      function getUserInterface() { return {template: 't'}; }
      

      manifest.json:

      {
        "name": "Touch",
        "description": "Touch example",
        "author": "Your Name",
        "version": "1.00",
        "modificationTime": 1770000000,
        "type": "feature",
        "usage": "workout",
        "template": [{"name": "t.html"}]
      }
      

      Hope this helps. Happy coding!

      1 Reply Last reply Reply Quote 3
      • TieutieuT Offline
        Tieutieu Platinum Member
        last edited by

        My question (before using maybe some third party apps someday ?) : how does battery consumption will be impacted and what is the « bug » risk for the watches ?
        I guess it will depend on how apps will be coded and tested ?

        Suunto’s devices at home :
        Vertical titanium solar
        Suunto Race S
        S9pp titanium sand
        Suunto Wing
        S9B titanium Ambassador edition, A3P, X6

        S 1 Reply Last reply Reply Quote 1
        • S Away
          SuuntoPartnerTeam @Tieutieu
          last edited by SuuntoPartnerTeam

          @Tieutieu

          … how does battery consumption will be impacted …

          I don’t believe we test the battery consumption of submitted applications. Ultimately, it all depends on how much work the app is actively doing during an exercise.

          … what is the « bug » risk for the watches …

          Certainly buggy software will be written 🙂 You can give written feedback to a developer in the store. Bugs shouldn’t cause any ‘‘risky’’ behaviour in the watch – the firmware usually disables any applications that crash. It may happen that a crashing application leads to a soft-reset of other running applications.

          1 Reply Last reply Reply Quote 1
          • I Offline
            Isotop7
            last edited by

            Is it possible to catch the “Press Lap Button” event in my app? If yes, how? I’ve searched the reference but can’t find it or I am unable to understand it 😧

            S 1 Reply Last reply Reply Quote 0
            • S Away
              SuuntoPartnerTeam @Isotop7
              last edited by SuuntoPartnerTeam

              @Isotop7 Good question! This is somewhat hidden in the documentation. You can respond to a lap button press using the onLap callback:

              function onLap(input, output) { ... }
              

              Also note that the lap button will work automatically, as long as you don’t override its user input handling.

              Automatic laps can be handled with the onAutoLap callback:

              function onAutoLap(input, output) { ... }
              
              1 Reply Last reply Reply Quote 1
              • Tomas5T Online
                Tomas5 Gold Members
                last edited by Tomas5

                What are memory restrictions for different watch? How much memory can i use to allocate variables?

                To clarify, i want render graph for HR and Altitude, i will store value every second. Do i need to agregate or can i just store all values in array? For 24h event it would be around 200kB if i use Uint8Array.

                Of course i will do aggregation as it is not needed to store all values but i want to know how strict limits are.

                Suunto Ambit 2 > Suunto 5 > Suunto Race 2

                Dimitrios KanellopoulosD 1 Reply Last reply Reply Quote 0
                • Dimitrios KanellopoulosD Offline
                  Dimitrios Kanellopoulos Community Manager @Tomas5
                  last edited by

                  @Tomas5 that will defo crash. It can be hard for computers as well and has 0 benefit storing 1s reso on 200px (or so for example) screen.

                  You want to be storing max the pixels to show the data. And that is not much .

                  Community Manager / Admin @Suunto
                  Creator of quantified-self.io a portal that allows you to analyze your data from various providers, upload fit activity files to Suunto app, gpx routes and more…

                  Tomas5T 1 Reply Last reply Reply Quote 0
                  • Tomas5T Online
                    Tomas5 Gold Members @Dimitrios Kanellopoulos
                    last edited by Tomas5

                    @Dimitrios-Kanellopoulos i agree and that was “overkill” example but knowing hardware limitations can greatly improve how specific algorithm is done. And can prevent crashes cased by using all memory. Without this knowledge it is based only on trial and error which is not great.

                    Maybe just some recommendations from dev team like don’t use more than 1kB of memory per Suunto Plus app at a time or something like that.

                    I am thinking about 2 scenarios:

                    1. Do just simple 45minute graph like native one.
                    2. Do 15/30/60/full graph with changeable view by button

                    But second one will require more memory. At least 4-5 times more than scenario one.

                    And than second issue i want HR and Altitude and maybe some other graphs. Based on memory restrictions i can make single S+ with changeable view or multiple smaller S+ with just one value.

                    Suunto Ambit 2 > Suunto 5 > Suunto Race 2

                    1 Reply Last reply Reply Quote 0
                    • surfboomerangS Online
                      surfboomerang
                      last edited by surfboomerang

                      @dimitrios-kanellopoulos, @suuntopartnerteam To upload the developed SuuntoPlus app the instructions state that you have to apply for the Suunto Partner Program.

                      If I apply via this link: https://survey.alchemer.eu/s3/90553908/PARTNER-Become-a-Suunto-Partner it seems that it’s still aimed for companies rather than individuals. Is this the correct way to apply?

                      Suunto Vertical Titanium Solar
                      OnePlus Nord 4

                      1 Reply Last reply Reply Quote 0
                      • Tomas5T Online
                        Tomas5 Gold Members
                        last edited by Tomas5

                        I see in documentation that for getting data for graph i don’t need store anything and i can read

                        Activity/Log/-1/Move/0/HeartRate/Avg/Data

                        But it looks like it doesn’t work.

                        And in section:

                        In: Native resources in the watch
                        I see that {Window} doesn’t support “Log” so which part of documentation is incorrect? Or do i understand something wrong?

                        There is even Example with this Hearth Rate graph but seems it doesn’t work in simulator and in watch too. @suuntopartnerteam can you point me in correct direction? Thanks.

                        Btw. Why sometimes in examples path to data start with / and sometimes not? Is it something like absolute and relative path?

                        Suunto Ambit 2 > Suunto 5 > Suunto Race 2

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Suunto Terms | Privacy Policy