Giter Site home page Giter Site logo

wheellog / companion.garmin Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 1.0 59.99 MB

A WheelLog companion for Garmin smartwatches

License: GNU General Public License v3.0

garmin garmin-connectiq wheellog euc connectiq garmin-smartwatches companion wheellog-companion

companion.garmin's Introduction

⌚️ Companion.Garmin

This app has reached a stale point. Now it will not be updated by the dev. If you want to continue development - contact me on Telegram.

A WheelLog companion for Garmin smartwatches

This app is a rebuild from ground-up of an original Garmin app. I made this app to be with better UI, alarms working, and full support of new watches and their features.

Download from Garmin ConnectIQ Store

🔤 Important

License: GPLv3

Changelog: here

❤️ Support

If you feel like you want to support me, and buy me a coffee, there is a place for that! Or using Patreon: https://www.patreon.com/ggoraa

🏞 Screenshots

screenshot 1 screenshot 2 screenshot 3 screenshot 4

🛠 Development/Building

I use a build system called kumitateru, and here is a list of commands you can use:

./kumitateru build - assembles a release .iq file

./kumitateru build --target <device> - builds for a specific device

./kumitateru run --target <device> - runs the app in a simulator

🌍 Translations

You can contribute to translations here: https://poeditor.com/join/project?hash=WUAV6h3bxB

companion.garmin's People

Contributors

ggoraa avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

tritbool

companion.garmin's Issues

Speed numbers, such as "0.2", will be drawn(on speed dial) and displayed(on speed number) as "2", omitting "0." part

It's the issue with conversion from Number to Float and in reverse. I should track down where this issue lies

And, also a solution: we need to return from the app server endpoint the speed number, but in String format. So, it will be displayed as a String, ommitting issues such as displaying "0.20000" instead of just "0.2", and for speed dial this string will be converted to float, and then we will get our result: dial data will be more accurate, and we will have a speed number like "7.4" before 10 km/h (or for you fellow Americans mph)

Make a system for retrieving a port number from the server at any time

This can be used in situations such as when the server is started before the companion is opened, or user had exited the companion and the opened it again. On every startup the companion can send a request for the port number, but if nothing returned, then the companion will wait until a port number is ready. That's how i see it

Implement horn system

It will just use onStart() function to then execute a function in webServerApiInstance to send an action execution request to the phone

Arcs on the home screen do not update when data has changed

This is the issue with some arc parameters. I thought that giving variable name through XML will have a reference to that variable, but no, it is just getting data from it and forgetting about it. So what we need, is a .setValues() function for ArcRenderer class, and calling it from the onUpdate() function. This will fix the issue

Make CI work

So I can easily download & install the SDK, generate a dev key, and run monkeyc with ease. But the issue is: I can't use monkeyc, because I also need device files for monkeyc to reference to and compile the app for that device. And also one more issue: I literately can't do it. I was trying to find where da hec this folder with ConnectIQ SDK lies, so I can't put there that folder with device files. When I will figure it out, I will add CI back. For now - deleting

Add menu wrapping

when you reach the last screen, and click down, you get "wrapped" back to the first screen

Bottom text

If select distance shows travel time.
If select travel time shows travel time.

When you spam horn button, app will crash

Fix is also easy, we need to migrate from server action execution to normal BLE request action execution. But the server endpoint to horn trigger will still be there, bc why not, it wont break anything

After entering third page in details view app crashes

Can be fixed easily: we just add a special screen, which will block the view and just show "Waiting for WheelLog to connect...", and that's basically it. It just won't allow to get to the third screen before connection.

FAILURE_DURING_TRANSFER. oh fuck, Garmin didn't fix dis

Well, FAILURE_DURING_TRANSFER happens just every time android phone starts to send messages to the watch. But for the record, it does send some messages, but when the phone turns off( I mean, goes to sleep mode) it just stops. And you can't make any sends again. You just need to completely stop Garmin Connect Mobile to make it work again. Fuck, we need to do a big workaround: a web server. A local web server on the phone side and doing requests to that web server from the watch side. Btw, I will still use normal communications for sending data to the phone, for e.g. to trigger horn.

Rant Alert

I just hate Garmin for not fixing THIS 4 YEAR OLD BUG ARE YOU KIDDING ME

Implement alarms system

There will be a special timer, which will check every 200 ms the alarms variable in WheelData, and then it will vibrate&beep

Add an option to change data update speed

By default this app uses 400 ms intervals between updates. But this can be an issue, when you connect your intercom, wheel, smart speaker, and a watch, all at the same time. Bluetooth traffic will be flooded, and a ton of requests will be lost, so the app will disconnect. So I can present a setting to change data transfer speed: fast, medium, and slow. Fast is, again, 400 ms, medium is 1s, slow is 1.5s. This should fix the issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.