Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[wakaama-dev] The Observe functionality

Team,

I am using the Wakaama client and register it to the Leshun server. I have object 1024, and within that an instance with a resource that represents the current time.
Within the client I made a small change so that the time gets renewed every few seconds. The function prv_change() is called with the appropriate Uri of that resource.

At Leshun, I press the 'Observe' button for that resource. I expect to see Non-Confirmable messages going to the server to update the selected resource, but they are absent.


I did some investigation why it does not work, and I think I found the reason.  It seems that when the function prv_change() is being called, the lwm2mH gets an entirely new assignment of the lwm2m_context, while during the receiving action of the Observe request, the Uri was saved in the structure which was active at that moment. This means that the observed Uri is in the observedList, but is not being used when the prv_change() function becomes in use.  It takes a new, and empty
lwm2m_context structure.
To test my idea's I store the contextP pointer in a global variable GLcontextP in function observe_step(). When the prv_change() function is called, it validates whether the GLcontextP is valid (defined before) and it proceeds with that one instead of assigning it locally. In this way, the previous defined contextP is in use with the observedList. Then I do get the Non-Confirmables every one minute.

Since Wakaama is quite stable and is out there for a while, It could well be that I am totally wrong in my interpretation how the Observe function should work, please apologize if so.

So, my Q is whether the Observe function works as it should with the current release (Aug 2016), or should it have some attention in this area ?

Thank you in advance and regards,

    - Dirk Gooris

Trace of CoAP after my change:
3.3052101  127.0.0.1 56830  127.0.0.1 5683   CoAP CON, MID:33237, POST, TKN:d5 81 59 e1, /rd?ep=myclient&b=U&lt=300
3.3158532  127.0.0.1 5683   127.0.0.1 56830  CoAP ACK, MID:33237, 2.01 Created, TKN:d5 81 59 e1
24.583735  127.0.0.1 5683   127.0.0.1 56830  CoAP CON, MID:53186, GET, TKN:2b c6 66 09 e2 15, /1024/1
24.584105  127.0.0.1 56830  127.0.0.1 5683   CoAP ACK, MID:53186, 2.05 Content, TKN:2b c6 66 09 e2 15
65.006014  127.0.0.1 5683   127.0.0.1 56830  CoAP CON, MID:53187, GET, TKN:52 b3 51 e4, /1024/1/5
65.006423  127.0.0.1 56830  127.0.0.1 5683   CoAP ACK, MID:53187, 2.05 Content, TKN:52 b3 51 e4 (text/plain)
125.06626  127.0.0.1 56830  127.0.0.1 5683   CoAP NON, MID:33238, 2.05 Content, TKN:52 b3 51 e4 (text/plain)
185.12648  127.0.0.1 56830  127.0.0.1 5683   CoAP NON, MID:33239, 2.05 Content, TKN:52 b3 51 e4 (text/plain)
245.12912  127.0.0.1 56830  127.0.0.1 5683   CoAP NON, MID:33240, 2.05 Content, TKN:52 b3 51 e4 (text/plain)

Back to the top