You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to use an HL7800 modem (on a pinnacle-100-dvk board) with LWm2m in a low-power application. I am using queue-mode, and see that (as intended) after some time the lwm2m rx-window is closed. The HL7800-modem also goes to PSM-mode. But when I try an lwm2m update (lwm2m update in the shell), than the attempt to update the registration fails and the full registration-process is starting again (this takes more time and energy than an update).
When I change the lwm2m_engine, so after it first opens a socket, sock_fd is written to 0, and again a new socket is opened, than the lwm2m update does work.
I did this by adding client_ctx->sock_fd=-1; just before lwm2m_socket_start in:
With that change, the lwm2m update does work, and no full registration is needed. But this adding of sock_fd=-1 is not a correct solution. Is this probably a problem with the HL7800 driver, lwm2m-driver in zephyr, or do I have some of the timings configured wrongly?
At the moment I have the CONFIG_LWM2M_QUEUE_MODE_UPTIME=20 (seconds) CONFIG_MODEM_HL7800_ALLOW_SLEEP_DELAY_MS=25000 (25 seconds) and CONFIG_MODEM_HL7800_PSM_ACTIVE_TIME="00001111" (30 seconds).
My assumption is that after the lwm2m-rx window is finished (20 seconds) a 5 seconds later the modem is allowed to hibernate, and 5 seconds after that the PSM of the modem puts the modem into low power.
Log with failed update, and fallback to full registration:
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
I am trying to use an HL7800 modem (on a pinnacle-100-dvk board) with LWm2m in a low-power application. I am using queue-mode, and see that (as intended) after some time the lwm2m rx-window is closed. The HL7800-modem also goes to PSM-mode. But when I try an lwm2m update (
lwm2m update
in the shell), than the attempt to update the registration fails and the full registration-process is starting again (this takes more time and energy than an update).When I change the lwm2m_engine, so after it first opens a socket, sock_fd is written to 0, and again a new socket is opened, than the lwm2m update does work.
I did this by adding
client_ctx->sock_fd=-1;
just before lwm2m_socket_start in:zephyr/subsys/net/lib/lwm2m/lwm2m_engine.c
Line 223 in 9e6960f
With that change, the lwm2m update does work, and no full registration is needed. But this adding of sock_fd=-1 is not a correct solution. Is this probably a problem with the HL7800 driver, lwm2m-driver in zephyr, or do I have some of the timings configured wrongly?
At the moment I have the
CONFIG_LWM2M_QUEUE_MODE_UPTIME=20
(seconds)CONFIG_MODEM_HL7800_ALLOW_SLEEP_DELAY_MS=25000
(25 seconds) andCONFIG_MODEM_HL7800_PSM_ACTIVE_TIME="00001111"
(30 seconds).My assumption is that after the lwm2m-rx window is finished (20 seconds) a 5 seconds later the modem is allowed to hibernate, and 5 seconds after that the PSM of the modem puts the modem into low power.
Log with failed update, and fallback to full registration:
Log with
client_ctx->sock_fd=-1;
added to code:Beta Was this translation helpful? Give feedback.
All reactions