student project

Notification callback

07 Jul 2016

設定一個notification的callback就是指定一個URL, 讓mbed device server可以送PUT給web server(能處理HTTP PUT request, 且必須是public IP)

URL最多只能指定一個。

Notification 的事情,包含了註冊,取消註冊,註冊到期,非同步的通知送達或者是資源改變。

資源改變的通報,必須要先向mDS subscribe 該項資源才行。

此資源必須是observable , 所以必須在裝置裡先設定好才可以

Setting Observable Mode

To set the Object to be an observing resource:

virtual void set_observable(bool observable);

By default, all the created objects are non-observable. You can set them to be observable or not observable using this API.

_object->set_observable(true); The object can be observed from server.

_object->set_observable(false); The object cannot be observed from server.

08 Jul 2016

我已經在資源上加入: _res->set_observable(true); 但還是無法用觀察模式...

08 Jul 2016

我試出來,現在只能有一次的'Subscribe'

使用目前SVN checkout 就可以了 不需要特別 set_observable(true); (不會改變結果)

初始操作(次序不可顛倒):

  1. 終端重新 reset mcu board (frdm-k64f)並且註冊
  2. Python 終端重新開始執行

Python 網頁:

  1. 選取 Subscribe
  2. 按下 mcu board 按鈕

結果:

  1. Press: 會自動更新到目前次數
  2. Python 終端log 收到下面訊息

Notification Data Received : [{u'path': u'/digital_inp/0/button_1', u'max-age': 0, u'payload': u'eyJidXR0b24iOlt7ImNvdW50ZXIiOjV9
XX0=', u'ep': u'ea81df98-331d-465a-a252-312e582e092f', u'ct': u'text/plain'}]
Emitting : {'endpointName': u'ea81df98-331d-465a-a252-312e582e092f', 'value': '{"button":[{"counter":5}]}'}

之後無論如何操作,Python 頁面都不會更新,也沒有 "Notification Data Received" 除非重新執行 『初始操作』