CIQ_LOG reported :
ERROR: Unhandled Exception
DETAILS: NONE
STORE_ID: 00000000000000000000000000000000
CALLSTACK:
WARNING: Error in positioning callback
STORE_ID: 00000000000000000000000000000000
Not very informative, but I still had some data in my log file which reported:
UnexpectedTypeException: Expected Number/Float/Long/Double, given null/Number
showWindShift in C:\alan\projects\raceQsGarmin\raceQs\source\engine.mc:1968
dispData in C:\alan\projects\raceQsGarmin\raceQs\source\engine.mc:1717
GPSData in C:\alan\projects\raceQsGarmin\raceQs\source\engine.mc:808
Line 1968 of my code is:
if (TWA < 0){// port tack
if (PCPort == null){return;} // no Prevailing Course
Again, a piece of code frequently traversed and it's nigh on impossible for the variable TWA to become null, but I went looking for a scenario to cause this and went back to the where the crash occurred.
When I looked at the track recorded in Garmin Activity (unloaded to GPX and imported into Google Earth) after it restarted after the crash, I found some very unusual data:
The first point recorded after the app restart was incorrect by around 60 metres to the North.
The blue marks are the track recorded up to the crash, the green marks are the track recorded after the crash. The points were recorded at one second intervals. We were travelling at around 6kts (3 m/s or 6 mph) in a Northerly direction at the time.
I have been analyzing tracks for a long while and whilst I'm familiar with the occasional "excursion" I haven't seen one like this before.
Note, the watch didn't crash and the app restarted normally and re-acquired a GPS signal quite quickly. We were in open water with a great view of the sky.
I wonder if my app crash was in fact triggered by some event in the GPS sub-system.