Ignore:
Timestamp:
Mar 8, 2016, 8:37:45 PM (8 years ago)
Author:
coas-nagasima
Message:

MIMEにSJISを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • UsbWattMeter/trunk/ecnl_lwip/echonet.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=SHIFT_JIS
    r164 r167  
    44 *  Copyright (C) 2014-2016 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$
     
    5248
    5349/*
    54  * ECHONET LiteƒT[ƒrƒXˆ—ŠJŽn
     50 * ECHONET Liteサービス処理開始
    5551 */
    5652ER ecn_sta_svc()
     
    6056
    6157/*
    62  * ECHONETƒIƒuƒWƒFƒNƒgŽQÆ
    63  * ˆø”
    64  * ID           fa_eobjid       ECHONETƒIƒuƒWƒFƒNƒgID
    65  * T_REOBJ      *fp_eobj        ECHONETƒIƒuƒWƒFƒNƒg‚̐ݒè“à—eƒRƒs[æ
     58 * ECHONETオブジェクト参照
     59 * 引数
     60 * ID           fa_eobjid       ECHONETオブジェクトID
     61 * T_REOBJ      *fp_eobj        ECHONETオブジェクトの設定内容コピー先
    6662 *
    67  * eobjid‚ÅŽw’肵‚½ECHONETƒIƒuƒWƒFƒNƒg‚̐ݒè“à—e‚ðŽQÆ‚·‚éB
    68  * ŽQÆ‚µ‚½Ý’è“à—e‚Ípk_eobj‚ÉŽw’肵‚½ƒƒ‚ƒŠ‚É•Ô‚³‚ê‚éB
     63 * eobjidで指定したECHONETオブジェクトの設定内容を参照する。
     64 * 参照した設定内容はpk_eobjに指定したメモリに返される。
    6965 */
    7066ER ecn_ref_eobj(ID fa_eobjid, T_REOBJ *fp_eobj)
     
    7369
    7470        if (!fp_eobj)
    75                 return E_PAR;   /* ƒpƒ‰ƒ[ƒ^ƒGƒ‰[ */
     71                return E_PAR;   /* パラメータエラー */
    7672
    7773        if ((fa_eobjid <= 0) || (fa_eobjid > tmax_eobjid))
    78                 return E_OBJ;   /* ƒIƒuƒWƒFƒNƒg–¢“o˜^ */
     74                return E_OBJ;   /* オブジェクト未登録 */
    7975
    8076        p_obj = &eobjinib_table[fa_eobjid - 1];
     
    8682
    8783/*
    88  * ECHONETƒvƒƒpƒeƒBŽQÆ
    89  * ˆø”
    90  * ID                   fa_eobjid       ECHONETƒIƒuƒWƒFƒNƒgID
    91  * uint8_t              fa_epc          ƒvƒƒpƒeƒBƒR[ƒh
    92  * T_RPRP               *fp_eprp        ECHONETƒIƒuƒWƒFƒNƒg‚̃vƒƒpƒeƒBÝ’è“à—eƒRƒs[æ
     84 * ECHONETプロパティ参照
     85 * 引数
     86 * ID                   fa_eobjid       ECHONETオブジェクトID
     87 * uint8_t              fa_epc          プロパティコード
     88 * T_RPRP               *fp_eprp        ECHONETオブジェクトのプロパティ設定内容コピー先
    9389 *
    94  * eobjid‚ÅŽw’肵‚½ECHONETƒIƒuƒWƒFƒNƒg‚́Aepc‚ÅŽw’肵‚½ƒvƒƒpƒeƒB‚̐ݒè“à—e‚ðŽQÆ‚·‚éB
    95  * ŽQÆ‚µ‚½Ý’è“à—e‚Ípk_eprp‚ÉŽw’肵‚½ƒƒ‚ƒŠ‚É•Ô‚³‚ê‚éB
     90 * eobjidで指定したECHONETオブジェクトの、epcで指定したプロパティの設定内容を参照する。
     91 * 参照した設定内容はpk_eprpに指定したメモリに返される。
    9692 */
    9793ER ecn_ref_eprp(ID fa_eobjid, uint8_t fa_epc, T_RPRP *fp_eprp)
     
    10298
    10399        if (!fp_eprp)
    104                 return E_PAR;   /* ƒpƒ‰ƒ[ƒ^ƒGƒ‰[ */
     100                return E_PAR;   /* パラメータエラー */
    105101
    106102        if ((fa_eobjid <= 0) || (fa_eobjid > tmax_eobjid))
    107                 return E_OBJ;   /* ƒIƒuƒWƒFƒNƒg–¢“o˜^ */
     103                return E_OBJ;   /* オブジェクト未登録 */
    108104
    109105        p_obj = &eobjinib_table[fa_eobjid - 1];
    110106
    111         /* eoj‚ÌŽ‚ƒvƒƒpƒeƒB‰Šú‰»’è‹`”z—ñ‚©‚猟õ */
     107        /* eojの持つプロパティ初期化定義配列から検索 */
    112108        p = p_obj->eprp;
    113109        for (i = 0; i < p_obj->eprpcnt; i++, p++) {
     
    118114        }
    119115
    120         return E_PAR;   /* ƒpƒ‰ƒ[ƒ^ƒGƒ‰[ */
    121 }
    122 
    123 /*
    124  * ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š•s—vj“d•¶ì¬
    125  * ˆø”
    126  * T_EDATA                      **ppk_esv       Žæ“¾‚µ‚½“d•¶‚ÌŠi”[æ
    127  * ID                           fa_deoj         ˆ¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    128  * uint8_t                      fa_epc          ƒvƒƒpƒeƒBƒR[ƒh
    129  * uint8_t                      fa_pdc          ƒvƒƒpƒeƒB’lƒf[ƒ^ƒTƒCƒY
    130  * const void           *p_edt          ƒvƒƒpƒeƒB’lƒf[ƒ^
     116        return E_PAR;   /* パラメータエラー */
     117}
     118
     119/*
     120 * プロパティ値書き込み要求(応答不要)電文作成
     121 * 引数
     122 * T_EDATA                      **ppk_esv       取得した電文の格納先
     123 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     124 * uint8_t                      fa_epc          プロパティコード
     125 * uint8_t                      fa_pdc          プロパティ値データサイズ
     126 * const void           *p_edt          プロパティ値データ
    131127 *
    132  *      ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š•s—vj“d•¶‚ðì¬‚·‚éB
    133  *      “d•¶‚Ídeoj‚ÅŽw’肵‚½ECHONETƒIƒuƒWƒFƒNƒg‚ðˆ¶æ‚Æ‚µA
    134  *      “d•¶‚̏‰‚߂̃vƒƒpƒeƒB’l‚Æ‚µ‚āAepc‚ÆpdcAp_edt‚ÅŽw’肳‚ꂽ
    135  *      ƒvƒƒpƒeƒBƒR[ƒhAƒf[ƒ^ƒTƒCƒYAƒf[ƒ^‚ð“d•¶‚ɐݒ肷‚éB
    136  *      ì¬‚µ‚½“d•¶‚̐擪ƒAƒhƒŒƒX‚̓|ƒCƒ“ƒ^Œo—R‚Å•Ô‚³‚ê‚éB
     128 *      プロパティ値書き込み要求(応答不要)電文を作成する。
     129 *      電文はdeojで指定したECHONETオブジェクトを宛先とし、
     130 *      電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
     131 *      プロパティコード、データサイズ、データを電文に設定する。
     132 *      作成した電文の先頭アドレスはポインタ経由で返される。
    137133 */
    138134ER ecn_esv_seti(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
     
    143139
    144140/*
    145  * ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š—vj“d•¶ì¬
    146  * ˆø”
    147  * T_EDATA                      **ppk_esv       Žæ“¾‚µ‚½“d•¶‚ÌŠi”[æ
    148  * ID                           fa_deoj         ˆ¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    149  * uint8_t                      fa_epc          ƒvƒƒpƒeƒBƒR[ƒh
    150  * uint8_t                      fa_pdc          ƒvƒƒpƒeƒB’lƒf[ƒ^ƒTƒCƒY
    151  * const void           *p_edt          ƒvƒƒpƒeƒB’lƒf[ƒ^
     141 * プロパティ値書き込み要求(応答要)電文作成
     142 * 引数
     143 * T_EDATA                      **ppk_esv       取得した電文の格納先
     144 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     145 * uint8_t                      fa_epc          プロパティコード
     146 * uint8_t                      fa_pdc          プロパティ値データサイズ
     147 * const void           *p_edt          プロパティ値データ
    152148 *
    153  *      ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š—vj“d•¶‚ðì¬‚·‚éB
    154  *      “d•¶‚Ídeoj‚ÅŽw’肵‚½ECHONETƒIƒuƒWƒFƒNƒg‚ðˆ¶æ‚Æ‚µA
    155  *      “d•¶‚̏‰‚߂̃vƒƒpƒeƒB’l‚Æ‚µ‚āAepc‚ÆpdcAp_edt‚ÅŽw’肳‚ꂽ
    156  *      ƒvƒƒpƒeƒBƒR[ƒhAƒf[ƒ^ƒTƒCƒYAƒf[ƒ^‚ð“d•¶‚ɐݒ肷‚éB
    157  *      ì¬‚µ‚½“d•¶‚̐擪ƒAƒhƒŒƒX‚̓|ƒCƒ“ƒ^Œo—R‚Å•Ô‚³‚ê‚éB
     149 *      プロパティ値書き込み要求(応答要)電文を作成する。
     150 *      電文はdeojで指定したECHONETオブジェクトを宛先とし、
     151 *      電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
     152 *      プロパティコード、データサイズ、データを電文に設定する。
     153 *      作成した電文の先頭アドレスはポインタ経由で返される。
    158154 */
    159155ER ecn_esv_setc(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
     
    164160
    165161/*
    166  * ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹“d•¶ì¬
    167  * ˆø”
    168  * T_EDATA                      **ppk_esv       Žæ“¾‚µ‚½“d•¶‚ÌŠi”[æ
    169  * ID                           fa_deoj         ˆ¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    170  * uint8_t                      fa_epc          ƒvƒƒpƒeƒBƒR[ƒh
     162 * プロパティ値読み出し要求電文作成
     163 * 引数
     164 * T_EDATA                      **ppk_esv       取得した電文の格納先
     165 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     166 * uint8_t                      fa_epc          プロパティコード
    171167 *
    172  * ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹“d•¶‚ðì¬‚·‚éB
    173  * “d•¶‚Ídeoj‚ÅŽw’肵‚½ECHONETƒIƒuƒWƒFƒNƒg‚ðˆ¶æ‚Æ‚µA
    174  * “d•¶‚̏‰‚߂̃vƒƒpƒeƒB’l‚Æ‚µ‚āAepc‚ÅŽw’肳‚ꂽ
    175  * ƒvƒƒpƒeƒBƒR[ƒh‚ð“d•¶‚ɐݒ肷‚éB
    176  * ì¬‚µ‚½“d•¶‚̐擪ƒAƒhƒŒƒX‚̓|ƒCƒ“ƒ^Œo—R‚Å•Ô‚³‚ê‚éB
     168 * プロパティ値読み出し要求電文を作成する。
     169 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
     170 * 電文の初めのプロパティ値として、epcで指定された
     171 * プロパティコードを電文に設定する。
     172 * 作成した電文の先頭アドレスはポインタ経由で返される。
    177173 */
    178174ER ecn_esv_get(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc)
     
    182178
    183179/*
    184  * ƒvƒƒpƒeƒB’l’Ê’m—v‹“d•¶ì¬
    185  * ˆø”
    186  * T_EDATA                      **ppk_esv       Žæ“¾‚µ‚½“d•¶‚ÌŠi”[æ
    187  * ID                           fa_deoj         ˆ¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    188  * uint8_t                      fa_epc          ƒvƒƒpƒeƒBƒR[ƒh
     180 * プロパティ値通知要求電文作成
     181 * 引数
     182 * T_EDATA                      **ppk_esv       取得した電文の格納先
     183 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     184 * uint8_t                      fa_epc          プロパティコード
    189185 *
    190  * ƒvƒƒpƒeƒB’l’Ê’m—v‹“d•¶‚ðì¬‚·‚éB
    191  * “d•¶‚Ídeoj‚ÅŽw’肵‚½ECHONETƒIƒuƒWƒFƒNƒg‚ðˆ¶æ‚Æ‚µA
    192  * “d•¶‚̏‰‚߂̃vƒƒpƒeƒB’l‚Æ‚µ‚āAepc‚ÅŽw’肳‚ꂽ
    193  * ƒvƒƒpƒeƒBƒR[ƒh‚ð“d•¶‚ɐݒ肷‚éB
    194  * ì¬‚µ‚½“d•¶‚̐擪ƒAƒhƒŒƒX‚̓|ƒCƒ“ƒ^Œo—R‚Å•Ô‚³‚ê‚éB
     186 * プロパティ値通知要求電文を作成する。
     187 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
     188 * 電文の初めのプロパティ値として、epcで指定された
     189 * プロパティコードを電文に設定する。
     190 * 作成した電文の先頭アドレスはポインタ経由で返される。
    195191 */
    196192ER ecn_esv_inf_req(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc)
     
    200196
    201197/*
    202  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶ì¬
    203  * ˆø”
    204  * T_EDATA                      **ppk_esv       Žæ“¾‚µ‚½“d•¶‚ÌŠi”[æ
    205  * ID                           fa_deoj         ˆ¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    206  * uint8_t                      fa_epc          ƒvƒƒpƒeƒBƒR[ƒh
    207  * uint8_t                      fa_pdc          ƒvƒƒpƒeƒB’lƒf[ƒ^ƒTƒCƒY
    208  * const void           *p_edt          ƒvƒƒpƒeƒB’lƒf[ƒ^
     198 * プロパティ値書き込み・読み出し要求電文作成
     199 * 引数
     200 * T_EDATA                      **ppk_esv       取得した電文の格納先
     201 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     202 * uint8_t                      fa_epc          プロパティコード
     203 * uint8_t                      fa_pdc          プロパティ値データサイズ
     204 * const void           *p_edt          プロパティ値データ
    209205 *
    210  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶‚ðì¬‚·‚éB
    211  * “d•¶‚Ídeoj‚ÅŽw’肵‚½ECHONETƒIƒuƒWƒFƒNƒg‚ðˆ¶æ‚Æ‚µA
    212  * “d•¶‚̏‰‚߂̃vƒƒpƒeƒB’l‚Æ‚µ‚āAepc‚ÆpdcAp_edt‚ÅŽw’肳‚ꂽ
    213  * ƒvƒƒpƒeƒBƒR[ƒhAƒf[ƒ^ƒTƒCƒYAƒf[ƒ^‚ð“d•¶‚ɐݒ肷‚éB
    214  * ì¬‚µ‚½“d•¶‚̐擪ƒAƒhƒŒƒX‚̓|ƒCƒ“ƒ^Œo—R‚Å•Ô‚³‚ê‚éB
     206 * プロパティ値書き込み・読み出し要求電文を作成する。
     207 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
     208 * 電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
     209 * プロパティコード、データサイズ、データを電文に設定する。
     210 * 作成した電文の先頭アドレスはポインタ経由で返される。
    215211 */
    216212ER ecn_esv_set_get(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
     
    221217
    222218/*
    223  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶ì¬FÜ‚è•Ô‚µŽw’è
    224  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶ì¬’†‚́A‘‚«ž‚݃vƒƒpƒeƒB”z—ñ‚ðI‚¦‚Ä
    225  * “ǂݏo‚µƒvƒƒpƒeƒB”z—ñ‚Ɉڂ鎞‚É—p‚¢‚éB
     219 * プロパティ値書き込み・読み出し要求電文作成:折り返し指定
     220 * プロパティ値書き込み・読み出し要求電文作成中の、書き込みプロパティ配列を終えて
     221 * 読み出しプロパティ配列に移る時に用いる。
    226222 */
    227223ER ecn_trn_set_get(T_EDATA *ppk_esv, int *p_trn_pos)
     
    234230                return E_PAR;
    235231
    236         /* ƒvƒƒpƒeƒB“ǂݍž‚ÝŒ”‘‚«ž‚ÝŽž‚̃wƒbƒhî•ñ‚ð‹L˜^ */
     232        /* プロパティ読み込み件数書き込み時のヘッド情報を記録 */
    237233        *p_trn_pos = _ecn_fbs_get_datalen(*(ECN_FBS_ID *)&ppk_esv);
    238234
    239         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁE‚±‚ÌŽž“_‚ł̉ž“š“d•¶’†ƒvƒƒpƒeƒBŒ”‚ð‹L˜^ */
     235        /* 応答電文用メモリにデータ追加・この時点での応答電文中プロパティ件数を記録 */
    240236        a_ret = _ecn_fbs_add_data_ex(*(ECN_FBS_ID *)&ppk_esv, &ppk_esv->hdr.edata.opc, 1);
    241237        if (a_ret) {
     
    244240        }
    245241
    246         /* ‰ž“š“d•¶’†ƒvƒƒpƒeƒBŒ”‚ð 0 ‚É–ß‚·i¡ŒãAI—¹Žw’è‚·‚é‚܂ł͓ǂݏo‚µƒvƒƒpƒeƒBŒ”‚É‚È‚éj */
     242        /* 応答電文中プロパティ件数を 0 に戻す(今後、終了指定するまでは読み出しプロパティ件数になる) */
    247243        ppk_esv->hdr.edata.opc = 0;
    248244
     
    251247
    252248/*
    253  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶ì¬FI—¹Žw’è
    254  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶ì¬’†‚́A“ǂݏo‚µƒvƒƒpƒeƒB”z—ñ‚ðI‚¦‚鎞‚É—p‚¢‚éB
     249 * プロパティ値書き込み・読み出し要求電文作成:終了指定
     250 * プロパティ値書き込み・読み出し要求電文作成中の、読み出しプロパティ配列を終える時に用いる。
    255251 */
    256252ER ecn_end_set_get(T_EDATA *ppk_esv, int fa_trn_pos)
     
    263259                return E_PAR;
    264260
    265         /* ‚±‚ÌŽž“_‚ł̉ž“š“d•¶’†ƒvƒƒpƒeƒBŒ”(“ǂݏo‚µƒvƒƒpƒeƒBŒ”)‚ð•ÛŽ */
     261        /* この時点での応答電文中プロパティ件数(読み出しプロパティ件数)を保持 */
    266262        a_rd_opc = ppk_esv->hdr.edata.opc;
    267263
    268         /* ‰ž“š“d•¶’†ƒvƒƒpƒeƒBŒ”(‘‚«ž‚݃vƒƒpƒeƒBŒ”)‚ð•Û‘¶ˆÊ’u‚©‚ç“Ç‚ÝŽæ‚è */
     264        /* 応答電文中プロパティ件数(書き込みプロパティ件数)を保存位置から読み取り */
    269265        a_wr_opc = _ecn_fbs_peek(*(ECN_FBS_ID *)&ppk_esv, fa_trn_pos);
    270266        if (a_wr_opc < 0) {
     
    273269        }
    274270
    275         /* ‰ž“š“d•¶’†ƒvƒƒpƒeƒBŒ”(‘‚«ž‚݃vƒƒpƒeƒBŒ”)‚𕜌³ */
     271        /* 応答電文中プロパティ件数(書き込みプロパティ件数)を復元 */
    276272        ppk_esv->hdr.edata.opc = (uint8_t)a_wr_opc;
    277273
    278         /* ‰ž“š“d•¶’†ƒvƒƒpƒeƒBŒ”(“ǂݏo‚µƒvƒƒpƒeƒBŒ”)‚ð•Û‘¶ˆÊ’u‚ɏ‘‚«ž‚Ý */
     274        /* 応答電文中プロパティ件数(読み出しプロパティ件数)を保存位置に書き込み */
    279275        a_ret = _ecn_fbs_poke(*(ECN_FBS_ID *)&ppk_esv, fa_trn_pos, a_rd_opc);
    280276        if (a_ret) {
     
    287283
    288284/*
    289  * ƒvƒƒpƒeƒB’l’Ê’mi‰ž“š—vj“d•¶ì¬
    290  * ˆø”
    291  * T_EDATA                      **ppk_esv       Žæ“¾‚µ‚½“d•¶‚ÌŠi”[æ
    292  * ID                           fa_deoj         ˆ¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    293  * ID                           fa_seoj         ‘—MŒ³‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    294  * uint8_t                      fa_sepc         ‘—MŒ³‚̃vƒƒpƒeƒBƒR[ƒh
     285 * プロパティ値通知(応答要)電文作成
     286 * 引数
     287 * T_EDATA                      **ppk_esv       取得した電文の格納先
     288 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     289 * ID                           fa_seoj         送信元のECHONETオブジェクトID
     290 * uint8_t                      fa_sepc         送信元のプロパティコード
    295291 */
    296292ER ecn_esv_infc(T_EDATA **ppk_esv, ID fa_deoj, ID fa_seoj, uint8_t fa_sepc)
     
    300296
    301297/*
    302  * —v‹“d•¶‚ւ̃vƒƒpƒeƒBŽw’è’ljÁ (ƒvƒƒpƒeƒBƒf[ƒ^‚ª•t‚µ‚È‚¢ê‡‚É—p‚¢‚é)
     298 * 要求電文へのプロパティ指定追加 (プロパティデータが付随しない場合に用いる)
    303299 */
    304300ER ecn_add_epc(T_EDATA *pk_esv, uint8_t epc)
     
    308304
    309305/*
    310  * —v‹“d•¶‚ւ̃vƒƒpƒeƒBƒf[ƒ^’ljÁ (ƒvƒƒpƒeƒB‚¨‚æ‚Ñ•tƒf[ƒ^‚ð’ljÁ‚·‚é)
     306 * 要求電文へのプロパティデータ追加 (プロパティおよび付随データを追加する)
    311307 */
    312308ER ecn_add_edt(T_EDATA *pk_esv, uint8_t fa_epc, uint8_t fa_pdc, const void *p_edt)
     
    317313
    318314        if (!pk_esv)
    319                 return E_PAR; /* Žæ“¾‚µ‚½FBS_ID‚ÌŠi”[æ‚ªNULL */
     315                return E_PAR; /* 取得したFBS_IDの格納先がNULL */
    320316        if (ECHONET_MEMPOOL_BLOCK_SIZE <= fa_pdc)
    321                 return E_PAR; /* ƒvƒƒpƒeƒB’lƒTƒCƒY‚ª‘å‚«‚·‚¬‚é */
     317                return E_PAR; /* プロパティ値サイズが大きすぎる */
    322318        if (!p_edt && 0 < fa_pdc)
    323                 return E_PAR; /* ƒvƒƒpƒeƒB’lƒTƒCƒY‚ª1ˆÈã‚Ȃ̂Ƀf[ƒ^ƒ|ƒCƒ“ƒ^‚ªNULL */
     319                return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
    324320
    325321        a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_esv;
    326322        if (((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc == 0xFF)
    327                 return E_PAR; /* ƒvƒƒpƒeƒB‚ª‘½‚·‚¬‚é */
    328 
    329         /* —v‹“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ */
     323                return E_PAR; /* プロパティが多すぎる */
     324
     325        /* 要求電文用メモリにデータ追加 */
    330326        memset(&a_ecn_prp, 0, sizeof(a_ecn_prp));
    331327        a_ecn_prp.epc = fa_epc;
     
    339335        }
    340336        if (0 < fa_pdc) {
    341                 /* •tƒf[ƒ^’ljÁ */
     337                /* 付随データ追加 */
    342338                a_ret = _ecn_fbs_add_data_ex(a_fbs_id, p_edt, fa_pdc);
    343339                if (a_ret) {
     
    348344                }
    349345        }
    350         /* ƒvƒƒpƒeƒB”ƒCƒ“ƒNƒŠƒƒ“ƒg */
     346        /* プロパティ数インクリメント */
    351347        ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc++;
    352348
     
    356352
    357353/*
    358  * —v‹“d•¶‚Ì‘—M
    359  * esv‚ÅŽw’肳‚ꂽ—v‹“d•¶‚𑗐M‚·‚éB
    360  * “d•¶‚ÉŽw’肳‚ꂽˆ¶æ‚©‚çIPƒAƒhƒŒƒX‚ð“Á’肵AUDPƒpƒPƒbƒg‚Æ‚µ‚Ä‘—M‚·‚éB
     354 * 要求電文の送信
     355 * esvで指定された要求電文を送信する。
     356 * 電文に指定された宛先からIPアドレスを特定し、UDPパケットとして送信する。
    361357 */
    362358ER ecn_snd_esv(T_EDATA *pk_esv)
     
    368364
    369365/*
    370  * ‰ž“š“d•¶‚ÌŽóM‰i‰“‘Ò‚¿
    371  * ‰ž“š“d•¶‚ðŽóM‚·‚é‚Ì‚ð‘҂B
    372  * ŽóM‚µ‚½‰ž“š“d•¶‚Íppk_esv‚ÅŽw’肵‚½ƒ|ƒCƒ“ƒ^[‚ɐ擪ƒAƒhƒŒƒX‚ª•Ô‚³‚ê‚éB
    373  * —v‹“d•¶‚̈¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒg‚ªƒlƒbƒgƒ[ƒN‚É‘¶Ý‚µ‚È‚¢ê‡A
    374  * ‰ž“š“d•¶‚Í•Ô‘—‚³‚ê‚È‚¢‚̂ŁA‰i‰“‚ɑ҂‚±‚Æ‚É‚È‚é‚̂Ń^ƒCƒ€ƒAƒEƒg•t‚«‚Ì
    375  * ecn_trcv_esv‚ðŽg—p‚·‚邱‚Ƃ𐄏§‚·‚éB
     366 * 応答電文の受信永遠待ち
     367 * 応答電文を受信するのを待つ。
     368 * 受信した応答電文はppk_esvで指定したポインターに先頭アドレスが返される。
     369 * 要求電文の宛先のECHONETオブジェクトがネットワークに存在しない場合、
     370 * 応答電文は返送されないので、永遠に待つことになるのでタイムアウト付きの
     371 * ecn_trcv_esvを使用することを推奨する。
    376372 */
    377373ER ecn_rcv_esv(T_EDATA **ppk_esv)
     
    381377
    382378/*
    383  * ‰ž“š“d•¶‚ÌŽóM‘Ò‚¿ƒ^ƒCƒ€ƒAƒEƒg‚ ‚è
    384  * ‰ž“š“d•¶‚ðŽóM‚·‚é‚Ì‚ð‘҂B
    385  * ŽóM‚µ‚½‰ž“š“d•¶‚Íppk_esv‚ÅŽw’肵‚½ƒ|ƒCƒ“ƒ^[‚ɐ擪ƒAƒhƒŒƒX‚ª•Ô‚³‚ê‚éB
    386  * tmo‚ÅŽw’肳‚ꂽƒ^ƒCƒ€ƒAƒEƒgŽžŠÔ‚ªŒo‰ß‚µ‚Ä‚à‰ž“š“d•¶‚ðŽóM‚µ‚È‚¢ê‡A
    387  * ‘Ò‚¿‚ª‰ðœ‚³‚êA–ß‚è’l‚ªE_TMO‚Å•Ô‚³‚ê‚éB
    388  * tmo‚ÉTMO_FEVR‚ðŽw’è‚·‚é‚Æecn_rcv_esv‚Æ“¯‚¶U‚é•‘‚¢‚ð‚·‚éB
    389  * tmo‚É0‚ðŽw’è‚·‚é‚Æecn_prcv_esv‚Æ“¯‚¶U‚é•‘‚¢‚ð‚·‚éB
     379 * 応答電文の受信待ちタイムアウトあり
     380 * 応答電文を受信するのを待つ。
     381 * 受信した応答電文はppk_esvで指定したポインターに先頭アドレスが返される。
     382 * tmoで指定されたタイムアウト時間が経過しても応答電文を受信しない場合、
     383 * 待ちが解除され、戻り値がE_TMOで返される。
     384 * tmoにTMO_FEVRを指定するとecn_rcv_esvと同じ振る舞いをする。
     385 * tmoに0を指定するとecn_prcv_esvと同じ振る舞いをする。
    390386 */
    391387ER ecn_trcv_esv(T_EDATA **ppk_esv, TMO fa_tmout)
     
    408404
    409405/*
    410  * ‰ž“š“d•¶‚ÌŽóMƒ|[ƒŠƒ“ƒO
    411  * ‰ž“š“d•¶‚ðŽóM‚·‚é‚Ì‚ð‘҂B
    412  * ŽóM‚µ‚½‰ž“š“d•¶‚Íppk_esv‚ÅŽw’肵‚½ƒ|ƒCƒ“ƒ^[‚ɐ擪ƒAƒhƒŒƒX‚ª•Ô‚³‚ê‚éB
    413  * ‰ž“š“d•¶‚ÌŽóM‚Ì—L–³‚É‚©‚©‚í‚炸A‘Ò‚½‚¸‚Ɋ֐”‚𔲂¯‚éB
     406 * 応答電文の受信ポーリング
     407 * 応答電文を受信するのを待つ。
     408 * 受信した応答電文はppk_esvで指定したポインターに先頭アドレスが返される。
     409 * 応答電文の受信の有無にかかわらず、待たずに関数を抜ける。
    414410 */
    415411ER ecn_prcv_esv(T_EDATA **ppk_esv)
     
    419415
    420416/*
    421  * ‰ž“š“d•¶‚Ì”jŠü
     417 * 応答電文の破棄
    422418 */
    423419ER ecn_rel_esv(T_EDATA *pk_esv)
     
    432428
    433429/*
    434  * ‰ž“š“d•¶‚Ì‘—MŒ³‹@ŠíƒIƒuƒWƒFƒNƒg‚ðŽæ“¾‚·‚é
     430 * 応答電文の送信元機器オブジェクトを取得する
    435431 */
    436432ID ecn_get_eobj(T_EDATA *pk_esv)
     
    443439        p_snod = _ecn_eno_fnd(((T_ECN_FST_BLK *)pk_esv)->hdr.sender.id);
    444440        if (p_snod != NULL) {
    445                 /* ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹‚̏ꍇ */
     441                /* ノードプロファイルの場合 */
    446442                if ((p_esv->edata.seoj.eojx1 == EOJ_X1_PROFILE)
    447443                        && (p_esv->edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
    448444                        p_sobj = p_snod->profile;
    449445                }
    450                 /* ‹@ŠíƒIƒuƒWƒFƒNƒg‚̏ꍇ */
     446                /* 機器オブジェクトの場合 */
    451447                else {
    452448                        p_sobj = _ecn_eoj_fnd(p_snod, &p_esv->edata.seoj);
     
    464460
    465461/*
    466  * ‰ž“š“d•¶‰ðÍƒCƒeƒŒ[ƒ^[‰Šú‰»
     462 * 応答電文解析イテレーター初期化
    467463 */
    468464ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv)
     
    476472        pk_itr->pk_esv = pk_esv;
    477473        pk_itr->count = pk_esv->hdr.edata.opc;
    478                                                                 /* ¡‚̃uƒƒbƒN‚ł̃vƒƒpƒeƒB‘” */
    479         pk_itr->got_ct = 0;                     /* ¡‚̃uƒƒbƒN‚ŁA“Ç‚ÝŽæ‚Á‚½” */
    480         pk_itr->next_blk_ct = 0;        /* Œã‘±ƒuƒƒbƒN” */
    481         pk_itr->is_eof = 0;                     /* I’[‚É’B‚µ‚½ŽžA”ñ0 */
     474                                                                /* 今のブロックでのプロパティ総数 */
     475        pk_itr->got_ct = 0;                     /* 今のブロックで、読み取った数 */
     476        pk_itr->next_blk_ct = 0;        /* 後続ブロック数 */
     477        pk_itr->is_eof = 0;                     /* 終端に達した時、非0 */
    482478        pk_itr->cur = offsetof(T_ECN_EDT_HDR, ecn_prp);
    483479
    484480        switch (pk_esv->hdr.edata.esv) {
    485         case ESV_SET_GET:               /* 0x6E ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹              */
    486         case ESV_SET_GET_RES:   /* 0x7E ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ‰ž“š              */
    487         case ESV_SET_GET_SNA:   /* 0x5E ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ•s‰Â‰ž“š  */
     481        case ESV_SET_GET:               /* 0x6E プロパティ値書き込み・読み出し要求               */
     482        case ESV_SET_GET_RES:   /* 0x7E プロパティ値書き込み・読み出し応答               */
     483        case ESV_SET_GET_SNA:   /* 0x5E プロパティ値書き込み・読み出し不可応答     */
    488484                pk_itr->next_blk_ct ++;
    489485        default:
     
    495491
    496492/*
    497  * ‰ž“š“d•¶‰ðÍƒCƒeƒŒ[ƒ^[ƒCƒ“ƒNƒŠƒƒ“ƒg
     493 * 応答電文解析イテレーターインクリメント
    498494 */
    499495ER ecn_itr_nxt(T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt)
     
    517513
    518514        if (pk_itr->is_eof)
    519                 return E_BOVR; /* ƒf[ƒ^I—¹ */
     515                return E_BOVR; /* データ終了 */
    520516        if (    pk_itr->count <= pk_itr->got_ct
    521517        &&      pk_itr->next_blk_ct < 1) {
    522                 pk_itr->is_eof = 1;                     /* I’[‚É’B‚µ‚½ŽžA”ñ0 */
    523                 return E_BOVR; /* ƒf[ƒ^I—¹ */
     518                pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
     519                return E_BOVR; /* データ終了 */
    524520        }
    525521
    526522        a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_itr->pk_esv;
    527523
    528         /* Œ³‚̃J[ƒ\ƒ‹ˆÊ’u‚ð•Û‘¶‚µAƒCƒeƒŒ[ƒ^‚̃J[ƒ\ƒ‹ˆÊ’u‚É‚·‚é */
     524        /* 元のカーソル位置を保存し、イテレータのカーソル位置にする */
    529525        a_rd_bak = a_fbs_id.ptr->hdr.rd;
    530526        a_fbs_id.ptr->hdr.rd = pk_itr->cur;
     
    534530#endif
    535531        if (pk_itr->count <= pk_itr->got_ct && 0 < pk_itr->next_blk_ct) {
    536                 /* ŽŸƒuƒƒbƒN‚Ɉړ® */
     532                /* 次ブロックに移動 */
    537533                pk_itr->next_blk_ct --;
    538                 pk_itr->count = 0;              /* ¡‚̃uƒƒbƒN‚ł̃vƒƒpƒeƒB‘” */
    539                 pk_itr->got_ct = 0;             /* ¡‚̃uƒƒbƒN‚ŁA“Ç‚ÝŽæ‚Á‚½” */
    540 
    541                 /* ŽŸƒuƒƒbƒN‚̃vƒƒpƒeƒB”‚ð“Ç‚ÝŽæ‚é */
     534                pk_itr->count = 0;              /* 今のブロックでのプロパティ総数 */
     535                pk_itr->got_ct = 0;             /* 今のブロックで、読み取った数 */
     536
     537                /* 次ブロックのプロパティ数を読み取る */
    542538                a_rd_len = 0;
    543539                a_ret = _ecn_fbs_get_data(a_fbs_id, &a_ecn_prp.pdc, 1, &a_rd_len);
     
    545541                        goto lb_except;
    546542                if (0 < a_rd_len) {
    547                         pk_itr->count = a_ecn_prp.pdc;  /* ¡‚̃uƒƒbƒN‚ł̃vƒƒpƒeƒB‘” */
     543                        pk_itr->count = a_ecn_prp.pdc;  /* 今のブロックでのプロパティ総数 */
    548544                }
    549                 a_ret = E_BOVR; /* ƒf[ƒ^I—¹ */
     545                a_ret = E_BOVR; /* データ終了 */
    550546                goto lb_finally;
    551547        }
    552548
    553         /* ƒvƒƒpƒeƒBƒR[ƒh‚ƃf[ƒ^ƒTƒCƒY‚ð“Ç‚ÝŽæ‚é */
     549        /* プロパティコードとデータサイズを読み取る */
    554550        memset(&a_ecn_prp, 0, sizeof(a_ecn_prp));
    555551        a_rd_len = 0;
     
    560556                ECN_DBG_PUT( "ecn_itr_nxt() ecn_prp read fault."
    561557                        " rd.cur=%d", pk_itr->cur );
    562                 pk_itr->is_eof = 1;                     /* I’[‚É’B‚µ‚½ŽžA”ñ0 */
    563                 a_ret = E_BOVR; /* ƒf[ƒ^I—¹ */
     558                pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
     559                a_ret = E_BOVR; /* データ終了 */
    564560                goto lb_finally;
    565561        }
     
    568564
    569565        if (0 < a_ecn_prp.pdc) {
    570                 /* •tƒf[ƒ^‚ð“Ç‚ÝŽæ‚é */
     566                /* 付随データを読み取る */
    571567                a_rd_len = 0;
    572568                a_ret = _ecn_fbs_get_data(a_fbs_id, p_edt, a_ecn_prp.pdc, &a_rd_len);
     
    576572                        ECN_DBG_PUT( "ecn_itr_nxt() edt read fault."
    577573                                " rd.cur=%d,epc=0x%02X,pdc=%u", pk_itr->cur, a_ecn_prp.epc , a_ecn_prp.pdc );
    578                         pk_itr->is_eof = 1;                     /* I’[‚É’B‚µ‚½ŽžA”ñ0 */
    579                         a_ret = E_BOVR; /* ƒf[ƒ^I—¹ */
     574                        pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
     575                        a_ret = E_BOVR; /* データ終了 */
    580576                        goto lb_finally;
    581577                }
     
    588584
    589585lb_finally:
    590         /* ƒCƒeƒŒ[ƒ^‚̃J[ƒ\ƒ‹ˆÊ’u‚ðXV */
     586        /* イテレータのカーソル位置を更新 */
    591587        pk_itr->cur = a_fbs_id.ptr->hdr.rd;
    592588
    593589lb_except:
    594         /* Œ³‚̃J[ƒ\ƒ‹ˆÊ’u‚É–ß‚· */
     590        /* 元のカーソル位置に戻す */
    595591        a_fbs_id.ptr->hdr.rd = a_rd_bak;
    596592        return a_ret;
     
    598594
    599595/*
    600  * ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚Ý‘—M
     596 * 応答電文待ちの割り込み送信
    601597 */
    602598ER ecn_brk_wai(const void *p_dat, int fa_datsz)
    603599{
    604600        ER                              a_ret;
    605         ECN_FBS_ID              a_fbs_id = { 0 };       /* —v‹“d•¶—pƒƒ‚ƒŠ     */
    606 
    607         /* ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚Ý“d•¶ì¬ */
     601        ECN_FBS_ID              a_fbs_id = { 0 };       /* 要求電文用メモリ     */
     602
     603        /* 応答電文待ちの割り込み電文作成 */
    608604        a_ret = _ecn_mk_brk_wai(&a_fbs_id, p_dat, fa_datsz);
    609605        if (a_ret)
    610606                return a_ret;
    611607
    612         /* Š„‚荞‚Ý‘—M */
     608        /* 割り込み送信 */
    613609        a_ret = _ecn_tsk_snd_mbx(a_fbs_id, true);
    614610        if (a_ret) {
     
    618614        }
    619615
    620         /* ³íI—¹ */
     616        /* 正常終了 */
    621617        return a_ret;
    622618
    623619lb_except:
    624         /* ƒf[ƒ^ì¬Ž¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     620        /* データ作成失敗したら領域解放 */
    625621        if (a_fbs_id.ptr)
    626622                _ecn_fbs_del(a_fbs_id);
     
    630626
    631627/*
    632  * Š„‚荞‚݃f[ƒ^‚̎擾
     628 * 割り込みデータの取得
    633629 */
    634630ER ecn_get_brk_dat(T_EDATA *pk_esv, void *p_buf, int fa_bufsz, int *p_datsz)
     
    650646        }
    651647
    652         /* “Ç‚ÝŽæ‚èˆÊ’u‚ðæ“ª‚É–ß‚· */
     648        /* 読み取り位置を先頭に戻す */
    653649        a_ret = _ecn_fbs_set_rpos(a_fbs, 0);
    654650        if (a_ret) {
     
    658654        }
    659655
    660         /* •tƒf[ƒ^‚ð“ǂݍž‚Þ */
     656        /* 付随データを読み込む */
    661657        if (p_buf && 0 < fa_bufsz) {
    662658                a_len = 0;
     
    675671#ifndef ECN_USER_DATA_PROP_SET
    676672/*
    677  * ƒf[ƒ^Ý’èŠÖ”
     673 * データ設定関数
    678674 */
    679675int ecn_data_prop_set(const EPRPINIB *item, const void *src, int size, bool_t *anno)
     
    693689#ifndef ECN_USER_DATA_PROP_GET
    694690/*
    695  * ƒf[ƒ^Žæ“¾ŠÖ”
     691 * データ取得関数
    696692 */
    697693int ecn_data_prop_get(const EPRPINIB *item, void *dst, int size)
Note: See TracChangeset for help on using the changeset viewer.