Resources | developer.brewmp.com Resources | developer.brewmp.com

Developer

resources

Injecting time and XTRA data

This sequence diagram describes the call flow sequence using IXTRA to inject Extended Reciever Assistance data such as predicted orbit and course time into the engine.

  1. The XTRA client creates an instance of an IXTRA object using pd_AEECLSID_CXTRA and a signal that will be used for receiving XTRA events.
  2. On successful creation of the required objects, the application registers the signals it created previously with the IXTRA interface for receiving an assistance data injection request and time injection request notification using pd_IXTRA_OnDataReqEvent() and pd_IXTRA_OnTimeReqEvent().
  3. When a standalone request is made by an application, the engine sends a notification request to the XTRA client.
  4. When the client receives a data injection notification, the respective server information for the XTRA data needs to be extracted by the client using pd_IXTRA_GetServerInfo() and pd_ServerType as pd_PREDICTED_ORBITS_SERVER.
  5. After retrieving the server information, the client is then expected to initiate a data connection to the servers specified in the request payload to download the predicted orbits data.
  6. Then the client injects the data using pd_IXTRA_InjectData(). When all the required data is successfully injected into the location engine, a notification is sent to the client.
  7. If it receives a time injection requests, then it needs to communicate with SNTP servers and get the time information.
  8. The respective server information for the XTRA data needs to be extracted by the client using pd_IXTRA_GetServerInfo() and pd_ServerType as pd_NTP_SERVER.
  9. After retrieving the server information, the client is then expected to initiate a data connection to the servers specified in the request time information.
  10. Then the client injects the data using pd_IXTRA_InjectTime(). When all the required is successfully injected into the location engine, a notification is sent to the client.
  11. As a result, the position fixes are calculated with a shorter TTFF over an extended period of time (1-7 days).

Querying for data validity

The following sequence diagram describes the call flow for querying the validity of XTRA data.

  1. The XTRA client creates an instance of an IXTRA object using pd_AEECLSID_CXTRA and a signal that will be used for receiving XTRA events.
  2. On successful creation of the required objects, the application then registers the signals it had created previously with the IXTRA interface using pd_IXTRA_OnDataValidityEvent().
  3. The client then can use pd_IXTRA_QueryDataValidity() to query for assistance data validity.
  4. The client receives a notification and can use pd_IXTRA_GetDataValidityInfo() to retrieve the data validity information.