More than a year ago, I used to init the GPS like this:
- Code: Select all
void gpsFix(TD_GEOLOC_Fix_t *fix, bool timeout)
{
//DO SOMETHING
}
void TD_USER_Setup(void)
{
TD_SENSOR_Init(SENSOR_TRANSMITTER, 0, 0);
TD_GEOLOC_Init();
TD_GEOLOC_TryToFix(TD_GEOLOC_NAVIGATION, FIX_TIMEOUT, gpsFix);
}
And it worked for a coupe of years.
Then my newly produced devices couldn't find a GPS fix unless I restarted the TryToFix. So what I did is that I start-stop-started the GPS at init. Like so:
- Code: Select all
void gpsStart(uint32_t lol, uint8_t lil)
{
TD_GEOLOC_TryToFix(TD_GEOLOC_NAVIGATION, FIX_TIMEOUT, gpsFixing);
}
void gpsFix(TD_GEOLOC_Fix_t *fix, bool timeout)
{
//DO SOMETHING
}
void TD_USER_Setup(void) {
TD_SENSOR_Init(SENSOR_TRANSMITTER, 0, 0);
TD_GEOLOC_Init();
TD_GEOLOC_TryToFix(TD_GEOLOC_NAVIGATION, FIX_TIMEOUT, gpsFix);
TD_GEOLOC_StopFix(TD_GEOLOC_HW_BCKP);
TD_SCHEDULER_Append(FIX_INTERVAL, 1, 0, TD_SCHEDULER_ONE_SHOT, gpsStart, 0); //Restart GPS in 60s
}
And it worked until recently: both init method doesn't work.
So my questions are:
1) Has the TD1204 firmware changed ?
2) Where can i find the information when there is a firmware change ?
3) Is there a better way to init the GPS ? (it seems really similar to the geoloc_fix example)
Thank you,