/*======================================================================= Function: Loc_Start() =======================================================================*/ int Loc_Start( LocState *pts, PositionData *pData ) { int nErr = SUCCESS; if( !pts || !pData ) { nErr = EBADPARM; } else if( TRUE == pts->bInProgress ) { nErr = EALREADY; } else { AEEGPSConfig config; pData->dwFixNum = 0; pts->pResp = pData; pts->nLocInterval = pData->gpsConfig.nInterval; IPOSDET_GetGPSConfig( pts->pPos, &config ); /* Configure the IPosDet Instance */ config.mode = pData->gpsConfig.mode; config.nFixes = pData->gpsConfig.nFixes; config.nInterval = pData->gpsConfig.nInterval; // ADDING SUPPORT FOR USER-DEFINED PDE IP ADDRESS AND QOS config.server = pData->gpsConfig.server; config.optim = pData->gpsConfig.optim; config.qos = pData->gpsConfig.qos; nErr = IPOSDET_SetGPSConfig( pts->pPos, &config ); if( nErr == EUNSUPPORTED && config.mode == AEEGPS_MODE_TRACK_NETWORK ) { /* As AEEGPS_MODE_TRACK_NETWORK is unsupported on certain devices. ** and we tried to Loc as AEEGPS_MODE_TRACK_STANDALONE. */ config.mode = AEEGPS_MODE_TRACK_STANDALONE; nErr = IPOSDET_SetGPSConfig( pts->pPos, &config ); } if( nErr == SUCCESS ) { pts->bInProgress = TRUE; Loc_cbInterval( pts ); } } return nErr; }
static void Loc_StandAlone( LocState *pts ) { AEEGPSConfig config; DBGPRINTF( "Loc_StandAlone" ); (void) IPOSDET_GetGPSConfig( pts->pPos, &config ); config.mode = AEEGPS_MODE_TRACK_STANDALONE; (void) IPOSDET_SetGPSConfig( pts->pPos, &config ); }
static void Loc_Network( LocState *pts ) { AEEGPSConfig config; DBGPRINTF( "Loc_Network" ); (void) IPOSDET_GetGPSConfig( pts->pPos, &config ); config.mode = AEEGPS_MODE_TRACK_NETWORK; (void) IPOSDET_SetGPSConfig( pts->pPos, &config ); }
static void Track_Local( TrackState *pts ) { AEEGPSConfig config; DBGPRINTF( "TRACK LOCAL" ); (void) IPOSDET_GetGPSConfig( pts->pPos, &config ); config.mode = AEEGPS_MODE_TRACK_LOCAL; (void) IPOSDET_SetGPSConfig( pts->pPos, &config ); pts->bModeLocal = TRUE; }
static void Track_Network( TrackState *pts ) { AEEGPSConfig config; DBGPRINTF( "TRACK NETWORK" ); (void) IPOSDET_GetGPSConfig( pts->pPos, &config ); config.mode = AEEGPS_MODE_TRACK_NETWORK; (void) IPOSDET_SetGPSConfig( pts->pPos, &config ); pts->bModeLocal = FALSE; }