Ignore:
Timestamp:
May 22, 2019, 10:03:37 PM (5 years ago)
Author:
coas-nagasima
Message:

ビルドが通るよう更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • azure_iot_hub/trunk/ntshell/echonet/echonet.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r388 r389  
    44 *  Copyright (C) 2014 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 *  @(#) $Id$
     
    6348
    6449/*
    65  * ECHONET Liteサービス処理開始
     50 * ECHONET Liteサービス処理開始
    6651 */
    6752ER ecn_sta_svc()
     
    7156
    7257/*
    73  * インスタンスリスト通知の送信
     58 * インスタンスリスト通知の送信
    7459 */
    7560ER ecn_ntf_inl()
     
    7964
    8065/*
    81  * ECHONETオブジェクト参ç
    82 §
    83  * 引数
    84  * ID           fa_eobjid       ECHONETオブジェクトID
    85  * T_REOBJ      *fp_eobj        ECHONETオブジェクトの設定å†
    86 å®¹ã‚³ãƒ”ーå
    87 ˆ
     66 * ECHONETオブジェクト参照
     67 * 引数
     68 * ID           fa_eobjid       ECHONETオブジェクトID
     69 * T_REOBJ      *fp_eobj        ECHONETオブジェクトの設定内容コピー先
    8870 *
    89  * eobjidで指定したECHONETオブジェクトの設定å†
    90 å®¹ã‚’参ç
    91 §ã™ã‚‹ã€‚
    92  * 参ç
    93 §ã—た設定å†
    94 å®¹ã¯pk_eobjに指定したメモリに返される。
     71 * eobjidで指定したECHONETオブジェクトの設定内容を参照する。
     72 * 参照した設定内容はpk_eobjに指定したメモリに返される。
    9573 */
    9674ER ecn_ref_eobj(ID fa_eobjid, T_REOBJ *fp_eobj)
     
    9977
    10078        if (!fp_eobj)
    101                 return E_PAR;   /* パラメータエラー */
     79                return E_PAR;   /* パラメータエラー */
    10280
    10381        if ((fa_eobjid <= 0) || (fa_eobjid > tmax_eobjid))
    104                 return E_OBJ;   /* オブジェクト未登録 */
     82                return E_OBJ;   /* オブジェクト未登録 */
    10583
    10684        p_obj = &eobjinib_table[fa_eobjid - 1];
     
    11290
    11391/*
    114  * ECHONETプロパティ参ç
    115 §
    116  * 引数
    117  * ID                   fa_eobjid       ECHONETオブジェクトID
    118  * uint8_t              fa_epc          プロパティコード
    119  * T_RPRP               *fp_eprp        ECHONETオブジェクトのプロパティ設定å†
    120 å®¹ã‚³ãƒ”ーå
    121 ˆ
     92 * ECHONETプロパティ参照
     93 * 引数
     94 * ID                   fa_eobjid       ECHONETオブジェクトID
     95 * uint8_t              fa_epc          プロパティコード
     96 * T_RPRP               *fp_eprp        ECHONETオブジェクトのプロパティ設定内容コピー先
    12297 *
    123  * eobjidで指定したECHONETオブジェクトの、epcで指定したプロパティの設定å†
    124 å®¹ã‚’参ç
    125 §ã™ã‚‹ã€‚
    126  * 参ç
    127 §ã—た設定å†
    128 å®¹ã¯pk_eprpに指定したメモリに返される。
     98 * eobjidで指定したECHONETオブジェクトの、epcで指定したプロパティの設定内容を参照する。
     99 * 参照した設定内容はpk_eprpに指定したメモリに返される。
    129100 */
    130101ER ecn_ref_eprp(ID fa_eobjid, uint8_t fa_epc, T_RPRP *fp_eprp)
     
    135106
    136107        if (!fp_eprp)
    137                 return E_PAR;   /* パラメータエラー */
     108                return E_PAR;   /* パラメータエラー */
    138109
    139110        if ((fa_eobjid <= 0) || (fa_eobjid > tmax_eobjid))
    140                 return E_OBJ;   /* オブジェクト未登録 */
     111                return E_OBJ;   /* オブジェクト未登録 */
    141112
    142113        p_obj = &eobjinib_table[fa_eobjid - 1];
    143114
    144         /* eojの持つプロパティ初期化定義é
    145 åˆ—から検索 */
     115        /* eojの持つプロパティ初期化定義配列から検索 */
    146116        p = p_obj->eprp;
    147117        for (i = 0; i < p_obj->eprpcnt; i++, p++) {
     
    152122        }
    153123
    154         return E_PAR;   /* パラメータエラー */
    155 }
    156 
    157 /*
    158  * プロパティ値書き込み要求(応答不要)電文作成
    159  * 引数
    160  * T_EDATA                      **ppk_esv       å–得した電文の格納å
    161 ˆ
    162  * ID                           fa_deoj         å®›å
    163 ˆã®ECHONETオブジェクトID
    164  * uint8_t                      fa_epc          プロパティコード
    165  * uint8_t                      fa_pdc          プロパティ値データサイズ
    166  * const void           *p_edt          プロパティ値データ
     124        return E_PAR;   /* パラメータエラー */
     125}
     126
     127/*
     128 * プロパティ値書き込み要求(応答不要)電文作成
     129 * 引数
     130 * T_EDATA                      **ppk_esv       取得した電文の格納先
     131 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     132 * uint8_t                      fa_epc          プロパティコード
     133 * uint8_t                      fa_pdc          プロパティ値データサイズ
     134 * const void           *p_edt          プロパティ値データ
    167135 *
    168  *      プロパティ値書き込み要求(応答不要)電文を作成する。
    169  *      電文はdeojで指定したECHONETオブジェクトを宛å
    170 ˆã¨ã—、
    171  *      電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
    172  *      プロパティコード、データサイズ、データを電文に設定する。
    173  *      作成した電文のå
    174 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ãƒã‚¤ãƒ³ã‚¿çµŒç”±ã§è¿”される。
     136 *      プロパティ値書き込み要求(応答不要)電文を作成する。
     137 *      電文はdeojで指定したECHONETオブジェクトを宛先とし、
     138 *      電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
     139 *      プロパティコード、データサイズ、データを電文に設定する。
     140 *      作成した電文の先頭アドレスはポインタ経由で返される。
    175141 */
    176142ER ecn_esv_seti(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
     
    181147
    182148/*
    183  * プロパティ値書き込み要求(応答要)電文作成
    184  * 引数
    185  * T_EDATA                      **ppk_esv       å–得した電文の格納å
    186 ˆ
    187  * ID                           fa_deoj         å®›å
    188 ˆã®ECHONETオブジェクトID
    189  * uint8_t                      fa_epc          プロパティコード
    190  * uint8_t                      fa_pdc          プロパティ値データサイズ
    191  * const void           *p_edt          プロパティ値データ
     149 * プロパティ値書き込み要求(応答要)電文作成
     150 * 引数
     151 * T_EDATA                      **ppk_esv       取得した電文の格納先
     152 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     153 * uint8_t                      fa_epc          プロパティコード
     154 * uint8_t                      fa_pdc          プロパティ値データサイズ
     155 * const void           *p_edt          プロパティ値データ
    192156 *
    193  *      プロパティ値書き込み要求(応答要)電文を作成する。
    194  *      電文はdeojで指定したECHONETオブジェクトを宛å
    195 ˆã¨ã—、
    196  *      電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
    197  *      プロパティコード、データサイズ、データを電文に設定する。
    198  *      作成した電文のå
    199 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ãƒã‚¤ãƒ³ã‚¿çµŒç”±ã§è¿”される。
     157 *      プロパティ値書き込み要求(応答要)電文を作成する。
     158 *      電文はdeojで指定したECHONETオブジェクトを宛先とし、
     159 *      電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
     160 *      プロパティコード、データサイズ、データを電文に設定する。
     161 *      作成した電文の先頭アドレスはポインタ経由で返される。
    200162 */
    201163ER ecn_esv_setc(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
     
    206168
    207169/*
    208  * プロパティ値読み出し要求電文作成
    209  * 引数
    210  * T_EDATA                      **ppk_esv       å–得した電文の格納å
    211 ˆ
    212  * ID                           fa_deoj         å®›å
    213 ˆã®ECHONETオブジェクトID
    214  * uint8_t                      fa_epc          プロパティコード
     170 * プロパティ値読み出し要求電文作成
     171 * 引数
     172 * T_EDATA                      **ppk_esv       取得した電文の格納先
     173 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     174 * uint8_t                      fa_epc          プロパティコード
    215175 *
    216  * プロパティ値読み出し要求電文を作成する。
    217  * 電文はdeojで指定したECHONETオブジェクトを宛å
    218 ˆã¨ã—、
    219  * 電文の初めのプロパティ値として、epcで指定された
    220  * プロパティコードを電文に設定する。
    221  * 作成した電文のå
    222 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ãƒã‚¤ãƒ³ã‚¿çµŒç”±ã§è¿”される。
     176 * プロパティ値読み出し要求電文を作成する。
     177 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
     178 * 電文の初めのプロパティ値として、epcで指定された
     179 * プロパティコードを電文に設定する。
     180 * 作成した電文の先頭アドレスはポインタ経由で返される。
    223181 */
    224182ER ecn_esv_get(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc)
     
    228186
    229187/*
    230  * プロパティ値通知要求電文作成
    231  * 引数
    232  * T_EDATA                      **ppk_esv       å–得した電文の格納å
    233 ˆ
    234  * ID                           fa_deoj         å®›å
    235 ˆã®ECHONETオブジェクトID
    236  * uint8_t                      fa_epc          プロパティコード
     188 * プロパティ値通知要求電文作成
     189 * 引数
     190 * T_EDATA                      **ppk_esv       取得した電文の格納先
     191 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     192 * uint8_t                      fa_epc          プロパティコード
    237193 *
    238  * プロパティ値通知要求電文を作成する。
    239  * 電文はdeojで指定したECHONETオブジェクトを宛å
    240 ˆã¨ã—、
    241  * 電文の初めのプロパティ値として、epcで指定された
    242  * プロパティコードを電文に設定する。
    243  * 作成した電文のå
    244 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ãƒã‚¤ãƒ³ã‚¿çµŒç”±ã§è¿”される。
     194 * プロパティ値通知要求電文を作成する。
     195 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
     196 * 電文の初めのプロパティ値として、epcで指定された
     197 * プロパティコードを電文に設定する。
     198 * 作成した電文の先頭アドレスはポインタ経由で返される。
    245199 */
    246200ER ecn_esv_inf_req(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc)
     
    250204
    251205/*
    252  * プロパティ値書き込み・読み出し要求電文作成
    253  * 引数
    254  * T_EDATA                      **ppk_esv       å–得した電文の格納å
    255 ˆ
    256  * ID                           fa_deoj         å®›å
    257 ˆã®ECHONETオブジェクトID
    258  * uint8_t                      fa_epc          プロパティコード
    259  * uint8_t                      fa_pdc          プロパティ値データサイズ
    260  * const void           *p_edt          プロパティ値データ
     206 * プロパティ値書き込み・読み出し要求電文作成
     207 * 引数
     208 * T_EDATA                      **ppk_esv       取得した電文の格納先
     209 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     210 * uint8_t                      fa_epc          プロパティコード
     211 * uint8_t                      fa_pdc          プロパティ値データサイズ
     212 * const void           *p_edt          プロパティ値データ
    261213 *
    262  * プロパティ値書き込み・読み出し要求電文を作成する。
    263  * 電文はdeojで指定したECHONETオブジェクトを宛å
    264 ˆã¨ã—、
    265  * 電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
    266  * プロパティコード、データサイズ、データを電文に設定する。
    267  * 作成した電文のå
    268 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ãƒã‚¤ãƒ³ã‚¿çµŒç”±ã§è¿”される。
     214 * プロパティ値書き込み・読み出し要求電文を作成する。
     215 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
     216 * 電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
     217 * プロパティコード、データサイズ、データを電文に設定する。
     218 * 作成した電文の先頭アドレスはポインタ経由で返される。
    269219 */
    270220ER ecn_esv_set_get(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
     
    275225
    276226/*
    277  * プロパティ値書き込み・読み出し要求電文作成:折り返し指定
    278  * プロパティ値書き込み・読み出し要求電文作成中の、書き込みプロパティé
    279 åˆ—を終えて
    280  * 読み出しプロパティé
    281 åˆ—に移る時に用いる。
     227 * プロパティ値書き込み・読み出し要求電文作成:折り返し指定
     228 * プロパティ値書き込み・読み出し要求電文作成中の、書き込みプロパティ配列を終えて
     229 * 読み出しプロパティ配列に移る時に用いる。
    282230 */
    283231ER ecn_trn_set_get(T_EDATA *ppk_esv, int *p_trn_pos)
     
    290238                return E_PAR;
    291239
    292         /* プロパティ読み込み件数書き込み時のヘッドæƒ
    293 å ±ã‚’記録 */
     240        /* プロパティ読み込み件数書き込み時のヘッド情報を記録 */
    294241        *p_trn_pos = _ecn_fbs_get_datalen(*(ECN_FBS_ID *)&ppk_esv);
    295242
    296         /* 応答電文用メモリにデータ追加・この時点での応答電文中プロパティ件数を記録 */
     243        /* 応答電文用メモリにデータ追加・この時点での応答電文中プロパティ件数を記録 */
    297244        a_ret = _ecn_fbs_add_data_ex(*(ECN_FBS_ID *)&ppk_esv, &ppk_esv->hdr.edata.opc, 1);
    298245        if (a_ret) {
     
    301248        }
    302249
    303         /* 応答電文中プロパティ件数を 0 に戻す(今後、終了指定するまでは読み出しプロパティ件数になる) */
     250        /* 応答電文中プロパティ件数を 0 に戻す(今後、終了指定するまでは読み出しプロパティ件数になる) */
    304251        ppk_esv->hdr.edata.opc = 0;
    305252
     
    308255
    309256/*
    310  * プロパティ値書き込み・読み出し要求電文作成:終了指定
    311  * プロパティ値書き込み・読み出し要求電文作成中の、読み出しプロパティé
    312 åˆ—を終える時に用いる。
     257 * プロパティ値書き込み・読み出し要求電文作成:終了指定
     258 * プロパティ値書き込み・読み出し要求電文作成中の、読み出しプロパティ配列を終える時に用いる。
    313259 */
    314260ER ecn_end_set_get(T_EDATA *ppk_esv, int fa_trn_pos)
     
    321267                return E_PAR;
    322268
    323         /* この時点での応答電文中プロパティ件数(読み出しプロパティ件数)を保持 */
     269        /* この時点での応答電文中プロパティ件数(読み出しプロパティ件数)を保持 */
    324270        a_rd_opc = ppk_esv->hdr.edata.opc;
    325271
    326         /* 応答電文中プロパティ件数(書き込みプロパティ件数)を保存位置から読み取り */
     272        /* 応答電文中プロパティ件数(書き込みプロパティ件数)を保存位置から読み取り */
    327273        a_wr_opc = _ecn_fbs_peek(*(ECN_FBS_ID *)&ppk_esv, fa_trn_pos);
    328274        if (a_wr_opc < 0) {
     
    331277        }
    332278
    333         /* 応答電文中プロパティ件数(書き込みプロパティ件数)を復å
    334 ƒ */
     279        /* 応答電文中プロパティ件数(書き込みプロパティ件数)を復元 */
    335280        ppk_esv->hdr.edata.opc = (uint8_t)a_wr_opc;
    336281
    337         /* 応答電文中プロパティ件数(読み出しプロパティ件数)を保存位置に書き込み */
     282        /* 応答電文中プロパティ件数(読み出しプロパティ件数)を保存位置に書き込み */
    338283        a_ret = _ecn_fbs_poke(*(ECN_FBS_ID *)&ppk_esv, fa_trn_pos, a_rd_opc);
    339284        if (a_ret) {
     
    346291
    347292/*
    348  * プロパティ値通知(応答要)電文作成
    349  * 引数
    350  * T_EDATA                      **ppk_esv       å–得した電文の格納å
    351 ˆ
    352  * ID                           fa_deoj         å®›å
    353 ˆã®ECHONETオブジェクトID
    354  * ID                           fa_seoj         é€ä¿¡å
    355 ƒã®ECHONETオブジェクトID
    356  * uint8_t                      fa_sepc         é€ä¿¡å
    357 ƒã®ãƒ—ロパティコード
     293 * プロパティ値通知(応答要)電文作成
     294 * 引数
     295 * T_EDATA                      **ppk_esv       取得した電文の格納先
     296 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     297 * ID                           fa_seoj         送信元のECHONETオブジェクトID
     298 * uint8_t                      fa_sepc         送信元のプロパティコード
    358299 */
    359300ER ecn_esv_infc(T_EDATA **ppk_esv, ID fa_deoj, ID fa_seoj, uint8_t fa_sepc)
     
    363304
    364305/*
    365  * 要求電文へのプロパティ指定追加 (プロパティデータが付随しない場合に用いる)
     306 * 要求電文へのプロパティ指定追加 (プロパティデータが付随しない場合に用いる)
    366307 */
    367308ER ecn_add_epc(T_EDATA *pk_esv, uint8_t epc)
     
    371312
    372313/*
    373  * 要求電文へのプロパティデータ追加 (プロパティおよび付随データを追加する)
     314 * 要求電文へのプロパティデータ追加 (プロパティおよび付随データを追加する)
    374315 */
    375316ER ecn_add_edt(T_EDATA *pk_esv, uint8_t fa_epc, uint8_t fa_pdc, const void *p_edt)
     
    380321
    381322        if (!pk_esv)
    382                 return E_PAR; /* 取得したFBS_IDの格納å
    383 ˆãŒNULL */
     323                return E_PAR; /* 取得したFBS_IDの格納先がNULL */
    384324        if (ECHONET_MEMPOOL_BLOCK_SIZE <= fa_pdc)
    385                 return E_PAR; /* プロパティ値サイズが大きすぎる */
     325                return E_PAR; /* プロパティ値サイズが大きすぎる */
    386326        if (!p_edt && 0 < fa_pdc)
    387                 return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
     327                return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
    388328
    389329        a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_esv;
    390330        if (((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc == 0xFF)
    391                 return E_PAR; /* プロパティが多すぎる */
    392 
    393         /* 要求電文用メモリにデータ追加 */
     331                return E_PAR; /* プロパティが多すぎる */
     332
     333        /* 要求電文用メモリにデータ追加 */
    394334        memset(&a_ecn_prp, 0, sizeof(a_ecn_prp));
    395335        a_ecn_prp.epc = fa_epc;
     
    403343        }
    404344        if (0 < fa_pdc) {
    405                 /* 付随データ追加 */
     345                /* 付随データ追加 */
    406346                a_ret = _ecn_fbs_add_data_ex(a_fbs_id, p_edt, fa_pdc);
    407347                if (a_ret) {
     
    412352                }
    413353        }
    414         /* プロパティ数インクリメント */
     354        /* プロパティ数インクリメント */
    415355        ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc++;
    416356
     
    420360
    421361/*
    422  * 要求電文の送信
    423  * esvで指定された要求電文を送信する。
    424  * 電文に指定された宛å
    425 ˆã‹ã‚‰IPアドレスを特定し、UDPパケットとして送信する。
     362 * 要求電文の送信
     363 * esvで指定された要求電文を送信する。
     364 * 電文に指定された宛先からIPアドレスを特定し、UDPパケットとして送信する。
    426365 */
    427366ER ecn_snd_esv(T_EDATA *pk_esv)
     
    433372
    434373/*
    435  * 応答電文の受信永遠å¾
    436 ã¡
    437  * 応答電文を受信するのをå¾
    438 ã¤ã€‚
    439  * 受信した応答電文はppk_esvで指定したポインターにå
    440 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒè¿”される。
    441  * 要求電文の宛å
    442 ˆã®ECHONETオブジェクトがネットワークに存在しない場合、
    443  * 応答電文は返送されないので、永遠にå¾
    444 ã¤ã“とになるのでタイムアウト付きの
    445  * ecn_trcv_esvを使用することを推奨する。
     374 * 応答電文の受信永遠待ち
     375 * 応答電文を受信するのを待つ。
     376 * 受信した応答電文はppk_esvで指定したポインターに先頭アドレスが返される。
     377 * 要求電文の宛先のECHONETオブジェクトがネットワークに存在しない場合、
     378 * 応答電文は返送されないので、永遠に待つことになるのでタイムアウト付きの
     379 * ecn_trcv_esvを使用することを推奨する。
    446380 */
    447381ER ecn_rcv_esv(T_EDATA **ppk_esv)
     
    451385
    452386/*
    453  * 応答電文の受信å¾
    454 ã¡ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã‚ã‚Š
    455  * 応答電文を受信するのをå¾
    456 ã¤ã€‚
    457  * 受信した応答電文はppk_esvで指定したポインターにå
    458 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒè¿”される。
    459  * tmoで指定されたタイムアウト時間が経過しても応答電文を受信しない場合、
    460  * å¾
    461 ã¡ãŒè§£é™¤ã•ã‚Œã€æˆ»ã‚Šå€¤ãŒE_TMOで返される。
    462  * tmoにTMO_FEVRを指定するとecn_rcv_esvと同じ振る舞いをする。
    463  * tmoに0を指定するとecn_prcv_esvと同じ振る舞いをする。
     387 * 応答電文の受信待ちタイムアウトあり
     388 * 応答電文を受信するのを待つ。
     389 * 受信した応答電文はppk_esvで指定したポインターに先頭アドレスが返される。
     390 * tmoで指定されたタイムアウト時間が経過しても応答電文を受信しない場合、
     391 * 待ちが解除され、戻り値がE_TMOで返される。
     392 * tmoにTMO_FEVRを指定するとecn_rcv_esvと同じ振る舞いをする。
     393 * tmoに0を指定するとecn_prcv_esvと同じ振る舞いをする。
    464394 */
    465395ER ecn_trcv_esv(T_EDATA **ppk_esv, int fa_tmout)
     
    482412
    483413/*
    484  * 応答電文の受信ポーリング
    485  * 応答電文を受信するのをå¾
    486 ã¤ã€‚
    487  * 受信した応答電文はppk_esvで指定したポインターにå
    488 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒè¿”される。
    489  * 応答電文の受信の有無にかかわらず、å¾
    490 ãŸãšã«é–¢æ•°ã‚’抜ける。
     414 * 応答電文の受信ポーリング
     415 * 応答電文を受信するのを待つ。
     416 * 受信した応答電文はppk_esvで指定したポインターに先頭アドレスが返される。
     417 * 応答電文の受信の有無にかかわらず、待たずに関数を抜ける。
    491418 */
    492419ER ecn_prcv_esv(T_EDATA **ppk_esv)
     
    496423
    497424/*
    498  * 応答電文の破棄
     425 * 応答電文の破棄
    499426 */
    500427ER ecn_rel_esv(T_EDATA *pk_esv)
     
    509436
    510437/*
    511  * 応答電文の送信å
    512 ƒãƒŽãƒ¼ãƒ‰ã‚’取得する
     438 * 応答電文の送信元ノードを取得する
    513439 */
    514440ID ecn_get_enod(T_EDATA *pk_esv)
     
    532458
    533459/*
    534  * 応答電文の送信å
    535 ƒæ©Ÿå™¨ã‚ªãƒ–ジェクトを取得する
     460 * 応答電文の送信元機器オブジェクトを取得する
    536461 */
    537462ID ecn_get_eobj(T_EDATA *pk_esv)
     
    544469        p_snod = _ecn_eno_fnd(((T_ECN_FST_BLK *)pk_esv)->hdr.sender.id);
    545470        if (p_snod != NULL) {
    546                 /* ノードプロファイルの場合 */
     471                /* ノードプロファイルの場合 */
    547472                if ((p_esv->edata.seoj.eojx1 == EOJ_X1_PROFILE)
    548473                        && (p_esv->edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
    549474                        p_sobj = p_snod->profile;
    550475                }
    551                 /* 機器オブジェクトの場合 */
     476                /* 機器オブジェクトの場合 */
    552477                else {
    553478                        p_sobj = _ecn_eoj_fnd(p_snod, &p_esv->edata.seoj);
     
    565490
    566491/*
    567  * 応答電文解析イテレーター初期化
     492 * 応答電文解析イテレーター初期化
    568493 */
    569494ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv)
     
    577502        pk_itr->pk_esv = pk_esv;
    578503        pk_itr->count = pk_esv->hdr.edata.opc;
    579                                                                 /* 今のブロックでのプロパティ総数 */
    580         pk_itr->got_ct = 0;                     /* 今のブロックで、読み取った数 */
    581         pk_itr->next_blk_ct = 0;        /* 後続ブロック数 */
    582         pk_itr->is_eof = 0;                     /* 終端に達した時、非0 */
     504                                                                /* 今のブロックでのプロパティ総数 */
     505        pk_itr->got_ct = 0;                     /* 今のブロックで、読み取った数 */
     506        pk_itr->next_blk_ct = 0;        /* 後続ブロック数 */
     507        pk_itr->is_eof = 0;                     /* 終端に達した時、非0 */
    583508        pk_itr->cur = offsetof(T_ECN_EDT_HDR, ecn_prp);
    584509
    585510        switch (pk_esv->hdr.edata.esv) {
    586         case ESV_SET_GET:               /* 0x6E プロパティ値書き込み・読み出し要求             */
    587         case ESV_SET_GET_RES:   /* 0x7E プロパティ値書き込み・読み出し応答             */
    588         case ESV_SET_GET_SNA:   /* 0x5E プロパティ値書き込み・読み出し不可応答       */
     511        case ESV_SET_GET:               /* 0x6E プロパティ値書き込み・読み出し要求               */
     512        case ESV_SET_GET_RES:   /* 0x7E プロパティ値書き込み・読み出し応答               */
     513        case ESV_SET_GET_SNA:   /* 0x5E プロパティ値書き込み・読み出し不可応答     */
    589514                pk_itr->next_blk_ct ++;
    590515        default:
     
    596521
    597522/*
    598  * 応答電文解析イテレーターインクリメント
     523 * 応答電文解析イテレーターインクリメント
    599524 */
    600525ER ecn_itr_nxt(T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt)
     
    616541
    617542        if (pk_itr->is_eof)
    618                 return E_BOVR; /* データ終了 */
     543                return E_BOVR; /* データ終了 */
    619544        if (pk_itr->count <= pk_itr->got_ct && pk_itr->next_blk_ct < 1) {
    620                 pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
    621                 return E_BOVR; /* データ終了 */
     545                pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
     546                return E_BOVR; /* データ終了 */
    622547        }
    623548
    624549        a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_itr->pk_esv;
    625550
    626         /* å
    627 ƒã®ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®ã‚’保存し、イテレータのカーソル位置にする */
     551        /* 元のカーソル位置を保存し、イテレータのカーソル位置にする */
    628552        a_rd_bak = a_fbs_id.ptr->hdr.rd;
    629553        a_fbs_id.ptr->hdr.rd = pk_itr->cur;
     
    633557#endif
    634558        if (pk_itr->count <= pk_itr->got_ct && 0 < pk_itr->next_blk_ct) {
    635                 /* 次ブロックに移動 */
     559                /* 次ブロックに移動 */
    636560                pk_itr->next_blk_ct --;
    637                 pk_itr->count = 0;              /* 今のブロックでのプロパティ総数 */
    638                 pk_itr->got_ct = 0;             /* 今のブロックで、読み取った数 */
    639 
    640                 /* 次ブロックのプロパティ数を読み取る */
     561                pk_itr->count = 0;              /* 今のブロックでのプロパティ総数 */
     562                pk_itr->got_ct = 0;             /* 今のブロックで、読み取った数 */
     563
     564                /* 次ブロックのプロパティ数を読み取る */
    641565                a_rd_len = 0;
    642566                a_ret = _ecn_fbs_get_data(a_fbs_id, &a_ecn_prp.pdc, 1, &a_rd_len);
     
    644568                        goto lb_except;
    645569                if (0 < a_rd_len) {
    646                         pk_itr->count = a_ecn_prp.pdc;  /* 今のブロックでのプロパティ総数 */
     570                        pk_itr->count = a_ecn_prp.pdc;  /* 今のブロックでのプロパティ総数 */
    647571                }
    648                 a_ret = E_BOVR; /* データ終了 */
     572                a_ret = E_BOVR; /* データ終了 */
    649573                goto lb_finally;
    650574        }
    651575
    652         /* プロパティコードとデータサイズを読み取る */
     576        /* プロパティコードとデータサイズを読み取る */
    653577        memset(&a_ecn_prp, 0, sizeof(a_ecn_prp));
    654578        a_rd_len = 0;
     
    658582        if (a_rd_len < sizeof(a_ecn_prp)) {
    659583                ECN_DBG_PUT_1("ecn_itr_nxt() ecn_prp read fault. rd.cur=%d", pk_itr->cur);
    660                 pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
    661                 a_ret = E_BOVR; /* データ終了 */
     584                pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
     585                a_ret = E_BOVR; /* データ終了 */
    662586                goto lb_finally;
    663587        }
     
    672596                }
    673597                else {
    674                         /* 付随データを読み取る */
     598                        /* 付随データを読み取る */
    675599                        a_rd_len = 0;
    676600                        a_ret = _ecn_fbs_get_data(a_fbs_id, p_edt, a_ecn_prp.pdc, &a_rd_len);
     
    680604                                ECN_DBG_PUT_3("ecn_itr_nxt() edt read fault. rd.cur=%d,epc=0x%02X,pdc=%u",
    681605                                        pk_itr->cur, a_ecn_prp.epc , a_ecn_prp.pdc);
    682                                 pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
    683                                 a_ret = E_BOVR; /* データ終了 */
     606                                pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
     607                                a_ret = E_BOVR; /* データ終了 */
    684608                                goto lb_finally;
    685609                        }
     
    693617
    694618lb_finally:
    695         /* イテレータのカーソル位置を更新 */
     619        /* イテレータのカーソル位置を更新 */
    696620        pk_itr->cur = a_fbs_id.ptr->hdr.rd;
    697621
    698622lb_except:
    699         /* å
    700 ƒã®ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®ã«æˆ»ã™ */
     623        /* 元のカーソル位置に戻す */
    701624        a_fbs_id.ptr->hdr.rd = a_rd_bak;
    702625        return a_ret;
     
    704627
    705628/*
    706  * 応答電文å¾
    707 ã¡ã®å‰²ã‚Šè¾¼ã¿é€ä¿¡
     629 * 応答電文待ちの割り込み送信
    708630 */
    709631ER ecn_brk_wai(const void *p_dat, int fa_datsz)
    710632{
    711633        ER                              a_ret;
    712         ECN_FBS_ID              a_fbs_id = { 0 };       /* 要求電文用メモリ     */
    713 
    714         /* 応答電文å¾
    715 ã¡ã®å‰²ã‚Šè¾¼ã¿é›»æ–‡ä½œæˆ */
     634        ECN_FBS_ID              a_fbs_id = { 0 };       /* 要求電文用メモリ     */
     635
     636        /* 応答電文待ちの割り込み電文作成 */
    716637        a_ret = _ecn_mk_brk_wai(&a_fbs_id, p_dat, fa_datsz);
    717638        if (a_ret)
    718639                return a_ret;
    719640
    720         /* 割り込み送信 */
     641        /* 割り込み送信 */
    721642        a_ret = _ecn_tsk_snd_dtq(a_fbs_id, true);
    722643        if (a_ret) {
     
    725646        }
    726647
    727         /* 正常終了 */
     648        /* 正常終了 */
    728649        return a_ret;
    729650
    730651lb_except:
    731         /* データ作成失敗したら領域解放 */
     652        /* データ作成失敗したら領域解放 */
    732653        if (a_fbs_id.ptr)
    733654                _ecn_fbs_del(a_fbs_id);
     
    737658
    738659/*
    739  * 割り込みデータの取得
     660 * 割り込みデータの取得
    740661 */
    741662ER ecn_get_brk_dat(T_EDATA *pk_esv, void *p_buf, int fa_bufsz, int *p_datsz)
     
    757678        }
    758679
    759         /* 読み取り位置をå
    760 ˆé ­ã«æˆ»ã™ */
     680        /* 読み取り位置を先頭に戻す */
    761681        a_ret = _ecn_fbs_set_rpos(a_fbs, 0);
    762682        if (a_ret) {
     
    766686        }
    767687
    768         /* 付随データを読み込む */
     688        /* 付随データを読み込む */
    769689        if (p_buf && 0 < fa_bufsz) {
    770690                a_len = 0;
     
    783703#ifndef ECN_USER_DATA_PROP_SET
    784704/*
    785  * データ設定関数
     705 * データ設定関数
    786706 */
    787707int ecn_data_prop_set(const EPRPINIB *item, const void *src, int size, bool_t *anno)
     
    801721#ifndef ECN_USER_DATA_PROP_GET
    802722/*
    803  * データ取得関数
     723 * データ取得関数
    804724 */
    805725int ecn_data_prop_get(const EPRPINIB *item, void *dst, int size)
Note: See TracChangeset for help on using the changeset viewer.