Hello Dev Zone,
I am experimenting on a nRF9160DK, and currently looking at power saving modes (PSM only).
The overall principle is pretty clear to me, but I have questions on the SDK functions.
From my understanding, UE can request TAU period and Active Time. The network then responds with the actual values to use.
Request from UE : lte_lc_psm_param_set()
Response from network : lte_lc_psm_get() or in LTE callback
Does the negociation only occurs when PSM is actually enabled, by calling lte_lc_psm_req(true) ?
What if the network does not support the timing requested ? Or if the negociation result does not match my app needs ? Will the modem still go in PSM ?
Calling lte_lc_psm_req(true) will turn the modem in PSM mode. Is the change made immediatelly once the function returns ?
After calling lte_lc_psm_req(true), does the modem need to be placed in a a specific mode (like lte_lc_func_mode_set(LTE_LC_FUNC_MODE_OFFLINE) ) ?
To exit PSM, I only need to call lte_lc_psm_req(false) ? Is there an event indicating that when modem is ready ?
PSM is supported in my area, but I am aware that this is not the case everywhere. In this case, no big deal, turning OFF the modem is fine for my application.
Is there a way to know if PSM is supported during runtime ? Will simply lte_lc_psm_param_set() or lte_lc_psm_req() return false when not supported ?
Using this info, my firmware can then choose if it should go to PSM or turn OFF the modem.
This might sound like a basic question, I have actually no way to test this since PSM is supported here, and the documentation does not provide many info.
Thanks in advance.
Vincent