Compare commits

...

7 Commits

Author SHA1 Message Date
Philip Abbey
799288f36f Added new review to Etiquette documentation. 2026-04-02 16:41:50 +01:00
Philip Abbey
2a68fcc95d Send last known location in Background Service (#350)
Changes to location sending and accuracy.
2026-03-16 19:56:39 +00:00
Joseph Abbey
b781c054d2 Merge branch 'main' into 348-send-gps-location-with-last-known-quality 2026-03-16 18:33:36 +00:00
Philip Abbey
c8953021e3 Commentry and documentation 2026-03-11 18:08:50 +00:00
Philip Abbey
5ddcc14c54 Update BackgroundServiceDelegate.mc
Added comment about reasoning for accuracy.
2026-03-11 14:39:36 +00:00
Philip Abbey
6d0f449904 Update BackgroundServiceDelegate.mc
Amended accuracy for QUALITY_LAST_KNOWN.
2026-03-11 14:34:50 +00:00
Philip Abbey
07f3be0d26 Update BackgroundServiceDelegate.mc
Changes to location sending and accuracy.
2026-03-10 21:55:06 +00:00
7 changed files with 17 additions and 9 deletions

View File

@@ -33,11 +33,13 @@ From version 2.6 the application includes reporting your location. The location
You get whatever your device provides at the moment, i.e. at the accuracy the device currently provides. If your watch is not calibrated you get poor data. It might mean that you get more accurate location data when you are in a location tracking activity (i.e. not swimming pool lengths). The device [indicates an accuracy](https://developer.garmin.com/connect-iq/api-docs/Toybox/Position.html#Quality-module) in units of: You get whatever your device provides at the moment, i.e. at the accuracy the device currently provides. If your watch is not calibrated you get poor data. It might mean that you get more accurate location data when you are in a location tracking activity (i.e. not swimming pool lengths). The device [indicates an accuracy](https://developer.garmin.com/connect-iq/api-docs/Toybox/Position.html#Quality-module) in units of:
- `Position.QUALITY_NOT_AVAILABLE` - No update provided - `Position.QUALITY_NOT_AVAILABLE` - No update provided
- `Position.QUALITY_LAST_KNOWN` - No update provided - `Position.QUALITY_LAST_KNOWN` - We translate that to 200 m arbitrarily
- `Position.QUALITY_POOR` - We translate that to 500 m arbitrarily - `Position.QUALITY_POOR` - We translate that to 100 m arbitrarily
- `Position.QUALITY_USABLE` - We translate that to 100 m arbitrarily - `Position.QUALITY_USABLE` - We translate that to 50 m arbitrarily
- `Position.QUALITY_GOOD` - We translate that to 10 m arbitrarily - `Position.QUALITY_GOOD` - We translate that to 10 m arbitrarily
NB. These values have been revised as of Ver 3.12.
**You cannot rely on the radius of the circle of accuracy in any resulting maps as any meaningful indication of error.** **You cannot rely on the radius of the circle of accuracy in any resulting maps as any meaningful indication of error.**
## Activity Reporting ## Activity Reporting

View File

@@ -142,6 +142,8 @@ On Mon, 6 May 2024 at 09:01, <noreply@garmin.com> wrote:
![Please help me set this up](images/etiquette/2024-05-06_GHA_Bad_Review.png) ![Please help me set this up](images/etiquette/2024-05-06_GHA_Bad_Review.png)
<img src="images/etiquette/2026-04-02_GHA_Bad_Review.png" width="70%" title="Not working">
Answer: Make sure you meet the [minimum requirements for being a user](#etiquette) please! Provide more information on what the problem actually is. Clearly the support reply pointing to the documentation was either not read or not considered helpful, hence the point about meeting the minimum user requirements. Answer: Make sure you meet the [minimum requirements for being a user](#etiquette) please! Provide more information on what the problem actually is. Clearly the support reply pointing to the documentation was either not read or not considered helpful, hence the point about meeting the minimum user requirements.
On Fri, 31 Oct 2025 at 11:45, <noreply@garmin.com> wrote: On Fri, 31 Oct 2025 at 11:45, <noreply@garmin.com> wrote:
@@ -390,10 +392,10 @@ Don't get an embarrassing retort, I call out those who "click & complain" withou
Two words. Perhaps too lazy to consider why others gave rave reviews and ponder what he was doing wrong? Perhaps did not consider there might be some documentation to assist or support routes (subject to [getting a polite reply](getting-help-with-a-polite-reply))? Two words. Perhaps too lazy to consider why others gave rave reviews and ponder what he was doing wrong? Perhaps did not consider there might be some documentation to assist or support routes (subject to [getting a polite reply](getting-help-with-a-polite-reply))?
<img src="images/etiquette/2026-01-21 GHA_Bad_Review.png" width="70%" title="Two words"> <img src="images/etiquette/2026-01-21_GHA_Bad_Review.png" width="70%" title="Two words">
--- ---
Blaming the wrong application. Just rude. Please get your facts straight. And it was such a simple workaround for the Garmin Connect IQ app bug. Blaming the wrong application. Just rude. Please get your facts straight. And it was such a simple workaround for the Garmin Connect IQ app bug.
<img src="images/etiquette/2025-11-19%20GHA_Bad_Review.png" width="85%" title="Misplaced blame"> <img src="images/etiquette/2025-11-19_GHA_Bad_Review.png" width="85%" title="Misplaced blame">

View File

@@ -57,3 +57,4 @@
| 3.9 | Small update to warn users with empty menu definitions to read the instructions! | | 3.9 | Small update to warn users with empty menu definitions to read the instructions! |
| 3.10 | Bug avoidance for a fatal _"Error: Out Of Memory Error"_ in the glance when caching the menu to [`Storage`](https://developer.garmin.com/connect-iq/api-docs/Toybox/Application/Storage.html). This is now delayed until the main application is opened. Added support for two new devices, D2 Mach 2 and eTrex Touch. | | 3.10 | Bug avoidance for a fatal _"Error: Out Of Memory Error"_ in the glance when caching the menu to [`Storage`](https://developer.garmin.com/connect-iq/api-docs/Toybox/Application/Storage.html). This is now delayed until the main application is opened. Added support for two new devices, D2 Mach 2 and eTrex Touch. |
| 3.11 | <img src="images/Venu2_glance_default.png" width="200" title="Default Glance"/><br/>Better handling of menus larger than the Glance view can handle. As a result the Glance can no longer verify the availability of the JSON menu as fetching it might cause an _"Error: Out Of Memory Error"_. Provide two user supplied HTTP Headers. Bug fix for the numeric picker. | | 3.11 | <img src="images/Venu2_glance_default.png" width="200" title="Default Glance"/><br/>Better handling of menus larger than the Glance view can handle. As a result the Glance can no longer verify the availability of the JSON menu as fetching it might cause an _"Error: Out Of Memory Error"_. Provide two user supplied HTTP Headers. Bug fix for the numeric picker. |
| 3.12 | Amended GPS accuracy values used by the background service. |

View File

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 103 KiB

View File

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

View File

@@ -115,15 +115,18 @@ class BackgroundServiceDelegate extends System.ServiceDelegate {
// System.println("BackgroundServiceDelegate onTemporalEvent(): Activity : " + Activity.getProfileInfo().name); // System.println("BackgroundServiceDelegate onTemporalEvent(): Activity : " + Activity.getProfileInfo().name);
// Don't use Settings.* here as the object lasts < 30 secs and is recreated each time the background service is run // Don't use Settings.* here as the object lasts < 30 secs and is recreated each time the background service is run
if (position.accuracy != Position.QUALITY_NOT_AVAILABLE) {
if (position.accuracy != Position.QUALITY_NOT_AVAILABLE && position.accuracy != Position.QUALITY_LAST_KNOWN) {
var accuracy = 0; var accuracy = 0;
switch (position.accuracy) { switch (position.accuracy) {
case Position.QUALITY_LAST_KNOWN:
// Location is no longer tied to the timestamp, hence the larger inaccuracy.
accuracy = 200;
break;
case Position.QUALITY_POOR: case Position.QUALITY_POOR:
accuracy = 500; accuracy = 100;
break; break;
case Position.QUALITY_USABLE: case Position.QUALITY_USABLE:
accuracy = 100; accuracy = 50;
break; break;
case Position.QUALITY_GOOD: case Position.QUALITY_GOOD:
accuracy = 10; accuracy = 10;