Ability to force warm start GPS
Sometimes, once every 50-100 hours I got a wired behaivor of my GPS. I get very good accuracy but my position has 20-30m offset and it doesn't get fixed it keeps the 20m offset with 1m accuracy.
To fix it I need to turn GPS off and on again on hardware level to force a restart. Then the offset disappears and my location it right on track again.
I did thought this was a bug of my GPS transmitter, maybe wrong calculation of incomming signals. But last weekend I got the same error on my new GPS module from another company.
Maybe it is related to the forced bad accuracy of free gps service? Is this a thing?
The fix "restart GPS" isn't that easy for me because I use a external GPS on my backpack. For that reason I did implement warm start over bluetooth.
Unfortunantly locus does use the bluetooth connection it's not possible to open a secound bt connection to my device. Which means I have to:
- disable bluetooth (to steal the connection from locus)
- enable bluetooth
- connect
- send command over bluetooth serial connection
- disconnect to make locus able to connect again
- click on the locus bluetooth device selection screen (appears after it lost connection)
I did automate this things with tasker and create a long click volume done profile which handle all of this.
I still need to test if HotStart is enoght or if I really need to make a warmStart or even a coldStart to fix this issue. Which means I have to wait until the error does appear again.
I did need Tasker Bluetooth Serial Plugin and AutoInput plugin to get this workarround done
here the profile in text form:
Profile: GPSRestart (18) Event: AutoInput Key [ Configuration:Keys: Volume Down Key Action: All Manual Key Codes: 25, ] Application: Locus Map Enter: GPSHotStart Longpress (19) Abort Existing Task <if long key is not down> A1: If [ %longKey neq 0 ] A2: Wait [ MS:500 Seconds:0 Minutes:0 Hours:0 Days:0 ] A3: Variable Set [ Name:%longKey To:%aikeyaction Recurse Variables:Off Do Maths:Off Append:Off ] A4: Stop [ With Error:Off Task: ] A5: End If <Reset long key to up> A6: Variable Set [ Name:%longKey To:1 Recurse Variables:Off Do Maths:Off Append:Off ] <revert vol btn action> A7: Send Intent [ Action:com.asamm.locus.ACTION_TASK Cat:None Mime Type: Data: Extra:tasks: { map_zoom: { action: "+" } } Extra: Extra: Package:menion.android.locus.pro Class: Target:Broadcast Receiver ] A8: Bluetooth [ Set:Off ] A9: Bluetooth [ Set:On ] A10: Variable Set [ Name:%btmac To:00:1C:88:30:47:26 Recurse Variables:Off Do Maths:Off Append:Off ] A11: Bluetooth Serial [ Configuration:%btmac <- $PMTK101*32\r\n Timeout (Seconds):0 ] A12: AutoInput Action [ Configuration:Type: Text Value: %btmac Action : Click Timeout (Seconds):60 Continue Task After Error:On ]
Replies have been locked on this page!