A-GPS API Documentation incomplete

Hello,

I've some questions regarding missing or incomplete information in the documentation (https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrfxlib/nrf_modem/doc/api.html#gnss-api):

  • struct nrf_modem_gnss_datetime:
    • Does the date-time provided by the GPS contain leap seconds? How is the relation to UTC, do I have to subtract the leap seconds in order to get UTC?
  • struct nrf_modem_gnss_agps_data_frame:
    • mask-fields: Is SV#1 masked in bit0 or bit1?
  • struct nrf_modem_gnss_agps_data_ephemeris:
    • IODC: Why is the data provided by the SUPL Server shifted by 3 bits by the SUPL Client library? Shouldn't IODC correspond directly to the value from the SUPL Server (or  RINEX file)?
    • health: Bit mapping?
  • struct nrf_modem_gnss_agps_data_almanac:
    • sv_health: Bit mapping?
  • struct nrf_modem_gnss_agps_data_system_time_and_sv_tow:
    • sv_mask: SV#1 is Bit0?
  • struct nrf_modem_gnss_agps_data_tow_element:
    • tlm: From the documentation: "First two bits (MSB) ..." => The "first two bits" are in this case Bit15 (=reserved bit) and Bit14 (=integrity status), right?
  • struct nrf_modem_gnss_agps_data_integrity:
    • integrity_mask: SV#1 is bit0?
    • Can the integrity-mask be assembled from the health information in the ephemeris or almanachs?
  • Is there a specific order required when feeding the A-GPS data into the receiver?
  • For a fast TTFF, is it important to have almanachs or are the ephermis enough?

Thank you in advance.

Best Regards
HFE

Parents
  • Hi,

    Does the date-time provided by the GPS contain leap seconds? How is the relation to UTC, do I have to subtract the leap seconds in order to get UTC?

    No, you will get UTC:

    https://github.com/nrfconnect/sdk-nrf/blob/main/samples/nrf9160/gnss/src/main.c#L605

     

    struct nrf_modem_gnss_agps_data_frame:
    • mask-fields: Is SV#1 masked in bit0 or bit1?

    SV#1 is bit 1.

    struct nrf_modem_gnss_agps_data_ephemeris:
    • IODC: Why is the data provided by the SUPL Server shifted by 3 bits by the SUPL Client library? Shouldn't IODC correspond directly to the value from the SUPL Server (or  RINEX file)?
    • health: Bit mapping?

    Could you point to where this happen?

     

    tlm: From the documentation: "First two bits (MSB) ..." => The "first two bits" are in this case Bit15 (=reserved bit) and Bit14 (=integrity status), right?

    Yes.

    Is there a specific order required when feeding the A-GPS data into the receiver?

    Not that we are aware of.

    For a fast TTFF, is it important to have almanachs or are the ephermis enough?

    Both is preferred.

     

    Kind regards,

    Håkon

Reply
  • Hi,

    Does the date-time provided by the GPS contain leap seconds? How is the relation to UTC, do I have to subtract the leap seconds in order to get UTC?

    No, you will get UTC:

    https://github.com/nrfconnect/sdk-nrf/blob/main/samples/nrf9160/gnss/src/main.c#L605

     

    struct nrf_modem_gnss_agps_data_frame:
    • mask-fields: Is SV#1 masked in bit0 or bit1?

    SV#1 is bit 1.

    struct nrf_modem_gnss_agps_data_ephemeris:
    • IODC: Why is the data provided by the SUPL Server shifted by 3 bits by the SUPL Client library? Shouldn't IODC correspond directly to the value from the SUPL Server (or  RINEX file)?
    • health: Bit mapping?

    Could you point to where this happen?

     

    tlm: From the documentation: "First two bits (MSB) ..." => The "first two bits" are in this case Bit15 (=reserved bit) and Bit14 (=integrity status), right?

    Yes.

    Is there a specific order required when feeding the A-GPS data into the receiver?

    Not that we are aware of.

    For a fast TTFF, is it important to have almanachs or are the ephermis enough?

    Both is preferred.

     

    Kind regards,

    Håkon

Children
Related