Ignore:
Timestamp:
Jun 10, 2015, 8:40:31 PM (9 years ago)
Author:
coas-nagasima
Message:

SHIFT_JISのコードにcharsetプロパティを付けた

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uKadecot/trunk/ecnl_ssp/echonet_task.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚ƁD
    21  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    22 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    23 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    24  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    25  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    26  *        •ñ‚·‚邱‚ƁD
    27  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3228 *
    33  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    34  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    35  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *              ECHONET Lite ƒ^ƒXƒN
     39 *              ECHONET Lite タスク
    4440 */
    4541
     
    7874static struct ecnl_state s;
    7975
    80 /* ŽóMƒƒbƒZ[ƒW‚ðŠJ•ú‚·‚é‚©”Û‚© */
     76/* 受信メッセージを開放するか否か */
    8177static bool_t g_release_esv;
    8278
    83 /* ŽóMƒƒbƒZ[ƒW‚ð“]‘—‚·‚é‚©”Û‚© */
     79/* 受信メッセージを転送するか否か */
    8480bool_t g_forward_esv;
    8581
     
    126122                        target += - ENOD_REMOTE_ID + 1;
    127123                        if (from_app && (target < tnum_enodid)) {
    128                                 /* ”ñ“¯Šú‚̃Šƒ‚[ƒgƒm[ƒh‚̓T[ƒrƒXˆ—ƒ^ƒXƒN‚ŏˆ—‚·‚é */
     124                                /* 非同期のリモートノードはサービス処理タスクで処理する */
    129125                                switch (eobjcb_table[target].profile->eobjatr) {
    130126                                case EOBJ_SYNC_REMOTE_NODE:
     
    174170        ECN_FBS_ID fa_fbs_id, ECN_FBS_ID *fa_fbs_anno);
    175171
    176 /* ƒ‚ƒWƒ
    177 [ƒ‹‰Šú‰»ƒtƒ‰ƒO */
     172/* モジュール初期化フラグ */
    178173static uint8_t          m_eobjlist_need_init = 1;
    179174
    180 /* ƒV[ƒPƒ“ƒX”ԍ† */
     175/* シーケンス番号 */
    181176static uint16_t         g_current_tid = 1;
    182177
    183178/*
    184  *  ECHONET Lite ƒ^ƒXƒN‚̏‰Šú‰»iƒRƒ“ƒXƒgƒ‰ƒNƒ^‘Š“–j
     179 *  ECHONET Lite タスクの初期化(コンストラクタ相当)
    185180 */
    186181void echonet_task_init(intptr_t exinf)
     
    191186
    192187/*
    193  * ƒ‚ƒWƒ
    194 [ƒ‹‰Šú‰»
     188 * モジュール初期化
    195189 */
    196190static void _ecn_tsk_int_module_init(intptr_t exinf)
     
    210204
    211205/*
    212  *  ECHONET Lite ƒ^ƒXƒN‚Ì–{‘Ì
     206 *  ECHONET Lite タスクの本体
    213207 */
    214208static
     
    243237        }
    244238
    245         /* ƒƒbƒZ[ƒWƒ‹[ƒv */
     239        /* メッセージループ */
    246240        for (;;) {
    247241                a_prev = a_now;
     
    283277
    284278                        switch (a_mdt.fbs_id.ptr->hdr.type) {
    285                         /* “à•”Žg—pƒƒbƒZ[ƒW */
     279                        /* 内部使用メッセージ */
    286280                        case ECN_MSG_INTERNAL:
    287281                                _ecn_tsk_int_msg(fa_exinf, a_mdt.fbs_id);
    288282                                break;
    289283
    290                         /* ECHONET—pƒƒbƒZ[ƒW */
     284                        /* ECHONET用メッセージ */
    291285                        case ECN_MSG_ECHONET:
    292286                                _ecn_tsk_ecn_msg(fa_exinf, a_mdt.fbs_id);
     
    297291                        }
    298292
    299                         /* —̈æ‰ð•ú */
     293                        /* 領域解放 */
    300294                        if (g_release_esv)
    301295                                _ecn_fbs_del(a_mdt.fbs_id);
     
    312306
    313307/*
    314  *  ECHONET Lite ƒvƒƒgƒXƒŒƒbƒh‹N“®ƒ^ƒXƒN
     308 *  ECHONET Lite プロトスレッド起動タスク
    315309 */
    316310void echonet_task(intptr_t fa_exinf)
     
    320314
    321315/*
    322  *  ECHONET Lite ƒ^ƒXƒN‹N“®—pŽüŠúƒnƒ“ƒhƒ‰[
     316 *  ECHONET Lite タスク起動用周期ハンドラー
    323317 */
    324318void echonet_cychdr(intptr_t exinf)
     
    328322
    329323/*
    330  * ƒV[ƒPƒ“ƒX”ԍ†¶¬
     324 * シーケンス番号生成
    331325 */
    332326static uint16_t _ecn_tsk_new_tid(void)
     
    336330
    337331/*
    338  * —v‹“d•¶ì¬
    339  * ˆø”
    340  * ECN_FBS_ID           *fp_fbs_id              Žæ“¾‚µ‚½FBS_ID‚ÌŠi”[æ
    341  * ID                           fa_seoj                 ‘—MŒ³‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    342  * ID                           fa_deoj                 ˆ¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    343  * uint8_t                      fa_epc                  ƒvƒƒpƒeƒBƒR[ƒh
    344  * uint8_t                      fa_pdc                  ƒvƒƒpƒeƒB’lƒf[ƒ^ƒTƒCƒY
    345  * const void           *p_edt                  ƒvƒƒpƒeƒB’lƒf[ƒ^
    346  * ECN_SRV_CODE         fa_esv                  ECHONET Light ƒT[ƒrƒXƒR[ƒh
     332 * 要求電文作成
     333 * 引数
     334 * ECN_FBS_ID           *fp_fbs_id              取得したFBS_IDの格納先
     335 * ID                           fa_seoj                 送信元のECHONETオブジェクトID
     336 * ID                           fa_deoj                 宛先のECHONETオブジェクトID
     337 * uint8_t                      fa_epc                  プロパティコード
     338 * uint8_t                      fa_pdc                  プロパティ値データサイズ
     339 * const void           *p_edt                  プロパティ値データ
     340 * ECN_SRV_CODE         fa_esv                  ECHONET Light サービスコード
    347341 */
    348342ER _ecn_tsk_mk_esv(ECN_FBS_ID *fp_fbs_id, ID fa_seoj, ID fa_deoj,
     
    351345        ER                              a_ret;
    352346        int                             a_size, i;
    353         ECN_FBS_ID              a_fbs_id = { 0 };       /* —v‹“d•¶—pƒƒ‚ƒŠ                             */
     347        ECN_FBS_ID              a_fbs_id = { 0 };       /* 要求電文用メモリ                             */
    354348        T_ECN_EDT_HDR   a_ecn_hdp;                      /* ecn_hdr+edata+ecn_prp 14byte */
    355349        ID                              a_enodid;
     
    358352
    359353        if (!fp_fbs_id)
    360                 return E_PAR; /* Žæ“¾‚µ‚½FBS_ID‚ÌŠi”[æ‚ªNULL */
     354                return E_PAR; /* 取得したFBS_IDの格納先がNULL */
    361355        if (ECHONET_MEMPOOL_BLOCK_SIZE <= fa_pdc)
    362                 return E_PAR; /* ƒvƒƒpƒeƒB’lƒTƒCƒY‚ª‘å‚«‚·‚¬‚é */
     356                return E_PAR; /* プロパティ値サイズが大きすぎる */
    363357        if (!p_edt && 0 < fa_pdc)
    364                 return E_PAR; /* ƒvƒƒpƒeƒB’lƒTƒCƒY‚ª1ˆÈã‚Ȃ̂Ƀf[ƒ^ƒ|ƒCƒ“ƒ^‚ªNULL */
     358                return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
    365359
    366360        if (fa_seoj <= EOBJ_NULL || tmax_eobjid < fa_seoj)
    367                 return E_NOEXS; /* ECHONETƒIƒuƒWƒFƒNƒgID‚ª–¢’è‹` */
     361                return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
    368362#ifndef ECHONET_CONTROLLER_EXTENTION
    369363        if (fa_deoj < EOBJ_NULL || tmax_eobjid < fa_deoj)
    370                 return E_NOEXS; /* ECHONETƒIƒuƒWƒFƒNƒgID‚ª–¢’è‹` */
     364                return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
    371365#else
    372366        if (fa_deoj < EOBJ_NULL || (tmax_eobjid + TNUM_AEOBJID) < fa_deoj)
    373                 return E_NOEXS; /* ECHONETƒIƒuƒWƒFƒNƒgID‚ª–¢’è‹` */
     367                return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
    374368#endif
    375369        if (fa_deoj == EOBJ_NULL && fa_esv == ESV_INFC)
    376                 return E_NOEXS; /* ECHONETƒIƒuƒWƒFƒNƒgID‚ª–¢’è‹` */
    377 
    378         /* —v‹Å¬ƒTƒCƒY‚̎擾 */
     370                return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
     371
     372        /* 要求最小サイズの取得 */
    379373        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    380374
    381         /* —v‹“d•¶—pƒƒ‚ƒŠ‚̎擾 */
     375        /* 要求電文用メモリの取得 */
    382376        a_ret = _ecn_fbs_cre(a_size, &a_fbs_id);
    383         if (a_ret != E_OK || !a_fbs_id.ptr) { /* Šm•ÛŽ¸”s */
     377        if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
    384378                ECN_DBG_PUT "_ecn_fbs_cre(%d) result = %d:%s",
    385379                        a_size,
     
    388382        }
    389383
    390         /* —v‹“d•¶Ý’è                                         */
     384        /* 要求電文設定                                               */
    391385        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
    392386        a_ecn_hdp.ecn_hdr.ehd1 = ECN_EDH1_ECHONET_LITE;
     
    395389        memcpy(&a_ecn_hdp.edata.seoj, &eobjinib_table[fa_seoj - 1].eojx1, sizeof(a_ecn_hdp.edata.seoj));
    396390        a_ecn_hdp.edata.esv = fa_esv;
    397         a_ecn_hdp.edata.opc = 1;                /* ˆ—ƒvƒƒpƒeƒB” */
    398         a_ecn_hdp.ecn_prp.epc = fa_epc; /* ƒvƒƒpƒeƒBƒR[ƒh */
    399         a_ecn_hdp.ecn_prp.pdc = fa_pdc; /* •tƒf[ƒ^ƒTƒCƒY */
    400 
    401         /* —v‹“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ */
     391        a_ecn_hdp.edata.opc = 1;                /* 処理プロパティ数 */
     392        a_ecn_hdp.ecn_prp.epc = fa_epc; /* プロパティコード */
     393        a_ecn_hdp.ecn_prp.pdc = fa_pdc; /* 付随データサイズ */
     394
     395        /* 要求電文用メモリにデータ追加 */
    402396        a_ret = _ecn_fbs_add_data_ex(a_fbs_id, &a_ecn_hdp, a_size);
    403397        if (a_ret) {
     
    408402        }
    409403        if (0 < fa_pdc) {
    410                 /* •tƒf[ƒ^’ljÁ */
     404                /* 付随データ追加 */
    411405                a_ret = _ecn_fbs_add_data_ex(a_fbs_id, p_edt, fa_pdc);
    412406                if (a_ret) {
     
    418412        }
    419413        if (fa_deoj == 0) {
    420                 ECN_DBG_PUT "%s", "ƒ}ƒ‹ƒ`ƒLƒƒƒXƒg" ECN_DBG_END;
    421                 /* fa_deoj == 0 : ƒ}ƒ‹ƒ`ƒLƒƒƒXƒg */
     414                ECN_DBG_PUT "%s", "マルチキャスト" ECN_DBG_END;
     415                /* fa_deoj == 0 : マルチキャスト */
    422416                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx1 = EOJ_X1_PROFILE;
    423417                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx2 = EOJ_X2_NODE_PROFILE;
     
    427421        else if (fa_deoj <= tmax_eobjid) {
    428422                ECN_DBG_PUT "fa_deoj = %d", fa_deoj ECN_DBG_END;
    429                 /* if (fa_deoj < 1 || tmax_eobjid < fa_deoj) c‚ُ̈íŒn‚͊֐”–`“ª‚ŏœŠOÏ‚Ý‚Æ‚·‚é */
     423                /* if (fa_deoj < 1 || tmax_eobjid < fa_deoj) …の異常系は関数冒頭で除外済みとする */
    430424                a_eobj = &eobjinib_table[fa_deoj - 1];
    431425                memcpy(&((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj, &a_eobj->eojx1,
    432426                        sizeof(((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj));
    433427
    434                 /* ƒe[ƒuƒ‹‚©‚猟õ */
     428                /* テーブルから検索 */
    435429                a_fbs_id.ptr->hdr.target = ENOD_NOT_MATCH_ID;
    436430                a_enodid = (a_eobj->enodid == 0) ? fa_deoj : a_eobj->enodid;
     
    472466                ECN_ENOD_ID enodid;
    473467                ECN_DBG_PUT "fa_deoj = %d", fa_deoj ECN_DBG_END;
    474                 /* ƒIƒuƒWƒFƒNƒgID‚©‚çEOJ‚ƃm[ƒhID‚ðŽæ“¾ */
     468                /* オブジェクトIDからEOJとノードIDを取得 */
    475469                if(ecn_agent_get_eoj_enodid(fa_deoj, &eoj, &enodid)){
    476470                        memcpy(&((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj, &eoj,
     
    505499                a_fbs_id.ptr->hdr.reply = ENOD_API_ID;
    506500
    507         /* ³íI—¹ */
     501        /* 正常終了 */
    508502        *fp_fbs_id = a_fbs_id;
    509503        return E_OK;
    510504
    511505lb_except:
    512         /* ƒf[ƒ^ì¬Ž¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     506        /* データ作成失敗したら領域解放 */
    513507        if (a_fbs_id.ptr)
    514508                _ecn_fbs_del(a_fbs_id);
     
    518512
    519513/*
    520  * “à•”Žg—pƒƒbƒZ[ƒW
     514 * 内部使用メッセージ
    521515 */
    522516static void _ecn_tsk_int_msg(intptr_t fa_exinf, ECN_FBS_ID fa_fbs_id)
     
    549543
    550544/*
    551  * ƒ^ƒXƒN‰Šú‰»
     545 * タスク初期化
    552546 */
    553547static void _ecn_tsk_int_startup(intptr_t fa_exinf)
     
    558552                _ecn_tsk_int_module_init(fa_exinf);
    559553
    560         /* ƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg’Ê’m‚Ì‘—M */
     554        /* インスタンスリスト通知の送信 */
    561555        a_ret = _ecn_tsk_ntf_inl(fa_exinf);
    562556        if (a_ret) {
     
    566560
    567561/*
    568  * ƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg’Ê’m‚Ì‘—M
    569  * ECHONET-Lite_Ver.1.10_02.pdf p.43 }4-1-4
     562 * インスタンスリスト通知の送信
     563 * ECHONET-Lite_Ver.1.10_02.pdf p.43 4-1-4
    570564 */
    571565ER _ecn_tsk_ntf_inl(intptr_t fa_exinf)
    572566{
    573         const T_ECN_EOJ a_seoj =        /* 0x01 : ˆê”ʃm[ƒhA0x02F‘—Mê—pƒm[ƒh */
     567        const T_ECN_EOJ a_seoj =        /* 0x01 : 一般ノード、0x02:送信専用ノード */
    574568                { EOJ_X1_PROFILE, EOJ_X2_NODE_PROFILE, 0x01 };
    575569        const T_ECN_EOJ a_deoj =
     
    581575        int                     i;
    582576        uint8_t         a_count;
    583         const EOBJCB    *enod = &eobjcb_table[0];       /* ƒ[ƒJƒ‹ƒm[ƒh */
     577        const EOBJCB    *enod = &eobjcb_table[0];       /* ローカルノード */
    584578        const EOBJINIB *eobj;
    585579
     
    599593
    600594                if (!a_eoj_ct) {
    601                         /* ƒƒ‚ƒŠŠm•ÛEƒwƒbƒ_Ši”[ */
    602                         a_hdr.ecn_hdr.tid = (uint8_t)_ecn_tsk_new_tid(); /* ƒV[ƒPƒ“ƒX”ԍ†¶¬ */
     595                        /* メモリ確保・ヘッダ格納 */
     596                        a_hdr.ecn_hdr.tid = (uint8_t)_ecn_tsk_new_tid(); /* シーケンス番号生成 */
    603597                        a_ret = _ecn_fbs_cre(sizeof(a_hdr), &a_fbs);
    604                         if (a_ret != E_OK) /* Šm•ÛŽ¸”s */
     598                        if (a_ret != E_OK) /* 確保失敗 */
    605599                                goto lb_except;
    606600                        a_ret = _ecn_fbs_add_data(a_fbs, &a_hdr, sizeof(a_hdr));
    607                         if (a_ret != E_OK) /* ƒf[ƒ^’ljÁŽ¸”s */
     601                        if (a_ret != E_OK) /* データ追加失敗 */
    608602                                goto lb_except;
    609603
     
    612606                        a_fbs.ptr->hdr.target = ENOD_MULTICAST_ID;
    613607                        a_fbs.ptr->hdr.reply = ENOD_LOCAL_ID;
    614                         ((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc = 1;    /* Œ” */
    615                         /* Œ”‚ðŠi”[ */
     608                        ((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc = 1;    /* 件数 */
     609                        /* 件数を格納 */
    616610                        a_count = (uint8_t)(enod->eobjcnt - i);
    617611                        if (a_count >= ECN_IST_LST_EOJ_MAX_CT)
    618612                                a_count = ECN_IST_LST_EOJ_MAX_CT;
    619613                        a_ret = _ecn_fbs_add_data_ex(a_fbs, &a_count, sizeof(a_count));
    620                         if (a_ret != E_OK) /* ƒf[ƒ^’ljÁŽ¸”s */
     614                        if (a_ret != E_OK) /* データ追加失敗 */
    621615                                goto lb_except;
    622616                }
    623                 /* ECHONETƒIƒuƒWƒFƒNƒgID(3byte)‚ðŠi”[ */
     617                /* ECHONETオブジェクトID(3byte)を格納 */
    624618                a_ret = _ecn_fbs_add_data_ex(a_fbs, &eobj->eojx1, sizeof(T_ECN_EOJ));
    625                 if (a_ret != E_OK) /* ƒf[ƒ^’ljÁŽ¸”s */
     619                if (a_ret != E_OK) /* データ追加失敗 */
    626620                        goto lb_except;
    627621
    628                 /* Œ”EedtƒTƒCƒY‰ÁŽZ */
     622                /* 件数・edtサイズ加算 */
    629623                ((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc += sizeof(T_ECN_EOJ);
    630624                if (++a_eoj_ct < ECN_IST_LST_EOJ_MAX_CT)
    631625                        continue;
    632626
    633                 /* 1ƒAƒiƒEƒ“ƒX‚ł̏ãŒÀ‚É’B‚µ‚½‚çAˆê’U‘—M */
     627                /* 1アナウンスでの上限に達したら、一旦送信 */
    634628                a_ret = _ecn_tsk_snd_mbx(a_fbs, false);
    635                 if (a_ret != E_OK) /* ƒf[ƒ^‘—MŽ¸”s */
     629                if (a_ret != E_OK) /* データ送信失敗 */
    636630                        goto lb_except;
    637631                a_eoj_ct = 0;
     
    639633        }
    640634        if (a_eoj_ct) {
    641                 /* –¢‘—Mƒf[ƒ^‚ª‚ ‚Á‚½‚çA‘—M */
     635                /* 未送信データがあったら、送信 */
    642636                a_ret = _ecn_tsk_snd_mbx(a_fbs, false);
    643                 if (a_ret != E_OK) /* ƒf[ƒ^‘—MŽ¸”s */
     637                if (a_ret != E_OK) /* データ送信失敗 */
    644638                        goto lb_except;
    645639                a_fbs.ptr = 0;
     
    685679
    686680/*
    687  * 3byte‚Ìeobjid‚Å”z—ñ’†‚ðŒŸõ‚·‚é
     681 * 3byteのeobjidで配列中を検索する
    688682 */
    689683const EOBJINIB *_ecn_eoj_fnd(const EOBJCB *fp_nod, const T_ECN_EOJ *fp_eoj)
     
    721715
    722716/*
    723  * ECHONET—pƒƒbƒZ[ƒW
     717 * ECHONET用メッセージ
    724718 */
    725719static void _ecn_tsk_ecn_msg(intptr_t fa_exinf, ECN_FBS_ID fa_fbs_id)
     
    749743        }
    750744
    751         /* ‘—Mˆ¶‚©‚çƒm[ƒh‚ðŒŸõ */
     745        /* 送信宛からノードを検索 */
    752746        p_nod = _ecn_eno_fnd(fa_fbs_id.ptr->hdr.target);
    753         /* ‘—MŒ³‚©‚çƒm[ƒh‚ðŒŸõ */
     747        /* 送信元からノードを検索 */
    754748        sender = fa_fbs_id.ptr->hdr.sender;
    755749        p_snod = _ecn_eno_fnd(sender);
    756750        if (p_snod != NULL) {
    757751                sobjatr = p_snod->profile->eobjatr;
    758                 /* ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹‚̏ꍇ */
     752                /* ノードプロファイルの場合 */
    759753                if ((p_esv->edata.seoj.eojx1 == EOJ_X1_PROFILE)
    760754                        && (p_esv->edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
    761755                        p_sobj = p_snod->profile;
    762756                }
    763                 /* ‹@ŠíƒIƒuƒWƒFƒNƒg‚̏ꍇ */
     757                /* 機器オブジェクトの場合 */
    764758                else {
    765759                        p_sobj = _ecn_eoj_fnd(p_snod, &p_esv->edata.seoj);
     
    771765#endif
    772766
    773         /* ƒm[ƒh“à‚Ì‹@ŠíƒIƒuƒWƒFƒNƒg‚ðŒŸõ */
     767        /* ノード内の機器オブジェクトを検索 */
    774768        a_prc = false;
    775769        a_fwd = false;
     
    778772                eobjatr = p_nod->profile->eobjatr;
    779773                p_eoj = &p_esv->edata.deoj;
    780                 /* ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹‚̏ꍇ */
     774                /* ノードプロファイルの場合 */
    781775                if ((p_eoj->eojx1 == EOJ_X1_PROFILE)
    782776                        && (p_eoj->eojx2 == EOJ_X2_NODE_PROFILE)) {
    783                         /* “d•¶ˆ—ŽÀs */
     777                        /* 電文処理実行 */
    784778                        if (_ecn_tsk_ecn_msg_main(fa_fbs_id, p_nod->profile, eobjatr, p_sobj, sobjatr) == 1)
    785779                                a_fwd = true;
    786780                        a_prc = true;
    787781                }
    788                 /* ‹@ŠíƒIƒuƒWƒFƒNƒg‚̏ꍇ */
     782                /* 機器オブジェクトの場合 */
    789783                else {
    790784                        count = p_nod->eobjcnt;
     
    805799                                if (p_obj->eojx2 != p_eoj->eojx2)
    806800                                        continue;
    807                                 /* ƒCƒ“ƒXƒ^ƒ“ƒXƒR[ƒh‚ª‚O‚̏ꍇA“¯‚¶ƒNƒ‰ƒX‚Ì‘S‚ẴCƒ“ƒXƒ^ƒ“ƒXˆ¶ */
     801                                /* インスタンスコードが0の場合、同じクラスの全てのインスタンス宛 */
    808802                                if ((p_obj->eojx3 != p_eoj->eojx3) && (p_eoj->eojx3 != 0))
    809803                                        continue;
    810804
    811                                 /* “d•¶ˆ—ŽÀs */
     805                                /* 電文処理実行 */
    812806                                if (_ecn_tsk_ecn_msg_main(fa_fbs_id, p_obj, eobjatr, p_sobj, sobjatr) == 1)
    813807                                        a_fwd = true;
     
    816810                }
    817811        }
    818         /* ‹@ŠíƒIƒuƒWƒFƒNƒg‚ªŒ©‚‚©‚ç‚È‚¢ê‡‚Å‚à */
     812        /* 機器オブジェクトが見つからない場合でも */
    819813        if (!a_prc) {
    820                 /* “d•¶ˆ—ŽÀsi‰ž“šŽóM—pj */
     814                /* 電文処理実行(応答受信用) */
    821815                if (_ecn_tsk_ecn_msg_main(fa_fbs_id, NULL, EPC_NONE, p_sobj, sobjatr) == 1)
    822816                        a_fwd = true;
    823817        }
    824818
    825         /* ‰ž“š‚̏ꍇƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚É“]‘—‚·‚é */
     819        /* 応答の場合アプリケーションに転送する */
    826820        if (a_fwd && ((p_esv->ecn_hdr.tid == apitid_table[sender])
    827821                || g_forward_esv))
     
    829823                g_release_esv = false;
    830824
    831                 ECN_CAP_PUT "redirect ecn_svc_mailboxid ¨ ecn_api_mailboxid (esv:0x%02X)",
     825                ECN_CAP_PUT "redirect ecn_svc_mailboxid ecn_api_mailboxid (esv:0x%02X)",
    832826                        p_esv->edata.esv ECN_CAP_END;
    833827                fa_fbs_id.ptr->hdr.target = ENOD_API_ID;
     
    853847
    854848        switch (p_esv->edata.esv) {
    855         /* 0x60 ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š•s—vj */
     849        /* 0x60 プロパティ値書き込み要求(応答不要) */
    856850        case ESV_SET_I:
    857851                if (!p_obj) {
     
    865859                break;
    866860
    867         /* 0x61 ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š—vj */
     861        /* 0x61 プロパティ値書き込み要求(応答要) */
    868862        case ESV_SET_C:
    869863                if (!p_obj) {
     
    877871                break;
    878872
    879         /* 0x62 ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹ */
     873        /* 0x62 プロパティ値読み出し要求 */
    880874        case ESV_GET:
    881875                if (!p_obj) {
     
    889883                break;
    890884
    891         /* 0x63 ƒvƒƒpƒeƒB’l’Ê’m—v‹ */
     885        /* 0x63 プロパティ値通知要求 */
    892886        case ESV_INF_REQ:
    893887                if (!p_obj) {
     
    902896                break;
    903897
    904         /* 0x6E ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹ */
     898        /* 0x6E プロパティ値書き込み・読み出し要求 */
    905899        case ESV_SET_GET:
    906900                if (!p_obj) {
     
    914908                break;
    915909
    916         /* 0x74 ƒvƒƒpƒeƒB’l’Ê’mi‰ž“š—vj */
     910        /* 0x74 プロパティ値通知(応答要) */
    917911        case ESV_INFC:
    918912                if (!p_sobj)
     
    925919                break;
    926920
    927         /* 0x60 ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š•s—vj */
    928         case ESV_SET_I_SNA:             /* 0x50 ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹•s‰Â‰ž“š */
     921        /* 0x60 プロパティ値書き込み要求(応答不要) */
     922        case ESV_SET_I_SNA:             /* 0x50 プロパティ値書き込み要求不可応答 */
    929923                result = 1;
    930924                break;
    931925
    932         /* 0x61 ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š—vj */
    933         case ESV_SET_RES:               /* 0x71 ƒvƒƒpƒeƒB’l‘‚«ž‚݉ž“š */
    934         case ESV_SET_C_SNA:             /* 0x51 ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹•s‰Â‰ž“š */
     926        /* 0x61 プロパティ値書き込み要求(応答要) */
     927        case ESV_SET_RES:               /* 0x71 プロパティ値書き込み応答 */
     928        case ESV_SET_C_SNA:             /* 0x51 プロパティ値書き込み要求不可応答 */
    935929                result = 1;
    936930                break;
    937931
    938         /* 0x62 ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹ */
    939         case ESV_GET_RES:               /* 0x72 ƒvƒƒpƒeƒB’l“ǂݏo‚µ‰ž“š */
    940         case ESV_GET_SNA:               /* 0x52 ƒvƒƒpƒeƒB’l“ǂݏo‚µ•s‰Â‰ž“š */
     932        /* 0x62 プロパティ値読み出し要求 */
     933        case ESV_GET_RES:               /* 0x72 プロパティ値読み出し応答 */
     934        case ESV_GET_SNA:               /* 0x52 プロパティ値読み出し不可応答 */
    941935                if (!p_sobj) {
    942936                        ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     
    949943                break;
    950944
    951         /* 0x63 ƒvƒƒpƒeƒB’l’Ê’m—v‹ */
    952         case ESV_INF:                   /* 0x73 ƒvƒƒpƒeƒB’l’Ê’m */
    953         case ESV_INF_SNA:               /* 0x53 ƒvƒƒpƒeƒB’l’Ê’m•s‰Â‰ž“š */
     945        /* 0x63 プロパティ値通知要求 */
     946        case ESV_INF:                   /* 0x73 プロパティ値通知 */
     947        case ESV_INF_SNA:               /* 0x53 プロパティ値通知不可応答 */
    954948                if (!p_sobj) {
    955949                        ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     
    962956                break;
    963957
    964         /* 0x6E ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹ */
    965         case ESV_SET_GET_RES:   /* 0x7E ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ‰ž“š */
    966         case ESV_SET_GET_SNA:   /* 0x5E ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ•s‰Â‰ž“š */
     958        /* 0x6E プロパティ値書き込み・読み出し要求 */
     959        case ESV_SET_GET_RES:   /* 0x7E プロパティ値書き込み・読み出し応答 */
     960        case ESV_SET_GET_SNA:   /* 0x5E プロパティ値書き込み・読み出し不可応答 */
    967961                if (!p_sobj) {
    968962                        ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     
    975969                break;
    976970
    977         /* 0x74 ƒvƒƒpƒeƒB’l’Ê’mi‰ž“š—vj */
    978         case ESV_INFC_RES:              /* 0x7A ƒvƒƒpƒeƒB’l’Ê’m‰ž“š */
     971        /* 0x74 プロパティ値通知(応答要) */
     972        case ESV_INFC_RES:              /* 0x7A プロパティ値通知応答 */
    979973                result = 1;
    980974                break;
     
    986980        }
    987981
    988         /* ƒvƒƒpƒeƒB’Ê’m—v‹‚𑗐M */
     982        /* プロパティ通知要求を送信 */
    989983        if (a_fbs_anno.ptr != NULL) {
    990984                ER a_ret = _ecn_tsk_snd_mbx(a_fbs_anno, true);
     
    10661060
    10671061/*
    1068  * ECN_FBS_ID‚©‚çT_ECN_PRP1Œ‚Æ‚»‚Ì•tƒf[ƒ^(edt)‚𒊏o‚µAedt‚̃|ƒCƒ“ƒ^‚ð•Ô‚·
    1069  * ˆø”
    1070  * ECN_FBS_ID fa_fbs_id                                 “Ç‚ÝŽæ‚éFBS
    1071  * T_ECN_PRP *fp_prp                                    epc+pdc‚ÌŠi”[æ
    1072  * T_ECN_SUB_BLK * const fp_prev_blk    ‘O‰ñŽg‚Á‚½ƒƒ‚ƒŠ‚̃|ƒCƒ“ƒ^(–³‚¯‚ê‚Î0)
    1073  * ³íFƒ|ƒCƒ“ƒ^ NG:0
    1074  * ƒ|ƒCƒ“ƒ^‚Í_ecn_fbs_mbx_rel()‚ʼnð•ú‚·‚é•K—v‚ª‚ ‚é
     1062 * ECN_FBS_IDからT_ECN_PRP1件とその付随データ(edt)を抽出し、edtのポインタを返す
     1063 * 引数
     1064 * ECN_FBS_ID fa_fbs_id                                 読み取るFBS
     1065 * T_ECN_PRP *fp_prp                                    epc+pdcの格納先
     1066 * T_ECN_SUB_BLK * const fp_prev_blk    前回使ったメモリのポインタ(無ければ0)
     1067 * 正常:ポインタ NG:0
     1068 * ポインタは_ecn_fbs_mbx_rel()で解放する必要がある
    10751069 */
    10761070static T_ECN_SUB_BLK *_ecn_tsk_get_prp_pce(ECN_FBS_ID fa_fbs_id, T_ECN_PRP *fp_prp,
     
    10811075        ER              a_ret;
    10821076
    1083         /* ƒvƒƒpƒeƒB—pƒƒ‚ƒŠ‚̎擾 */
     1077        /* プロパティ用メモリの取得 */
    10841078        if (fp_prev_blk) {
    1085                 p_blk = fp_prev_blk; /* ‘O‰ñŽg‚Á‚½ƒƒ‚ƒŠ‚ª‚ ‚é‚È‚çAÄ—˜—p‚·‚é */
     1079                p_blk = fp_prev_blk; /* 前回使ったメモリがあるなら、再利用する */
    10861080        }
    10871081        else {
     
    10891083                if (!p_blk) {
    10901084                        ECN_DBG_PUT "_ecn_fbs_mbx_get() fault." ECN_DBG_END;
    1091                         return 0;       /* ƒƒ‚ƒŠ•s‘« */
     1085                        return 0;       /* メモリ不足 */
    10921086                }
    10931087        }
    10941088        memset(p_blk, 0, sizeof(*p_blk));
    10951089
    1096         /* T_ECN_PRP•”•ª(epc,pdc)‚ð“Ç‚ÝŽæ‚é */
     1090        /* T_ECN_PRP部分(epc,pdc)を読み取る */
    10971091        a_size = 0;
    10981092        a_ret = _ecn_fbs_get_data(fa_fbs_id, fp_prp, sizeof(*fp_prp), &a_size);
     
    11031097
    11041098        if (0 < fp_prp->pdc) {
    1105                 /* •tƒf[ƒ^•”•ª(edt)‚ð“Ç‚ÝŽæ‚é */
     1099                /* 付随データ部分(edt)を読み取る */
    11061100                a_size = 0;
    11071101                a_ret = _ecn_fbs_get_data(fa_fbs_id, p_blk, fp_prp->pdc, &a_size);
     
    11151109
    11161110lb_except:
    1117         /* ƒvƒƒpƒeƒB—pƒƒ‚ƒŠ‰ð•ú */
     1111        /* プロパティ用メモリ解放 */
    11181112        if (p_blk && !fp_prev_blk)
    11191113                _ecn_fbs_mbx_rel(p_blk);
     
    11251119        ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, ECN_FBS_ID *fa_fbs_anno, int a_count,
    11261120        int *p_sw_ok);
    1127 /* ƒvƒƒpƒeƒB’l‘‚«ž‚ÝŽÀs */
     1121/* プロパティ値書き込み実行 */
    11281122static ER _ecn_tsk_eoj_set_main(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_update,
    11291123        ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, ECN_FBS_ID *fa_fbs_anno, int a_count,
     
    11411135
    11421136        for (i = 0; i < a_count; i++) {
    1143                 /* ECN_FBS_ID‚©‚çT_ECN_PRP1Œ‚Æ‚»‚Ì•tƒf[ƒ^‚𒊏o‚µA‚»‚̃|ƒCƒ“ƒ^‚ð•Ô‚· */
     1137                /* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出し、そのポインタを返す */
    11441138                p_edt = _ecn_tsk_get_prp_pce(fa_fbs_id, &a_prp, p_edt);
    11451139                if (!p_edt) {
     
    11481142                }
    11491143
    1150                 /* ƒvƒƒpƒeƒB‚̐ݒè set_prp(obj, reqp, resp) */
     1144                /* プロパティの設定 set_prp(obj, reqp, resp) */
    11511145                a_size = a_prp.pdc;
    1152                 /* obj,epc‚ɑΉž‚·‚ésetŠÖ”‚ðŒÄ‚Ô */
     1146                /* obj,epcに対応するset関数を呼ぶ */
    11531147                a_eprp = _ecn_tsk_eoj_get_property(fp_obj, a_prp.epc);
    11541148                if ((a_eprp != NULL)
     
    11721166                                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3,
    11731167                                a_prp.epc, p_edt->payload[0], a_size ECN_DBG_END;
    1174                         *p_sw_ok = 0;   /* ƒvƒƒpƒeƒBÝ’莸”s */
    1175                         /* ‰ž“šˆ—‚̏ꍇEDT‚͐ݒ肵‚È‚¢ */
     1168                        *p_sw_ok = 0;   /* プロパティ設定失敗 */
     1169                        /* 応答処理の場合EDTは設定しない */
    11761170                        if (fa_update)
    11771171                                a_prp.pdc = 0;
    11781172                }
    11791173
    1180                 /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ(epc,pdc‚Ì2byte) */
     1174                /* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
    11811175                a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_prp, sizeof(a_prp));
    11821176                if (a_ret) {
     
    11861180
    11871181                if (0 < a_prp.pdc) {
    1188                         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ(edt n-byte) */
     1182                        /* 応答電文用メモリにデータ追加(edt n-byte) */
    11891183                        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, p_edt->payload, a_prp.pdc);
    11901184                        if (a_ret) {
     
    11951189                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc ++;
    11961190
    1197                 /* ƒvƒƒpƒeƒB’Ê’m‚ ‚è‚̏ꍇ */
     1191                /* プロパティ通知ありの場合 */
    11981192                if (a_anno && (a_ans == a_size)) {
    11991193                        if (fa_fbs_anno->ptr == NULL) {
     
    12131207
    12141208lb_finally:
    1215         /* ƒvƒƒpƒeƒB—pƒƒ‚ƒŠ‰ð•ú */
     1209        /* プロパティ用メモリ解放 */
    12161210        if (p_edt)
    12171211                _ecn_fbs_mbx_rel(p_edt);
     
    12221216static ER _ecn_tsk_eoj_get_main(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
    12231217        ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok);
    1224 /* ƒvƒƒpƒeƒB’l“ǂݏo‚µŽÀs */
     1218/* プロパティ値読み出し実行 */
    12251219static ER _ecn_tsk_eoj_get_main(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
    12261220        ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok)
    12271221{
    12281222        T_ECN_SUB_BLK   *p_edt          =       0;
    1229         void                            *p_prp_buf      =       0;      /* ì‹Æ—̈æ */
     1223        void                            *p_prp_buf      =       0;      /* 作業領域 */
    12301224        const EPRPINIB          *a_eprp;
    12311225        ER                                      a_ret           =       E_SYS;
     
    12351229        ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
    12361230
    1237         /* ì‹Æ—̈æŠm•Û */
     1231        /* 作業領域確保 */
    12381232        p_prp_buf = _ecn_fbs_mbx_get(ECHONET_MEMPOOL_BLOCK_SIZE);
    12391233        if (!p_prp_buf) {
    12401234                ECN_DBG_PUT "_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
    1241                 goto lb_except; /* ƒƒ‚ƒŠ•s‘« */
     1235                goto lb_except; /* メモリ不足 */
    12421236        }
    12431237
    12441238        for (i = 0; i < a_count; i++) {
    1245                 /* ECN_FBS_ID‚©‚çT_ECN_PRP1Œ‚Æ‚»‚Ì•tƒf[ƒ^‚𒊏o */
     1239                /* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出 */
    12461240                p_edt = _ecn_tsk_get_prp_pce(fa_fbs_id, &a_prp, p_edt);
    12471241                if (!p_edt) {
     
    12501244                }
    12511245
    1252                 /* ƒvƒƒpƒeƒB‚̎擾 get_eprp(obj, reqp, resp, size) */
     1246                /* プロパティの取得 get_eprp(obj, reqp, resp, size) */
    12531247                memset(p_prp_buf, 0, ECHONET_MEMPOOL_BLOCK_SIZE);
    1254                 /* obj,epc‚ɑΉž‚·‚égetŠÖ”‚ðŒÄ‚Ô */
     1248                /* obj,epcに対応するget関数を呼ぶ */
    12551249                a_eprp = _ecn_tsk_eoj_get_property(fp_obj, a_prp.epc);
    12561250                if ((a_eprp != NULL) && (((a_eprp->eprpatr & fa_access) != 0) && (fa_eobjatr == EOBJ_LOCAL_NODE) || fa_forward)) {
     
    12631257                        a_prp.pdc = (uint8_t)a_ans;
    12641258                } else {
    1265                         *p_sw_ok = 0;   /* ƒvƒƒpƒeƒBŽæ“¾Ž¸”s */
     1259                        *p_sw_ok = 0;   /* プロパティ取得失敗 */
    12661260                        a_ans = 0;
    12671261                        a_prp.pdc = 0;
    12681262                }
    12691263
    1270                 /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ(epc,pdc‚Ì2byte) */
     1264                /* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
    12711265                a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_prp, sizeof(a_prp));
    12721266                if (a_ret) {
     
    12751269                }
    12761270                if (0 < a_ans) {
    1277                         /* •tƒf[ƒ^’ljÁ */
     1271                        /* 付随データ追加 */
    12781272                        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, p_prp_buf, a_ans);
    12791273                        if (a_ret) {
     
    12911285
    12921286lb_finally:
    1293         /* ì‹Æ—̈æ‰ð•ú */
     1287        /* 作業領域解放 */
    12941288        if (p_prp_buf)
    12951289                _ecn_fbs_mbx_rel(p_prp_buf);
    12961290
    1297         /* ƒvƒƒpƒeƒB—pƒƒ‚ƒŠ‰ð•ú */
     1291        /* プロパティ用メモリ解放 */
    12981292        if (p_edt)
    12991293                _ecn_fbs_mbx_rel(p_edt);
     
    13031297
    13041298static ER _ecn_tsk_eoj_res_main(ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok);
    1305 /* ƒvƒƒpƒeƒB’l“ǂݏo‚µŽÀs */
     1299/* プロパティ値読み出し実行 */
    13061300static ER _ecn_tsk_eoj_res_main(ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok)
    13071301{
    13081302        T_ECN_SUB_BLK   *p_edt          =       0;
    1309         void                            *p_prp_buf      =       0;      /* ì‹Æ—̈æ */
     1303        void                            *p_prp_buf      =       0;      /* 作業領域 */
    13101304        ER                                      a_ret           =       E_SYS;
    13111305        T_ECN_PRP                       a_prp;                  /* epc+pdc */
     
    13141308        ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
    13151309
    1316         /* ì‹Æ—̈æŠm•Û */
     1310        /* 作業領域確保 */
    13171311        p_prp_buf = _ecn_fbs_mbx_get(ECHONET_MEMPOOL_BLOCK_SIZE);
    13181312        if (!p_prp_buf) {
    13191313                ECN_DBG_PUT "_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
    1320                 goto lb_except; /* ƒƒ‚ƒŠ•s‘« */
     1314                goto lb_except; /* メモリ不足 */
    13211315        }
    13221316
    13231317        for (i = 0; i < a_count; i++) {
    1324                 /* ECN_FBS_ID‚©‚çT_ECN_PRP1Œ‚Æ‚»‚Ì•tƒf[ƒ^‚𒊏o */
     1318                /* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出 */
    13251319                p_edt = _ecn_tsk_get_prp_pce(fa_fbs_id, &a_prp, p_edt);
    13261320                if (!p_edt) {
     
    13311325                a_prp.pdc = 0;
    13321326
    1333                 /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ(epc,pdc‚Ì2byte) */
     1327                /* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
    13341328                a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_prp, sizeof(a_prp));
    13351329                if (a_ret) {
     
    13461340
    13471341lb_finally:
    1348         /* ì‹Æ—̈æ‰ð•ú */
     1342        /* 作業領域解放 */
    13491343        if (p_prp_buf)
    13501344                _ecn_fbs_mbx_rel(p_prp_buf);
    13511345
    1352         /* ƒvƒƒpƒeƒB—pƒƒ‚ƒŠ‰ð•ú */
     1346        /* プロパティ用メモリ解放 */
    13531347        if (p_edt)
    13541348                _ecn_fbs_mbx_rel(p_edt);
     
    13571351}
    13581352
    1359 /* ƒvƒƒpƒeƒB’l“Ç‚Ý”ò‚΂µŽÀs */
     1353/* プロパティ値読み飛ばし実行 */
    13601354static ER _ecn_tsk_eoj_skip_main(const EOBJINIB *fp_obj, ECN_FBS_ID fa_fbs_id,
    13611355        int a_count);
     
    13681362
    13691363        for (i = 0; i < a_count; i++) {
    1370                 /* T_ECN_PRP•”•ª(epc,pdc)‚ð“Ç‚ÝŽæ‚é */
     1364                /* T_ECN_PRP部分(epc,pdc)を読み取る */
    13711365                a_size = 0;
    13721366                a_ret = _ecn_fbs_get_data(fa_fbs_id, &a_prp, sizeof(a_prp), &a_size);
     
    13761370                }
    13771371
    1378                 /* pdc•ª“Ç‚Ý”ò‚΂µ */
     1372                /* pdc分読み飛ばし */
    13791373                a_ret = _ecn_fbs_seek_rpos(fa_fbs_id, a_prp.pdc);
    13801374                if (a_ret) {
     
    13951389static void _ecn_tsk_mk_rsp_hdr(const EOBJINIB *fp_obj, T_ECN_EDT_HDR *fp_rsp_esv,
    13961390        T_ECN_EDT_HDR const *fp_req_esv);
    1397 /* ‰ž“š“d•¶Ý’è */
     1391/* 応答電文設定 */
    13981392static void _ecn_tsk_mk_rsp_hdr(const EOBJINIB *fp_obj, T_ECN_EDT_HDR *fp_rsp_esv,
    13991393        T_ECN_EDT_HDR const *fp_req_esv)
     
    14201414}
    14211415
    1422 /* ‰ž“š“d•¶—pfbsÝ’è */
     1416/* 応答電文用fbs設定 */
    14231417static void _ecn_tsk_set_rsp_fbs(ECN_FBS_ID fa_rsp_fbs, T_ECN_FST_BLK const *fp_req_ptr);
    1424 /* ‰ž“š“d•¶—pfbsÝ’è(sender/target‚̐ݒè) */
     1418/* 応答電文用fbs設定(sender/targetの設定) */
    14251419static void _ecn_tsk_set_rsp_fbs(ECN_FBS_ID fa_rsp_fbs, T_ECN_FST_BLK const *fp_req_ptr)
    14261420{
     
    14311425}
    14321426
    1433 /* ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹     */
     1427/* プロパティ値書き込み要求 */
    14341428static void _ecn_tsk_eoj_set(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_update,
    14351429        ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv,
     
    14461440        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
    14471441
    1448         /* ‰ž“šÅ‘åƒTƒCƒY‚̎擾 */
     1442        /* 応答最大サイズの取得 */
    14491443        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    14501444
    1451         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚̎擾 */
     1445        /* 応答電文用メモリの取得 */
    14521446        a_ret = _ecn_fbs_cre(a_size, &a_fbs_res);
    1453         if (a_ret != E_OK || !a_fbs_res.ptr) /* Šm•ÛŽ¸”s */
     1447        if (a_ret != E_OK || !a_fbs_res.ptr) /* 確保失敗 */
    14541448                return;
    14551449
    1456         /* ‰ž“š“d•¶Ý’è */
     1450        /* 応答電文設定 */
    14571451        if(p_req_esv->edata.deoj.eojx3 != 0)
    14581452                _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
     
    14601454                _ecn_tsk_mk_rsp_hdr(fp_obj, &a_ecn_hdp, p_req_esv);
    14611455
    1462         /* ³íŽž‚̉ž“š“d•¶‚ªƒvƒƒpƒeƒB’l’Ê’m‰ž“š‚̏ꍇ */
     1456        /* 正常時の応答電文がプロパティ値通知応答の場合 */
    14631457        if (fa_res_esv == ESV_INFC_RES) {
    1464                 /* ‘—MŒ³‚ƈ¶æ‚ð“ü‚ê‘Ö‚¦ */
     1458                /* 送信元と宛先を入れ替え */
    14651459                eoj = a_ecn_hdp.edata.seoj;
    14661460                a_ecn_hdp.edata.seoj = a_ecn_hdp.edata.deoj;
     
    14681462        }
    14691463
    1470         f_put_fbs_eoj("_ecn_tsk_eoj_set", "fa_fbs_id", fa_fbs_id); /* s/deoj ƒfƒoƒbƒOo—Í */
    1471 
    1472         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ */
     1464        f_put_fbs_eoj("_ecn_tsk_eoj_set", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
     1465
     1466        /* 応答電文用メモリにデータ追加 */
    14731467        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_ecn_hdp,
    14741468                                sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
     
    14761470                goto lb_except;
    14771471
    1478         /* payloadæ“ª‚ÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)‚ð“Ç‚Ý”ò‚΂· */
     1472        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    14791473        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    14801474        if (a_ret)
    14811475                goto lb_except;
    14821476
    1483         /* ‰ž“š“d•¶—pfbsÝ’è */
     1477        /* 応答電文用fbs設定 */
    14841478        _ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
    14851479
    1486         /* ƒvƒƒpƒeƒB’l‘‚«ž‚ÝŽÀs */
     1480        /* プロパティ値書き込み実行 */
    14871481        a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, fa_update, fa_fbs_id, a_fbs_res,
    14881482                fa_fbs_anno, p_req_esv->edata.opc, &a_sw_ok);
     
    14901484                goto lb_except;
    14911485
    1492         /* ‰ž“š—v‚̏ꍇ */
     1486        /* 応答要の場合 */
    14931487        if (a_sw_ok) {
    14941488                if (!fa_res_esv) {
    1495                         /* ‰ž“š•s—v‚̏ꍇ */
     1489                        /* 応答不要の場合 */
    14961490                        _ecn_fbs_del(a_fbs_res);
    14971491                        goto lb_finally;
    14981492                }
    1499                 /* Ý’菈—¬Œ÷ */
     1493                /* 設定処理成功 */
    15001494                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
    15011495        } else {
    15021496                if (!fa_sna_esv) {
    1503                         /* ‰ž“š•s—v‚̏ꍇ */
     1497                        /* 応答不要の場合 */
    15041498                        _ecn_fbs_del(a_fbs_res);
    15051499                        goto lb_finally;
    15061500                }
    1507                 /* Ý’菈—Ž¸”s */
     1501                /* 設定処理失敗 */
    15081502                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
    15091503        }
    1510         /* ‰ž“š‘—M */
     1504        /* 応答送信 */
    15111505        a_ret = _ecn_tsk_snd_mbx(a_fbs_res, false);
    15121506        if (a_ret == E_OK)
     
    15141508
    15151509lb_except:
    1516         /* ƒf[ƒ^‘—MŽ¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     1510        /* データ送信失敗したら領域解放 */
    15171511        if (a_fbs_res.ptr)
    15181512                _ecn_fbs_del(a_fbs_res);
     
    15221516}
    15231517
    1524 /* ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹     */
     1518/* プロパティ値読み出し要求 */
    15251519static void _ecn_tsk_eoj_get(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
    15261520        ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv)
     
    15351529        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
    15361530
    1537         /* ‰ŠúŽæ“¾ƒTƒCƒY */
     1531        /* 初期取得サイズ */
    15381532        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    15391533
    1540         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚̎擾 */
     1534        /* 応答電文用メモリの取得 */
    15411535        a_ret = _ecn_fbs_cre(a_size, &a_fbs_res);
    1542         if (a_ret != E_OK || !a_fbs_res.ptr) { /* Šm•ÛŽ¸”s */
     1536        if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
    15431537                ECN_DBG_PUT "_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
    15441538                goto lb_finally;
    15451539        }
    15461540
    1547         /* ‰ž“š“d•¶Ý’è */
     1541        /* 応答電文設定 */
    15481542        if(p_req_esv->edata.deoj.eojx3 != 0)
    15491543                _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
     
    15511545                _ecn_tsk_mk_rsp_hdr(fp_obj, &a_ecn_hdp, p_req_esv);
    15521546
    1553         f_put_fbs_eoj("_ecn_tsk_eoj_get", "fa_fbs_id", fa_fbs_id); /* s/deoj ƒfƒoƒbƒOo—Í */
    1554 
    1555         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ */
     1547        f_put_fbs_eoj("_ecn_tsk_eoj_get", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
     1548
     1549        /* 応答電文用メモリにデータ追加 */
    15561550        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_ecn_hdp,
    15571551                        sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
     
    15611555        }
    15621556
    1563         /* payloadæ“ª‚ÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)‚ð“Ç‚Ý”ò‚΂· */
     1557        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    15641558        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    15651559        if (a_ret) {
     
    15681562        }
    15691563
    1570         /* ‰ž“š“d•¶—pfbsÝ’è */
     1564        /* 応答電文用fbs設定 */
    15711565        _ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
    15721566
    1573         /* ƒvƒƒpƒeƒB’l“ǂݍž‚ÝŽÀs */
     1567        /* プロパティ値読み込み実行 */
    15741568        a_ret = _ecn_tsk_eoj_get_main(fp_obj, fa_eobjatr, fa_forward, fa_access, fa_fbs_id, a_fbs_res,
    15751569                ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc, &a_sw_ok);
     
    15811575        if (a_sw_ok) {
    15821576                if (!fa_res_esv) {
    1583                         /* ‰ž“š•s—v‚̏ꍇ */
     1577                        /* 応答不要の場合 */
    15841578                        _ecn_fbs_del(a_fbs_res);
    15851579                        goto lb_finally;
    15861580                }
    1587                 /* Ý’菈—¬Œ÷ */
     1581                /* 設定処理成功 */
    15881582                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
    15891583        } else {
    15901584                if (!fa_sna_esv) {
    1591                         /* ‰ž“š•s—v‚̏ꍇ */
     1585                        /* 応答不要の場合 */
    15921586                        _ecn_fbs_del(a_fbs_res);
    15931587                        goto lb_finally;
    15941588                }
    1595                 /* Ý’菈—Ž¸”s */
     1589                /* 設定処理失敗 */
    15961590                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
    15971591        }
    1598         /* ‰ž“š‘—M */
     1592        /* 応答送信 */
    15991593        a_ret = _ecn_tsk_snd_mbx(a_fbs_res, false);
    16001594        if (a_ret != E_OK) {
     
    16051599
    16061600lb_except:
    1607         /* ƒf[ƒ^‘—MŽ¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     1601        /* データ送信失敗したら領域解放 */
    16081602        if (a_fbs_res.ptr)
    16091603                _ecn_fbs_del(a_fbs_res);
     
    16131607}
    16141608
    1615 /* ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹     */
     1609/* プロパティ値読み出し要求 */
    16161610static void _ecn_tsk_eoj_res(ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv,
    16171611        ECN_SRV_CODE fa_sna_esv)
     
    16261620        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
    16271621
    1628         /* ‰ŠúŽæ“¾ƒTƒCƒY */
     1622        /* 初期取得サイズ */
    16291623        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    16301624
    1631         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚̎擾 */
     1625        /* 応答電文用メモリの取得 */
    16321626        a_ret = _ecn_fbs_cre(a_size, &a_fbs_res);
    1633         if (a_ret != E_OK || !a_fbs_res.ptr) { /* Šm•ÛŽ¸”s */
     1627        if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
    16341628                ECN_DBG_PUT "_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
    16351629                goto lb_finally;
    16361630        }
    16371631
    1638         /* ‰ž“š“d•¶Ý’è                                         */
     1632        /* 応答電文設定                                               */
    16391633        _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
    16401634
    1641         f_put_fbs_eoj("_ecn_tsk_eoj_res", "fa_fbs_id", fa_fbs_id); /* s/deoj ƒfƒoƒbƒOo—Í */
    1642 
    1643         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ */
     1635        f_put_fbs_eoj("_ecn_tsk_eoj_res", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
     1636
     1637        /* 応答電文用メモリにデータ追加 */
    16441638        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_ecn_hdp,
    16451639                        sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
     
    16491643        }
    16501644
    1651         /* payloadæ“ª‚ÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)‚ð“Ç‚Ý”ò‚΂· */
     1645        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    16521646        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    16531647        if (a_ret) {
     
    16561650        }
    16571651
    1658         /* ‰ž“š“d•¶—pfbsÝ’è */
     1652        /* 応答電文用fbs設定 */
    16591653        _ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
    16601654
    1661         /* ƒvƒƒpƒeƒB’l“ǂݍž‚ÝŽÀs */
     1655        /* プロパティ値読み込み実行 */
    16621656        a_ret = _ecn_tsk_eoj_res_main(fa_fbs_id, a_fbs_res,
    16631657                ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc, &a_sw_ok);
     
    16691663        if (a_sw_ok) {
    16701664                if (!fa_res_esv) {
    1671                         /* ‰ž“š•s—v‚̏ꍇ */
     1665                        /* 応答不要の場合 */
    16721666                        _ecn_fbs_del(a_fbs_res);
    16731667                        goto lb_finally;
    16741668                }
    1675                 /* Ý’菈—¬Œ÷ */
     1669                /* 設定処理成功 */
    16761670                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
    16771671        } else {
    16781672                if (!fa_sna_esv) {
    1679                         /* ‰ž“š•s—v‚̏ꍇ */
     1673                        /* 応答不要の場合 */
    16801674                        _ecn_fbs_del(a_fbs_res);
    16811675                        goto lb_finally;
    16821676                }
    1683                 /* Ý’菈—Ž¸”s */
     1677                /* 設定処理失敗 */
    16841678                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
    16851679        }
    1686         /* ‰ž“š‘—M */
     1680        /* 応答送信 */
    16871681        a_ret = _ecn_tsk_snd_mbx(a_fbs_res, false);
    16881682        if (a_ret != E_OK) {
     
    16931687
    16941688lb_except:
    1695         /* ƒf[ƒ^‘—MŽ¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     1689        /* データ送信失敗したら領域解放 */
    16961690        if (a_fbs_res.ptr)
    16971691                _ecn_fbs_del(a_fbs_res);
     
    17081702        T_ECN_EDT_HDR   a_ecn_hdp;
    17091703        ECN_FBS_ID              a_fbs_res       = { 0 };
    1710         int                             a_rdprp_wrpos;  /*      ƒvƒƒpƒeƒB“ǂݍž‚ÝŒ”‘‚«ž‚ÝŽž‚̃wƒbƒhˆÊ’u    */
     1704        int                             a_rdprp_wrpos;  /*      プロパティ読み込み件数書き込み時のヘッド位置  */
    17111705        ER              a_ret;
    17121706        int             i, a_size, a_rdlen;
    17131707        int             a_sw_ok = 1;
    1714         int             a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;    /* ˆ—ƒvƒƒpƒeƒB” */
     1708        int             a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;    /* 処理プロパティ数 */
    17151709
    17161710        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
     
    17191713                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3 ECN_DBG_END;
    17201714
    1721         /* ‰ŠúŽæ“¾ƒTƒCƒY */
     1715        /* 初期取得サイズ */
    17221716        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    17231717
    1724         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚̎擾 */
     1718        /* 応答電文用メモリの取得 */
    17251719        a_ret = _ecn_fbs_cre(a_size, &a_fbs_res);
    1726         if (a_ret != E_OK || !a_fbs_res.ptr) /* Šm•ÛŽ¸”s */
     1720        if (a_ret != E_OK || !a_fbs_res.ptr) /* 確保失敗 */
    17271721                goto lb_finally;
    17281722
    1729         /* ‰ž“š“d•¶Ý’è */
     1723        /* 応答電文設定 */
    17301724        if(p_req_esv->edata.deoj.eojx3 != 0)
    17311725                _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
     
    17341728        a_size -= sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY);
    17351729
    1736         f_put_fbs_eoj("_ecn_tsk_eoj_set_get", "fa_fbs_id", fa_fbs_id); /* s/deoj ƒfƒoƒbƒOo—Í */
    1737 
    1738         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ */
     1730        f_put_fbs_eoj("_ecn_tsk_eoj_set_get", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
     1731
     1732        /* 応答電文用メモリにデータ追加 */
    17391733        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_ecn_hdp,
    17401734                                sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
     
    17421736                goto lb_except;
    17431737
    1744         /* payloadæ“ª‚ÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)‚ð“Ç‚Ý”ò‚΂· */
     1738        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    17451739        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    17461740        if (a_ret)
    17471741                goto lb_except;
    17481742
    1749         /* ‰ž“š“d•¶—pfbsÝ’è */
     1743        /* 応答電文用fbs設定 */
    17501744        _ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
    17511745
    1752         /* ƒvƒƒpƒeƒB’l‘‚«ž‚ÝŽÀs */
     1746        /* プロパティ値書き込み実行 */
    17531747        a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, false, fa_fbs_id, a_fbs_res,
    17541748                fa_fbs_anno, a_count, &a_sw_ok);
     
    17631757                (a_sw_ok ? "true" : "false") ECN_DBG_END;
    17641758
    1765         /* ŽŸ‚ÌŒ”‚ð“Ç‚ÝŽæ‚é(1byte)                                            */
    1766         /* ¨ ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet]        */
     1759        /* 次の件数を読み取る(1byte)                                             */
     1760        /* ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet] */
    17671761        a_rdlen = i = 0;
    17681762        a_ret = _ecn_fbs_get_data(fa_fbs_id, &i, 1, &a_rdlen);
     
    17711765        a_count = *(uint8_t *)&i;
    17721766
    1773         /* ƒvƒƒpƒeƒB“ǂݍž‚ÝŒ”‘‚«ž‚ÝŽž‚̃wƒbƒhî•ñ‚ð‹L˜^ */
     1767        /* プロパティ読み込み件数書き込み時のヘッド情報を記録 */
    17741768        a_rdprp_wrpos = _ecn_fbs_get_datalen(a_fbs_res);
    17751769
    1776         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ (OPCGet 1byte) */
     1770        /* 応答電文用メモリにデータ追加 (OPCGet 1byte) */
    17771771        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &i, 1);
    17781772        if (a_ret)
    17791773                goto lb_except;
    17801774
    1781         /* ‚±‚ÌŽž“_‚ł̉ž“š“d•¶’†ƒvƒƒpƒeƒBŒ”‚ð‹L˜^ */
     1775        /* この時点での応答電文中プロパティ件数を記録 */
    17821776        i = ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc;
    17831777        ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
    17841778
    1785         /* ƒvƒƒpƒeƒB’l“ǂݍž‚ÝŽÀs */
     1779        /* プロパティ値読み込み実行 */
    17861780        a_ret = _ecn_tsk_eoj_get_main(fp_obj, fa_eobjatr, false, EPC_RULE_GET, fa_fbs_id, a_fbs_res,
    17871781                a_count, &a_sw_ok);
     
    17961790                (a_sw_ok ? "true" : "false") ECN_DBG_END;
    17971791
    1798         /* ƒvƒƒpƒeƒB“ǂݍž‚ÝŒ”‘‚«ž‚ÝŽž‚̃wƒbƒhî•ñ‚ŁA“ǂݏo‚µŒ”‚ð‹L˜^ */
     1792        /* プロパティ読み込み件数書き込み時のヘッド情報で、読み出し件数を記録 */
    17991793        _ecn_fbs_poke(a_fbs_res, a_rdprp_wrpos, ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc);
    18001794
    1801         /* ‹L˜^‚µ‚Ä‚¨‚¢‚½ƒvƒƒpƒeƒBŒ”i‘‚«ž‚ÝŒ”j‚ð‘‚«–ß‚· */
     1795        /* 記録しておいたプロパティ件数(書き込み件数)を書き戻す */
    18021796        ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = (uint8_t)i;
    18031797
    1804         /* ‰ž“š—v‚̏ꍇ */
     1798        /* 応答要の場合 */
    18051799        if (a_sw_ok) {
    1806                 /* Ý’菈—¬Œ÷ */
     1800                /* 設定処理成功 */
    18071801                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
    18081802        } else {
    1809                 /* Ý’菈—Ž¸”s */
     1803                /* 設定処理失敗 */
    18101804                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
    18111805        }
    1812         /* ‰ž“š‘—M */
     1806        /* 応答送信 */
    18131807        a_ret = _ecn_tsk_snd_mbx(a_fbs_res, false);
    18141808        if (a_ret == E_OK)
     
    18161810
    18171811lb_except:
    1818         /* ƒf[ƒ^‘—MŽ¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     1812        /* データ送信失敗したら領域解放 */
    18191813        if (a_fbs_res.ptr)
    18201814                _ecn_fbs_del(a_fbs_res);
     
    18331827        int             i, a_size, a_rdlen;
    18341828        int             a_sw_ok = 1;
    1835         int             a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;    /* ˆ—ƒvƒƒpƒeƒB” */
     1829        int             a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;    /* 処理プロパティ数 */
    18361830
    18371831        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
     
    18401834                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3 ECN_DBG_END;
    18411835
    1842         /* ‰ŠúŽæ“¾ƒTƒCƒY */
     1836        /* 初期取得サイズ */
    18431837        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    18441838
    1845         /* ‰ž“š“d•¶—pƒƒ‚ƒŠiƒ_ƒ~[j‚̎擾 */
     1839        /* 応答電文用メモリ(ダミー)の取得 */
    18461840        a_ret = _ecn_fbs_cre(a_size, &a_fbs_dmy);
    1847         if (a_ret != E_OK || !a_fbs_dmy.ptr) /* Šm•ÛŽ¸”s */
     1841        if (a_ret != E_OK || !a_fbs_dmy.ptr) /* 確保失敗 */
    18481842                goto lb_finally;
    18491843
    1850         /* ‰ž“š“d•¶Ý’è                                         */
     1844        /* 応答電文設定                                               */
    18511845        _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
    18521846        a_size -= sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY);
    18531847
    1854         /* payloadæ“ª‚ÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)‚ð“Ç‚Ý”ò‚΂· */
     1848        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    18551849        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    18561850        if (a_ret)
    18571851                goto lb_except;
    18581852
    1859         /* ƒvƒƒpƒeƒB’l‘‚«ž‚݉ž“š“Ç‚Ý”ò‚΂µŽÀs */
     1853        /* プロパティ値書き込み応答読み飛ばし実行 */
    18601854        a_ret = _ecn_tsk_eoj_skip_main(fp_obj, fa_fbs_id, a_count);
    18611855        if (a_ret) {
     
    18691863                (a_sw_ok ? "true" : "false") ECN_DBG_END;
    18701864
    1871         /* ŽŸ‚ÌŒ”‚ð“Ç‚ÝŽæ‚é(1byte)                                            */
    1872         /* ¨ ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet]        */
     1865        /* 次の件数を読み取る(1byte)                                             */
     1866        /* ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet] */
    18731867        a_rdlen = i = 0;
    18741868        a_ret = _ecn_fbs_get_data(fa_fbs_id, &i, 1, &a_rdlen);
     
    18771871        a_count = *(uint8_t *)&i;
    18781872
    1879         /* ƒvƒƒpƒeƒB’l“ǂݏo‚µ‰ž“š‚̏‘‚«ž‚ÝŽÀs */
     1873        /* プロパティ値読み出し応答の書き込み実行 */
    18801874        a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, true, fa_fbs_id, a_fbs_dmy,
    18811875                                                                  fa_fbs_anno, a_count, &a_sw_ok);
     
    18931887
    18941888lb_except:
    1895         /* ƒf[ƒ^‘—MŽ¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     1889        /* データ送信失敗したら領域解放 */
    18961890        if (a_fbs_dmy.ptr)
    18971891                _ecn_fbs_del(a_fbs_dmy);
     
    19021896
    19031897/*
    1904  * ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚Ý“d•¶ì¬
     1898 * 応答電文待ちの割り込み電文作成
    19051899 */
    19061900ER _ecn_mk_brk_wai(ECN_FBS_ID *pk_fbs_id, const void *p_dat, size_t fa_size)
    19071901{
    19081902        ER                              a_ret;
    1909         ECN_FBS_ID              a_fbs_id = { 0 };       /* —v‹“d•¶—pƒƒ‚ƒŠ     */
     1903        ECN_FBS_ID              a_fbs_id = { 0 };       /* 要求電文用メモリ     */
    19101904
    19111905        if (!pk_fbs_id)
     
    19131907        *pk_fbs_id = a_fbs_id;
    19141908        if (sizeof(a_fbs_id.ptr->payload) <= fa_size)
    1915                 return E_PAR; /* •tƒf[ƒ^‚ª‘å‚«‚·‚¬‚é */
     1909                return E_PAR; /* 付随データが大きすぎる */
    19161910        if (!p_dat && 0 < fa_size)
    1917                 return E_PAR; /* •tƒf[ƒ^ƒTƒCƒY‚ª1ˆÈã‚Ȃ̂Ƀf[ƒ^ƒ|ƒCƒ“ƒ^‚ªNULL */
    1918 
    1919         /* —v‹“d•¶—pƒƒ‚ƒŠ‚̎擾 */
     1911                return E_PAR; /* 付随データサイズが1以上なのにデータポインタがNULL */
     1912
     1913        /* 要求電文用メモリの取得 */
    19201914        a_ret = _ecn_fbs_cre((0 < fa_size ? fa_size : 1), &a_fbs_id);
    1921         if (a_ret != E_OK || !a_fbs_id.ptr) { /* Šm•ÛŽ¸”s */
     1915        if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
    19221916                syslog(LOG_WARNING, "_ecn_fbs_cre(%d) result = %d:%s", fa_size, a_ret, itron_strerror(a_ret));
    19231917                return a_ret;
    19241918        }
    19251919
    1926         /* —v‹“d•¶Ý’è */
     1920        /* 要求電文設定 */
    19271921        a_fbs_id.ptr->hdr.type = ECN_MSG_USER_BREAK;
    19281922        a_fbs_id.ptr->hdr.sender = ENOD_API_ID;
     
    19311925
    19321926        if (0 < fa_size && p_dat) {
    1933                 /* •tƒf[ƒ^’ljÁ */
     1927                /* 付随データ追加 */
    19341928                a_ret = _ecn_fbs_add_data_ex(a_fbs_id, p_dat, fa_size);
    19351929                if (a_ret) {
     
    19431937        *pk_fbs_id = a_fbs_id;
    19441938
    1945         /* ³íI—¹ */
     1939        /* 正常終了 */
    19461940        return a_ret;
    19471941
    19481942lb_except:
    1949         /* ƒf[ƒ^ì¬Ž¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     1943        /* データ作成失敗したら領域解放 */
    19501944        if (a_fbs_id.ptr)
    19511945                _ecn_fbs_del(a_fbs_id);
     
    19541948}
    19551949
    1956 /* ‰ž“š“d•¶—pfbsÝ’è(sender/target‚̐ݒè) */
     1950/* 応答電文用fbs設定(sender/targetの設定) */
    19571951ER _ecn_tsk_cre_req_fbs(ID sender, uint8_t cmd, ECN_FBS_ID *pk_req)
    19581952{
     
    19831977}
    19841978
    1985 /* ‰ž“š“d•¶—pfbsÝ’è(sender/target‚̐ݒè) */
     1979/* 応答電文用fbs設定(sender/targetの設定) */
    19861980ER _ecn_tsk_cre_res_fbs(ECN_FBS_ID req, uint8_t cmd, ECN_FBS_ID *pk_res)
    19871981{
Note: See TracChangeset for help on using the changeset viewer.