More Related Content
Similar to Toppersカンファレンス2016・チュートリアル
Similar to Toppersカンファレンス2016・チュートリアル (20)
Toppersカンファレンス2016・チュートリアル
- 8. Kadecot API
WAMPはJSON形式のデータで、データの中身の書
き方や手順を決めている
WAMPの手順で、プロシージャ名やパラメータの使
い方を決めたものがKadecot API
8
[
CALL,
Request|id,
{
"deviceId": 1
},
"com.sonycsl.kadecot.echonetlite.procedure.set",
[],
{
"propertyName": "OperationStatus",
"propertyValue": [48]
}
]
Kadecot API
JSONパーサーで通信に必要
な情報を取得
- 9. ECHONET Liteとの対応
ECHONET Liteは機器オブジェクトやそのプロパ
ティに対して数値が割り振られています。
Webブラウザー側のJavaScriptでは、数値より文字
列を使うのが一般的。
Kadecot APIでは、ECHONET Liteの機器オブジェ
クトとプロパティについて、数値ではなく文字列で
識別するようになっています。
9
動作状態(OperationStatus)=0x80
[CALL, …, “OperationStatus”: 48]
- 18. 18
#include <kernel.h>
/*
* メインタスク
*/
void main_task(intptr_t exinf)
{
ER ret;
TMO timer = TMO_FEVR;
intptr_t p_msg = 0;
for(;;){
/* 応答電文待ち */
ret = trcv_dtq(MAIN_DATAQUEUE, &p_msg, timer);
if ((ret != E_OK) && (ret != E_TMOUT)){
return;
}
/* メッセージ受信処理 */
if (ret == E_OK) {
}
/* タイムアウト処理 */
else if (ret == E_TMOUT) {
}
}
}
#include <kernel.h>
#include <uip.h>
#include <pt.h>
struct pt main_pt;
struct uip_timer main_pt_timer;
/*
* メインタスク
*/
static
PT_THREAD(main_task_pt(void))
{
ER ret;
TMO timer = TMO_FEVR;
intptr_t p_msg = 0;
PT_BEGIN(&main_pt);
for(;;){
timer_set(&main_pt_timer, timer);
/* 応答電文待ち */
PT_WAIT_UNTIL(&main_pt, (((ret = prcv_dtq(MAIN_DATAQUEUE, &p_msg)) == E_OK)
|| ((ret = timer_expired(&main_pt_timer) ? E_TMOUT : E_WBLK) == E_TMOUT)));
if ((ret != E_OK) && (ret != E_TMOUT)){
PT_EXIT(&main_pt);
}
/* メッセージ受信処理 */
if (ret == E_OK) {
}
/* タイムアウト処理 */
else if (ret == E_TMOUT) {
}
}
PT_END(&main_pt);
}
void main_task(intptr_t exinf)
{
main_task_pt();
}
ASPでのメインループ例 SSP+uIPでのメインループ例
プロトスレッドを使用
することで、ASPとの
差異が少ない記述
共通
Editor's Notes
- ありがとうございました。