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

文字コードを設定

File:
1 edited

Legend:

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

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    44 *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
    55 *
    6  *  上記著作権è€
    7 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    8  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    9  *  変・再é
    10 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    11  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    12  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    13  *      スコード中に含まれていること.
    14  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    15  *      用できる形で再é
    16 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    17 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    18  *      è€
    19 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    20  *      の無保証規定を掲載すること.
    21  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    22  *      用できない形で再é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    24  *      と.
    25  *    (a) 再é
    26 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    27 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    28  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    29  *    (b) 再é
    30 å¸ƒã®å½¢æ
    31 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    32  *        報告すること.
    33  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    34  *      害からも,上記著作権è€
    35 ãŠã‚ˆã³TOPPERSプロジェクトをå
    36 è²¬ã™ã‚‹ã“と.
    37  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    38  *      由に基づく請求からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトを
    40  *      å
    41 è²¬ã™ã‚‹ã“と.
     6 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    4228 *
    43  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    44 ãŠ
    45  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    46  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    47  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    48  *  の責任を負わない.
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    4934 *
    5035 */
     
    6247
    6348/*
    64  * ECHONET Liteサービス処理開始
     49 * ECHONET Liteサービス処理開始
    6550 */
    6651ER ecn_sta_svc(ecnl_svc_task_t *svc)
     
    7257
    7358/*
    74  * ECHONETオブジェクト参ç
    75 §
    76  * 引数
    77  * ID           fa_eobjid       ECHONETオブジェクトID
    78  * T_REOBJ      *fp_eobj        ECHONETオブジェクトの設定å†
    79 å®¹ã‚³ãƒ”ーå
    80 ˆ
     59 * ECHONETオブジェクト参照
     60 * 引数
     61 * ID           fa_eobjid       ECHONETオブジェクトID
     62 * T_REOBJ      *fp_eobj        ECHONETオブジェクトの設定内容コピー先
    8163 *
    82  * eobjidで指定したECHONETオブジェクトの設定å†
    83 å®¹ã‚’参ç
    84 §ã™ã‚‹ã€‚
    85  * 参ç
    86 §ã—た設定å†
    87 å®¹ã¯pk_eobjに指定したメモリに返される。
     64 * eobjidで指定したECHONETオブジェクトの設定内容を参照する。
     65 * 参照した設定内容はpk_eobjに指定したメモリに返される。
    8866 */
    8967ER ecn_ref_eobj(ecnl_svc_task_t *svc, ID fa_eobjid, T_REOBJ *fp_eobj)
     
    9270
    9371        if (!fp_eobj)
    94                 return E_PAR;   /* パラメータエラー */
     72                return E_PAR;   /* パラメータエラー */
    9573
    9674        if ((fa_eobjid <= 0) || (fa_eobjid > svc->tmax_eobjid))
    97                 return E_OBJ;   /* オブジェクト未登録 */
     75                return E_OBJ;   /* オブジェクト未登録 */
    9876
    9977        p_obj = echonet_svctask_get_eobjinib(svc, fa_eobjid);
     
    10583
    10684/*
    107  * ECHONETプロパティ参ç
    108 §
    109  * 引数
    110  * ID                   fa_eobjid       ECHONETオブジェクトID
    111  * uint8_t              fa_epc          プロパティコード
    112  * T_RPRP               *fp_eprp        ECHONETオブジェクトのプロパティ設定å†
    113 å®¹ã‚³ãƒ”ーå
    114 ˆ
     85 * ECHONETプロパティ参照
     86 * 引数
     87 * ID                   fa_eobjid       ECHONETオブジェクトID
     88 * uint8_t              fa_epc          プロパティコード
     89 * T_RPRP               *fp_eprp        ECHONETオブジェクトのプロパティ設定内容コピー先
    11590 *
    116  * eobjidで指定したECHONETオブジェクトの、epcで指定したプロパティの設定å†
    117 å®¹ã‚’参ç
    118 §ã™ã‚‹ã€‚
    119  * 参ç
    120 §ã—た設定å†
    121 å®¹ã¯pk_eprpに指定したメモリに返される。
     91 * eobjidで指定したECHONETオブジェクトの、epcで指定したプロパティの設定内容を参照する。
     92 * 参照した設定内容はpk_eprpに指定したメモリに返される。
    12293 */
    12394ER ecn_ref_eprp(ecnl_svc_task_t *svc, ID fa_eobjid, uint8_t fa_epc, T_RPRP *fp_eprp)
     
    12899
    129100        if (!fp_eprp)
    130                 return E_PAR;   /* パラメータエラー */
     101                return E_PAR;   /* パラメータエラー */
    131102
    132103        if ((fa_eobjid <= 0) || (fa_eobjid > svc->tmax_eobjid))
    133                 return E_OBJ;   /* オブジェクト未登録 */
     104                return E_OBJ;   /* オブジェクト未登録 */
    134105
    135106        p_obj = svc->eobjinib_table[fa_eobjid - 1];
    136107
    137         /* eojの持つプロパティ初期化定義é
    138 åˆ—から検索 */
     108        /* eojの持つプロパティ初期化定義配列から検索 */
    139109        p = p_obj->eprp;
    140110        for (i = 0; i < p_obj->eprpcnt; i++, p++) {
     
    145115        }
    146116
    147         return E_PAR;   /* パラメータエラー */
    148 }
    149 
    150 /*
    151  * プロパティ値書き込み要求(応答不要)電文作成
    152  * 引数
    153  * T_EDATA                      **ppk_esv       å–得した電文の格納å
    154 ˆ
    155  * ID                           fa_deoj         å®›å
    156 ˆã®ECHONETオブジェクトID
    157  * uint8_t                      fa_epc          プロパティコード
    158  * uint8_t                      fa_pdc          プロパティ値データサイズ
    159  * const void           *p_edt          プロパティ値データ
     117        return E_PAR;   /* パラメータエラー */
     118}
     119
     120/*
     121 * プロパティ値書き込み要求(応答不要)電文作成
     122 * 引数
     123 * T_EDATA                      **ppk_esv       取得した電文の格納先
     124 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     125 * uint8_t                      fa_epc          プロパティコード
     126 * uint8_t                      fa_pdc          プロパティ値データサイズ
     127 * const void           *p_edt          プロパティ値データ
    160128 *
    161  *      プロパティ値書き込み要求(応答不要)電文を作成する。
    162  *      電文はdeojで指定したECHONETオブジェクトを宛å
    163 ˆã¨ã—、
    164  *      電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
    165  *      プロパティコード、データサイズ、データを電文に設定する。
    166  *      作成した電文のå
    167 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ãƒã‚¤ãƒ³ã‚¿çµŒç”±ã§è¿”される。
     129 *      プロパティ値書き込み要求(応答不要)電文を作成する。
     130 *      電文はdeojで指定したECHONETオブジェクトを宛先とし、
     131 *      電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
     132 *      プロパティコード、データサイズ、データを電文に設定する。
     133 *      作成した電文の先頭アドレスはポインタ経由で返される。
    168134 */
    169135ER ecn_esv_seti(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
     
    174140
    175141/*
    176  * プロパティ値書き込み要求(応答要)電文作成
    177  * 引数
    178  * T_EDATA                      **ppk_esv       å–得した電文の格納å
    179 ˆ
    180  * ID                           fa_deoj         å®›å
    181 ˆã®ECHONETオブジェクトID
    182  * uint8_t                      fa_epc          プロパティコード
    183  * uint8_t                      fa_pdc          プロパティ値データサイズ
    184  * const void           *p_edt          プロパティ値データ
     142 * プロパティ値書き込み要求(応答要)電文作成
     143 * 引数
     144 * T_EDATA                      **ppk_esv       取得した電文の格納先
     145 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     146 * uint8_t                      fa_epc          プロパティコード
     147 * uint8_t                      fa_pdc          プロパティ値データサイズ
     148 * const void           *p_edt          プロパティ値データ
    185149 *
    186  *      プロパティ値書き込み要求(応答要)電文を作成する。
    187  *      電文はdeojで指定したECHONETオブジェクトを宛å
    188 ˆã¨ã—、
    189  *      電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
    190  *      プロパティコード、データサイズ、データを電文に設定する。
    191  *      作成した電文のå
    192 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ãƒã‚¤ãƒ³ã‚¿çµŒç”±ã§è¿”される。
     150 *      プロパティ値書き込み要求(応答要)電文を作成する。
     151 *      電文はdeojで指定したECHONETオブジェクトを宛先とし、
     152 *      電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
     153 *      プロパティコード、データサイズ、データを電文に設定する。
     154 *      作成した電文の先頭アドレスはポインタ経由で返される。
    193155 */
    194156ER ecn_esv_setc(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
     
    199161
    200162/*
    201  * プロパティ値読み出し要求電文作成
    202  * 引数
    203  * T_EDATA                      **ppk_esv       å–得した電文の格納å
    204 ˆ
    205  * ID                           fa_deoj         å®›å
    206 ˆã®ECHONETオブジェクトID
    207  * uint8_t                      fa_epc          プロパティコード
     163 * プロパティ値読み出し要求電文作成
     164 * 引数
     165 * T_EDATA                      **ppk_esv       取得した電文の格納先
     166 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     167 * uint8_t                      fa_epc          プロパティコード
    208168 *
    209  * プロパティ値読み出し要求電文を作成する。
    210  * 電文はdeojで指定したECHONETオブジェクトを宛å
    211 ˆã¨ã—、
    212  * 電文の初めのプロパティ値として、epcで指定された
    213  * プロパティコードを電文に設定する。
    214  * 作成した電文のå
    215 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ãƒã‚¤ãƒ³ã‚¿çµŒç”±ã§è¿”される。
     169 * プロパティ値読み出し要求電文を作成する。
     170 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
     171 * 電文の初めのプロパティ値として、epcで指定された
     172 * プロパティコードを電文に設定する。
     173 * 作成した電文の先頭アドレスはポインタ経由で返される。
    216174 */
    217175ER ecn_esv_get(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc)
     
    221179
    222180/*
    223  * プロパティ値通知要求電文作成
    224  * 引数
    225  * T_EDATA                      **ppk_esv       å–得した電文の格納å
    226 ˆ
    227  * ID                           fa_deoj         å®›å
    228 ˆã®ECHONETオブジェクトID
    229  * uint8_t                      fa_epc          プロパティコード
     181 * プロパティ値通知要求電文作成
     182 * 引数
     183 * T_EDATA                      **ppk_esv       取得した電文の格納先
     184 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     185 * uint8_t                      fa_epc          プロパティコード
    230186 *
    231  * プロパティ値通知要求電文を作成する。
    232  * 電文はdeojで指定したECHONETオブジェクトを宛å
    233 ˆã¨ã—、
    234  * 電文の初めのプロパティ値として、epcで指定された
    235  * プロパティコードを電文に設定する。
    236  * 作成した電文のå
    237 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ãƒã‚¤ãƒ³ã‚¿çµŒç”±ã§è¿”される。
     187 * プロパティ値通知要求電文を作成する。
     188 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
     189 * 電文の初めのプロパティ値として、epcで指定された
     190 * プロパティコードを電文に設定する。
     191 * 作成した電文の先頭アドレスはポインタ経由で返される。
    238192 */
    239193ER ecn_esv_inf_req(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc)
     
    243197
    244198/*
    245  * プロパティ値書き込み・読み出し要求電文作成
    246  * 引数
    247  * T_EDATA                      **ppk_esv       å–得した電文の格納å
    248 ˆ
    249  * ID                           fa_deoj         å®›å
    250 ˆã®ECHONETオブジェクトID
    251  * uint8_t                      fa_epc          プロパティコード
    252  * uint8_t                      fa_pdc          プロパティ値データサイズ
    253  * const void           *p_edt          プロパティ値データ
     199 * プロパティ値書き込み・読み出し要求電文作成
     200 * 引数
     201 * T_EDATA                      **ppk_esv       取得した電文の格納先
     202 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     203 * uint8_t                      fa_epc          プロパティコード
     204 * uint8_t                      fa_pdc          プロパティ値データサイズ
     205 * const void           *p_edt          プロパティ値データ
    254206 *
    255  * プロパティ値書き込み・読み出し要求電文を作成する。
    256  * 電文はdeojで指定したECHONETオブジェクトを宛å
    257 ˆã¨ã—、
    258  * 電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
    259  * プロパティコード、データサイズ、データを電文に設定する。
    260  * 作成した電文のå
    261 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ãƒã‚¤ãƒ³ã‚¿çµŒç”±ã§è¿”される。
     207 * プロパティ値書き込み・読み出し要求電文を作成する。
     208 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
     209 * 電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
     210 * プロパティコード、データサイズ、データを電文に設定する。
     211 * 作成した電文の先頭アドレスはポインタ経由で返される。
    262212 */
    263213ER ecn_esv_set_get(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
     
    268218
    269219/*
    270  * プロパティ値書き込み・読み出し要求電文作成:折り返し指定
    271  * プロパティ値書き込み・読み出し要求電文作成中の、書き込みプロパティé
    272 åˆ—を終えて
    273  * 読み出しプロパティé
    274 åˆ—に移る時に用いる。
     220 * プロパティ値書き込み・読み出し要求電文作成:折り返し指定
     221 * プロパティ値書き込み・読み出し要求電文作成中の、書き込みプロパティ配列を終えて
     222 * 読み出しプロパティ配列に移る時に用いる。
    275223 */
    276224ER ecn_trn_set_get(mrb_state *mrb, T_EDATA *ppk_esv, int *p_trn_pos)
     
    283231                return E_PAR;
    284232
    285         /* プロパティ読み込み件数書き込み時のヘッドæƒ
    286 å ±ã‚’記録 */
     233        /* プロパティ読み込み件数書き込み時のヘッド情報を記録 */
    287234        *p_trn_pos = _ecn_fbs_get_datalen(*(ECN_FBS_ID *)&ppk_esv);
    288235
    289         /* 応答電文用メモリにデータ追加・この時点での応答電文中プロパティ件数を記録 */
     236        /* 応答電文用メモリにデータ追加・この時点での応答電文中プロパティ件数を記録 */
    290237        a_ret = _ecn_fbs_add_data_ex(mrb, *(ECN_FBS_ID *)&ppk_esv, &ppk_esv->hdr.edata.opc, 1);
    291238        if (a_ret) {
     
    294241        }
    295242
    296         /* 応答電文中プロパティ件数を 0 に戻す(今後、終了指定するまでは読み出しプロパティ件数になる) */
     243        /* 応答電文中プロパティ件数を 0 に戻す(今後、終了指定するまでは読み出しプロパティ件数になる) */
    297244        ppk_esv->hdr.edata.opc = 0;
    298245
     
    301248
    302249/*
    303  * プロパティ値書き込み・読み出し要求電文作成:終了指定
    304  * プロパティ値書き込み・読み出し要求電文作成中の、読み出しプロパティé
    305 åˆ—を終える時に用いる。
     250 * プロパティ値書き込み・読み出し要求電文作成:終了指定
     251 * プロパティ値書き込み・読み出し要求電文作成中の、読み出しプロパティ配列を終える時に用いる。
    306252 */
    307253ER ecn_end_set_get(mrb_state *mrb, T_EDATA *ppk_esv, int fa_trn_pos)
     
    314260                return E_PAR;
    315261
    316         /* この時点での応答電文中プロパティ件数(読み出しプロパティ件数)を保持 */
     262        /* この時点での応答電文中プロパティ件数(読み出しプロパティ件数)を保持 */
    317263        a_rd_opc = ppk_esv->hdr.edata.opc;
    318264
    319         /* 応答電文中プロパティ件数(書き込みプロパティ件数)を保存位置から読み取り */
     265        /* 応答電文中プロパティ件数(書き込みプロパティ件数)を保存位置から読み取り */
    320266        a_wr_opc = _ecn_fbs_peek(mrb, *(ECN_FBS_ID *)&ppk_esv, fa_trn_pos);
    321267        if (a_wr_opc < 0) {
     
    324270        }
    325271
    326         /* 応答電文中プロパティ件数(書き込みプロパティ件数)を復å
    327 ƒ */
     272        /* 応答電文中プロパティ件数(書き込みプロパティ件数)を復元 */
    328273        ppk_esv->hdr.edata.opc = (uint8_t)a_wr_opc;
    329274
    330         /* 応答電文中プロパティ件数(読み出しプロパティ件数)を保存位置に書き込み */
     275        /* 応答電文中プロパティ件数(読み出しプロパティ件数)を保存位置に書き込み */
    331276        a_ret = _ecn_fbs_poke(mrb, *(ECN_FBS_ID *)&ppk_esv, fa_trn_pos, a_rd_opc);
    332277        if (a_ret) {
     
    339284
    340285/*
    341  * プロパティ値通知(応答要)電文作成
    342  * 引数
    343  * T_EDATA                      **ppk_esv       å–得した電文の格納å
    344 ˆ
    345  * ID                           fa_deoj         å®›å
    346 ˆã®ECHONETオブジェクトID
    347  * ID                           fa_seoj         é€ä¿¡å
    348 ƒã®ECHONETオブジェクトID
    349  * uint8_t                      fa_sepc         é€ä¿¡å
    350 ƒã®ãƒ—ロパティコード
     286 * プロパティ値通知(応答要)電文作成
     287 * 引数
     288 * T_EDATA                      **ppk_esv       取得した電文の格納先
     289 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     290 * ID                           fa_seoj         送信元のECHONETオブジェクトID
     291 * uint8_t                      fa_sepc         送信元のプロパティコード
    351292 */
    352293ER ecn_esv_infc(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, ID fa_seoj, uint8_t fa_sepc)
     
    356297
    357298/*
    358  * 要求電文へのプロパティ指定追加 (プロパティデータが付随しない場合に用いる)
     299 * 要求電文へのプロパティ指定追加 (プロパティデータが付随しない場合に用いる)
    359300 */
    360301ER ecn_add_epc(mrb_state *mrb, T_EDATA *pk_esv, uint8_t epc)
     
    364305
    365306/*
    366  * 要求電文へのプロパティデータ追加 (プロパティおよび付随データを追加する)
     307 * 要求電文へのプロパティデータ追加 (プロパティおよび付随データを追加する)
    367308 */
    368309ER ecn_add_edt(mrb_state *mrb, T_EDATA *pk_esv, uint8_t fa_epc, uint8_t fa_pdc, const void *p_edt)
     
    373314
    374315        if (!pk_esv)
    375                 return E_PAR; /* 取得したFBS_IDの格納å
    376 ˆãŒNULL */
     316                return E_PAR; /* 取得したFBS_IDの格納先がNULL */
    377317        if (ECHONET_MEMPOOL_BLOCK_SIZE <= fa_pdc)
    378                 return E_PAR; /* プロパティ値サイズが大きすぎる */
     318                return E_PAR; /* プロパティ値サイズが大きすぎる */
    379319        if (!p_edt && 0 < fa_pdc)
    380                 return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
     320                return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
    381321
    382322        a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_esv;
    383323        if (((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc == 0xFF)
    384                 return E_PAR; /* プロパティが多すぎる */
    385 
    386         /* 要求電文用メモリにデータ追加 */
     324                return E_PAR; /* プロパティが多すぎる */
     325
     326        /* 要求電文用メモリにデータ追加 */
    387327        memset(&a_ecn_prp, 0, sizeof(a_ecn_prp));
    388328        a_ecn_prp.epc = fa_epc;
     
    395335        }
    396336        if (0 < fa_pdc) {
    397                 /* 付随データ追加 */
     337                /* 付随データ追加 */
    398338                a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_id, p_edt, fa_pdc);
    399339                if (a_ret) {
     
    403343                }
    404344        }
    405         /* プロパティ数インクリメント */
     345        /* プロパティ数インクリメント */
    406346        ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc++;
    407347
     
    411351
    412352/*
    413  * 要求電文の送信
    414  * esvで指定された要求電文を送信する。
    415  * 電文に指定された宛å
    416 ˆã‹ã‚‰é€šä¿¡ãƒ¬ã‚¤ãƒ¤ãƒ¼ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’特定し、UDPパケットとして送信する。
     353 * 要求電文の送信
     354 * esvで指定された要求電文を送信する。
     355 * 電文に指定された宛先から通信レイヤーアドレスを特定し、UDPパケットとして送信する。
    417356 */
    418357ER ecn_snd_esv(ecnl_svc_task_t *svc, T_EDATA *pk_esv)
     
    424363
    425364/*
    426  * 応答電文の受信ポーリング
    427  * 応答電文を受信するのをå¾
    428 ã¤ã€‚
    429  * 受信した応答電文はppk_esvで指定したポインターにå
    430 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒè¿”される。
    431  * 応答電文の受信の有無にかかわらず、å¾
    432 ãŸãšã«é–¢æ•°ã‚’抜ける。
     365 * 応答電文の受信ポーリング
     366 * 応答電文を受信するのを待つ。
     367 * 受信した応答電文はppk_esvで指定したポインターに先頭アドレスが返される。
     368 * 応答電文の受信の有無にかかわらず、待たずに関数を抜ける。
    433369 */
    434370ER ecn_prcv_esv(ecnl_svc_task_t *svc, T_EDATA **ppk_esv)
     
    451387
    452388/*
    453  * 応答電文の破棄
     389 * 応答電文の破棄
    454390 */
    455391ER ecn_rel_esv(mrb_state *mrb, T_EDATA *pk_esv)
     
    464400
    465401/*
    466  * 応答電文の送信å
    467 ƒãƒŽãƒ¼ãƒ‰ã‚’取得する
     402 * 応答電文の送信元ノードを取得する
    468403 */
    469404ID ecn_get_enod(ecnl_svc_task_t *svc, T_EDATA *pk_esv)
     
    487422
    488423/*
    489  * 応答電文の送信å
    490 ƒæ©Ÿå™¨ã‚ªãƒ–ジェクトを取得する
     424 * 応答電文の送信元機器オブジェクトを取得する
    491425 */
    492426ID ecn_get_eobj(ecnl_svc_task_t *svc, T_EDATA *pk_esv)
     
    499433        p_snod = _ecn_eno_fnd(svc, ((T_ECN_FST_BLK *)pk_esv)->hdr.sender.id);
    500434        if (p_snod != NULL) {
    501                 /* ノードプロファイルの場合 */
     435                /* ノードプロファイルの場合 */
    502436                if ((p_esv->edata.seoj.eojx1 == EOJ_X1_PROFILE)
    503437                        && (p_esv->edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
    504438                        p_sobj = p_snod->profile;
    505439                }
    506                 /* 機器オブジェクトの場合 */
     440                /* 機器オブジェクトの場合 */
    507441                else {
    508442                        p_sobj = _ecn_eoj_fnd(p_snod, &p_esv->edata.seoj);
     
    520454
    521455/*
    522  * 応答電文解析イテレーター初期化
     456 * 応答電文解析イテレーター初期化
    523457 */
    524458ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv)
     
    532466        pk_itr->pk_esv = pk_esv;
    533467        pk_itr->count = pk_esv->hdr.edata.opc;
    534                                                                 /* 今のブロックでのプロパティ総数 */
    535         pk_itr->got_ct = 0;                     /* 今のブロックで、読み取った数 */
    536         pk_itr->next_blk_ct = 0;        /* 後続ブロック数 */
    537         pk_itr->is_eof = 0;                     /* 終端に達した時、非0 */
     468                                                                /* 今のブロックでのプロパティ総数 */
     469        pk_itr->got_ct = 0;                     /* 今のブロックで、読み取った数 */
     470        pk_itr->next_blk_ct = 0;        /* 後続ブロック数 */
     471        pk_itr->is_eof = 0;                     /* 終端に達した時、非0 */
    538472        pk_itr->cur = offsetof(T_ECN_EDT_HDR, ecn_prp);
    539473
    540474        switch (pk_esv->hdr.edata.esv) {
    541         case ESV_SET_GET:               /* 0x6E プロパティ値書き込み・読み出し要求             */
    542         case ESV_SET_GET_RES:   /* 0x7E プロパティ値書き込み・読み出し応答             */
    543         case ESV_SET_GET_SNA:   /* 0x5E プロパティ値書き込み・読み出し不可応答       */
     475        case ESV_SET_GET:               /* 0x6E プロパティ値書き込み・読み出し要求               */
     476        case ESV_SET_GET_RES:   /* 0x7E プロパティ値書き込み・読み出し応答               */
     477        case ESV_SET_GET_SNA:   /* 0x5E プロパティ値書き込み・読み出し不可応答     */
    544478                pk_itr->next_blk_ct ++;
    545479        default:
     
    551485
    552486/*
    553  * 応答電文解析イテレーターインクリメント
     487 * 応答電文解析イテレーターインクリメント
    554488 */
    555489ER ecn_itr_nxt(mrb_state *mrb, T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt)
     
    571505
    572506        if (pk_itr->is_eof)
    573                 return E_BOVR; /* データ終了 */
     507                return E_BOVR; /* データ終了 */
    574508        if (pk_itr->count <= pk_itr->got_ct && pk_itr->next_blk_ct < 1) {
    575                 pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
    576                 return E_BOVR; /* データ終了 */
     509                pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
     510                return E_BOVR; /* データ終了 */
    577511        }
    578512
    579513        a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_itr->pk_esv;
    580514
    581         /* å
    582 ƒã®ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®ã‚’保存し、イテレータのカーソル位置にする */
     515        /* 元のカーソル位置を保存し、イテレータのカーソル位置にする */
    583516        a_rd_bak = a_fbs_id.ptr->hdr.rd;
    584517        a_fbs_id.ptr->hdr.rd = pk_itr->cur;
     
    588521#endif
    589522        if (pk_itr->count <= pk_itr->got_ct && 0 < pk_itr->next_blk_ct) {
    590                 /* 次ブロックに移動 */
     523                /* 次ブロックに移動 */
    591524                pk_itr->next_blk_ct --;
    592                 pk_itr->count = 0;              /* 今のブロックでのプロパティ総数 */
    593                 pk_itr->got_ct = 0;             /* 今のブロックで、読み取った数 */
    594 
    595                 /* 次ブロックのプロパティ数を読み取る */
     525                pk_itr->count = 0;              /* 今のブロックでのプロパティ総数 */
     526                pk_itr->got_ct = 0;             /* 今のブロックで、読み取った数 */
     527
     528                /* 次ブロックのプロパティ数を読み取る */
    596529                a_rd_len = 0;
    597530                a_ret = _ecn_fbs_get_data(mrb, a_fbs_id, &a_ecn_prp.pdc, 1, &a_rd_len);
     
    599532                        goto lb_except;
    600533                if (0 < a_rd_len) {
    601                         pk_itr->count = a_ecn_prp.pdc;  /* 今のブロックでのプロパティ総数 */
     534                        pk_itr->count = a_ecn_prp.pdc;  /* 今のブロックでのプロパティ総数 */
    602535                }
    603                 a_ret = E_BOVR; /* データ終了 */
     536                a_ret = E_BOVR; /* データ終了 */
    604537                goto lb_finally;
    605538        }
    606539
    607         /* プロパティコードとデータサイズを読み取る */
     540        /* プロパティコードとデータサイズを読み取る */
    608541        memset(&a_ecn_prp, 0, sizeof(a_ecn_prp));
    609542        a_rd_len = 0;
     
    613546        if (a_rd_len < sizeof(a_ecn_prp)) {
    614547                ECN_DBG_PUT_1("ecn_itr_nxt() ecn_prp read fault. rd.cur=%d", pk_itr->cur);
    615                 pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
    616                 a_ret = E_BOVR; /* データ終了 */
     548                pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
     549                a_ret = E_BOVR; /* データ終了 */
    617550                goto lb_finally;
    618551        }
     
    627560                }
    628561                else {
    629                         /* 付随データを読み取る */
     562                        /* 付随データを読み取る */
    630563                        a_rd_len = 0;
    631564                        a_ret = _ecn_fbs_get_data(mrb, a_fbs_id, p_edt, a_ecn_prp.pdc, &a_rd_len);
     
    635568                                ECN_DBG_PUT_3("ecn_itr_nxt() edt read fault. rd.cur=%d,epc=0x%02X,pdc=%u",
    636569                                        pk_itr->cur, a_ecn_prp.epc , a_ecn_prp.pdc);
    637                                 pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
    638                                 a_ret = E_BOVR; /* データ終了 */
     570                                pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
     571                                a_ret = E_BOVR; /* データ終了 */
    639572                                goto lb_finally;
    640573                        }
     
    648581
    649582lb_finally:
    650         /* イテレータのカーソル位置を更新 */
     583        /* イテレータのカーソル位置を更新 */
    651584        pk_itr->cur = a_fbs_id.ptr->hdr.rd;
    652585
    653586lb_except:
    654         /* å
    655 ƒã®ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®ã«æˆ»ã™ */
     587        /* 元のカーソル位置に戻す */
    656588        a_fbs_id.ptr->hdr.rd = a_rd_bak;
    657589        return a_ret;
     
    659591
    660592/*
    661  * 応答電文å¾
    662 ã¡ã®å‰²ã‚Šè¾¼ã¿é€ä¿¡
     593 * 応答電文待ちの割り込み送信
    663594 */
    664595ER ecn_brk_wai(ecnl_svc_task_t *svc, const void *p_dat, int fa_datsz)
    665596{
    666597        ER                              a_ret;
    667         ECN_FBS_ID              a_fbs_id = { 0 };       /* 要求電文用メモリ     */
    668 
    669         /* 応答電文å¾
    670 ã¡ã®å‰²ã‚Šè¾¼ã¿é›»æ–‡ä½œæˆ */
     598        ECN_FBS_ID              a_fbs_id = { 0 };       /* 要求電文用メモリ     */
     599
     600        /* 応答電文待ちの割り込み電文作成 */
    671601        a_ret = _ecn_mk_brk_wai(svc, &a_fbs_id, p_dat, fa_datsz);
    672602        if (a_ret)
    673603                return a_ret;
    674604
    675         /* 割り込み送信 */
     605        /* 割り込み送信 */
    676606        a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_id, true);
    677607        if (a_ret) {
     
    681611        }
    682612
    683         /* 正常終了 */
     613        /* 正常終了 */
    684614        return a_ret;
    685615
    686616lb_except:
    687         /* データ作成失敗したら領域解放 */
     617        /* データ作成失敗したら領域解放 */
    688618        if (a_fbs_id.ptr)
    689619                _ecn_fbs_del(svc->mrb, a_fbs_id);
     
    693623
    694624/*
    695  * 割り込みデータの取得
     625 * 割り込みデータの取得
    696626 */
    697627ER ecn_get_brk_dat(mrb_state *mrb, T_EDATA *pk_esv, void *p_buf, int fa_bufsz, int *p_datsz)
     
    713643        }
    714644
    715         /* 読み取り位置をå
    716 ˆé ­ã«æˆ»ã™ */
     645        /* 読み取り位置を先頭に戻す */
    717646        a_ret = _ecn_fbs_set_rpos(a_fbs, 0);
    718647        if (a_ret) {
     
    722651        }
    723652
    724         /* 付随データを読み込む */
     653        /* 付随データを読み込む */
    725654        if (p_buf && 0 < fa_bufsz) {
    726655                a_len = 0;
     
    739668#ifndef ECN_USER_DATA_PROP_SET
    740669/*
    741  * データ設定関数
     670 * データ設定関数
    742671 */
    743672int ecn_data_prop_set(ecnl_svc_task_t *svc, const EPRPINIB *item, const void *src, int size, bool_t *anno)
     
    757686#ifndef ECN_USER_DATA_PROP_GET
    758687/*
    759  * データ取得関数
     688 * データ取得関数
    760689 */
    761690int ecn_data_prop_get(ecnl_svc_task_t *svc, const EPRPINIB *item, void *dst, int size)
Note: See TracChangeset for help on using the changeset viewer.