pub unsafe extern "C" fn nrf_modem_gnss_prio_mode_enable() -> i32
Expand description

Enables GNSS priority over LTE idle mode procedures.

@details GNSS can produce a cold start fix when there are long enough gaps in LTE idle mode operations. LTE idle eDRX cycles approximately 1 min and above will usually guarantee the ability to produce a fix. Shorter DRX cycles will be enough after GNSS has got ephemerides. GNSS priority can be enabled to help getting GNSS into that state, if there are not long enough gaps in LTE idle mode functionality. Priority for GNSS should be used only when fix has been blocked by LTE idle mode operations, which can be detected by #NRF_MODEM_GNSS_PVT_FLAG_NOT_ENOUGH_WINDOW_TIME bit being set in the PVT data frame flags member. The application should not make the decision based on a single PVT event, but should enable priority only in case this flag has been set in several consecutive PVT events. Priority will be disabled automatically after producing the first fix.

@note GNSS priority may interfere with LTE operations, if possible it would be good to time the use of priority to moments where data transfer is not anticipated. In general, long enough eDRX cycles, or PSM, will ensure better functionality for both GNSS and LTE.

@note Priority will not stop LTE connections.

Returns 0 on success. Returns -NRF_EPERM The Modem library is not initialized. Returns -NRF_EACCES GNSS is not enabled in system or functional mode. Returns -NRF_EINVAL The GNSS stack returned an error or the operation cannot be executed while GNSS is stopped. Returns -NRF_ENOMEM There is not enough shared memory for this request. Returns -NRF_ESHUTDOWN The modem was shut down.