Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_task.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    44 *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
    55 *
    6  *  上記著作権è€
    7 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    8  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    9  *  変・再é
    10 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    11  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    12  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    13  *      スコード中に含まれていること.
    14  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    15  *      用できる形で再é
    16 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    17 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    18  *      è€
    19 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    20  *      の無保証規定を掲載すること.
    21  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    22  *      用できない形で再é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    24  *      と.
    25  *    (a) 再é
    26 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    27 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    28  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    29  *    (b) 再é
    30 å¸ƒã®å½¢æ
    31 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    32  *        報告すること.
    33  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    34  *      害からも,上記著作権è€
    35 ãŠã‚ˆã³TOPPERSプロジェクトをå
    36 è²¬ã™ã‚‹ã“と.
    37  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    38  *      由に基づく請求からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトを
    40  *      å
    41 è²¬ã™ã‚‹ã“と.
     6 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    4228 *
    43  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    44 ãŠ
    45  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    46  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    47  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    48  *  の責任を負わない.
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    4934 *
    5035 */
    5136
    5237/*
    53  *              ECHONET Lite タスク
     38 *              ECHONET Lite タスク
    5439 */
    5540
     
    120105                        i += - ENOD_REMOTE_ID + 1;
    121106                        if (from_app && (i < svc->tnum_enodid)) {
    122                                 /* 非同期のリモートノードはサービス処理タスクで処理する */
     107                                /* 非同期のリモートノードはサービス処理タスクで処理する */
    123108                                switch (svc->eobjcb_table[i].profile->eobjatr) {
    124109                                case EOBJ_SYNC_REMOTE_NODE:
     
    168153
    169154/*
    170  *  ECHONET Lite タスクの初期化(コンストラクタ相当)
     155 *  ECHONET Lite タスクの初期化(コンストラクタ相当)
    171156 */
    172157void echonet_task_init(ecnl_svc_task_t *svc, intptr_t exinf)
     
    176161
    177162/*
    178  * モジュール初期化
     163 * モジュール初期化
    179164 */
    180165static void _ecn_tsk_int_module_init(ecnl_svc_task_t *svc)
     
    193178
    194179/*
    195  * ECHONET Lite タスク タイマー値取得
     180 * ECHONET Lite タスク タイマー値取得
    196181 */
    197182TMO echonet_svctask_get_timer(ecnl_svc_task_t *svc)
     
    217202
    218203/*
    219  * ECHONET Lite タスク 時間経過処理
     204 * ECHONET Lite タスク 時間経過処理
    220205 */
    221206void echonet_svctask_progress(ecnl_svc_task_t *svc, TMO a_timer)
     
    228213
    229214/*
    230  * ECHONET Lite タスク メッセージ受信処理
     215 * ECHONET Lite タスク メッセージ受信処理
    231216 */
    232217void echonet_svctask_recv_msg(ecnl_svc_task_t *svc, T_ECN_FST_BLK *p_msg)
     
    239224
    240225        switch (fbs_id.ptr->hdr.type) {
    241         /* å†
    242 éƒ¨ä½¿ç”¨ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ */
     226        /* 内部使用メッセージ */
    243227        case ECN_MSG_INTERNAL:
    244228                _ecn_tsk_int_msg(svc, svc->exinf, fbs_id);
    245229                break;
    246230
    247         /* ECHONET用メッセージ */
     231        /* ECHONET用メッセージ */
    248232        case ECN_MSG_ECHONET:
    249233                _ecn_tsk_ecn_msg(svc, svc->exinf, fbs_id);
     
    254238        }
    255239
    256         /* 領域解放 */
     240        /* 領域解放 */
    257241        if (svc->release_esv)
    258242                _ecn_fbs_del(svc->mrb, fbs_id);
     
    260244
    261245/*
    262  * ECHONET Lite タスク タイムアウト処理
     246 * ECHONET Lite タスク タイムアウト処理
    263247 */
    264248void echonet_svctask_timeout(ecnl_svc_task_t *svc)
     
    271255
    272256/*
    273  * シーケンス番号生成
     257 * シーケンス番号生成
    274258 */
    275259static uint16_t _ecn_tsk_new_tid(ecnl_svc_task_t *svc)
     
    279263
    280264/*
    281  * 要求電文作成
    282  * 引数
    283  * ECN_FBS_ID           *fp_fbs_id              取得したFBS_IDの格納å
    284 ˆ
    285  * ID                           fa_seoj                 é€ä¿¡å
    286 ƒã®ECHONETオブジェクトID
    287  * ID                           fa_deoj                 å®›å
    288 ˆã®ECHONETオブジェクトID
    289  * uint8_t                      fa_epc                  プロパティコード
    290  * uint8_t                      fa_pdc                  プロパティ値データサイズ
    291  * const void           *p_edt                  プロパティ値データ
    292  * ECN_SRV_CODE         fa_esv                  ECHONET Light サービスコード
     265 * 要求電文作成
     266 * 引数
     267 * ECN_FBS_ID           *fp_fbs_id              取得したFBS_IDの格納先
     268 * ID                           fa_seoj                 送信元のECHONETオブジェクトID
     269 * ID                           fa_deoj                 宛先のECHONETオブジェクトID
     270 * uint8_t                      fa_epc                  プロパティコード
     271 * uint8_t                      fa_pdc                  プロパティ値データサイズ
     272 * const void           *p_edt                  プロパティ値データ
     273 * ECN_SRV_CODE         fa_esv                  ECHONET Light サービスコード
    293274 */
    294275ER _ecn_tsk_mk_esv(ecnl_svc_task_t *svc, ECN_FBS_ID *fp_fbs_id, ID fa_seoj, ID fa_deoj,
     
    298279        ER                              a_ret;
    299280        int                             a_size, i;
    300         ECN_FBS_ID              a_fbs_id = { 0 };       /* 要求電文用メモリ                             */
     281        ECN_FBS_ID              a_fbs_id = { 0 };       /* 要求電文用メモリ                             */
    301282        T_ECN_EDT_HDR   a_ecn_hdp;                      /* ecn_hdr+edata+ecn_prp 14byte */
    302283        ID                              a_enodid;
     
    305286
    306287        if (!fp_fbs_id)
    307                 return E_PAR; /* 取得したFBS_IDの格納å
    308 ˆãŒNULL */
     288                return E_PAR; /* 取得したFBS_IDの格納先がNULL */
    309289        if (ECHONET_MEMPOOL_BLOCK_SIZE <= fa_pdc)
    310                 return E_PAR; /* プロパティ値サイズが大きすぎる */
     290                return E_PAR; /* プロパティ値サイズが大きすぎる */
    311291        if (!p_edt && 0 < fa_pdc)
    312                 return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
     292                return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
    313293
    314294        if (fa_seoj <= EOBJ_NULL || svc->tmax_eobjid < fa_seoj)
    315                 return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
     295                return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
    316296#ifndef ECHONET_CONTROLLER_EXTENTION
    317297        if (fa_deoj < EOBJ_NULL || svc->tmax_eobjid < fa_deoj)
    318                 return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
     298                return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
    319299#else
    320300        if (fa_deoj < EOBJ_NULL || (svc->tmax_eobjid + TNUM_AEOBJID) < fa_deoj)
    321                 return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
     301                return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
    322302#endif
    323303        if (fa_deoj == EOBJ_NULL && fa_esv == ESV_INFC)
    324                 return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
    325 
    326         /* 要求最小サイズの取得 */
     304                return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
     305
     306        /* 要求最小サイズの取得 */
    327307        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    328308
    329         /* 要求電文用メモリの取得 */
     309        /* 要求電文用メモリの取得 */
    330310        a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_id);
    331         if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
     311        if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
    332312                ECN_DBG_PUT_3("_ecn_fbs_cre(%d) result = %d:%s",
    333313                        a_size,
     
    336316        }
    337317
    338         /* 要求電文設定                                           */
     318        /* 要求電文設定                                               */
    339319        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
    340320        a_ecn_hdp.ecn_hdr.ehd1 = ECN_EDH1_ECHONET_LITE;
     
    343323        memcpy(&a_ecn_hdp.edata.seoj, &echonet_svctask_get_eobjinib(svc, fa_seoj)->eojx1, sizeof(a_ecn_hdp.edata.seoj));
    344324        a_ecn_hdp.edata.esv = fa_esv;
    345         a_ecn_hdp.edata.opc = 1;                /* 処理プロパティ数 */
    346         a_ecn_hdp.ecn_prp.epc = fa_epc; /* プロパティコード */
    347         a_ecn_hdp.ecn_prp.pdc = fa_pdc; /* 付随データサイズ */
    348 
    349         /* 要求電文用メモリにデータ追加 */
     325        a_ecn_hdp.edata.opc = 1;                /* 処理プロパティ数 */
     326        a_ecn_hdp.ecn_prp.epc = fa_epc; /* プロパティコード */
     327        a_ecn_hdp.ecn_prp.pdc = fa_pdc; /* 付随データサイズ */
     328
     329        /* 要求電文用メモリにデータ追加 */
    350330        a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_id, &a_ecn_hdp, a_size);
    351331        if (a_ret) {
     
    356336        }
    357337        if (0 < fa_pdc) {
    358                 /* 付随データ追加 */
     338                /* 付随データ追加 */
    359339                a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_id, p_edt, fa_pdc);
    360340                if (a_ret) {
     
    366346        }
    367347        if (fa_deoj == 0) {
    368                 ECN_DBG_PUT("マルチキャスト");
    369                 /* fa_deoj == 0 : マルチキャスト */
     348                ECN_DBG_PUT("マルチキャスト");
     349                /* fa_deoj == 0 : マルチキャスト */
    370350                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx1 = EOJ_X1_PROFILE;
    371351                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx2 = EOJ_X2_NODE_PROFILE;
     
    375355        else if (fa_deoj <= svc->tmax_eobjid) {
    376356                ECN_DBG_PUT_1("fa_deoj = %d", fa_deoj);
    377                 /* if (fa_deoj < 1 || svc->tmax_eobjid < fa_deoj) …の異常系は関数冒頭で除外済みとする */
     357                /* if (fa_deoj < 1 || svc->tmax_eobjid < fa_deoj) …の異常系は関数冒頭で除外済みとする */
    378358                a_eobj = echonet_svctask_get_eobjinib(svc, fa_deoj);
    379359                memcpy(&((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj, &a_eobj->eojx1,
    380360                        sizeof(((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj));
    381361
    382                 /* テーブルから検索 */
     362                /* テーブルから検索 */
    383363                a_fbs_id.ptr->hdr.target.id = ENOD_NOT_MATCH_ID;
    384364                a_enodid = (a_eobj->enodid == 0) ? fa_deoj : a_eobj->enodid;
     
    420400                ECN_ENOD_ID enodid;
    421401                ECN_DBG_PUT_1("fa_deoj = %d", fa_deoj);
    422                 /* オブジェクトIDからEOJとノードIDを取得 */
     402                /* オブジェクトIDからEOJとノードIDを取得 */
    423403                if(ecn_agent_get_eoj_enodid(svc, fa_deoj, &eoj, &enodid)){
    424404                        memcpy(&((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj, &eoj,
     
    452432
    453433        ((T_EDATA *)a_fbs_id.ptr)->trn_pos = -1;
    454         /* 正常終了 */
     434        /* 正常終了 */
    455435        *fp_fbs_id = a_fbs_id;
    456436        return E_OK;
    457437
    458438lb_except:
    459         /* データ作成失敗したら領域解放 */
     439        /* データ作成失敗したら領域解放 */
    460440        if (a_fbs_id.ptr)
    461441                _ecn_fbs_del(mrb, a_fbs_id);
     
    465445
    466446/*
    467  * å†
    468 éƒ¨ä½¿ç”¨ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸
     447 * 内部使用メッセージ
    469448 */
    470449static void _ecn_tsk_int_msg(ecnl_svc_task_t *svc, intptr_t fa_exinf, ECN_FBS_ID fa_fbs_id)
     
    497476
    498477/*
    499  * タスク初期化
     478 * タスク初期化
    500479 */
    501480void _ecn_tsk_int_startup(ecnl_svc_task_t *svc)
     
    505484
    506485/*
    507  * インスタンスリスト通知の送信
    508  * ECHONET-Lite_Ver.1.10_02.pdf p.43 図4-1-4
     486 * インスタンスリスト通知の送信
     487 * ECHONET-Lite_Ver.1.10_02.pdf p.43 4-1-4
    509488 */
    510489ER _ecn_tsk_ntf_inl(ecnl_svc_task_t *svc)
    511490{
    512491        mrb_state *mrb = svc->mrb;
    513         const T_ECN_EOJ a_seoj =        /* 0x01 : 一般ノード、0x02:送信専用ノード */
     492        const T_ECN_EOJ a_seoj =        /* 0x01 : 一般ノード、0x02:送信専用ノード */
    514493                { EOJ_X1_PROFILE, EOJ_X2_NODE_PROFILE, 0x01 };
    515494        const T_ECN_EOJ a_deoj =
     
    521500        int                     i;
    522501        uint8_t         a_count;
    523         const EOBJCB    *enod = &svc->eobjcb_table[0];  /* ローカルノード */
     502        const EOBJCB    *enod = &svc->eobjcb_table[0];  /* ローカルノード */
    524503        const EOBJINIB *eobj;
    525504
     
    539518
    540519                if (!a_eoj_ct) {
    541                         /* メモリ確保・ヘッダ格納 */
    542                         a_hdr.ecn_hdr.tid = (uint8_t)_ecn_tsk_new_tid(svc); /* シーケンス番号生成 */
     520                        /* メモリ確保・ヘッダ格納 */
     521                        a_hdr.ecn_hdr.tid = (uint8_t)_ecn_tsk_new_tid(svc); /* シーケンス番号生成 */
    543522                        a_ret = _ecn_fbs_cre(mrb, sizeof(a_hdr), &a_fbs);
    544                         if (a_ret != E_OK) /* 確保失敗 */
     523                        if (a_ret != E_OK) /* 確保失敗 */
    545524                                goto lb_except;
    546525                        a_ret = _ecn_fbs_add_data(mrb, a_fbs, &a_hdr, sizeof(a_hdr));
    547                         if (a_ret != E_OK) /* データ追加失敗 */
     526                        if (a_ret != E_OK) /* データ追加失敗 */
    548527                                goto lb_except;
    549528
     
    552531                        a_fbs.ptr->hdr.target.id = ENOD_MULTICAST_ID;
    553532                        a_fbs.ptr->hdr.reply.id = ENOD_LOCAL_ID;
    554                         ((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc = 1;    /* 件数 */
    555                         /* 件数を格納 */
     533                        ((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc = 1;    /* 件数 */
     534                        /* 件数を格納 */
    556535                        a_count = (uint8_t)(enod->eobjcnt - i);
    557536                        if (a_count >= ECN_IST_LST_EOJ_MAX_CT)
    558537                                a_count = ECN_IST_LST_EOJ_MAX_CT;
    559538                        a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs, &a_count, sizeof(a_count));
    560                         if (a_ret != E_OK) /* データ追加失敗 */
     539                        if (a_ret != E_OK) /* データ追加失敗 */
    561540                                goto lb_except;
    562541                }
    563                 /* ECHONETオブジェクトID(3byte)を格納 */
     542                /* ECHONETオブジェクトID(3byte)を格納 */
    564543                a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs, &eobj->eojx1, sizeof(T_ECN_EOJ));
    565                 if (a_ret != E_OK) /* データ追加失敗 */
     544                if (a_ret != E_OK) /* データ追加失敗 */
    566545                        goto lb_except;
    567546
    568                 /* 件数・edtサイズ加算 */
     547                /* 件数・edtサイズ加算 */
    569548                ((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc += sizeof(T_ECN_EOJ);
    570549                if (++a_eoj_ct < ECN_IST_LST_EOJ_MAX_CT)
    571550                        continue;
    572551
    573                 /* 1アナウンスでの上限に達したら、一旦送信 */
     552                /* 1アナウンスでの上限に達したら、一旦送信 */
    574553                a_ret = _ecn_tsk_snd_mbx(svc, a_fbs, false);
    575                 if (a_ret != E_OK) /* データ送信失敗 */
     554                if (a_ret != E_OK) /* データ送信失敗 */
    576555                        goto lb_except;
    577556                a_eoj_ct = 0;
     
    579558        }
    580559        if (a_eoj_ct) {
    581                 /* 未送信データがあったら、送信 */
     560                /* 未送信データがあったら、送信 */
    582561                a_ret = _ecn_tsk_snd_mbx(svc, a_fbs, false);
    583                 if (a_ret != E_OK) /* データ送信失敗 */
     562                if (a_ret != E_OK) /* データ送信失敗 */
    584563                        goto lb_except;
    585564                a_fbs.ptr = 0;
     
    625604
    626605/*
    627  * 3byteのeobjidでé
    628 åˆ—中を検索する
     606 * 3byteのeobjidで配列中を検索する
    629607 */
    630608const EOBJINIB *_ecn_eoj_fnd(const EOBJCB *fp_nod, const T_ECN_EOJ *fp_eoj)
     
    659637
    660638/*
    661  * 電文の構成要素数とサイズのチェックを行う
     639 * 電文の構成要素数とサイズのチェックを行う
    662640 */
    663641static bool_t _ecn_tsk_check_format(ecnl_svc_task_t *svc, T_EDATA *edata, int len)
     
    702680
    703681/*
    704  * ECHONET用メッセージ
     682 * ECHONET用メッセージ
    705683 */
    706684static void _ecn_tsk_ecn_msg(ecnl_svc_task_t *svc, intptr_t fa_exinf, ECN_FBS_ID fa_fbs_id)
     
    752730        }
    753731
    754         /* 電文の構成要素数とサイズのチェックを行う */
     732        /* 電文の構成要素数とサイズのチェックを行う */
    755733        if (!_ecn_tsk_check_format(svc, (T_EDATA *)fa_fbs_id.ptr, fa_fbs_id.ptr->hdr.length)) {
    756734                ECN_DBG_PUT("_ecn_tsk_ecn_msg() format fault");
     
    758736        }
    759737
    760         /* 送信宛からノードを検索 */
     738        /* 送信宛からノードを検索 */
    761739        p_nod = _ecn_eno_fnd(svc, fa_fbs_id.ptr->hdr.target.id);
    762         /* 送信å
    763 ƒã‹ã‚‰ãƒŽãƒ¼ãƒ‰ã‚’検索 */
     740        /* 送信元からノードを検索 */
    764741        p_snod = _ecn_eno_fnd(svc, fa_fbs_id.ptr->hdr.sender.id);
    765742        if (p_snod != NULL) {
    766743                sobjatr = p_snod->profile->eobjatr;
    767                 /* ノードプロファイルの場合 */
     744                /* ノードプロファイルの場合 */
    768745                if ((p_esv->edata.seoj.eojx1 == EOJ_X1_PROFILE)
    769746                        && (p_esv->edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
    770747                        p_sobj = p_snod->profile;
    771748                }
    772                 /* 機器オブジェクトの場合 */
     749                /* 機器オブジェクトの場合 */
    773750                else {
    774751                        p_sobj = _ecn_eoj_fnd(p_snod, &p_esv->edata.seoj);
     
    780757#endif
    781758
    782         /* ノードå†
    783 ã®æ©Ÿå™¨ã‚ªãƒ–ジェクトを検索 */
     759        /* ノード内の機器オブジェクトを検索 */
    784760        a_prc = false;
    785761        a_fwd = false;
     
    788764                eobjatr = p_nod->profile->eobjatr;
    789765                p_eoj = &p_esv->edata.deoj;
    790                 /* ノードプロファイルの場合 */
     766                /* ノードプロファイルの場合 */
    791767                if ((p_eoj->eojx1 == EOJ_X1_PROFILE)
    792768                        && (p_eoj->eojx2 == EOJ_X2_NODE_PROFILE)) {
    793769                        if ((p_eoj->eojx3 == p_nod->profile->eojx3)
    794770                                || (p_eoj->eojx3 == 0)) {
    795                                 /* 電文処理実行 */
     771                                /* 電文処理実行 */
    796772                                if (_ecn_tsk_ecn_msg_main(svc, fa_fbs_id, p_nod->profile, eobjatr, p_sobj, sobjatr) == 1)
    797773                                        a_fwd = true;
    798774                                a_prc = true;
    799775                        }
    800                         /* 0x74 プロパティ値通知(応答要)の場合の場合は電文破棄 */
     776                        /* 0x74 プロパティ値通知(応答要)の場合の場合は電文破棄 */
    801777                        else if (p_esv->edata.esv == ESV_INFC) {
    802778                                a_prc = true;
    803779                        }
    804780                }
    805                 /* 機器オブジェクトの場合 */
     781                /* 機器オブジェクトの場合 */
    806782                else {
    807783                        count = p_nod->eobjcnt;
     
    822798                                if (p_obj->eojx2 != p_eoj->eojx2)
    823799                                        continue;
    824                                 /* インスタンスコードが0の場合、同じクラスのå
    825 ¨ã¦ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å®› */
     800                                /* インスタンスコードが0の場合、同じクラスの全てのインスタンス宛 */
    826801                                if ((p_obj->eojx3 != p_eoj->eojx3) && (p_eoj->eojx3 != 0))
    827802                                        continue;
    828803
    829                                 /* 電文処理実行 */
     804                                /* 電文処理実行 */
    830805                                if (_ecn_tsk_ecn_msg_main(svc, fa_fbs_id, p_obj, eobjatr, p_sobj, sobjatr) == 1)
    831806                                        a_fwd = true;
     
    833808                        }
    834809
    835                         /* 機器オブジェクトが見つからず、0x74 プロパティ値通知(応答要)の場合は電文破棄 */
     810                        /* 機器オブジェクトが見つからず、0x74 プロパティ値通知(応答要)の場合は電文破棄 */
    836811                        if (!a_prc && (p_esv->edata.esv == ESV_INFC)) {
    837812                                a_prc = true;
     
    839814                }
    840815        }
    841         /* 機器オブジェクトが見つからない場合でも */
     816        /* 機器オブジェクトが見つからない場合でも */
    842817        if (!a_prc) {
    843                 /* 電文処理実行(応答受信用) */
     818                /* 電文処理実行(応答受信用) */
    844819                if (_ecn_tsk_ecn_msg_main(svc, fa_fbs_id, NULL, EPC_NONE, p_sobj, sobjatr) == 1)
    845820                        a_fwd = true;
    846821        }
    847822
    848         /* 応答の場合アプリケーションに転送する */
     823        /* 応答の場合アプリケーションに転送する */
    849824        if (a_fwd && ((p_esv->ecn_hdr.tid == svc->api_tid)
    850825                || svc->forward_esv))
     
    852827                svc->release_esv = false;
    853828
    854                 ECN_CAP_PUT_1("redirect svc->svc_mbxid → svc->api_mbxid (esv:0x%02X)",
     829                ECN_CAP_PUT_1("redirect svc->svc_mbxid svc->api_mbxid (esv:0x%02X)",
    855830                        p_esv->edata.esv);
    856831                fa_fbs_id.ptr->hdr.target.id = ENOD_API_ID;
     
    878853
    879854        switch (p_esv->edata.esv) {
    880         /* 0x60 プロパティ値書き込み要求(応答不要) */
     855        /* 0x60 プロパティ値書き込み要求(応答不要) */
    881856        case ESV_SET_I:
    882857                if (!p_obj) {
     
    890865                break;
    891866
    892         /* 0x61 プロパティ値書き込み要求(応答要) */
     867        /* 0x61 プロパティ値書き込み要求(応答要) */
    893868        case ESV_SET_C:
    894869                if (!p_obj) {
     
    902877                break;
    903878
    904         /* 0x62 プロパティ値読み出し要求 */
     879        /* 0x62 プロパティ値読み出し要求 */
    905880        case ESV_GET:
    906881                if (!p_obj) {
     
    914889                break;
    915890
    916         /* 0x63 プロパティ値通知要求 */
     891        /* 0x63 プロパティ値通知要求 */
    917892        case ESV_INF_REQ:
    918893                if (!p_obj) {
     
    927902                break;
    928903
    929         /* 0x6E プロパティ値書き込み・読み出し要求 */
     904        /* 0x6E プロパティ値書き込み・読み出し要求 */
    930905        case ESV_SET_GET:
    931906                if (!p_obj) {
     
    939914                break;
    940915
    941         /* 0x74 プロパティ値通知(応答要) */
     916        /* 0x74 プロパティ値通知(応答要) */
    942917        case ESV_INFC:
    943918                if (!p_sobj)
    944                         /* 送信å
    945 ƒãŒæœªçŸ¥ã®ä»–ノードであった場合、応答を返す */
     919                        /* 送信元が未知の他ノードであった場合、応答を返す */
    946920                        _ecn_tsk_eoj_res(svc, fa_fbs_id, ESV_INFC_RES, ESV_INFC_RES); /* 0x7A; 0x7A */
    947921                else if (fromapp)
    948                         /* アプリケーションからの要求の場合、プロパティ値通知(応答要)を送信する */
     922                        /* アプリケーションからの要求の場合、プロパティ値通知(応答要)を送信する */
    949923                        _ecn_tsk_eoj_get(svc, p_sobj, sobjatr, true, (EPC_RULE_GET|EPC_RULE_ANNO), fa_fbs_id, ESV_INFC, ESV_NOP); /* 0x74; 0 */
    950924                else
    951                         /* 送信å
    952 ƒãŒæ—¢çŸ¥ã®ä»–ノードであった場合、プロパティ値を更新し応答を返す */
     925                        /* 送信元が既知の他ノードであった場合、プロパティ値を更新し応答を返す */
    953926                        _ecn_tsk_eoj_set(svc, p_sobj, sobjatr, fromapp, true, fa_fbs_id, ESV_INFC_RES, ESV_INFC_RES, &a_fbs_anno); /* 0x7A; 0x7A */
    954927                result = 0;
    955928                break;
    956929
    957         /* 0x60 プロパティ値書き込み要求(応答不要) */
    958         case ESV_SET_I_SNA:             /* 0x50 プロパティ値書き込み要求不可応答 */
     930        /* 0x60 プロパティ値書き込み要求(応答不要) */
     931        case ESV_SET_I_SNA:             /* 0x50 プロパティ値書き込み要求不可応答 */
    959932                result = 1;
    960933                break;
    961934
    962         /* 0x61 プロパティ値書き込み要求(応答要) */
    963         case ESV_SET_RES:               /* 0x71 プロパティ値書き込み応答 */
    964         case ESV_SET_C_SNA:             /* 0x51 プロパティ値書き込み要求不可応答 */
     935        /* 0x61 プロパティ値書き込み要求(応答要) */
     936        case ESV_SET_RES:               /* 0x71 プロパティ値書き込み応答 */
     937        case ESV_SET_C_SNA:             /* 0x51 プロパティ値書き込み要求不可応答 */
    965938                result = 1;
    966939                break;
    967940
    968         /* 0x62 プロパティ値読み出し要求 */
    969         case ESV_GET_RES:               /* 0x72 プロパティ値読み出し応答 */
    970         case ESV_GET_SNA:               /* 0x52 プロパティ値読み出し不可応答 */
     941        /* 0x62 プロパティ値読み出し要求 */
     942        case ESV_GET_RES:               /* 0x72 プロパティ値読み出し応答 */
     943        case ESV_GET_SNA:               /* 0x52 プロパティ値読み出し不可応答 */
    971944                if (!p_sobj) {
    972945                        ECN_DBG_PUT_1("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     
    979952                break;
    980953
    981         /* 0x63 プロパティ値通知要求 */
    982         case ESV_INF:                   /* 0x73 プロパティ値通知 */
    983         case ESV_INF_SNA:               /* 0x53 プロパティ値通知不可応答 */
     954        /* 0x63 プロパティ値通知要求 */
     955        case ESV_INF:                   /* 0x73 プロパティ値通知 */
     956        case ESV_INF_SNA:               /* 0x53 プロパティ値通知不可応答 */
    984957                if (!p_sobj) {
    985958                        ECN_DBG_PUT_1("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     
    992965                break;
    993966
    994         /* 0x6E プロパティ値書き込み・読み出し要求 */
    995         case ESV_SET_GET_RES:   /* 0x7E プロパティ値書き込み・読み出し応答 */
    996         case ESV_SET_GET_SNA:   /* 0x5E プロパティ値書き込み・読み出し不可応答 */
     967        /* 0x6E プロパティ値書き込み・読み出し要求 */
     968        case ESV_SET_GET_RES:   /* 0x7E プロパティ値書き込み・読み出し応答 */
     969        case ESV_SET_GET_SNA:   /* 0x5E プロパティ値書き込み・読み出し不可応答 */
    997970                if (!p_sobj) {
    998971                        ECN_DBG_PUT_1("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     
    1005978                break;
    1006979
    1007         /* 0x74 プロパティ値通知(応答要) */
    1008         case ESV_INFC_RES:              /* 0x7A プロパティ値通知応答 */
     980        /* 0x74 プロパティ値通知(応答要) */
     981        case ESV_INFC_RES:              /* 0x7A プロパティ値通知応答 */
    1009982                result = 1;
    1010983                break;
     
    1016989        }
    1017990
    1018         /* プロパティ通知要求を送信 */
     991        /* プロパティ通知要求を送信 */
    1019992        if (a_fbs_anno.ptr != NULL) {
    1020993                ER a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_anno, true);
     
    10931066
    10941067/*
    1095  * ECN_FBS_IDからT_ECN_PRP1件とその付随データ(edt)を抽出し、edtのポインタを返す
    1096  * 引数
    1097  * ECN_FBS_ID fa_fbs_id                                 èª­ã¿å–ã‚‹FBS
    1098  * T_ECN_PRP *fp_prp                                    epc+pdcの格納å
    1099 ˆ
    1100  * T_ECN_SUB_BLK * const fp_prev_blk    前回使ったメモリのポインタ(無ければ0)
    1101  * 正常:ポインタ NG:0
    1102  * ポインタは_ecn_fbs_mbx_rel()で解放するå¿
    1103 è¦ãŒã‚ã‚‹
     1068 * ECN_FBS_IDからT_ECN_PRP1件とその付随データ(edt)を抽出し、edtのポインタを返す
     1069 * 引数
     1070 * ECN_FBS_ID fa_fbs_id                                 読み取るFBS
     1071 * T_ECN_PRP *fp_prp                                    epc+pdcの格納先
     1072 * T_ECN_SUB_BLK * const fp_prev_blk    前回使ったメモリのポインタ(無ければ0)
     1073 * 正常:ポインタ NG:0
     1074 * ポインタは_ecn_fbs_mbx_rel()で解放する必要がある
    11041075 */
    11051076static T_ECN_SUB_BLK *_ecn_tsk_get_prp_pce(ecnl_svc_task_t *svc, ECN_FBS_ID fa_fbs_id, T_ECN_PRP *fp_prp,
     
    11111082        ER              a_ret;
    11121083
    1113         /* プロパティ用メモリの取得 */
     1084        /* プロパティ用メモリの取得 */
    11141085        if (fp_prev_blk) {
    1115                 p_blk = fp_prev_blk; /* 前回使ったメモリがあるなら、再利用する */
     1086                p_blk = fp_prev_blk; /* 前回使ったメモリがあるなら、再利用する */
    11161087        }
    11171088        else {
     
    11191090                if (!p_blk) {
    11201091                        ECN_DBG_PUT("_ecn_fbs_mbx_get() fault.");
    1121                         return 0;       /* メモリ不足 */
     1092                        return 0;       /* メモリ不足 */
    11221093                }
    11231094        }
    11241095        memset(p_blk, 0, sizeof(*p_blk));
    11251096
    1126         /* T_ECN_PRP部分(epc,pdc)を読み取る */
     1097        /* T_ECN_PRP部分(epc,pdc)を読み取る */
    11271098        a_size = 0;
    11281099        a_ret = _ecn_fbs_get_data(mrb, fa_fbs_id, fp_prp, sizeof(*fp_prp), &a_size);
     
    11331104
    11341105        if (0 < fp_prp->pdc) {
    1135                 /* 付随データ部分(edt)を読み取る */
     1106                /* 付随データ部分(edt)を読み取る */
    11361107                a_size = 0;
    11371108                a_ret = _ecn_fbs_get_data(mrb, fa_fbs_id, p_blk, fp_prp->pdc, &a_size);
     
    11451116
    11461117lb_except:
    1147         /* プロパティ用メモリ解放 */
     1118        /* プロパティ用メモリ解放 */
    11481119        if (p_blk && !fp_prev_blk)
    11491120                _ecn_fbs_mbx_rel(mrb, p_blk);
     
    11551126        ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, ECN_FBS_ID *fa_fbs_anno, int a_count,
    11561127        int *p_sw_ok);
    1157 /* プロパティ値書き込み実行 */
     1128/* プロパティ値書き込み実行 */
    11581129static ER _ecn_tsk_eoj_set_main(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_fromapp, bool_t fa_update,
    11591130        ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, ECN_FBS_ID *fa_fbs_anno, int a_count,
     
    11721143
    11731144        for (i = 0; i < a_count; i++) {
    1174                 /* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出し、そのポインタを返す */
     1145                /* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出し、そのポインタを返す */
    11751146                p_edt = _ecn_tsk_get_prp_pce(svc, fa_fbs_id, &a_prp, p_edt);
    11761147                if (!p_edt) {
     
    11791150                }
    11801151
    1181                 /* プロパティの設定 set_prp(obj, reqp, resp) */
     1152                /* プロパティの設定 set_prp(obj, reqp, resp) */
    11821153                a_size = a_prp.pdc;
    1183                 /* obj,epcに対応するset関数を呼ぶ */
     1154                /* obj,epcに対応するset関数を呼ぶ */
    11841155                a_eprp = _ecn_tsk_eoj_get_property(fp_obj, a_prp.epc);
    11851156                if ((a_eprp != NULL)
     
    12031174                                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3,
    12041175                                a_prp.epc, p_edt->payload[0], a_size);
    1205                         *p_sw_ok = 0;   /* プロパティ設定失敗 */
    1206                         /* 応答処理の場合EDTは設定しない */
     1176                        *p_sw_ok = 0;   /* プロパティ設定失敗 */
     1177                        /* 応答処理の場合EDTは設定しない */
    12071178                        if (fa_update)
    12081179                                a_prp.pdc = 0;
    12091180                }
    12101181
    1211                 /* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
     1182                /* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
    12121183                a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_prp, sizeof(a_prp));
    12131184                if (a_ret) {
     
    12171188
    12181189                if (0 < a_prp.pdc) {
    1219                         /* 応答電文用メモリにデータ追加(edt n-byte) */
     1190                        /* 応答電文用メモリにデータ追加(edt n-byte) */
    12201191                        a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, p_edt->payload, a_prp.pdc);
    12211192                        if (a_ret) {
     
    12261197                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc ++;
    12271198
    1228                 /* プロパティ通知ありの場合 */
     1199                /* プロパティ通知ありの場合 */
    12291200                if (a_anno && (a_ans == a_size)) {
    12301201                        if (fa_fbs_anno->ptr == NULL) {
     
    12441215
    12451216lb_finally:
    1246         /* プロパティ用メモリ解放 */
     1217        /* プロパティ用メモリ解放 */
    12471218        if (p_edt)
    12481219                _ecn_fbs_mbx_rel(mrb, p_edt);
     
    12531224static ER _ecn_tsk_eoj_get_main(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
    12541225        ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok);
    1255 /* プロパティ値読み出し実行 */
     1226/* プロパティ値読み出し実行 */
    12561227static ER _ecn_tsk_eoj_get_main(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
    12571228        ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok)
     
    12591230        mrb_state *mrb = svc->mrb;
    12601231        T_ECN_SUB_BLK   *p_edt          =       0;
    1261         void                            *p_prp_buf      =       0;      /* 作業領域 */
     1232        void                            *p_prp_buf      =       0;      /* 作業領域 */
    12621233        const EPRPINIB          *a_eprp;
    12631234        ER                                      a_ret           =       E_SYS;
     
    12671238        ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
    12681239
    1269         /* 作業領域確保 */
     1240        /* 作業領域確保 */
    12701241        p_prp_buf = _ecn_fbs_mbx_get(mrb, ECHONET_MEMPOOL_BLOCK_SIZE);
    12711242        if (!p_prp_buf) {
    12721243                ECN_DBG_PUT_2("_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret));
    1273                 goto lb_except; /* メモリ不足 */
     1244                goto lb_except; /* メモリ不足 */
    12741245        }
    12751246
    12761247        for (i = 0; i < a_count; i++) {
    1277                 /* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出 */
     1248                /* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出 */
    12781249                p_edt = _ecn_tsk_get_prp_pce(svc, fa_fbs_id, &a_prp, p_edt);
    12791250                if (!p_edt) {
     
    12821253                }
    12831254
    1284                 /* プロパティの取得 get_eprp(obj, reqp, resp, size) */
     1255                /* プロパティの取得 get_eprp(obj, reqp, resp, size) */
    12851256                memset(p_prp_buf, 0, ECHONET_MEMPOOL_BLOCK_SIZE);
    1286                 /* obj,epcに対応するget関数を呼ぶ */
     1257                /* obj,epcに対応するget関数を呼ぶ */
    12871258                a_eprp = _ecn_tsk_eoj_get_property(fp_obj, a_prp.epc);
    12881259                if ((a_eprp != NULL) && (((a_eprp->eprpatr & fa_access) != 0) && (fa_eobjatr == EOBJ_LOCAL_NODE) || fa_forward)) {
     
    12951266                        a_prp.pdc = (uint8_t)a_ans;
    12961267                } else {
    1297                         *p_sw_ok = 0;   /* プロパティ取得失敗 */
     1268                        *p_sw_ok = 0;   /* プロパティ取得失敗 */
    12981269                        a_ans = 0;
    12991270                        a_prp.pdc = 0;
    13001271                }
    13011272
    1302                 /* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
     1273                /* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
    13031274                a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_prp, sizeof(a_prp));
    13041275                if (a_ret) {
     
    13071278                }
    13081279                if (0 < a_ans) {
    1309                         /* 付随データ追加 */
     1280                        /* 付随データ追加 */
    13101281                        a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, p_prp_buf, a_ans);
    13111282                        if (a_ret) {
     
    13231294
    13241295lb_finally:
    1325         /* 作業領域解放 */
     1296        /* 作業領域解放 */
    13261297        if (p_prp_buf)
    13271298                _ecn_fbs_mbx_rel(mrb, p_prp_buf);
    13281299
    1329         /* プロパティ用メモリ解放 */
     1300        /* プロパティ用メモリ解放 */
    13301301        if (p_edt)
    13311302                _ecn_fbs_mbx_rel(mrb, p_edt);
     
    13351306
    13361307static ER _ecn_tsk_eoj_res_main(ecnl_svc_task_t *svc, ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok);
    1337 /* プロパティ値読み出し実行 */
     1308/* プロパティ値読み出し実行 */
    13381309static ER _ecn_tsk_eoj_res_main(ecnl_svc_task_t *svc, ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok)
    13391310{
    13401311        mrb_state *mrb = svc->mrb;
    13411312        T_ECN_SUB_BLK   *p_edt          =       0;
    1342         void                            *p_prp_buf      =       0;      /* 作業領域 */
     1313        void                            *p_prp_buf      =       0;      /* 作業領域 */
    13431314        ER                                      a_ret           =       E_SYS;
    13441315        T_ECN_PRP                       a_prp;                  /* epc+pdc */
     
    13471318        ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
    13481319
    1349         /* 作業領域確保 */
     1320        /* 作業領域確保 */
    13501321        p_prp_buf = _ecn_fbs_mbx_get(mrb, ECHONET_MEMPOOL_BLOCK_SIZE);
    13511322        if (!p_prp_buf) {
    13521323                ECN_DBG_PUT_2("_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret));
    1353                 goto lb_except; /* メモリ不足 */
     1324                goto lb_except; /* メモリ不足 */
    13541325        }
    13551326
    13561327        for (i = 0; i < a_count; i++) {
    1357                 /* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出 */
     1328                /* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出 */
    13581329                p_edt = _ecn_tsk_get_prp_pce(svc, fa_fbs_id, &a_prp, p_edt);
    13591330                if (!p_edt) {
     
    13641335                a_prp.pdc = 0;
    13651336
    1366                 /* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
     1337                /* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
    13671338                a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_prp, sizeof(a_prp));
    13681339                if (a_ret) {
     
    13791350
    13801351lb_finally:
    1381         /* 作業領域解放 */
     1352        /* 作業領域解放 */
    13821353        if (p_prp_buf)
    13831354                _ecn_fbs_mbx_rel(mrb, p_prp_buf);
    13841355
    1385         /* プロパティ用メモリ解放 */
     1356        /* プロパティ用メモリ解放 */
    13861357        if (p_edt)
    13871358                _ecn_fbs_mbx_rel(mrb, p_edt);
     
    13901361}
    13911362
    1392 /* プロパティ値読み飛ばし実行 */
     1363/* プロパティ値読み飛ばし実行 */
    13931364static ER _ecn_tsk_eoj_skip_main(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ECN_FBS_ID fa_fbs_id,
    13941365        int a_count);
     
    14021373
    14031374        for (i = 0; i < a_count; i++) {
    1404                 /* T_ECN_PRP部分(epc,pdc)を読み取る */
     1375                /* T_ECN_PRP部分(epc,pdc)を読み取る */
    14051376                a_size = 0;
    14061377                a_ret = _ecn_fbs_get_data(mrb, fa_fbs_id, &a_prp, sizeof(a_prp), &a_size);
     
    14101381                }
    14111382
    1412                 /* pdc分読み飛ばし */
     1383                /* pdc分読み飛ばし */
    14131384                a_ret = _ecn_fbs_seek_rpos(fa_fbs_id, a_prp.pdc);
    14141385                if (a_ret) {
     
    14291400static void _ecn_tsk_mk_rsp_hdr(const EOBJINIB *fp_obj, T_ECN_EDT_HDR *fp_rsp_esv,
    14301401        T_ECN_EDT_HDR const *fp_req_esv);
    1431 /* 応答電文設定 */
     1402/* 応答電文設定 */
    14321403static void _ecn_tsk_mk_rsp_hdr(const EOBJINIB *fp_obj, T_ECN_EDT_HDR *fp_rsp_esv,
    14331404        T_ECN_EDT_HDR const *fp_req_esv)
     
    14541425}
    14551426
    1456 /* 応答電文用fbs設定 */
     1427/* 応答電文用fbs設定 */
    14571428static void _ecn_tsk_set_rsp_fbs(ECN_FBS_ID fa_rsp_fbs, T_ECN_FST_BLK const *fp_req_ptr);
    1458 /* 応答電文用fbs設定(sender/targetの設定) */
     1429/* 応答電文用fbs設定(sender/targetの設定) */
    14591430static void _ecn_tsk_set_rsp_fbs(ECN_FBS_ID fa_rsp_fbs, T_ECN_FST_BLK const *fp_req_ptr)
    14601431{
     
    14651436}
    14661437
    1467 /* プロパティ値書き込み要求 */
     1438/* プロパティ値書き込み要求 */
    14681439static void _ecn_tsk_eoj_set(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_fromapp, bool_t fa_update,
    14691440        ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv,
     
    14811452        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
    14821453
    1483         /* 応答最大サイズの取得 */
     1454        /* 応答最大サイズの取得 */
    14841455        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    14851456
    1486         /* 応答電文用メモリの取得 */
     1457        /* 応答電文用メモリの取得 */
    14871458        a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_res);
    1488         if (a_ret != E_OK || !a_fbs_res.ptr) /* 確保失敗 */
     1459        if (a_ret != E_OK || !a_fbs_res.ptr) /* 確保失敗 */
    14891460                return;
    14901461
    1491         /* 応答電文設定 */
     1462        /* 応答電文設定 */
    14921463        if(p_req_esv->edata.deoj.eojx3 != 0)
    14931464                _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
     
    14951466                _ecn_tsk_mk_rsp_hdr(fp_obj, &a_ecn_hdp, p_req_esv);
    14961467
    1497         /* 正常時の応答電文がプロパティ値通知応答の場合 */
     1468        /* 正常時の応答電文がプロパティ値通知応答の場合 */
    14981469        if (fa_res_esv == ESV_INFC_RES) {
    1499                 /* 送信å
    1500 ƒã¨å®›å
    1501 ˆã‚’å
    1502 ¥ã‚Œæ›¿ãˆ */
     1470                /* 送信元と宛先を入れ替え */
    15031471                eoj = a_ecn_hdp.edata.seoj;
    15041472                a_ecn_hdp.edata.seoj = a_ecn_hdp.edata.deoj;
     
    15061474        }
    15071475
    1508         f_put_fbs_eoj("_ecn_tsk_eoj_set", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
    1509 
    1510         /* 応答電文用メモリにデータ追加 */
     1476        f_put_fbs_eoj("_ecn_tsk_eoj_set", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
     1477
     1478        /* 応答電文用メモリにデータ追加 */
    15111479        a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_ecn_hdp,
    15121480                                sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
     
    15141482                goto lb_except;
    15151483
    1516         /* payloadå
    1517 ˆé ­ã®T_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
     1484        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    15181485        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    15191486        if (a_ret)
    15201487                goto lb_except;
    15211488
    1522         /* 応答電文用fbs設定 */
     1489        /* 応答電文用fbs設定 */
    15231490        _ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
    15241491
    1525         /* プロパティ値書き込み実行 */
     1492        /* プロパティ値書き込み実行 */
    15261493        a_ret = _ecn_tsk_eoj_set_main(svc, fp_obj, fa_eobjatr, fa_fromapp, fa_update, fa_fbs_id, a_fbs_res,
    15271494                fa_fbs_anno, p_req_esv->edata.opc, &a_sw_ok);
     
    15291496                goto lb_except;
    15301497
    1531         /* 応答要の場合 */
     1498        /* 応答要の場合 */
    15321499        if (a_sw_ok) {
    15331500                if (!fa_res_esv) {
    1534                         /* 応答不要の場合 */
     1501                        /* 応答不要の場合 */
    15351502                        _ecn_fbs_del(mrb, a_fbs_res);
    15361503                        goto lb_finally;
    15371504                }
    1538                 /* 設定処理成功 */
     1505                /* 設定処理成功 */
    15391506                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
    15401507        } else {
    15411508                if (!fa_sna_esv) {
    1542                         /* 応答不要の場合 */
     1509                        /* 応答不要の場合 */
    15431510                        _ecn_fbs_del(mrb, a_fbs_res);
    15441511                        goto lb_finally;
    15451512                }
    1546                 /* 設定処理失敗 */
     1513                /* 設定処理失敗 */
    15471514                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
    15481515        }
    1549         /* 応答送信 */
     1516        /* 応答送信 */
    15501517        a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_res, false);
    15511518        if (a_ret == E_OK)
     
    15531520
    15541521lb_except:
    1555         /* データ送信失敗したら領域解放 */
     1522        /* データ送信失敗したら領域解放 */
    15561523        if (a_fbs_res.ptr)
    15571524                _ecn_fbs_del(mrb, a_fbs_res);
     
    15611528}
    15621529
    1563 /* プロパティ値読み出し要求 */
     1530/* プロパティ値読み出し要求 */
    15641531static void _ecn_tsk_eoj_get(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
    15651532        ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv)
     
    15751542        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
    15761543
    1577         /* 初期取得サイズ */
     1544        /* 初期取得サイズ */
    15781545        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    15791546
    1580         /* 応答電文用メモリの取得 */
     1547        /* 応答電文用メモリの取得 */
    15811548        a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_res);
    1582         if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
     1549        if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
    15831550                ECN_DBG_PUT_2("_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret));
    15841551                goto lb_finally;
    15851552        }
    15861553
    1587         /* 応答電文設定 */
     1554        /* 応答電文設定 */
    15881555        if(p_req_esv->edata.deoj.eojx3 != 0)
    15891556                _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
     
    15911558                _ecn_tsk_mk_rsp_hdr(fp_obj, &a_ecn_hdp, p_req_esv);
    15921559
    1593         f_put_fbs_eoj("_ecn_tsk_eoj_get", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
    1594 
    1595         /* 応答電文用メモリにデータ追加 */
     1560        f_put_fbs_eoj("_ecn_tsk_eoj_get", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
     1561
     1562        /* 応答電文用メモリにデータ追加 */
    15961563        a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_ecn_hdp,
    15971564                        sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
     
    16011568        }
    16021569
    1603         /* payloadå
    1604 ˆé ­ã®T_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
     1570        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    16051571        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    16061572        if (a_ret) {
     
    16091575        }
    16101576
    1611         /* 応答電文用fbs設定 */
     1577        /* 応答電文用fbs設定 */
    16121578        _ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
    16131579
    1614         /* プロパティ値読み込み実行 */
     1580        /* プロパティ値読み込み実行 */
    16151581        a_ret = _ecn_tsk_eoj_get_main(svc, fp_obj, fa_eobjatr, fa_forward, fa_access, fa_fbs_id, a_fbs_res,
    16161582                ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc, &a_sw_ok);
     
    16221588        if (a_sw_ok) {
    16231589                if (!fa_res_esv) {
    1624                         /* 応答不要の場合 */
     1590                        /* 応答不要の場合 */
    16251591                        _ecn_fbs_del(mrb, a_fbs_res);
    16261592                        goto lb_finally;
    16271593                }
    1628                 /* 設定処理成功 */
     1594                /* 設定処理成功 */
    16291595                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
    16301596        } else {
    16311597                if (!fa_sna_esv) {
    1632                         /* 応答不要の場合 */
     1598                        /* 応答不要の場合 */
    16331599                        _ecn_fbs_del(mrb, a_fbs_res);
    16341600                        goto lb_finally;
    16351601                }
    1636                 /* 設定処理失敗 */
     1602                /* 設定処理失敗 */
    16371603                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
    16381604
    1639                 /* 不可応答の場合は個別送信する */
     1605                /* 不可応答の場合は個別送信する */
    16401606                if (a_fbs_res.ptr->hdr.target.id == ENOD_MULTICAST_ID) {
    16411607                        a_fbs_res.ptr->hdr.target.id = fa_fbs_id.ptr->hdr.sender.id;
    16421608                }
    16431609        }
    1644         /* 応答送信 */
     1610        /* 応答送信 */
    16451611        a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_res, false);
    16461612        if (a_ret != E_OK) {
     
    16511617
    16521618lb_except:
    1653         /* データ送信失敗したら領域解放 */
     1619        /* データ送信失敗したら領域解放 */
    16541620        if (a_fbs_res.ptr)
    16551621                _ecn_fbs_del(mrb, a_fbs_res);
     
    16591625}
    16601626
    1661 /* プロパティ値読み出し要求 */
     1627/* プロパティ値読み出し要求 */
    16621628static void _ecn_tsk_eoj_res(ecnl_svc_task_t *svc, ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv,
    16631629        ECN_SRV_CODE fa_sna_esv)
     
    16731639        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
    16741640
    1675         /* 初期取得サイズ */
     1641        /* 初期取得サイズ */
    16761642        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    16771643
    1678         /* 応答電文用メモリの取得 */
     1644        /* 応答電文用メモリの取得 */
    16791645        a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_res);
    1680         if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
     1646        if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
    16811647                ECN_DBG_PUT_2("_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret));
    16821648                goto lb_finally;
    16831649        }
    16841650
    1685         /* 応答電文設定                                           */
     1651        /* 応答電文設定                                               */
    16861652        _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
    16871653
    1688         f_put_fbs_eoj("_ecn_tsk_eoj_res", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
    1689 
    1690         /* 応答電文用メモリにデータ追加 */
     1654        f_put_fbs_eoj("_ecn_tsk_eoj_res", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
     1655
     1656        /* 応答電文用メモリにデータ追加 */
    16911657        a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_ecn_hdp,
    16921658                        sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
     
    16961662        }
    16971663
    1698         /* payloadå
    1699 ˆé ­ã®T_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
     1664        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    17001665        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    17011666        if (a_ret) {
     
    17041669        }
    17051670
    1706         /* 応答電文用fbs設定 */
     1671        /* 応答電文用fbs設定 */
    17071672        _ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
    17081673
    1709         /* プロパティ値読み込み実行 */
     1674        /* プロパティ値読み込み実行 */
    17101675        a_ret = _ecn_tsk_eoj_res_main(svc, fa_fbs_id, a_fbs_res,
    17111676                ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc, &a_sw_ok);
     
    17171682        if (a_sw_ok) {
    17181683                if (!fa_res_esv) {
    1719                         /* 応答不要の場合 */
     1684                        /* 応答不要の場合 */
    17201685                        _ecn_fbs_del(mrb, a_fbs_res);
    17211686                        goto lb_finally;
    17221687                }
    1723                 /* 設定処理成功 */
     1688                /* 設定処理成功 */
    17241689                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
    17251690        } else {
    17261691                if (!fa_sna_esv) {
    1727                         /* 応答不要の場合 */
     1692                        /* 応答不要の場合 */
    17281693                        _ecn_fbs_del(mrb, a_fbs_res);
    17291694                        goto lb_finally;
    17301695                }
    1731                 /* 設定処理失敗 */
     1696                /* 設定処理失敗 */
    17321697                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
    17331698        }
    1734         /* 応答送信 */
     1699        /* 応答送信 */
    17351700        a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_res, false);
    17361701        if (a_ret != E_OK) {
     
    17411706
    17421707lb_except:
    1743         /* データ送信失敗したら領域解放 */
     1708        /* データ送信失敗したら領域解放 */
    17441709        if (a_fbs_res.ptr)
    17451710                _ecn_fbs_del(mrb, a_fbs_res);
     
    17571722        T_ECN_EDT_HDR   a_ecn_hdp;
    17581723        ECN_FBS_ID              a_fbs_res       = { 0 };
    1759         int                             a_rdprp_wrpos;  /*      プロパティ読み込み件数書き込み時のヘッド位置      */
     1724        int                             a_rdprp_wrpos;  /*      プロパティ読み込み件数書き込み時のヘッド位置  */
    17601725        ER              a_ret;
    17611726        int             i, a_size, a_rdlen;
    17621727        int             a_sw_ok = 1;
    1763         int             a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;    /* 処理プロパティ数 */
     1728        int             a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;    /* 処理プロパティ数 */
    17641729
    17651730        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
     
    17681733                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3);
    17691734
    1770         /* 初期取得サイズ */
     1735        /* 初期取得サイズ */
    17711736        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    17721737
    1773         /* 応答電文用メモリの取得 */
     1738        /* 応答電文用メモリの取得 */
    17741739        a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_res);
    1775         if (a_ret != E_OK || !a_fbs_res.ptr) /* 確保失敗 */
     1740        if (a_ret != E_OK || !a_fbs_res.ptr) /* 確保失敗 */
    17761741                goto lb_finally;
    17771742
    1778         /* 応答電文設定 */
     1743        /* 応答電文設定 */
    17791744        if(p_req_esv->edata.deoj.eojx3 != 0)
    17801745                _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
     
    17831748        a_size -= sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY);
    17841749
    1785         f_put_fbs_eoj("_ecn_tsk_eoj_set_get", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
    1786 
    1787         /* 応答電文用メモリにデータ追加 */
     1750        f_put_fbs_eoj("_ecn_tsk_eoj_set_get", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
     1751
     1752        /* 応答電文用メモリにデータ追加 */
    17881753        a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_ecn_hdp,
    17891754                                sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
     
    17911756                goto lb_except;
    17921757
    1793         /* payloadå
    1794 ˆé ­ã®T_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
     1758        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    17951759        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    17961760        if (a_ret)
    17971761                goto lb_except;
    17981762
    1799         /* 応答電文用fbs設定 */
     1763        /* 応答電文用fbs設定 */
    18001764        _ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
    18011765
    1802         /* プロパティ値書き込み実行 */
     1766        /* プロパティ値書き込み実行 */
    18031767        a_ret = _ecn_tsk_eoj_set_main(svc, fp_obj, fa_eobjatr, fa_fromapp, false, fa_fbs_id, a_fbs_res,
    18041768                fa_fbs_anno, a_count, &a_sw_ok);
     
    18131777                (a_sw_ok ? "true" : "false"));
    18141778
    1815         /* 次の件数を読み取る(1byte)                                           */
    1816         /* → ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet]       */
     1779        /* 次の件数を読み取る(1byte)                                             */
     1780        /* ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet] */
    18171781        a_rdlen = i = 0;
    18181782        a_ret = _ecn_fbs_get_data(mrb, fa_fbs_id, &i, 1, &a_rdlen);
     
    18211785        a_count = *(uint8_t *)&i;
    18221786
    1823         /* プロパティ読み込み件数書き込み時のヘッドæƒ
    1824 å ±ã‚’記録 */
     1787        /* プロパティ読み込み件数書き込み時のヘッド情報を記録 */
    18251788        a_rdprp_wrpos = _ecn_fbs_get_datalen(a_fbs_res);
    18261789
    1827         /* 応答電文用メモリにデータ追加 (OPCGet 1byte) */
     1790        /* 応答電文用メモリにデータ追加 (OPCGet 1byte) */
    18281791        a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &i, 1);
    18291792        if (a_ret)
    18301793                goto lb_except;
    18311794
    1832         /* この時点での応答電文中プロパティ件数を記録 */
     1795        /* この時点での応答電文中プロパティ件数を記録 */
    18331796        i = ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc;
    18341797        ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
    18351798
    1836         /* プロパティ値読み込み実行 */
     1799        /* プロパティ値読み込み実行 */
    18371800        a_ret = _ecn_tsk_eoj_get_main(svc, fp_obj, fa_eobjatr, false, EPC_RULE_GET, fa_fbs_id, a_fbs_res,
    18381801                a_count, &a_sw_ok);
     
    18471810                (a_sw_ok ? "true" : "false"));
    18481811
    1849         /* プロパティ読み込み件数書き込み時のヘッドæƒ
    1850 å ±ã§ã€èª­ã¿å‡ºã—件数を記録 */
     1812        /* プロパティ読み込み件数書き込み時のヘッド情報で、読み出し件数を記録 */
    18511813        _ecn_fbs_poke(mrb, a_fbs_res, a_rdprp_wrpos, ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc);
    18521814
    1853         /* 記録しておいたプロパティ件数(書き込み件数)を書き戻す */
     1815        /* 記録しておいたプロパティ件数(書き込み件数)を書き戻す */
    18541816        ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = (uint8_t)i;
    18551817
    1856         /* 応答要の場合 */
     1818        /* 応答要の場合 */
    18571819        if (a_sw_ok) {
    1858                 /* 設定処理成功 */
     1820                /* 設定処理成功 */
    18591821                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
    18601822        } else {
    1861                 /* 設定処理失敗 */
     1823                /* 設定処理失敗 */
    18621824                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
    18631825        }
    1864         /* 応答送信 */
     1826        /* 応答送信 */
    18651827        a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_res, false);
    18661828        if (a_ret == E_OK)
     
    18681830
    18691831lb_except:
    1870         /* データ送信失敗したら領域解放 */
     1832        /* データ送信失敗したら領域解放 */
    18711833        if (a_fbs_res.ptr)
    18721834                _ecn_fbs_del(mrb, a_fbs_res);
     
    18861848        int             i, a_size, a_rdlen;
    18871849        int             a_sw_ok = 1;
    1888         int             a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;    /* 処理プロパティ数 */
     1850        int             a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;    /* 処理プロパティ数 */
    18891851
    18901852        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
     
    18931855                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3);
    18941856
    1895         /* 初期取得サイズ */
     1857        /* 初期取得サイズ */
    18961858        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    18971859
    1898         /* 応答電文用メモリ(ダミー)の取得 */
     1860        /* 応答電文用メモリ(ダミー)の取得 */
    18991861        a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_dmy);
    1900         if (a_ret != E_OK || !a_fbs_dmy.ptr) /* 確保失敗 */
     1862        if (a_ret != E_OK || !a_fbs_dmy.ptr) /* 確保失敗 */
    19011863                goto lb_finally;
    19021864
    1903         /* 応答電文設定                                           */
     1865        /* 応答電文設定                                               */
    19041866        _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
    19051867        a_size -= sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY);
    19061868
    1907         /* payloadå
    1908 ˆé ­ã®T_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
     1869        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    19091870        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    19101871        if (a_ret)
    19111872                goto lb_except;
    19121873
    1913         /* プロパティ値書き込み応答読み飛ばし実行 */
     1874        /* プロパティ値書き込み応答読み飛ばし実行 */
    19141875        a_ret = _ecn_tsk_eoj_skip_main(svc, fp_obj, fa_fbs_id, a_count);
    19151876        if (a_ret) {
     
    19231884                (a_sw_ok ? "true" : "false"));
    19241885
    1925         /* 次の件数を読み取る(1byte)                                           */
    1926         /* → ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet]       */
     1886        /* 次の件数を読み取る(1byte)                                             */
     1887        /* ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet] */
    19271888        a_rdlen = i = 0;
    19281889        a_ret = _ecn_fbs_get_data(mrb, fa_fbs_id, &i, 1, &a_rdlen);
     
    19311892        a_count = *(uint8_t *)&i;
    19321893
    1933         /* プロパティ値読み出し応答の書き込み実行 */
     1894        /* プロパティ値読み出し応答の書き込み実行 */
    19341895        a_ret = _ecn_tsk_eoj_set_main(svc, fp_obj, fa_eobjatr, fa_fromapp, true, fa_fbs_id, a_fbs_dmy,
    19351896                                                                  fa_fbs_anno, a_count, &a_sw_ok);
     
    19471908
    19481909lb_except:
    1949         /* データ送信失敗したら領域解放 */
     1910        /* データ送信失敗したら領域解放 */
    19501911        if (a_fbs_dmy.ptr)
    19511912                _ecn_fbs_del(mrb, a_fbs_dmy);
     
    19561917
    19571918/*
    1958  * 応答電文å¾
    1959 ã¡ã®å‰²ã‚Šè¾¼ã¿é›»æ–‡ä½œæˆ
     1919 * 応答電文待ちの割り込み電文作成
    19601920 */
    19611921ER _ecn_mk_brk_wai(ecnl_svc_task_t *svc, ECN_FBS_ID *pk_fbs_id, const void *p_dat, size_t fa_size)
     
    19631923        mrb_state *mrb = svc->mrb;
    19641924        ER                              a_ret;
    1965         ECN_FBS_ID              a_fbs_id = { 0 };       /* 要求電文用メモリ     */
     1925        ECN_FBS_ID              a_fbs_id = { 0 };       /* 要求電文用メモリ     */
    19661926
    19671927        if (!pk_fbs_id)
     
    19691929        *pk_fbs_id = a_fbs_id;
    19701930        if (sizeof(a_fbs_id.ptr->payload) <= fa_size)
    1971                 return E_PAR; /* 付随データが大きすぎる */
     1931                return E_PAR; /* 付随データが大きすぎる */
    19721932        if (!p_dat && 0 < fa_size)
    1973                 return E_PAR; /* 付随データサイズが1以上なのにデータポインタがNULL */
    1974 
    1975         /* 要求電文用メモリの取得 */
     1933                return E_PAR; /* 付随データサイズが1以上なのにデータポインタがNULL */
     1934
     1935        /* 要求電文用メモリの取得 */
    19761936        a_ret = _ecn_fbs_cre(mrb, (0 < fa_size ? fa_size : 1), &a_fbs_id);
    1977         if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
     1937        if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
    19781938                ECN_DBG_PUT_3("_ecn_fbs_cre(%d) result = %d:%s", fa_size, a_ret, itron_strerror(a_ret));
    19791939                return a_ret;
    19801940        }
    19811941
    1982         /* 要求電文設定 */
     1942        /* 要求電文設定 */
    19831943        a_fbs_id.ptr->hdr.type = ECN_MSG_USER_BREAK;
    19841944        a_fbs_id.ptr->hdr.sender.id = ENOD_API_ID;
     
    19871947
    19881948        if (0 < fa_size && p_dat) {
    1989                 /* 付随データ追加 */
     1949                /* 付随データ追加 */
    19901950                a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_id, p_dat, fa_size);
    19911951                if (a_ret) {
     
    19991959        *pk_fbs_id = a_fbs_id;
    20001960
    2001         /* 正常終了 */
     1961        /* 正常終了 */
    20021962        return a_ret;
    20031963
    20041964lb_except:
    2005         /* データ作成失敗したら領域解放 */
     1965        /* データ作成失敗したら領域解放 */
    20061966        if (a_fbs_id.ptr)
    20071967                _ecn_fbs_del(mrb, a_fbs_id);
     
    20101970}
    20111971
    2012 /* 応答電文用fbs設定(sender/targetの設定) */
     1972/* 応答電文用fbs設定(sender/targetの設定) */
    20131973ER _ecn_tsk_cre_req_fbs(ecnl_svc_task_t *svc, T_ECN_FBS_QUEUE *sender, uint8_t cmd, ECN_FBS_ID *pk_req)
    20141974{
     
    20402000}
    20412001
    2042 /* 応答電文用fbs設定(sender/targetの設定) */
     2002/* 応答電文用fbs設定(sender/targetの設定) */
    20432003ER _ecn_tsk_cre_res_fbs(ecnl_svc_task_t *svc, ECN_FBS_ID req, uint8_t cmd, ECN_FBS_ID *pk_res)
    20442004{
Note: See TracChangeset for help on using the changeset viewer.