Index: uKadecot/trunk/ecnl_ssp/echonet.c
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet.c	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet.c	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -51,5 +47,5 @@
 
 /*
- * ECHONET LiteT[rXJn
+ * ECHONET Liteサービス処理開始
  */
 ER ecn_sta_svc()
@@ -59,11 +55,11 @@
 
 /*
- * ECHONETIuWFNgQÆ
- * ø
- * ID		fa_eobjid	ECHONETIuWFNgID
- * T_REOBJ	*fp_eobj	ECHONETIuWFNgÌÝèàeRs[æ
+ * ECHONETオブジェクト参照
+ * 引数
+ * ID		fa_eobjid	ECHONETオブジェクトID
+ * T_REOBJ	*fp_eobj	ECHONETオブジェクトの設定内容コピー先
  *
- * eobjidÅwèµ½ECHONETIuWFNgÌÝèàeðQÆ·éB
- * QÆµ½ÝèàeÍpk_eobjÉwèµ½ÉÔ³êéB
+ * eobjidで指定したECHONETオブジェクトの設定内容を参照する。
+ * 参照した設定内容はpk_eobjに指定したメモリに返される。
  */
 ER ecn_ref_eobj(ID fa_eobjid, T_REOBJ *fp_eobj)
@@ -72,8 +68,8 @@
 
 	if (!fp_eobj)
-		return E_PAR;	/* p[^G[ */
+		return E_PAR;	/* パラメータエラー */
 
 	if ((fa_eobjid <= 0) || (fa_eobjid > tmax_eobjid))
-		return E_OBJ;	/* IuWFNg¢o^ */
+		return E_OBJ;	/* オブジェクト未登録 */
 
 	p_obj = &eobjinib_table[fa_eobjid - 1];
@@ -85,12 +81,12 @@
 
 /*
- * ECHONETvpeBQÆ
- * ø
- * ID			fa_eobjid	ECHONETIuWFNgID
- * uint8_t		fa_epc		vpeBR[h
- * T_RPRP		*fp_eprp	ECHONETIuWFNgÌvpeBÝèàeRs[æ
+ * ECHONETプロパティ参照
+ * 引数
+ * ID			fa_eobjid	ECHONETオブジェクトID
+ * uint8_t		fa_epc		プロパティコード
+ * T_RPRP		*fp_eprp	ECHONETオブジェクトのプロパティ設定内容コピー先
  *
- * eobjidÅwèµ½ECHONETIuWFNgÌAepcÅwèµ½vpeBÌÝèàeðQÆ·éB
- * QÆµ½ÝèàeÍpk_eprpÉwèµ½ÉÔ³êéB
+ * eobjidで指定したECHONETオブジェクトの、epcで指定したプロパティの設定内容を参照する。
+ * 参照した設定内容はpk_eprpに指定したメモリに返される。
  */
 ER ecn_ref_eprp(ID fa_eobjid, uint8_t fa_epc, T_RPRP *fp_eprp)
@@ -101,12 +97,12 @@
 
 	if (!fp_eprp)
-		return E_PAR;	/* p[^G[ */
+		return E_PAR;	/* パラメータエラー */
 
 	if ((fa_eobjid <= 0) || (fa_eobjid > tmax_eobjid))
-		return E_OBJ;	/* IuWFNg¢o^ */
+		return E_OBJ;	/* オブジェクト未登録 */
 
 	p_obj = &eobjinib_table[fa_eobjid - 1];
 
-	/* eojÌÂvpeBú»è`zñ©çõ */
+	/* eojの持つプロパティ初期化定義配列から検索 */
 	p = p_obj->eprp;
 	for (i = 0; i < p_obj->eprpcnt; i++, p++) {
@@ -117,21 +113,21 @@
 	}
 
-	return E_PAR;	/* p[^G[ */
-}
-
-/*
- * vpeBl«Ývisvjd¶ì¬
- * ø
- * T_EDATA			**ppk_esv	æ¾µ½d¶Ìi[æ
- * ID				fa_deoj		¶æÌECHONETIuWFNgID
- * uint8_t			fa_epc		vpeBR[h
- * uint8_t			fa_pdc		vpeBlf[^TCY
- * const void		*p_edt		vpeBlf[^
+	return E_PAR;	/* パラメータエラー */
+}
+
+/*
+ * プロパティ値書き込み要求（応答不要）電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
+ * uint8_t			fa_pdc		プロパティ値データサイズ
+ * const void		*p_edt		プロパティ値データ
  *
- *	vpeBl«Ývisvjd¶ðì¬·éB
- *	d¶ÍdeojÅwèµ½ECHONETIuWFNgð¶æÆµA
- *	d¶ÌßÌvpeBlÆµÄAepcÆpdcAp_edtÅwè³ê½
- *	vpeBR[hAf[^TCYAf[^ðd¶ÉÝè·éB
- *	ì¬µ½d¶ÌæªAhXÍ|C^oRÅÔ³êéB
+ *	プロパティ値書き込み要求（応答不要）電文を作成する。
+ *	電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ *	電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
+ *	プロパティコード、データサイズ、データを電文に設定する。
+ *	作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_seti(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
@@ -142,17 +138,17 @@
 
 /*
- * vpeBl«Ývivjd¶ì¬
- * ø
- * T_EDATA			**ppk_esv	æ¾µ½d¶Ìi[æ
- * ID				fa_deoj		¶æÌECHONETIuWFNgID
- * uint8_t			fa_epc		vpeBR[h
- * uint8_t			fa_pdc		vpeBlf[^TCY
- * const void		*p_edt		vpeBlf[^
+ * プロパティ値書き込み要求（応答要）電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
+ * uint8_t			fa_pdc		プロパティ値データサイズ
+ * const void		*p_edt		プロパティ値データ
  *
- *	vpeBl«Ývivjd¶ðì¬·éB
- *	d¶ÍdeojÅwèµ½ECHONETIuWFNgð¶æÆµA
- *	d¶ÌßÌvpeBlÆµÄAepcÆpdcAp_edtÅwè³ê½
- *	vpeBR[hAf[^TCYAf[^ðd¶ÉÝè·éB
- *	ì¬µ½d¶ÌæªAhXÍ|C^oRÅÔ³êéB
+ *	プロパティ値書き込み要求（応答要）電文を作成する。
+ *	電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ *	電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
+ *	プロパティコード、データサイズ、データを電文に設定する。
+ *	作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_setc(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
@@ -163,15 +159,15 @@
 
 /*
- * vpeBlÇÝoµvd¶ì¬
- * ø
- * T_EDATA			**ppk_esv	æ¾µ½d¶Ìi[æ
- * ID				fa_deoj		¶æÌECHONETIuWFNgID
- * uint8_t			fa_epc		vpeBR[h
+ * プロパティ値読み出し要求電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
  *
- * vpeBlÇÝoµvd¶ðì¬·éB
- * d¶ÍdeojÅwèµ½ECHONETIuWFNgð¶æÆµA
- * d¶ÌßÌvpeBlÆµÄAepcÅwè³ê½
- * vpeBR[hðd¶ÉÝè·éB
- * ì¬µ½d¶ÌæªAhXÍ|C^oRÅÔ³êéB
+ * プロパティ値読み出し要求電文を作成する。
+ * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ * 電文の初めのプロパティ値として、epcで指定された
+ * プロパティコードを電文に設定する。
+ * 作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_get(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc)
@@ -181,15 +177,15 @@
 
 /*
- * vpeBlÊmvd¶ì¬
- * ø
- * T_EDATA			**ppk_esv	æ¾µ½d¶Ìi[æ
- * ID				fa_deoj		¶æÌECHONETIuWFNgID
- * uint8_t			fa_epc		vpeBR[h
+ * プロパティ値通知要求電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
  *
- * vpeBlÊmvd¶ðì¬·éB
- * d¶ÍdeojÅwèµ½ECHONETIuWFNgð¶æÆµA
- * d¶ÌßÌvpeBlÆµÄAepcÅwè³ê½
- * vpeBR[hðd¶ÉÝè·éB
- * ì¬µ½d¶ÌæªAhXÍ|C^oRÅÔ³êéB
+ * プロパティ値通知要求電文を作成する。
+ * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ * 電文の初めのプロパティ値として、epcで指定された
+ * プロパティコードを電文に設定する。
+ * 作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_inf_req(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc)
@@ -199,17 +195,17 @@
 
 /*
- * vpeBl«ÝEÇÝoµvd¶ì¬
- * ø
- * T_EDATA			**ppk_esv	æ¾µ½d¶Ìi[æ
- * ID				fa_deoj		¶æÌECHONETIuWFNgID
- * uint8_t			fa_epc		vpeBR[h
- * uint8_t			fa_pdc		vpeBlf[^TCY
- * const void		*p_edt		vpeBlf[^
+ * プロパティ値書き込み・読み出し要求電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
+ * uint8_t			fa_pdc		プロパティ値データサイズ
+ * const void		*p_edt		プロパティ値データ
  *
- * vpeBl«ÝEÇÝoµvd¶ðì¬·éB
- * d¶ÍdeojÅwèµ½ECHONETIuWFNgð¶æÆµA
- * d¶ÌßÌvpeBlÆµÄAepcÆpdcAp_edtÅwè³ê½
- * vpeBR[hAf[^TCYAf[^ðd¶ÉÝè·éB
- * ì¬µ½d¶ÌæªAhXÍ|C^oRÅÔ³êéB
+ * プロパティ値書き込み・読み出し要求電文を作成する。
+ * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ * 電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
+ * プロパティコード、データサイズ、データを電文に設定する。
+ * 作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_set_get(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
@@ -220,7 +216,7 @@
 
 /*
- * vpeBl«ÝEÇÝoµvd¶ì¬FÜèÔµwè
- * vpeBl«ÝEÇÝoµvd¶ì¬ÌA«ÝvpeBzñðI¦Ä
- * ÇÝoµvpeBzñÉÚéÉp¢éB
+ * プロパティ値書き込み・読み出し要求電文作成：折り返し指定
+ * プロパティ値書き込み・読み出し要求電文作成中の、書き込みプロパティ配列を終えて
+ * 読み出しプロパティ配列に移る時に用いる。
  */
 ER ecn_trn_set_get(T_EDATA *ppk_esv, int *p_trn_pos)
@@ -233,8 +229,8 @@
 		return E_PAR;
 
-	/* vpeBÇÝÝ«ÝÌwbhîñðL^ */
+	/* プロパティ読み込み件数書き込み時のヘッド情報を記録 */
 	*p_trn_pos = _ecn_fbs_get_datalen(*(ECN_FBS_ID *)&ppk_esv);
 
-	/* d¶pÉf[^ÇÁE±Ì_ÅÌd¶vpeBðL^ */
+	/* 応答電文用メモリにデータ追加・この時点での応答電文中プロパティ件数を記録 */
 	a_ret = _ecn_fbs_add_data_ex(*(ECN_FBS_ID *)&ppk_esv, &ppk_esv->hdr.edata.opc, 1);
 	if (a_ret) {
@@ -243,5 +239,5 @@
 	}
 
-	/* d¶vpeBð 0 Éß·i¡ãAI¹wè·éÜÅÍÇÝoµvpeBÉÈéj */
+	/* 応答電文中プロパティ件数を 0 に戻す（今後、終了指定するまでは読み出しプロパティ件数になる） */
 	ppk_esv->hdr.edata.opc = 0;
 
@@ -250,6 +246,6 @@
 
 /*
- * vpeBl«ÝEÇÝoµvd¶ì¬FI¹wè
- * vpeBl«ÝEÇÝoµvd¶ì¬ÌAÇÝoµvpeBzñðI¦éÉp¢éB
+ * プロパティ値書き込み・読み出し要求電文作成：終了指定
+ * プロパティ値書き込み・読み出し要求電文作成中の、読み出しプロパティ配列を終える時に用いる。
  */
 ER ecn_end_set_get(T_EDATA *ppk_esv, int fa_trn_pos)
@@ -262,8 +258,8 @@
 		return E_PAR;
 
-	/* ±Ì_ÅÌd¶vpeB(ÇÝoµvpeB)ðÛ */
+	/* この時点での応答電文中プロパティ件数(読み出しプロパティ件数)を保持 */
 	a_rd_opc = ppk_esv->hdr.edata.opc;
 
-	/* d¶vpeB(«ÝvpeB)ðÛ¶Êu©çÇÝæè */
+	/* 応答電文中プロパティ件数(書き込みプロパティ件数)を保存位置から読み取り */
 	a_wr_opc = _ecn_fbs_peek(*(ECN_FBS_ID *)&ppk_esv, fa_trn_pos);
 	if (a_wr_opc < 0) {
@@ -272,8 +268,8 @@
 	}
 
-	/* d¶vpeB(«ÝvpeB)ð³ */
+	/* 応答電文中プロパティ件数(書き込みプロパティ件数)を復元 */
 	ppk_esv->hdr.edata.opc = (uint8_t)a_wr_opc;
 
-	/* d¶vpeB(ÇÝoµvpeB)ðÛ¶ÊuÉ«Ý */
+	/* 応答電文中プロパティ件数(読み出しプロパティ件数)を保存位置に書き込み */
 	a_ret = _ecn_fbs_poke(*(ECN_FBS_ID *)&ppk_esv, fa_trn_pos, a_rd_opc);
 	if (a_ret) {
@@ -286,10 +282,10 @@
 
 /*
- * vpeBlÊmivjd¶ì¬
- * ø
- * T_EDATA			**ppk_esv	æ¾µ½d¶Ìi[æ
- * ID				fa_deoj		¶æÌECHONETIuWFNgID
- * ID				fa_seoj		M³ÌECHONETIuWFNgID
- * uint8_t			fa_sepc		M³ÌvpeBR[h
+ * プロパティ値通知（応答要）電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * ID				fa_seoj		送信元のECHONETオブジェクトID
+ * uint8_t			fa_sepc		送信元のプロパティコード
  */
 ER ecn_esv_infc(T_EDATA **ppk_esv, ID fa_deoj, ID fa_seoj, uint8_t fa_sepc)
@@ -299,5 +295,5 @@
 
 /*
- * vd¶ÖÌvpeBwèÇÁ (vpeBf[^ªtµÈ¢êÉp¢é)
+ * 要求電文へのプロパティ指定追加 (プロパティデータが付随しない場合に用いる)
  */
 ER ecn_add_epc(T_EDATA *pk_esv, uint8_t epc)
@@ -307,5 +303,5 @@
 
 /*
- * vd¶ÖÌvpeBf[^ÇÁ (vpeB¨æÑtf[^ðÇÁ·é)
+ * 要求電文へのプロパティデータ追加 (プロパティおよび付随データを追加する)
  */
 ER ecn_add_edt(T_EDATA *pk_esv, uint8_t fa_epc, uint8_t fa_pdc, const void *p_edt)
@@ -316,15 +312,15 @@
 
 	if (!pk_esv)
-		return E_PAR; /* æ¾µ½FBS_IDÌi[æªNULL */
+		return E_PAR; /* 取得したFBS_IDの格納先がNULL */
 	if (ECHONET_MEMPOOL_BLOCK_SIZE <= fa_pdc)
-		return E_PAR; /* vpeBlTCYªå«·¬é */
+		return E_PAR; /* プロパティ値サイズが大きすぎる */
 	if (!p_edt && 0 < fa_pdc)
-		return E_PAR; /* vpeBlTCYª1ÈãÈÌÉf[^|C^ªNULL */
+		return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
 
 	a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_esv;
 	if (((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc == 0xFF)
-		return E_PAR; /* vpeBª½·¬é */
-
-	/* vd¶pÉf[^ÇÁ */
+		return E_PAR; /* プロパティが多すぎる */
+
+	/* 要求電文用メモリにデータ追加 */
 	memset(&a_ecn_prp, 0, sizeof(a_ecn_prp));
 	a_ecn_prp.epc = fa_epc;
@@ -338,5 +334,5 @@
 	}
 	if (0 < fa_pdc) {
-		/* tf[^ÇÁ */
+		/* 付随データ追加 */
 		a_ret = _ecn_fbs_add_data_ex(a_fbs_id, p_edt, fa_pdc);
 		if (a_ret) {
@@ -347,5 +343,5 @@
 		}
 	}
-	/* vpeBCNg */
+	/* プロパティ数インクリメント */
 	((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc++;
 
@@ -355,7 +351,7 @@
 
 /*
- * vd¶ÌM
- * esvÅwè³ê½vd¶ðM·éB
- * d¶Éwè³ê½¶æ©çIPAhXðÁèµAUDPpPbgÆµÄM·éB
+ * 要求電文の送信
+ * esvで指定された要求電文を送信する。
+ * 電文に指定された宛先からIPアドレスを特定し、UDPパケットとして送信する。
  */
 ER ecn_snd_esv(T_EDATA *pk_esv)
@@ -367,8 +363,8 @@
 
 /*
- * d¶ÌóM|[O
- * d¶ðóM·éÌðÒÂB
- * óMµ½d¶Íppk_esvÅwèµ½|C^[ÉæªAhXªÔ³êéB
- * d¶ÌóMÌL³É©©íç¸AÒ½¸ÉÖð²¯éB
+ * 応答電文の受信ポーリング
+ * 応答電文を受信するのを待つ。
+ * 受信した応答電文はppk_esvで指定したポインターに先頭アドレスが返される。
+ * 応答電文の受信の有無にかかわらず、待たずに関数を抜ける。
  */
 ER ecn_prcv_esv(T_EDATA **ppk_esv)
@@ -391,5 +387,5 @@
 
 /*
- * d¶Ìjü
+ * 応答電文の破棄
  */
 ER ecn_rel_esv(T_EDATA *pk_esv)
@@ -404,5 +400,5 @@
 
 /*
- * d¶ÌM³m[hðæ¾·é
+ * 応答電文の送信元ノードを取得する
  */
 ID ecn_get_enod(T_EDATA *pk_esv)
@@ -428,5 +424,5 @@
 
 /*
- * d¶ÌM³@íIuWFNgðæ¾·é
+ * 応答電文の送信元機器オブジェクトを取得する
  */
 ID ecn_get_eobj(T_EDATA *pk_esv)
@@ -439,10 +435,10 @@
 	p_snod = _ecn_eno_fnd(((T_ECN_FST_BLK *)pk_esv)->hdr.sender);
 	if (p_snod != NULL) {
-		/* m[hvt@CÌê */
+		/* ノードプロファイルの場合 */
 		if ((p_esv->edata.seoj.eojx1 == EOJ_X1_PROFILE)
 			&& (p_esv->edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
 			p_sobj = p_snod->profile;
 		}
-		/* @íIuWFNgÌê */
+		/* 機器オブジェクトの場合 */
 		else {
 			p_sobj = _ecn_eoj_fnd(p_snod, &p_esv->edata.seoj);
@@ -460,5 +456,5 @@
 
 /*
- * d¶ðÍCe[^[ú»
+ * 応答電文解析イテレーター初期化
  */
 ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv)
@@ -472,14 +468,14 @@
 	pk_itr->pk_esv = pk_esv;
 	pk_itr->count = pk_esv->hdr.edata.opc;
-								/* ¡ÌubNÅÌvpeB */
-	pk_itr->got_ct = 0;			/* ¡ÌubNÅAÇÝæÁ½ */
-	pk_itr->next_blk_ct = 0;	/* ã±ubN */
-	pk_itr->is_eof = 0;			/* I[ÉBµ½Añ0 */
+								/* 今のブロックでのプロパティ総数 */
+	pk_itr->got_ct = 0;			/* 今のブロックで、読み取った数 */
+	pk_itr->next_blk_ct = 0;	/* 後続ブロック数 */
+	pk_itr->is_eof = 0;			/* 終端に達した時、非0 */
 	pk_itr->cur = offsetof(T_ECN_EDT_HDR, ecn_prp);
 
 	switch (pk_esv->hdr.edata.esv) {
-	case ESV_SET_GET:		/* 0x6E vpeBl«ÝEÇÝoµv		*/
-	case ESV_SET_GET_RES:	/* 0x7E vpeBl«ÝEÇÝoµ		*/
-	case ESV_SET_GET_SNA:	/* 0x5E	vpeBl«ÝEÇÝoµsÂ	*/
+	case ESV_SET_GET:		/* 0x6E プロパティ値書き込み・読み出し要求		*/
+	case ESV_SET_GET_RES:	/* 0x7E プロパティ値書き込み・読み出し応答		*/
+	case ESV_SET_GET_SNA:	/* 0x5E	プロパティ値書き込み・読み出し不可応答	*/
 		pk_itr->next_blk_ct ++;
 	default:
@@ -491,5 +487,5 @@
 
 /*
- * d¶ðÍCe[^[CNg
+ * 応答電文解析イテレーターインクリメント
  */
 ER ecn_itr_nxt(T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt)
@@ -513,14 +509,14 @@
 
 	if (pk_itr->is_eof)
-		return E_BOVR; /* f[^I¹ */
+		return E_BOVR; /* データ終了 */
 	if (	pk_itr->count <= pk_itr->got_ct
 	&&	pk_itr->next_blk_ct < 1) {
-		pk_itr->is_eof = 1;			/* I[ÉBµ½Añ0 */
-		return E_BOVR; /* f[^I¹ */
+		pk_itr->is_eof = 1;			/* 終端に達した時、非0 */
+		return E_BOVR; /* データ終了 */
 	}
 
 	a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_itr->pk_esv;
 
-	/* ³ÌJ[\ÊuðÛ¶µACe[^ÌJ[\ÊuÉ·é */
+	/* 元のカーソル位置を保存し、イテレータのカーソル位置にする */
 	a_rd_bak = a_fbs_id.ptr->hdr.rd;
 	a_fbs_id.ptr->hdr.rd = pk_itr->cur;
@@ -530,10 +526,10 @@
 #endif
 	if (pk_itr->count <= pk_itr->got_ct && 0 < pk_itr->next_blk_ct) {
-		/* ubNÉÚ® */
+		/* 次ブロックに移動 */
 		pk_itr->next_blk_ct --;
-		pk_itr->count = 0;		/* ¡ÌubNÅÌvpeB */
-		pk_itr->got_ct = 0;		/* ¡ÌubNÅAÇÝæÁ½ */
-
-		/* ubNÌvpeBðÇÝæé */
+		pk_itr->count = 0;		/* 今のブロックでのプロパティ総数 */
+		pk_itr->got_ct = 0;		/* 今のブロックで、読み取った数 */
+
+		/* 次ブロックのプロパティ数を読み取る */
 		a_rd_len = 0;
 		a_ret = _ecn_fbs_get_data(a_fbs_id, &a_ecn_prp.pdc, 1, &a_rd_len);
@@ -541,11 +537,11 @@
 			goto lb_except;
 		if (0 < a_rd_len) {
-			pk_itr->count = a_ecn_prp.pdc;	/* ¡ÌubNÅÌvpeB */
+			pk_itr->count = a_ecn_prp.pdc;	/* 今のブロックでのプロパティ総数 */
 		}
-		a_ret = E_BOVR;	/* f[^I¹ */
+		a_ret = E_BOVR;	/* データ終了 */
 		goto lb_finally;
 	}
 
-	/* vpeBR[hÆf[^TCYðÇÝæé */
+	/* プロパティコードとデータサイズを読み取る */
 	memset(&a_ecn_prp, 0, sizeof(a_ecn_prp));
 	a_rd_len = 0;
@@ -556,6 +552,6 @@
 		ECN_DBG_PUT "ecn_itr_nxt() ecn_prp read fault." 
 			" rd.cur=%d", pk_itr->cur ECN_DBG_END;
-		pk_itr->is_eof = 1;			/* I[ÉBµ½Añ0 */
-		a_ret = E_BOVR;	/* f[^I¹ */
+		pk_itr->is_eof = 1;			/* 終端に達した時、非0 */
+		a_ret = E_BOVR;	/* データ終了 */
 		goto lb_finally;
 	}
@@ -564,5 +560,5 @@
 
 	if (0 < a_ecn_prp.pdc) {
-		/* tf[^ðÇÝæé */
+		/* 付随データを読み取る */
 		a_rd_len = 0;
 		a_ret = _ecn_fbs_get_data(a_fbs_id, p_edt, a_ecn_prp.pdc, &a_rd_len);
@@ -572,6 +568,6 @@
 			ECN_DBG_PUT "ecn_itr_nxt() edt read fault."
 				" rd.cur=%d,epc=0x%02X,pdc=%u", pk_itr->cur, a_ecn_prp.epc , a_ecn_prp.pdc ECN_DBG_END;
-			pk_itr->is_eof = 1;			/* I[ÉBµ½Añ0 */
-			a_ret = E_BOVR;	/* f[^I¹ */
+			pk_itr->is_eof = 1;			/* 終端に達した時、非0 */
+			a_ret = E_BOVR;	/* データ終了 */
 			goto lb_finally;
 		}
@@ -584,9 +580,9 @@
 
 lb_finally:
-	/* Ce[^ÌJ[\ÊuðXV */
+	/* イテレータのカーソル位置を更新 */
 	pk_itr->cur = a_fbs_id.ptr->hdr.rd;
 
 lb_except:
-	/* ³ÌJ[\ÊuÉß· */
+	/* 元のカーソル位置に戻す */
 	a_fbs_id.ptr->hdr.rd = a_rd_bak;
 	return a_ret;
@@ -594,17 +590,17 @@
 
 /*
- * d¶Ò¿ÌèÝM
+ * 応答電文待ちの割り込み送信
  */
 ER ecn_brk_wai(const void *p_dat, int fa_datsz)
 {
 	ER				a_ret;
-	ECN_FBS_ID		a_fbs_id = { 0 };	/* vd¶p	*/
-
-	/* d¶Ò¿ÌèÝd¶ì¬ */
+	ECN_FBS_ID		a_fbs_id = { 0 };	/* 要求電文用メモリ	*/
+
+	/* 応答電文待ちの割り込み電文作成 */
 	a_ret = _ecn_mk_brk_wai(&a_fbs_id, p_dat, fa_datsz);
 	if (a_ret)
 		return a_ret;
 
-	/* èÝM */
+	/* 割り込み送信 */
 	a_ret = _ecn_tsk_snd_mbx(a_fbs_id, true);
 	if (a_ret) {
@@ -614,9 +610,9 @@
 	}
 
-	/* ³íI¹ */
+	/* 正常終了 */
 	return a_ret;
 
 lb_except:
-	/* f[^ì¬¸sµ½çÌæðú */
+	/* データ作成失敗したら領域解放 */
 	if (a_fbs_id.ptr)
 		_ecn_fbs_del(a_fbs_id);
@@ -626,5 +622,5 @@
 
 /*
- * èÝf[^Ìæ¾
+ * 割り込みデータの取得
  */
 ER ecn_get_brk_dat(T_EDATA *pk_esv, void *p_buf, int fa_bufsz, int *p_datsz)
@@ -646,5 +642,5 @@
 	}
 
-	/* ÇÝæèÊuðæªÉß· */
+	/* 読み取り位置を先頭に戻す */
 	a_ret = _ecn_fbs_set_rpos(a_fbs, 0);
 	if (a_ret) {
@@ -654,5 +650,5 @@
 	}
 
-	/* tf[^ðÇÝÞ */
+	/* 付随データを読み込む */
 	if (p_buf && 0 < fa_bufsz) {
 		a_len = 0;
@@ -671,5 +667,5 @@
 #ifndef ECN_USER_DATA_PROP_SET
 /*
- * f[^ÝèÖ
+ * データ設定関数
  */
 int ecn_data_prop_set(const EPRPINIB *item, const void *src, int size, bool_t *anno)
@@ -689,5 +685,5 @@
 #ifndef ECN_USER_DATA_PROP_GET
 /*
- * f[^æ¾Ö
+ * データ取得関数
  */
 int ecn_data_prop_get(const EPRPINIB *item, void *dst, int size)
Index: uKadecot/trunk/ecnl_ssp/echonet.h
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet.h	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet.h	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -57,26 +53,26 @@
 
 #define EOBJ_NULL 0x00
-#define EOBJ_LOCAL_NODE 0x01			/* ©m[h */
-#define EOBJ_SYNC_REMOTE_NODE 0x02		/* ¼m[h */
-#define EOBJ_ASYNC_REMOTE_NODE 0x04		/* ¼m[hiñ¯új */
-#define EOBJ_DEVICE 0x08				/* @íIuWFNg */
+#define EOBJ_LOCAL_NODE 0x01			/* 自ノード */
+#define EOBJ_SYNC_REMOTE_NODE 0x02		/* 他ノード */
+#define EOBJ_ASYNC_REMOTE_NODE 0x04		/* 他ノード（非同期） */
+#define EOBJ_DEVICE 0x08				/* 機器オブジェクト */
 
 #define EPC_NONE 0x00
-#define EPC_RULE_SET 0x01				/* ANZX[ Set */
-#define EPC_RULE_GET 0x02				/* ANZX[ Get */
-#define EPC_RULE_ANNO 0x04				/* ANZX[ Anno */
-#define EPC_ANNOUNCE 0x40				/* óÔÏ»Êm */
-#define EPC_VARIABLE 0x80				/* ÂÏ·f[^ */
+#define EPC_RULE_SET 0x01				/* アクセスルール Set */
+#define EPC_RULE_GET 0x02				/* アクセスルール Get */
+#define EPC_RULE_ANNO 0x04				/* アクセスルール Anno */
+#define EPC_ANNOUNCE 0x40				/* 状態変化時通知 */
+#define EPC_VARIABLE 0x80				/* 可変長データ */
 
 typedef enum _echonet_enod_id
 {
 	ENOD_NOT_MATCH_ID	= -1,
-	ENOD_MULTICAST_ID	= 0,			/* }`LXgAhXID */
-	ENOD_LOCAL_ID		= 1,			/* ©m[hAhXID */
-	ENOD_API_ID			= 2,			/* APIAhXID */
-	ENOD_REMOTE_ID		= 3,			/* ¼m[hAhXID */
+	ENOD_MULTICAST_ID	= 0,			/* マルチキャストアドレスID */
+	ENOD_LOCAL_ID		= 1,			/* 自ノードアドレスID */
+	ENOD_API_ID			= 2,			/* APIアドレスID */
+	ENOD_REMOTE_ID		= 3,			/* 他ノードアドレスID */
 } ECN_ENOD_ID;
 
-/* ECHONET LiteKi */
+/* ECHONET Lite規格 */
 typedef enum
 {
@@ -84,31 +80,31 @@
 } ECN_EHD1_ECL_VERSION;
 
-/* d¶`®1/2 */
+/* 電文形式1/2 */
 typedef enum
 {
-	ECN_EDH2_FORMAT_1 = 0x81,	/* d¶`®1 */
-	ECN_EDH2_FORMAT_2 = 0x82	/* d¶`®2 */
+	ECN_EDH2_FORMAT_1 = 0x81,	/* 電文形式1 */
+	ECN_EDH2_FORMAT_2 = 0x82	/* 電文形式2 */
 } ECN_EHD2_FORMAT;
 
-/* ECHONET LiteT[rXR[h */
+/* ECHONET Liteサービスコード */
 typedef enum _echonet_service_code
 {
-	ESV_NOP				=	0,		/* (@\wèÈµ)							*/
-	ESV_SET_I			=	0x60,	/* vpeBl«Ývisvj		*/
-	ESV_SET_C			=	0x61,	/* vpeBl«Ývivj		*/
-	ESV_GET				=	0x62,	/* vpeBlÇÝoµv					*/
-	ESV_INF_REQ			=	0x63,	/* vpeBlÊmv						*/
-	ESV_SET_GET			=	0x6E,	/* vpeBl«ÝEÇÝoµv		*/
-	ESV_SET_RES			=	0x71,	/* vpeBl«Ý					*/
-	ESV_GET_RES			=	0x72,	/* vpeBlÇÝoµ					*/
-	ESV_INF				=	0x73,	/* vpeBlÊm							*/
-	ESV_INFC			=	0x74,	/* vpeBlÊmivj				*/
-	ESV_INFC_RES		=	0x7A,	/* vpeBlÊm						*/
-	ESV_SET_GET_RES		=	0x7E,	/* vpeBl«ÝEÇÝoµ		*/
-	ESV_SET_I_SNA		=	0x50,	/* vpeBl«ÝvsÂ			*/
-	ESV_SET_C_SNA		=	0x51,	/* vpeBl«ÝvsÂ			*/
-	ESV_GET_SNA			=	0x52,	/* vpeBlÇÝoµsÂ				*/
-	ESV_INF_SNA			=	0x53,	/* vpeBlÊmsÂ					*/
-	ESV_SET_GET_SNA		=	0x5E	/* vpeBl«ÝEÇÝoµsÂ	*/
+	ESV_NOP				=	0,		/* (機能指定なし)							*/
+	ESV_SET_I			=	0x60,	/* プロパティ値書き込み要求（応答不要）		*/
+	ESV_SET_C			=	0x61,	/* プロパティ値書き込み要求（応答要）		*/
+	ESV_GET				=	0x62,	/* プロパティ値読み出し要求					*/
+	ESV_INF_REQ			=	0x63,	/* プロパティ値通知要求						*/
+	ESV_SET_GET			=	0x6E,	/* プロパティ値書き込み・読み出し要求		*/
+	ESV_SET_RES			=	0x71,	/* プロパティ値書き込み応答					*/
+	ESV_GET_RES			=	0x72,	/* プロパティ値読み出し応答					*/
+	ESV_INF				=	0x73,	/* プロパティ値通知							*/
+	ESV_INFC			=	0x74,	/* プロパティ値通知（応答要）				*/
+	ESV_INFC_RES		=	0x7A,	/* プロパティ値通知応答						*/
+	ESV_SET_GET_RES		=	0x7E,	/* プロパティ値書き込み・読み出し応答		*/
+	ESV_SET_I_SNA		=	0x50,	/* プロパティ値書き込み要求不可応答			*/
+	ESV_SET_C_SNA		=	0x51,	/* プロパティ値書き込み要求不可応答			*/
+	ESV_GET_SNA			=	0x52,	/* プロパティ値読み出し不可応答				*/
+	ESV_INF_SNA			=	0x53,	/* プロパティ値通知不可応答					*/
+	ESV_SET_GET_SNA		=	0x5E	/* プロパティ値書き込み・読み出し不可応答	*/
 } ECN_SRV_CODE;
 
@@ -122,46 +118,46 @@
 
 /*
- *  ECHONET Lited¶wb_[
+ *  ECHONET Lite電文ヘッダー
  */
 typedef struct
 {
-	uint8_t	ehd1;		/* ECHONET Lited¶wb_[1 ECN_EHD1_ECL_VERSION */
-	uint8_t	ehd2;		/* ECHONET Lited¶wb_[2 ECN_EHD2_FORMAT */
-	uint16_t	tid;	/* gUNVID */
+	uint8_t	ehd1;		/* ECHONET Lite電文ヘッダー1 ECN_EHD1_ECL_VERSION */
+	uint8_t	ehd2;		/* ECHONET Lite電文ヘッダー2 ECN_EHD2_FORMAT */
+	uint16_t	tid;	/* トランザクションID */
 } T_ECN_HDR;
 
 /*
- *  ECHONET LiteIuWFNgR[h
+ *  ECHONET Liteオブジェクトコード
  */
 typedef struct
 {
-	uint8_t	eojx1;		/* NXO[vR[h */
-	uint8_t	eojx2;		/* NXR[h */
-	uint8_t	eojx3;		/* CX^XR[h */
+	uint8_t	eojx1;		/* クラスグループコード */
+	uint8_t	eojx2;		/* クラスコード */
+	uint8_t	eojx3;		/* インスタンスコード */
 } T_ECN_EOJ;
 
 /*
- *  ECHONET Litef[^wb_[
+ *  ECHONET Liteデータヘッダー
  */
 typedef struct
 {
-	T_ECN_EOJ	seoj;	/* M³ECHONET LiteIuWFNgwè */
-	T_ECN_EOJ	deoj;	/* èæECHONET LiteIuWFNgwè */
-	uint8_t	esv;		/* ECHONET LiteT[rX (ECN_SRV_CODE) */
-	uint8_t	opc;		/* vpeB */
+	T_ECN_EOJ	seoj;	/* 送信元ECHONET Liteオブジェクト指定 */
+	T_ECN_EOJ	deoj;	/* 相手先ECHONET Liteオブジェクト指定 */
+	uint8_t	esv;		/* ECHONET Liteサービス (ECN_SRV_CODE) */
+	uint8_t	opc;		/* 処理プロパティ数 */
 } T_ECN_EDATA_BODY;
 
 /*
- *  ECHONET LitevpeB
+ *  ECHONET Liteプロパティ
  */
 typedef struct
 {
-	uint8_t	epc;		/* ECHONET LitevpeBR[h */
-	uint8_t	pdc;		/* EDTÌoCg */
-	/*void	*p_edt;*/	/* vpeBlf[^ */
+	uint8_t	epc;		/* ECHONET Liteプロパティコード */
+	uint8_t	pdc;		/* EDTのバイト数 */
+	/*void	*p_edt;*/	/* プロパティ値データ */
 } T_ECN_PRP;
 
 /*
- *  ECHONET Litef[^
+ *  ECHONET Liteデータ
  */
 typedef struct
@@ -173,5 +169,5 @@
 
 /*
- *  ECHONET Lite d¶
+ *  ECHONET Lite 電文
  */
 typedef struct echonet_object_data
@@ -191,13 +187,13 @@
 
 /*
- *  d¶ðÍCe[^[
+ *  応答電文解析イテレーター
  */
 typedef struct echonet_epc_enumerator
 {
 	T_EDATA *pk_esv;
-	uint8_t count;			/* ¡ÇÝæèÌubNÉ évpeB */
-	uint8_t got_ct;			/* ¡ÇÝæèÌubNÅAÇÝæÁ½ */
-	uint8_t next_blk_ct;	/* ã±ubN */
-	uint8_t is_eof;			/* I[ÉBµ½Añ0 */
+	uint8_t count;			/* 今読み取り中のブロックにあるプロパティ総数 */
+	uint8_t got_ct;			/* 今読み取り中のブロックで、読み取った数 */
+	uint8_t next_blk_ct;	/* 後続ブロック数 */
+	uint8_t is_eof;			/* 終端に達した時、非0 */
 	int cur;
 } T_ENUM_EPC;
@@ -206,94 +202,94 @@
 
 /*
- * ECHONET Lite vpeBÌÝèÖ
+ * ECHONET Lite プロパティの設定関数
  */
 typedef int (EPRP_SETTER)(const EPRPINIB *item, const void *src, int size, bool_t *anno);
 
 /*
- * ECHONET Lite vpeBÌæ¾Ö
+ * ECHONET Lite プロパティの取得関数
  */
 typedef int (EPRP_GETTER)(const EPRPINIB *item, void *dst, int size);
 
 /*
- *  ECHONET Lite vpeBú»ubN
+ *  ECHONET Lite プロパティ初期化ブロック
  */
 struct echonet_property_initialization_block
 {
-	uint8_t		eprpcd;			/* ECHONET Lite vpeBR[h */
-	ATR			eprpatr;		/* ECHONET Lite vpeB®« */
-	uint8_t		eprpsz;			/* ECHONET Lite vpeBÌTCY */
-	intptr_t	exinf;			/* ECHONET Lite vpeBÌg£îñ */
-	EPRP_SETTER	*eprpset;		/* ECHONET Lite vpeBÌÝèÖ */
-	EPRP_GETTER	*eprpget;		/* ECHONET Lite vpeBÌæ¾Ö */
+	uint8_t		eprpcd;			/* ECHONET Lite プロパティコード */
+	ATR			eprpatr;		/* ECHONET Lite プロパティ属性 */
+	uint8_t		eprpsz;			/* ECHONET Lite プロパティのサイズ */
+	intptr_t	exinf;			/* ECHONET Lite プロパティの拡張情報 */
+	EPRP_SETTER	*eprpset;		/* ECHONET Lite プロパティの設定関数 */
+	EPRP_GETTER	*eprpget;		/* ECHONET Lite プロパティの取得関数 */
 };
 
-#define TMIN_EOBJID		1		/* ECHONET Lite IuWFNgIDÌÅ¬l */
-
-/*
- *  ECHONET Lite IuWFNgú»ubN
+#define TMIN_EOBJID		1		/* ECHONET Lite オブジェクトIDの最小値 */
+
+/*
+ *  ECHONET Lite オブジェクト初期化ブロック
  */
 typedef struct echonet_object_initialization_block
 {
-	ATR			eobjatr;		/* ECHONET Lite IuWFNg®« */
-	ID			enodid;			/* ECHONET Lite m[hvt@CIuWFNgID */
-	intptr_t	exinf;			/* ECHONET Lite IuWFNgÌg£îñ */
-	uint8_t		eojx1;			/* ECHONET Lite IuWFNgÌNXO[vR[h */
-	uint8_t		eojx2;			/* ECHONET Lite IuWFNgÌNXR[h */
-	uint8_t		eojx3;			/* ECHONET Lite IuWFNgÌCX^XR[h */
-	const EPRPINIB *eprp;		/* ECHONET Lite vpeBú»ubN */
-	uint_t		eprpcnt;		/* ECHONET Lite vpeBú»ubN */
+	ATR			eobjatr;		/* ECHONET Lite オブジェクト属性 */
+	ID			enodid;			/* ECHONET Lite ノードプロファイルオブジェクトID */
+	intptr_t	exinf;			/* ECHONET Lite オブジェクトの拡張情報 */
+	uint8_t		eojx1;			/* ECHONET Lite オブジェクトのクラスグループコード */
+	uint8_t		eojx2;			/* ECHONET Lite オブジェクトのクラスコード */
+	uint8_t		eojx3;			/* ECHONET Lite オブジェクトのインスタンスコード */
+	const EPRPINIB *eprp;		/* ECHONET Lite プロパティ初期化ブロック */
+	uint_t		eprpcnt;		/* ECHONET Lite プロパティ初期化ブロック数 */
 } EOBJINIB;
 
 /*
- *  ECHONET Lite m[hÇubN
+ *  ECHONET Lite ノード管理ブロック
  */
 typedef struct echonet_object_control_block
 {
-	const EOBJINIB *profile;	/* ECHONET Lite m[hvt@CÖÌ|C^ */
-	const EOBJINIB **eobjs;		/* ECHONET Lite IuWFNgXgÖÌ|C^ */
-	uint_t		eobjcnt;		/* ECHONET Lite IuWFNg */
+	const EOBJINIB *profile;	/* ECHONET Lite ノードプロファイルへのポインタ */
+	const EOBJINIB **eobjs;		/* ECHONET Lite オブジェクトリストへのポインタ */
+	uint_t		eobjcnt;		/* ECHONET Lite オブジェクト数 */
 } EOBJCB;
 
 /*
- *  ECHONET Lite m[hÆIPAhXÌÎîñubNÌè`
+ *  ECHONET Lite ノードとIPアドレスの対応情報ブロックの定義
  */
 typedef struct echonet_node_address_block
 {
-	bool_t		inuse;			/* gpóµ */
-	uint8_t		ipaddr[16];		/* IPAhX */
+	bool_t		inuse;			/* 使用状況 */
+	uint8_t		ipaddr[16];		/* IPアドレス */
 } ENODADRB;
 
 /*
- *  ECHONET Lite IuWFNgIDÌÅåliechonet_cfg.cj
+ *  ECHONET Lite オブジェクトIDの最大値（echonet_cfg.c）
  */
 extern const ID tmax_eobjid;
 
 /*
- *  ECHONET Lite IuWFNgú»ubNÌGAiechonet_cfg.cj
+ *  ECHONET Lite オブジェクト初期化ブロックのエリア（echonet_cfg.c）
  */
 extern const EOBJINIB eobjinib_table[];
 
 /*
- *  ECHONET Litem[hÇubNÌ
+ *  ECHONET Liteノード管理ブロックの数
  */
 extern const int tnum_enodid;
 
 /*
- *  ECHONET Lite IuWFNgÇubNÌGAiechonet_cfg.cj
+ *  ECHONET Lite オブジェクト管理ブロックのエリア（echonet_cfg.c）
  */
 extern EOBJCB eobjcb_table[];
 
 /*
- * ECHONET Litem[hÆIPAhXÌÎîñÌ
+ * ECHONET LiteノードとIPアドレスの対応情報の数
  */
 extern const int tnum_enodadr;
 
 /*
- *  ECHONET Lite m[hÆIPAhXÌÎîñubNÌGAiechonet_cfg.cj
+ *  ECHONET Lite ノードとIPアドレスの対応情報ブロックのエリア（echonet_cfg.c）
  */
 extern ENODADRB enodadrb_table[];
 
 /*
- * ECHONET Lite J[lIuWFNgID
+ * ECHONET Lite カーネルオブジェクトID
  */
 extern const ID ecn_svc_taskid;
@@ -306,10 +302,10 @@
 
 /*
- *  ECHONET Lite IuWFNgÇubN©çECHONET Lite IuWFNgIDðæèo·½ßÌ}N
+ *  ECHONET Lite オブジェクト管理ブロックからECHONET Lite オブジェクトIDを取り出すためのマクロ
  */
 #define	EOBJID(p_eobjcb)	((ID)(((p_eobjcb) - eobjcb_table) + TMIN_EOBJID))
 
 /*
- *  ECHONET Lite IuWFNg@\Ìú»
+ *  ECHONET Lite オブジェクト機能の初期化
  */
 extern void initialize_echonet_object(void);
@@ -322,120 +318,120 @@
 
 /*
- * ECHONET LiteT[rXJn
+ * ECHONET Liteサービス処理開始
  */
 ER ecn_sta_svc();
 
 /*
- * ECHONETIuWFNgQÆ
+ * ECHONETオブジェクト参照
  */
 ER ecn_ref_eobj(ID eobjid, T_REOBJ *pk_eobj);
 
 /*
- * ECHONETvpeBQÆ
+ * ECHONETプロパティ参照
  */
 ER ecn_ref_eprp(ID eobjid, uint8_t epc, T_RPRP *pk_eprp);
 
 /*
- * vpeBl«Ývisvjd¶ì¬
+ * プロパティ値書き込み要求（応答不要）電文作成
  */
 ER ecn_esv_seti(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
 
 /*
- * vpeBl«Ývivjd¶ì¬
+ * プロパティ値書き込み要求（応答要）電文作成
  */
 ER ecn_esv_setc(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
 
 /*
- * vpeBlÇÝoµvd¶ì¬
+ * プロパティ値読み出し要求電文作成
  */
 ER ecn_esv_get(T_EDATA **ppk_esv, ID eobjid, uint8_t epc);
 
 /*
- * vpeBlÊmvd¶ì¬
+ * プロパティ値通知要求電文作成
  */
 ER ecn_esv_inf_req(T_EDATA **ppk_esv, ID eobjid, uint8_t epc);
 
 /*
- * vpeBl«ÝEÇÝoµvd¶ì¬
+ * プロパティ値書き込み・読み出し要求電文作成
  */
 ER ecn_esv_set_get(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
 
 /*
- * vpeBl«ÝEÇÝoµvd¶ÜèÔµwè
+ * プロパティ値書き込み・読み出し要求電文折り返し指定
  */
 ER ecn_trn_set_get(T_EDATA *pk_esv, int *p_trn_pos);
 
 /*
- * vpeBl«ÝEÇÝoµvd¶I¹wè
+ * プロパティ値書き込み・読み出し要求電文終了指定
  */
 ER ecn_end_set_get(T_EDATA *pk_esv, int trn_pos);
 
 /*
- * vpeBlÊmivjd¶ì¬
+ * プロパティ値通知（応答要）電文作成
  */
 ER ecn_esv_infc(T_EDATA **ppk_esv, ID eobjid, ID seobjid, uint8_t sepc);
 
 /*
- * vd¶ÖÌvpeBwèÇÁ
+ * 要求電文へのプロパティ指定追加
  */
 ER ecn_add_epc(T_EDATA *pk_esv, uint8_t epc);
 
 /*
- * vd¶ÖÌvpeBf[^ÇÁ
+ * 要求電文へのプロパティデータ追加
  */
 ER ecn_add_edt(T_EDATA *pk_esv, uint8_t epc, uint8_t pdc, const void *p_edt);
 
 /*
- * vd¶ÌM
+ * 要求電文の送信
  */
 ER ecn_snd_esv(T_EDATA *pk_esv);
 
 /*
- * d¶ÌóM|[O
+ * 応答電文の受信ポーリング
  */
 ER ecn_prcv_esv(T_EDATA **ppk_esv);
 
 /*
- * d¶Ìjü
+ * 応答電文の破棄
  */
 ER ecn_rel_esv(T_EDATA *pk_esv);
 
 /*
- * d¶ÌM³m[hðæ¾·é
+ * 応答電文の送信元ノードを取得する
  */
 ID ecn_get_enod(T_EDATA *pk_esv);
 
 /*
- * d¶ÌM³@íIuWFNgðæ¾·é
+ * 応答電文の送信元機器オブジェクトを取得する
  */
 ID ecn_get_eobj(T_EDATA *pk_esv);
 
 /*
- * d¶ðÍCe[^[ú»
+ * 応答電文解析イテレーター初期化
  */
 ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv);
 
 /*
- * d¶ðÍCe[^[CNg
+ * 応答電文解析イテレーターインクリメント
  */
 ER ecn_itr_nxt(T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt);
 
 /*
- * d¶Ò¿ÌèÝM
+ * 応答電文待ちの割り込み送信
  */
 ER ecn_brk_wai(const void *p_dat, int datsz);
 
 /*
- * èÝf[^Ìæ¾
+ * 割り込みデータの取得
  */
 ER ecn_get_brk_dat(T_EDATA *pk_esv, void *p_buf, int bufsz, int *p_datsz);
 
 /*
- * f[^ÝèÖ
+ * データ設定関数
  */
 int ecn_data_prop_set(const EPRPINIB *item, const void *src, int size, bool_t *anno);
 
 /*
- * f[^æ¾Ö
+ * データ取得関数
  */
 int ecn_data_prop_get(const EPRPINIB *item, void *dst, int size);
Index: uKadecot/trunk/ecnl_ssp/echonet.tf
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet.tf	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet.tf	(revision 107)
@@ -5,36 +5,32 @@
 $  Copyright (C) 2014 Cores Co., Ltd. Japan
 $ 
-$  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
-$  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
-$  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
-$  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
-$       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
-$      XR[hÉÜÜêÄ¢é±ÆD
-$  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
-$      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
-$      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
-$      Ì³ÛØKèðfÚ·é±ÆD
-$  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
-$      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
-$      ÆD
-$    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
-$        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
-$    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
-$        ñ·é±ÆD
-$  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
-$      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
-$      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
-$      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
-$      ÆÓ·é±ÆD
-$ 
-$  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
-$  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
-$  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
-$  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
-$  ÌÓCðíÈ¢D
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
+$ 
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
 $ 
 $  @(#) $Id$
@@ -43,5 +39,5 @@
 
 $ =====================================================================
-$ echonet_cfg.hÌ¶¬
+$ echonet_cfg.hの生成
 $ =====================================================================
 
@@ -55,5 +51,5 @@
 $NL$
 
-$ m[hXgÌì¬
+$ ノードリストの作成
 $ENOD.LIST = {}$
 $LOCAL_NODE = {}$
@@ -61,8 +57,8 @@
 
 $FOREACH eobjid EOBJ.ORDER_LIST$
-$	// m[hvt@CIuWFNgÌê
+$	// ノードプロファイルオブジェクトの場合
 	$IF (EOBJ.EOBJATR[eobjid] & EOBJ_LOCAL_NODE) != 0$
 		$LOCAL_NODE = APPEND(LOCAL_NODE, eobjid)$
-$	// @íIuWFNgÌê
+$	// 機器オブジェクトの場合
 	$ELIF (EOBJ.EOBJATR[eobjid] & (EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$
 		$REMOTE_NODE = APPEND(REMOTE_NODE, eobjid)$
@@ -70,5 +66,5 @@
 $END$
 
-$	// [JÌm[hvt@CÍPÂ¾¯
+$	// ローカルのノードプロファイルは１つだけ
 $IF LENGTH(LOCAL_NODE) != 1$
 	$ERROR$Local node must be only one.$END$
@@ -90,5 +86,5 @@
 	$eprp_list = {}$
 	$prp_map_cnt = 3$
-$	// m[hvt@CÌê
+$	// ノードプロファイルの場合
 	$IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$
 		$prp_map_cnt = prp_map_cnt + 5$
@@ -104,5 +100,5 @@
 		$END$
 
-$		// m[hvt@CÌê
+$		// ノードプロファイルの場合
 		$IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$
 			$IF (EPRP.EPRPCD[eprpno] >= 0xD3) && (EPRP.EPRPCD[eprpno] <= 0xD7)$
@@ -135,5 +131,5 @@
 
 $ =====================================================================
-$ echonet_cfg.cÌ¶¬
+$ echonet_cfg.cの生成
 $ =====================================================================
 
@@ -145,5 +141,5 @@
 
 $ 
-$  CN[hfBNeBui#includej
+$  インクルードディレクティブ（#include）
 $ 
 /*$NL$
@@ -155,5 +151,5 @@
 
 $ 
-$  IuWFNgÌIDÔðÛ·éÏ
+$  オブジェクトのID番号を保持する変数
 $ 
 $IF USE_EXTERNAL_ID$
@@ -168,5 +164,5 @@
 
 $ 
-$  ECHONET LitevpeB
+$  ECHONET Liteプロパティ
 $ 
 /*$NL$
@@ -177,5 +173,5 @@
 $INCLUDE "echonet_chk.tf"$
 
-$ ECHONET LitevpeBú»ubNÌ¶¬
+$ ECHONET Liteプロパティ初期化ブロックの生成
 $IF LENGTH(EOBJ.ID_LIST) && LENGTH(EPRP.ID_LIST)$
 	$FOREACH enodid ENOD.LIST$
@@ -200,5 +196,5 @@
 
 		/*$NL$
-		$SPC$* CX^X$NL$
+		$SPC$* インスタンス数$NL$
 		$SPC$*/$NL$
 		$inst_list_len = LENGTH(INST_LIST)$
@@ -209,7 +205,7 @@
 
 		/*$NL$
-		$SPC$* NX$NL$
-		$SPC$*/$NL$
-$		// m[hvt@CàÜßéi + 1j
+		$SPC$* クラス数$NL$
+		$SPC$*/$NL$
+$		// ノードプロファイルも含める（ + 1）
 		$class_list_len = LENGTH(CLASS_LIST) + 1$
 		const uint8_t _echonet_$EOBJ.EOBJID[enodid]$_class_count[] = {$NL$
@@ -219,5 +215,5 @@
 
 		/*$NL$
-		$SPC$* CX^XXg$NL$
+		$SPC$* インスタンスリスト$NL$
 		$SPC$*/$NL$
 		$pos = 0$
@@ -238,5 +234,5 @@
 
 		/*$NL$
-		$SPC$* NXXg$NL$
+		$SPC$* クラスリスト$NL$
 		$SPC$*/$NL$
 		$pos = 0$
@@ -268,10 +264,10 @@
 			$get_map[i] = 0x00$
 		$END$
-$		// 0x9DA0x9EA0x9FÍONÉµÄ¨­
+$		// 0x9D、0x9E、0x9FはONにしておく
 		$FOREACH i { 13 , 14 , 15 }$
 			$anno_map[i] = anno_map[i] | 0x02$
 			$get_map[i] = get_map[i] | 0x02$
 		$END$
-$		// m[hvt@CÌê
+$		// ノードプロファイルの場合
 		$IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$
 			$anno_map[5] = anno_map[5] | 0x20$
@@ -285,20 +281,20 @@
 		$FOREACH eprpno EPRP.ID_LIST$
 			$IF EQ(EPRP.EOBJID[eprpno], eobjid)$
-$				// (0x80 <= eprpcd && eprpcd <= 0xFF)ÅÈ¢êiE_PARj
+$				// (0x80 <= eprpcd && eprpcd <= 0xFF)でない場合（E_PAR）
 				$IF !(0x80 <= EPRP.EPRPCD[eprpno] && EPRP.EPRPCD[eprpno] <= 0xFF)$
 					$ERROR EPRP.TEXT_LINE[eprpno]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eprpcd", EPRP.EPRPCD[eprpno], eprpno, "ECN_DEF_EPRP")$$END$
 				$END$
 
-$				// eprpatrªimEPC_RULE_SET] | [EPC_RULE_GET] | [EPC_RULE_ANNO] | [EPC_ANNOUNCEn| [EPC_VARIABLE]jÅÈ¢êiE_RSATRj
+$				// eprpatrが（［EPC_RULE_SET] | [EPC_RULE_GET] | [EPC_RULE_ANNO] | [EPC_ANNOUNCE］| [EPC_VARIABLE]）でない場合（E_RSATR）
 				$IF (EPRP.EPRPATR[eprpno] & ~(EPC_RULE_SET|EPC_RULE_GET|EPC_RULE_ANNO|EPC_ANNOUNCE|EPC_VARIABLE)) != 0$
 					$ERROR EPRP.TEXT_LINE[eprpno]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eprpatr", EPRP.EPRPATR[eprpno], eprpno, "ECN_DEF_EPRP")$$END$
 				$END$
 
-$				// (0 <= eprpsz && eprpsz <= 255)ÅÈ¢êiE_PARj
+$				// (0 <= eprpsz && eprpsz <= 255)でない場合（E_PAR）
 				$IF !(0 <= EPRP.EPRPSZ[eprpno] && EPRP.EPRPSZ[eprpno] <= 255)$
 					$ERROR EPRP.TEXT_LINE[eprpno]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eprpsz", EPRP.EPRPSZ[eprpno], eprpno, "ECN_DEF_EPRP")$$END$
 				$END$
 
-$				// vpeB}bvÉÝè
+$				// プロパティマップに設定
 				$pos = EPRP.EPRPCD[eprpno] & 0xF$
 				$bit = (EPRP.EPRPCD[eprpno] >> 4) - 8$
@@ -320,5 +316,5 @@
 		$END$
 
-$		// K{AiEXvpeBª é©`FbN
+$		// 必須アナウンスプロパティがあるかチェック
 		$must_anno_map = GetPropertyInfo(EOBJ.EOJX1[eobjid], EOBJ.EOJX2[eobjid], EPC_ANNOUNCE)$
 		$i = 0$
@@ -331,5 +327,5 @@
 		$END$
 
-$		// K{SETvpeBª é©`FbN
+$		// 必須SETプロパティがあるかチェック
 		$must_set_map = GetPropertyInfo(EOBJ.EOJX1[eobjid], EOBJ.EOJX2[eobjid], EPC_RULE_SET)$
 		$i = 0$
@@ -342,5 +338,5 @@
 		$END$
 
-$		// K{GETvpeBª é©`FbN
+$		// 必須GETプロパティがあるかチェック
 		$must_get_map = GetPropertyInfo(EOBJ.EOJX1[eobjid], EOBJ.EOJX2[eobjid], EPC_RULE_GET)$
 		$i = 0$
@@ -354,5 +350,5 @@
 
 		/*$NL$
-		$SPC$* AiEXvpeB}bv$NL$
+		$SPC$* アナウンスプロパティマップ$NL$
 		$SPC$*/$NL$
 		$anno_list = LSORT(anno_list, "compare")$
@@ -375,5 +371,5 @@
 
 		/*$NL$
-		$SPC$* SETvpeB}bv$NL$
+		$SPC$* SETプロパティマップ$NL$
 		$SPC$*/$NL$
 		$set_list = LSORT(set_list, "compare")$
@@ -396,5 +392,5 @@
 
 		/*$NL$
-		$SPC$* GETvpeB}bv$NL$
+		$SPC$* GETプロパティマップ$NL$
 		$SPC$*/$NL$
 		$get_list = LSORT(get_list, "compare")$
@@ -417,29 +413,29 @@
 
 		/*$NL$
-		$SPC$* vpeBè`$NL$
+		$SPC$* プロパティ定義$NL$
 		$SPC$*/$NL$
 		const EPRPINIB _echonet_$EOBJ.EOBJID[eobjid]$_eprpinib_table[TNUM_$EOBJ.EOBJID[eobjid]$_EPRPNO] = {$NL$
 		$FOREACH eprpno eprp_list$
-$			// ECHONET LitevpeBú»ubN
+$			// ECHONET Liteプロパティ初期化ブロック
 			$TAB${ ($EPRP.EPRPCD[eprpno]$), ($EPRP.EPRPATR[eprpno]$), ($EPRP.EPRPSZ[eprpno]$), ($EPRP.EXINF[eprpno]$), ($EPRP.EPRPSET[eprpno]$), ($EPRP.EPRPGET[eprpno]$) },$NL$
 		$END$
-$		// óÔAiEXvpeB}bv
+$		// 状態アナウンスプロパティマップ
 		$TAB${ (0x9D), (EPC_RULE_GET), $FORMAT("0x%1$x" , +anno_len)$, (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_anno_prpmap, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$
-$		// SetvpeB}bv
+$		// Setプロパティマップ
 		$TAB${ (0x9E), (EPC_RULE_GET), $FORMAT("0x%1$x" , +set_len)$, (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_set_prpmap, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$
-$		// GetvpeB}bv
+$		// Getプロパティマップ
 		$TAB${ (0x9F), (EPC_RULE_GET), $FORMAT("0x%1$x" , +get_len)$, (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_get_prpmap, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) }
-$		// m[hvt@CÌê
+$		// ノードプロファイルの場合
 		$IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$
 			,$NL$
-$			// CX^X
+$			// インスタンス数
 			$TAB${ (0xD3), (EPC_RULE_GET), (3), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_inst_count, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$
-$			// NX
+$			// クラス数
 			$TAB${ (0xD4), (EPC_RULE_GET), (2), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_class_count, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$
-$			// CX^XXgÊm
+$			// インスタンスリスト通知
 			$TAB${ (0xD5), (EPC_RULE_ANNO), sizeof(_echonet_$EOBJ.EOBJID[eobjid]$_inst_list), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_inst_list, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$
-$			// CX^XXgS
+$			// インスタンスリストS
 			$TAB${ (0xD6), (EPC_RULE_GET), sizeof(_echonet_$EOBJ.EOBJID[eobjid]$_inst_list), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_inst_list, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$
-$			// NXXgS
+$			// クラスリストS
 			$TAB${ (0xD7), (EPC_RULE_GET), sizeof(_echonet_$EOBJ.EOBJID[eobjid]$_class_list), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_class_list, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) }$NL$
 		$ELSE$
@@ -455,5 +451,5 @@
 
 $ 
-$  ECHONET LiteIuWFNg
+$  ECHONET Liteオブジェクト
 $ 
 /*$NL$
@@ -462,56 +458,56 @@
 $NL$
 
-$ ECHONET LiteIuWFNgIDÔÌÅål
+$ ECHONET LiteオブジェクトID番号の最大値
 const ID _echonet_tmax_eobjid = (TMIN_EOBJID + TNUM_EOBJID - 1);$NL$
 $NL$
 
-$ ECHONET LiteIuWFNgú»ubNÌ¶¬
+$ ECHONET Liteオブジェクト初期化ブロックの生成
 $IF LENGTH(EOBJ.ID_LIST)$
 	const EOBJINIB _echonet_eobjinib_table[TNUM_EOBJID] = {$NL$
 	$JOINEACH eobjid EOBJ.ID_LIST ",\n"$
-$		// eobjatrªimEOBJ_LOCAL_NODE] | [EOBJ_SYNC_REMOTE_NODE] | [EOBJ_ASYNC_REMOTE_NODE] | [EOBJ_DEVICEnjÅÈ¢êiE_RSATRj
+$		// eobjatrが（［EOBJ_LOCAL_NODE] | [EOBJ_SYNC_REMOTE_NODE] | [EOBJ_ASYNC_REMOTE_NODE] | [EOBJ_DEVICE］）でない場合（E_RSATR）
 		$IF (EOBJ.EOBJATR[eobjid] & ~(EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE|EOBJ_DEVICE)) != 0$
 			$ERROR EOBJ.TEXT_LINE[eobjid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eobjatr", EOBJ.EOBJATR[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
 		$END$
 
-$		// m[hvt@CIuWFNgÌê
+$		// ノードプロファイルオブジェクトの場合
 		$IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$
-$			// (enodid == EOBJ_NULL)ÅÈ¢êiE_PARj
+$			// (enodid == EOBJ_NULL)でない場合（E_PAR）
 			$IF !EQ(EOBJ.ENODID[eobjid], EOBJ_NULL)$
 				$ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "enodid", EOBJ.ENODID[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
 			$END$
 
-$			// (eojx1 == EOJ_X1_PROFILE)ÅÈ¢êiE_PARj
+$			// (eojx1 == EOJ_X1_PROFILE)でない場合（E_PAR）
 			$IF EOBJ.EOJX1[eobjid] != EOJ_X1_PROFILE$
 				$ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx1", EOBJ.EOJX1[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
 			$END$
 
-$			// (eojx2 == EOJ_X2_NODE_PROFILE)ÅÈ¢êiE_PARj
+$			// (eojx2 == EOJ_X2_NODE_PROFILE)でない場合（E_PAR）
 			$IF EOBJ.EOJX2[eobjid] != EOJ_X2_NODE_PROFILE$
 				$ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx2", EOBJ.EOJX2[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
 			$END$
 
-$			// (1 <= eojx3 && eojx3 <= 2)ÅÈ¢êiE_PARj
+$			// (1 <= eojx3 && eojx3 <= 2)でない場合（E_PAR）
 			$IF !(1 <= EOBJ.EOJX3[eobjid] && EOBJ.EOJX3[eobjid] <= 2)$
 				$ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx3", EOBJ.EOJX3[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
 			$END$
-$		// @íIuWFNgÌê
-		$ELSE$
-$			// (enodid != EOBJ_NULL)ÅÈ¢êiE_PARj
+$		// 機器オブジェクトの場合
+		$ELSE$
+$			// (enodid != EOBJ_NULL)でない場合（E_PAR）
 			$IF EQ(EOBJ.ENODID[eobjid], EOBJ_NULL)$
 				$ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "enodid", EOBJ.ENODID[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
 			$END$
 
-$			// (0 <= eojx1 && eojx1 <= 255)ÅÈ¢êiE_PARj
+$			// (0 <= eojx1 && eojx1 <= 255)でない場合（E_PAR）
 			$IF !(0 <= EOBJ.EOJX1[eobjid] && EOBJ.EOJX1[eobjid] <= 255)$
 				$ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx1", EOBJ.EOJX1[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
 			$END$
 
-$			// (0 <= eojx2 && eojx2 <= 255)ÅÈ¢êiE_PARj
+$			// (0 <= eojx2 && eojx2 <= 255)でない場合（E_PAR）
 			$IF !(0 <= EOBJ.EOJX2[eobjid] && EOBJ.EOJX2[eobjid] <= 255)$
 				$ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx2", EOBJ.EOJX2[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
 			$END$
 
-$			// (0 <= eojx3 && eojx3 <= 255)ÅÈ¢êiE_PARj
+$			// (0 <= eojx3 && eojx3 <= 255)でない場合（E_PAR）
 			$IF !(0 <= EOBJ.EOJX3[eobjid] && EOBJ.EOJX3[eobjid] <= 255)$
 				$ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx3", EOBJ.EOJX3[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
@@ -519,5 +515,5 @@
 		$END$
 
-$		// ECHONET LiteIuWFNgú»ubN
+$		// ECHONET Liteオブジェクト初期化ブロック
 		$TAB${ ($EOBJ.EOBJATR[eobjid]$), ($EOBJ.ENODID[eobjid]$), ($EOBJ.EXINF[eobjid]$), ($EOBJ.EOJX1[eobjid]$), ($EOBJ.EOJX2[eobjid]$), ($EOBJ.EOJX3[eobjid]$), _echonet_$EOBJ.EOBJID[eobjid]$_eprpinib_table, TNUM_$EOBJ.EOBJID[eobjid]$_EPRPNO }
 	$END$$NL$
@@ -529,10 +525,10 @@
 $NL$
 
-$ ECHONET Litem[hÇubNÌ
+$ ECHONET Liteノード管理ブロックの数
 const int _echonet_tnum_enodid = TNUM_ENODID;$NL$
 $NL$
 
 $ 
-$  ECHONET Litem[hÇubN
+$  ECHONET Liteノード管理ブロック
 $ 
 /*$NL$
@@ -540,5 +536,5 @@
 $SPC$*/$NL$
 $NL$
-$ ECHONET Litem[hÆIPAhXÌÎîñubNÌ¶¬
+$ ECHONET LiteノードとIPアドレスの対応情報ブロックの生成
 $FOREACH enodid ENOD.LIST$
 	$eobj_list = {}$
@@ -549,5 +545,5 @@
 	$END$
 	/*$NL$
-	$SPC$* m[hÉ®·é@íIuWFNgÌê$NL$
+	$SPC$* ノードに所属する機器オブジェクトの一覧$NL$
 	$SPC$*/$NL$
 	const EOBJINIB *_echonet_$EOBJ.EOBJID[enodid]$_eobjinib_table[TNUM_$EOBJ.EOBJID[enodid]$_EOBJNO] = {$NL$
@@ -560,5 +556,5 @@
 $IF LENGTH(ENOD.LIST)$
 	/*$NL$
-	$SPC$* ECHONET Litem[hÇubN$NL$
+	$SPC$* ECHONET Liteノード管理ブロック$NL$
 	$SPC$*/$NL$
 	EOBJCB _echonet_eobjcb_table[TNUM_ENODID] = {$NL$
@@ -572,10 +568,10 @@
 $NL$
 
-$ ECHONET Litem[hÆIPAhXÌÎîñÌ
+$ ECHONET LiteノードとIPアドレスの対応情報の数
 const int _echonet_tnum_enodadr = TNUM_ENODADR;$NL$
 $NL$
 
 $ 
-$  ECHONET Litem[hÆIPAhXÌÎîñ
+$  ECHONET LiteノードとIPアドレスの対応情報
 $ 
 /*$NL$
@@ -583,5 +579,5 @@
 $SPC$*/$NL$
 $NL$
-$ ECHONET Litem[hÆIPAhXÌÎîñubNÌ¶¬
+$ ECHONET LiteノードとIPアドレスの対応情報ブロックの生成
 $IF LENGTH(EOBJ.ID_LIST)$
 	ENODADRB _echonet_enodadrb_table[TNUM_ENODADR] = {$NL$
@@ -601,5 +597,5 @@
 $NL$
 
-$ ECHONET Litem[h²ÆÌAvP[Vªvµ½d¶ÌV[PXÔ
+$ ECHONET Liteノードごとのアプリケーションが要求した電文のシーケンス番号
 uint16_t _echonet_apitid_table[TNUM_ENODADR];$NL$
 $NL$
@@ -610,5 +606,5 @@
 
 $
-$ ECHONET Lite J[lIuWFNgID
+$ ECHONET Lite カーネルオブジェクトID
 $
 const ID _echonet_ecn_svc_taskid = ECHONET_SVC_TASK;$NL$
Index: uKadecot/trunk/ecnl_ssp/echonet_agent.c
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_agent.c	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_agent.c	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2015 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -41,5 +37,5 @@
 
 /*
- *		ECHONET Lite ®I¶¬m[h
+ *		ECHONET Lite 動的生成ノード
  */
 
@@ -183,9 +179,7 @@
 
 /*
- *  L
-[Ìú»
+ *  キューの初期化
  *
- *  p_queueÉÍL
-[wb_ðwè·éD
+ *  p_queueにはキューヘッダを指定する．
  */
 Inline void
@@ -200,11 +194,8 @@
 
 /*
- *  L
-[ÌOGgÖÌ}ü
+ *  キューの前エントリへの挿入
  *
- *  p_queueÌOÉp_entryð}ü·éDp_queueÉL
-[wb_ðwèµ½ê
- *  ÉÍCL
-[ÌöÉp_entryð}ü·é±ÆÉÈéD
+ *  p_queueの前にp_entryを挿入する．p_queueにキューヘッダを指定した場
+ *  合には，キューの末尾にp_entryを挿入することになる．
  */
 Inline void
@@ -222,8 +213,7 @@
 
 /*
- *  GgÌí
+ *  エントリの削除
  *
- *  p_entryðL
-[©çí·éD
+ *  p_entryをキューから削除する．
  */
 Inline void
@@ -338,5 +328,5 @@
 	int i = eobjid;
 
-	/* IuWFNgID©çÀÌðæ¾ */
+	/* オブジェクトIDから実体を取得 */
 	i -= (tmax_eobjid + 1);
 	if ((i < 0)
@@ -349,8 +339,8 @@
 		return false;
 
-	/* IuWFNgÌEOJðRs[ */
+	/* オブジェクトのEOJをコピー */
 	memcpy(eoj, &buf->obj.inib.eojx1, sizeof(*eoj));
 
-	/* ®·ém[hÌIuWFNgIDðæ¾ */
+	/* 所属するノードのオブジェクトIDを取得 */
 	if(buf->obj.inib.enodid == 0)
 		i = buf->obj.eobjId;
@@ -364,5 +354,5 @@
 	}
 
-	/* m[hIDðæ¾ */
+	/* ノードIDを取得 */
 	buf = &agent->blockes[i];
 	*enodid = buf->node.enodId;
@@ -405,5 +395,5 @@
 	T_ECN_EOJ *eoj, *end;
 
-	// vpeBÊm©æ¾ÅA
+	// プロパティ通知か取得応答で、
 	switch (esv->hdr.edata.esv) {
 	case ESV_GET_RES:
@@ -415,5 +405,5 @@
 	}
 
-	// m[hvt@C¶Ìê
+	// ノードプロファイル宛の場合
 	eoj = &esv->hdr.edata.seoj;
 	if ((eoj->eojx1 != EOJ_X1_PROFILE) || (eoj->eojx2 != EOJ_X2_NODE_PROFILE)
@@ -428,9 +418,9 @@
 	while (ecn_itr_nxt(&enm, &epc, &pdc, &edt) == E_OK) {
 		switch (epc) {
-		// CX^XXgÊmÌê
+		// インスタンスリスト通知の場合
 		case 0xD5:
-		// ©m[hCX^XXgrÊmÌê
+		// 自ノードインスタンスリストＳ通知の場合
 		case 0xD6:
-			// TCYªíÈ¢ê
+			// サイズが合わない場合
 			if (pdc != (1 + edt[0] * sizeof(T_ECN_EOJ)))
 				return NULL;
@@ -773,7 +763,7 @@
 	ecn_obj_t *sobj;
 
-	/* ÃIÉè`³ê½M³Ìê */
+	/* 静的に定義された送信元の場合 */
 	if ((*ppk_snod != NULL) && (*ppk_snod)->eobjs != NULL) {
-		/* µÈ¢ */
+		/* 処理しない */
 		return;
 	}
@@ -781,7 +771,7 @@
 	snod = ecn_agent_find_node2(*ppk_snod);
 
-	/* M³ðmçÈ©Á½ç */
+	/* 送信元を知らなかったら */
 	if (snod == NULL) {
-		/* M³Ìm[hîñðVKÉì¬ */
+		/* 送信元のノード情報を新規に作成 */
 		snod = ecn_agent_create_node(agent, esv);
 		if (snod == NULL)
@@ -791,10 +781,10 @@
 	sobj = ecn_agent_find_obj2(snod, *ppk_sobj);
 
-	/* m[hvt@CÌê */
+	/* ノードプロファイルの場合 */
 	if ((esv->hdr.edata.seoj.eojx1 == EOJ_X1_PROFILE)
 		&& (esv->hdr.edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
 		sobj = &snod->base;
 	}
-	/* @íIuWFNgÌê */
+	/* 機器オブジェクトの場合 */
 	else {
 		sobj = ecn_agent_find_eobj(&snod->eobj, esv->hdr.edata.seoj);
@@ -841,5 +831,5 @@
 	ecn_obj_t *obj = node->current;
 
-	// vpeBlÇÝoµv
+	// プロパティ値読み出し要求
 	ecn_esv_get(&esv, obj->eobjId, 0x9E);
 	ecn_snd_esv(esv);
@@ -854,5 +844,5 @@
 	ecn_obj_t *obj = node->current;
 
-	// vpeBlÇÝoµv
+	// プロパティ値読み出し要求
 	ecn_esv_get(&esv, obj->eobjId, 0x9F);
 	ecn_snd_esv(esv);
@@ -867,5 +857,5 @@
 	ecn_obj_t *obj = node->current;
 
-	// vpeBlÇÝoµv
+	// プロパティ値読み出し要求
 	ecn_esv_get(&esv, obj->eobjId, 0x9D);
 	ecn_snd_esv(esv);
@@ -881,21 +871,21 @@
 	ecn_device_t *device;
 
-	/* objªwè³êÄ¢È¢ê */
+	/* objが指定されていない場合 */
 	if(obj == NULL){
-		/* ±Ìm[hðÔ· */
+		/* このノードを返す */
 		node->current = &node->base;
 		return;
 	}
-	/* m[hÌê */
+	/* ノードの場合 */
 	else if((obj->inib.eojx1 == EOJ_X1_PROFILE) && (obj->inib.eojx2 == EOJ_X2_NODE_PROFILE)){
 		node = (ecn_node_t *)obj;
 
-		/* zºÌ@íðÔ· */
+		/* 配下の機器を返す */
 		queue = node->devices.p_next;
 		device = (ecn_device_t *)cast_obj(queue);
 	}
-	/* @íÌê */
+	/* 機器の場合 */
 	else{
-		/* Ì@íðÔ· */
+		/* 次の機器を返す */
 		node = ((ecn_device_t *)obj)->node;
 		queue = cast_queue(obj)->p_next;
@@ -903,5 +893,5 @@
 	}
 
-	/* »Ì@íªö¾Á½ê */
+	/* その機器が末尾だった場合 */
 	if(&node->devices == queue){
 		node->current = NULL;
@@ -1040,5 +1030,5 @@
 	bool_t has = false;
 
-	/* m[hÌêÍCX^XXgÊmÆ©m[hCX^XXgrÊmðK{Åó¯æé */
+	/* ノードの場合はインスタンスリスト通知と自ノードインスタンスリストＳ通知を必須で受け取る */
 	if ((fp_obj->enodid == 0) && ((fa_epc == 0xD5) || (fa_epc == 0xD6)))
 		has = true;
@@ -1074,7 +1064,7 @@
 
 	switch (item->eprpcd) {
-	/* CX^XXgÊmÌê */
+	/* インスタンスリスト通知の場合 */
 	case 0xD5:
-	/* ©m[hCX^XXgrÊmÌê */
+	/* 自ノードインスタンスリストＳ通知の場合 */
 	case 0xD6:
 		if ((node != NULL) && (node->state == ecn_node_state_idle)) {
@@ -1094,10 +1084,10 @@
 		}
 		break;
-	/* ÊmvpeB}bvÌê */
+	/* 通知プロパティマップの場合 */
 	case 0x9D:
 		eprpcnt = edt[0];
 
 		if (eprpcnt < 16) {
-			/* TCY`FbN */
+			/* サイズチェック */
 			if (eprpcnt + 1 != size)
 				return 0;
@@ -1107,5 +1097,5 @@
 		}
 		else {
-			/* TCY`FbN */
+			/* サイズチェック */
 			if (size != 17)
 				return 0;
@@ -1116,10 +1106,10 @@
 		sobj->pmapFlag |= PMAP_FLAG_ANNO;
 		break;
-	/* SETvpeB}bvÌê */
+	/* SETプロパティマップの場合 */
 	case 0x9E:
 		eprpcnt = edt[0];
 
 		if (eprpcnt < 16) {
-			/* TCY`FbN */
+			/* サイズチェック */
 			if (eprpcnt + 1 != size)
 				return 0;
@@ -1129,5 +1119,5 @@
 		}
 		else {
-			/* TCY`FbN */
+			/* サイズチェック */
 			if (size != 17)
 				return 0;
@@ -1138,10 +1128,10 @@
 		sobj->pmapFlag |= PMAP_FLAG_SET;
 		break;
-	/* GETvpeB}bvÌê */
+	/* GETプロパティマップの場合 */
 	case 0x9F:
 		eprpcnt = edt[0];
 
 		if (eprpcnt < 16) {
-			/* TCY`FbN */
+			/* サイズチェック */
 			if (eprpcnt + 1 != size)
 				return 0;
@@ -1151,5 +1141,5 @@
 		}
 		else {
-			/* TCY`FbN */
+			/* サイズチェック */
 			if (size != 17)
 				return 0;
Index: uKadecot/trunk/ecnl_ssp/echonet_agent.h
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_agent.h	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_agent.h	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2015 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -41,5 +37,5 @@
 
 /*
- *		ECHONET Lite ®I¶¬m[h
+ *		ECHONET Lite 動的生成ノード
  */
 
@@ -56,14 +52,12 @@
 
 /*
- *  L
-[Ìf[^\¢Ìè`
+ *  キューのデータ構造の定義
  */
 typedef struct ecn_agent_queue {
 #ifdef _DEBUG
-	struct ecn_agent_queue *p_parent;	/* eL
-[ÖÌ|C^ */
+	struct ecn_agent_queue *p_parent;	/* 親キューへのポインタ */
 #endif
-	struct ecn_agent_queue *p_next;		/* GgÖÌ|C^ */
-	struct ecn_agent_queue *p_prev;		/* OGgÖÌ|C^ */
+	struct ecn_agent_queue *p_next;		/* 次エントリへのポインタ */
+	struct ecn_agent_queue *p_prev;		/* 前エントリへのポインタ */
 } ecn_agent_queue_t;
 
@@ -77,8 +71,8 @@
 	EOBJINIB inib;
 	uint8_t pmapFlag;
-	uint8_t pmapSet[16];		/* SETvpeB}bv */
-	uint8_t pmapGet[16];		/* GETvpeB}bv */
-	uint8_t pmapAnno[16];		/* óÔÏ»ÊmvpeB}bv */
-	uint_t eprpcnt;				/* ECHONET Lite vpeB */
+	uint8_t pmapSet[16];		/* SETプロパティマップ */
+	uint8_t pmapGet[16];		/* GETプロパティマップ */
+	uint8_t pmapAnno[16];		/* 状態変化時通知プロパティマップ */
+	uint_t eprpcnt;				/* ECHONET Lite プロパティ数 */
 } ecn_obj_t;
 
@@ -118,11 +112,11 @@
 typedef struct ecn_inm_get_device_item
 {
-	ID			eobjid;			/* ECHONET Lite IuWFNgID */
-	ID			enodid;			/* ECHONET Lite m[hvt@CIuWFNgID */
-	uint8_t		state;			/* îñûWóÔ */
-	uint8_t		eojx1;			/* ECHONET Lite IuWFNgÌNXO[vR[h */
-	uint8_t		eojx2;			/* ECHONET Lite IuWFNgÌNXR[h */
-	uint8_t		eojx3;			/* ECHONET Lite IuWFNgÌCX^XR[h */
-	ECN_ENOD_ID	addrid;			/* IPAhXæ¾pID */
+	ID			eobjid;			/* ECHONET Lite オブジェクトID */
+	ID			enodid;			/* ECHONET Lite ノードプロファイルオブジェクトID */
+	uint8_t		state;			/* 情報収集状態 */
+	uint8_t		eojx1;			/* ECHONET Lite オブジェクトのクラスグループコード */
+	uint8_t		eojx2;			/* ECHONET Lite オブジェクトのクラスコード */
+	uint8_t		eojx3;			/* ECHONET Lite オブジェクトのインスタンスコード */
+	ECN_ENOD_ID	addrid;			/* IPアドレス取得用ID */
 } ecn_inm_get_device_item_t;
 
@@ -149,29 +143,29 @@
 } ecn_inm_get_device_info_res_t;
 
-/* ú» */
+/* 初期化 */
 void ecn_agent_init(void);
-/* m[hðõ */
+/* ノードを検索 */
 ecn_node_t *ecn_agent_find_node(ECN_ENOD_ID enodid);
-/* @íðõ */
+/* 機器を検索 */
 ecn_obj_t *ecn_agent_find_eobj(const EOBJCB *pk_nod, T_ECN_EOJ eoj);
-/* IuWFNgIDðæ¾ */
+/* オブジェクトIDを取得 */
 ID ecn_agent_get_eobj(const EOBJINIB *pk_obj);
-/* Ì@íðæ¾ */
+/* 次の機器を取得 */
 const EOBJINIB *ecn_agent_next_eobj(const EOBJCB *pk_nod, const EOBJINIB *pk_obj);
-/* IuWFNgID©çEOJÆm[hIDðæ¾ */
+/* オブジェクトIDからEOJとノードIDを取得 */
 bool_t ecn_agent_get_eoj_enodid(ID eobjid, T_ECN_EOJ *eoj, ECN_ENOD_ID *enodid);
-/* ^CAEglðÔ· */
+/* タイムアウト値を返す */
 TMO ecn_agent_get_timer();
-/* ^C}[ÌÔðißé */
+/* タイマーの時間を進める */
 void ecn_agent_progress(TMO interval);
-/* ^CAEgiÌ½ßÌÄÑoµj */
+/* タイムアウト処理（のための呼び出し） */
 void ecn_agent_timeout();
-/* àbZ[W */
+/* 内部メッセージ処理 */
 bool_t ecn_agent_proc_int_msg(ECN_FBS_ID fbs, uint8_t cmd);
-/* ECHONETd¶óM */
+/* ECHONET電文受信処理 */
 void ecn_agent_proc_ecn_msg(const EOBJCB **snod, const EOBJINIB **sobj, T_EDATA *esv);
-/* ECHONETd¶óMI¹ */
+/* ECHONET電文受信処理終了 */
 void ecn_agent_proc_ecn_msg_end();
-/* vpeBðæ¾ */
+/* プロパティを取得 */
 const EPRPINIB *ecn_agent_get_property(const EOBJINIB *fp_obj, uint8_t fa_epc, const EPRPINIB *item);
 
Index: uKadecot/trunk/ecnl_ssp/echonet_chk.tf
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_chk.tf	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_chk.tf	(revision 107)
@@ -5,36 +5,32 @@
 $  Copyright (C) 2014 Cores Co., Ltd. Japan
 $ 
-$  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
-$  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
-$  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
-$  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
-$       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
-$      XR[hÉÜÜêÄ¢é±ÆD
-$  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
-$      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
-$      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
-$      Ì³ÛØKèðfÚ·é±ÆD
-$  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
-$      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
-$      ÆD
-$    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
-$        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
-$    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
-$        ñ·é±ÆD
-$  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
-$      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
-$      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
-$      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
-$      ÆÓ·é±ÆD
+$  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+$  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$      スコード中に含まれていること．
+$  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$      の無保証規定を掲載すること．
+$  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$      と．
+$    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$        作権表示，この利用条件および下記の無保証規定を掲載すること．
+$    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+$        報告すること．
+$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$      免責すること．
 $ 
-$  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
-$  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
-$  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
-$  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
-$  ÌÓCðíÈ¢D
+$  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$  の責任を負わない．
 $ 
 $  @(#) $Id$
@@ -43,5 +39,5 @@
 
 $ =====================================================================
-$ K{vpeBÌ`FbN
+$ 必須プロパティのチェック
 $ =====================================================================
 
@@ -50,13 +46,13 @@
 $END$
 
-$ vt@CIuWFNgX[p[NX
+$ プロファイルオブジェクトスーパークラス
 $ProfileObjectSuperClass.EPC = { 0x88, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x9D, 0x9E, 0x9F }$
 $ProfileObjectSuperClass.MUST = { EPC_NONE, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_GET }$
 
-$ m[hvt@CNX
+$ ノードプロファイルクラス
 $NodeProfileClass.EPC = { 0x80, 0x82, 0x83, 0x89, 0xBF, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7 }$
 $NodeProfileClass.MUST = { EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_ANNO, EPC_RULE_GET, EPC_RULE_GET }$
 
-$ @íIuWFNgX[p[NX
+$ 機器オブジェクトスーパークラス
 $DeviceSuperClass.EPC = { 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x93, 0x97, 0x98, 0x99, 0x9A, 0x9D, 0x9E, 0x9F }$
 $DeviceSuperClass.MUST = { EPC_RULE_GET, EPC_RULE_SET|EPC_RULE_GET, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_NONE, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_GET }$
Index: uKadecot/trunk/ecnl_ssp/echonet_class.h
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_class.h	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_class.h	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -43,575 +39,557 @@
 #define ECHONET_CLASS_H
 
-/* ZT[ÖA@í */
+/* センサー関連機器 */
 #define EOJ_X1_SENSOR 0x00
 
-/* ó²ÖA@í */
+/* 空調関連機器 */
 #define EOJ_X1_AIR_CONDITIONER 0x01
 
-/* ZîEÝõÖA@í */
+/* 住宅・設備関連機器 */
 #define EOJ_X1_AMENITY 0x02
 
-/* ²EÆÖA@í */
+/* 調理・家事関連機器 */
 #define EOJ_X1_HOUSEWORK 0x03
 
-/* NÖA@í */
+/* 健康関連機器 */
 #define EOJ_X1_WELLNESS 0x04
 
-/* ÇEìÖA@í */
+/* 管理・操作関連機器 */
 #define EOJ_X1_CONTROLLER 0x05
 
-/* AVÖA@í */
+/* AV関連機器 */
 #define EOJ_X1_AUDIO_VISUAL 0x06
 
-/* vt@C */
+/* プロファイル */
 #define EOJ_X1_PROFILE 0x0E
 
-/* [U[è` */
+/* ユーザー定義 */
 #define EOJ_X1_USER_DEFINED 0x0F
 
 /*
- * ZTÖA@íNXO[v *
- */
-/* KXRêZT */
+ * センサ関連機器クラスグループ *
+ */
+/* ガス漏れセンサ */
 #define EOJ_X2_GAS_LEAK_SENSOR 0x01
 
-/* hÆZT */
+/* 防犯センサ */
 #define EOJ_X2_CRIME_PREVENTION_SENSOR 0x02
 
-/* ñí{^ */
+/* 非常ボタン */
 #define EOJ_X2_EMERGENCY_BUTTON 0x03
 
-/* ~}pZT */
+/* 救急用センサ */
 #define EOJ_X2_FIRST_AID_SENSOR 0x04
 
-/* nkZT */
+/* 地震センサ */
 #define EOJ_X2_EARTHQUAKE_SENSOR 0x05
 
-/* RdZT */
+/* 漏電センサ */
 #define EOJ_X2_ELECTRIC_LEAK_SENSOR 0x06
 
-/* lÌmZT */
+/* 人体検知センサ */
 #define EOJ_X2_HUMAN_DETECTION_SENSOR 0x07
 
-/* qZT */
+/* 来客センサ */
 #define EOJ_X2_VISITOR_SENSOR 0x08
 
-/* ÄÑoµZT */
+/* 呼び出しセンサ */
 #define EOJ_X2_CALL_SENSOR 0x09
 
-/* IZT */
+/* 結露センサ */
 #define EOJ_X2_CONDENSATION_SENSOR 0x0A
 
-/* óCõZT */
+/* 空気汚染センサ */
 #define EOJ_X2_AIR_POLLUTION_SENSOR 0x0B
 
-/* _fZT */
+/* 酸素センサ */
 #define EOJ_X2_OXYGEN_SENSOR 0x0C
 
-/* ÆxZT */
+/* 照度センサ */
 #define EOJ_X2_ILLUMINANCE_SENSOR 0x0D
 
-/* ¹ZT */
+/* 音センサ */
 #define EOJ_X2_SOUND_SENSOR 0x0E
 
-/* ZT */
+/* 投函センサ */
 #define EOJ_X2_MAILING_SENSOR 0x0F
 
-/* d×ZT */
+/* 重荷センサ */
 #define EOJ_X2_WEIGHT_SENSOR 0x10
 
-/* ·xZT */
+/* 温度センサ */
 #define EOJ_X2_TEMPERATURE_SENSOR 0x11
 
-/* ¼xZT */
+/* 湿度センサ */
 #define EOJ_X2_HUMIDITY_SENSOR 0x12
 
-/* JZT */
+/* 雨センサ */
 #define EOJ_X2_RAIN_SENSOR 0x13
 
-/* 
-ÊZT */
+/* 水位センサ */
 #define EOJ_X2_WATER_LEVEL_SENSOR 0x14
 
-/* C
-ÊZT */
+/* 風呂水位センサ */
 #define EOJ_X2_BATH_WATER_LEVEL_SENSOR 0x15
 
-/* C¦«ãªèZT */
+/* 風呂沸き上がりセンサ */
 #define EOJ_X2_BATH_HEATING_STATUS_SENSOR 0x16
 
-/* 
-RêZT */
+/* 水漏れセンサ */
 #define EOJ_X2_WATER_LEAK_SENSOR 0x17
 
-/* 
- ÓêZT */
+/* 水あふれセンサ */
 #define EOJ_X2_WATER_OVERFLOW_SENSOR 0x18
 
-/* ÎÐZT */
+/* 火災センサ */
 #define EOJ_X2_FIRE_SENSOR 0x19
 
-/* ^oRZT */
+/* タバコ煙センサ */
 #define EOJ_X2_CIGARETTE_SMOKE_SENSOR 0x1A
 
-/* bnQZT */
+/* ＣＯ２センサ */
 #define EOJ_X2_CO2_SENSOR 0x1B
 
-/* KXZT */
+/* ガスセンサ */
 #define EOJ_X2_GAS_SENSOR 0x1C
 
-/* unbZT */
+/* ＶＯＣセンサ */
 #define EOJ_X2_VOC_SENSOR 0x1D
 
-/* ·³ZT */
+/* 差圧センサ */
 #define EOJ_X2_DIFFERENTIAL_PRESSURE_SENSOR 0x1E
 
-/* ¬ZT */
+/* 風速センサ */
 #define EOJ_X2_AIR_SPEED_SENSOR 0x1F
 
-/* L¢ZT */
+/* 臭いセンサ */
 #define EOJ_X2_ODOR_SENSOR 0x20
 
-/* ZT */
+/* 炎センサ */
 #define EOJ_X2_FLAME_SENSOR 0x21
 
-/* dÍÊZT */
+/* 電力量センサ */
 #define EOJ_X2_ELECTRIC_ENERGY_SENSOR 0x22
 
-/* d¬ÊZT */
+/* 電流量センサ */
 #define EOJ_X2_CURRENT_VALUE_SENSOR 0x23
 
-/* õZT */
+/* 昼光センサ */
 #define EOJ_X2_DAYLIGHT_SENSOR 0x24
 
-/* 
-¬ÊZT */
+/* 水流量センサ */
 #define EOJ_X2_WATER_FLOW_RATE_SENSOR 0x25
 
-/* ÷®ZT */
+/* 微動センサ */
 #define EOJ_X2_MICROMOTION_SENSOR 0x26
 
-/* ÊßZT */
+/* 通過センサ */
 #define EOJ_X2_PASSAGE_SENSOR 0x27
 
-/* Ý°ZT */
+/* 在床センサ */
 #define EOJ_X2_BED_PRESENCE_SENSOR 0x28
 
-/* JÂZT */
+/* 開閉センサ */
 #define EOJ_X2_OPEN_CLOSE_SENSOR 0x29
 
-/* ®ÊZT */
+/* 活動量センサ */
 #define EOJ_X2_ACTIVITY_AMOUNT_SENSOR 0x2A
 
-/* lÌÊuZT */
+/* 人体位置センサ */
 #define EOJ_X2_HUMAN_BODY_LOCATION_SENSOR 0x2B
 
-/* áZT */
+/* 雪センサ */
 #define EOJ_X2_SNOW_SENSOR 0x2C
 
 /*
- * ó²ÖA@íNXO[v *
- */
-/* ÆëpGAR */
+ * 空調関連機器クラスグループ *
+ */
+/* 家庭用エアコン */
 #define EOJ_X2_HOME_AIR_CONDITIONER 0x30
 
-/* â@ */
+/* 冷風機 */
 #define EOJ_X2_COLD_BLASTER 0x31
 
-/* î@ */
+/* 扇風機 */
 #define EOJ_X2_ELECTRIC_FAN 0x32
 
-/* ·Cî */
+/* 換気扇 */
 #define EOJ_X2_VENTILATION_FAN 0x33
 
-/* ó²·Cî */
+/* 空調換気扇 */
 #define EOJ_X2_AIR_CONDITIONING_VENTILATION_FAN 0x34
 
-/* óC´òí */
+/* 空気清浄器 */
 #define EOJ_X2_AIR_CLEANER 0x35
 
-/* âî */
+/* 冷風扇 */
 #define EOJ_X2_COLD_BLAST_FAN 0x36
 
-/* T[L
-[^ */
+/* サーキュレータ */
 #define EOJ_X2_CIRCULATOR 0x37
 
-/* ¼@ */
+/* 除湿機 */
 #define EOJ_X2_DEHUMIDIFIER 0x38
 
-/* Á¼í */
+/* 加湿器 */
 #define EOJ_X2_HUMIDIFIER 0x39
 
-/* Väî */
+/* 天井扇 */
 #define EOJ_X2_CEILING_FAN 0x3A
 
-/* dC±½Â */
+/* 電気こたつ */
 #define EOJ_X2_ELECTRIC_KOTATSU 0x3B
 
-/* dC ñ© */
+/* 電気あんか */
 #define EOJ_X2_ELECTRIC_HEATING_PAD 0x3C
 
-/* dCÑz */
+/* 電気毛布 */
 #define EOJ_X2_ELECTRIC_BLANKET 0x3D
 
-/* Xg[u */
+/* ストーブ */
 #define EOJ_X2_SPACE_HEATER 0x3E
 
-/* plq[^ */
+/* パネルヒータ */
 #define EOJ_X2_PANEL_HEATER 0x3F
 
-/* dCJ[ybg */
+/* 電気カーペット */
 #define EOJ_X2_ELECTRIC_CARPET 0x40
 
-/* tAq[^ */
+/* フロアヒータ */
 #define EOJ_X2_FLOOR_HEATER 0x41
 
-/* dCg[í */
+/* 電気暖房器 */
 #define EOJ_X2_ELECTRIC_HEATER 0x42
 
-/* t@q[^ */
+/* ファンヒータ */
 #define EOJ_X2_FAN_HEATER 0x43
 
-/* [dí */
+/* 充電器 */
 #define EOJ_X2_BATTERY_CHARGER 0x44
 
-/* Æ±ppbP[WGARºà@ */
+/* 業務用パッケージエアコン室内機 */
 #define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_INDOOR_UNIT 0x45
 
-/* Æ±ppbP[WGARºO@ */
+/* 業務用パッケージエアコン室外機 */
 #define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_OUTDOOR_UNIT 0x46
 
-/* Æ±ppbP[WGAR~Mjbg */
+/* 業務用パッケージエアコン蓄熱ユニット */
 #define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_THERMAL_STORAGE_UNIT 0x47
 
-/* Æ±pt@RCjbg */
+/* 業務用ファンコイルユニット */
 #define EOJ_X2_COMMERCIAL_FAN_COIL_UNIT 0x48
 
-/* Æ±pó²âM¹(`[) */
+/* 業務用空調冷熱源(チラー) */
 #define EOJ_X2_COMMERCIAL_AIR_CONDITIONING_COLD_SOURCE_CHILLER 0x49
 
-/* Æ±pó²·M¹({C[) */
+/* 業務用空調温熱源(ボイラー) */
 #define EOJ_X2_COMMERCIAL_AIR_CONDITIONING_HEAT_SOURCE_BOILER 0x50
 
-/* Æ±pó²VAV */
+/* 業務用空調VAV */
 #define EOJ_X2_AIR_CONDITIONING_VAV_FOR_COMMERCIAL_APPLICATION 0x51
 
-/* Æ±pó²GAnhOjbg */
+/* 業務用空調エアハンドリングユニット */
 #define EOJ_X2_AIR_HANDLING_UNIT_AIR_CONDITIONING_FOR_COMMERCIAL_APPLICATION 0x52
 
-/* jbgN[[ */
+/* ユニットクーラー */
 #define EOJ_X2_UNIT_COOLER 0x53
 
-/* Æ±pRfVOjbg */
+/* 業務用コンデンシングユニット */
 #define EOJ_X2_CONDENSING_UNIT_FOR_COMMERCIAL_APPLICATION 0x54
 
 /*
- * ZîEÝõÖA@íNXO[v *
- */
-/* d®uCh */
+ * 住宅・設備関連機器クラスグループ *
+ */
+/* 電動ブラインド */
 #define EOJ_X2_ELECTRICALLY_OPERATED_SHADE 0x60
 
-/* d®Vb^[ */
+/* 電動シャッター */
 #define EOJ_X2_ELECTRICALLY_OPERATED_SHUTTER 0x61
 
-/* d®J[e */
+/* 電動カーテン */
 #define EOJ_X2_ELECTRICALLY_OPERATED_CURTAIN 0x62
 
-/* d®JË */
+/* 電動雨戸 */
 #define EOJ_X2_ELECTRICALLY_OPERATED_STORM_WINDOW 0x63
 
-/* d®K[W */
+/* 電動ガレージ */
 #define EOJ_X2_ELECTRICALLY_OPERATED_DOOR 0x64
 
-/* d®V */
+/* 電動天窓 */
 #define EOJ_X2_ELECTRICALLY_OPERATED_SKYLIGHT 0x65
 
-/* I[jOiúæ¯j */
+/* オーニング（日よけ） */
 #define EOJ_X2_AWNING 0x66
 
-/* U
-íiëpj */
+/* 散水器（庭用） */
 #define EOJ_X2_GARDEN_SPRINKLER 0x67
 
-/* U
-íiÎÐpj */
+/* 散水器（火災用） */
 #define EOJ_X2_FIRE_SPRINKLER 0x68
 
-/* ¬
- */
+/* 噴水 */
 #define EOJ_X2_FOUNTAIN 0x69
 
-/* uÔ¦í */
+/* 瞬間湯沸器 */
 #define EOJ_X2_INSTANTANEOUS_WATER_HEATERS 0x6A
 
-/* dC·
-í */
+/* 電気温水器 */
 #define EOJ_X2_ELECTRIC_WATER_HEATER 0x6B
 
-/* ¾zM·
-í */
+/* 太陽熱温水器 */
 #define EOJ_X2_SOLAR_WATER_HEATER 0x6C
 
-/* zÂ|v */
+/* 循環ポンプ */
 #define EOJ_X2_CIRCULATION_PUMP 0x6D
 
-/* dCÖÀi·
-ôòÖÀAg[ÖÀÈÇj */
+/* 電気便座（温水洗浄便座、暖房便座など） */
 #define EOJ_X2_BIDET_EQUIPPED_TOILET 0x6E
 
-/* dCù */
+/* 電気錠 */
 #define EOJ_X2_ELECTRIC_KEY 0x6F
 
-/* KX³Ù */
+/* ガス元弁 */
 #define EOJ_X2_GAS_LINE_VALVE 0x70
 
-/* z[TEi */
+/* ホームサウナ */
 #define EOJ_X2_HOME_SAUNA 0x71
 
-/* uÔ®í */
+/* 瞬間式給湯器 */
 #define EOJ_X2_HOT_WATER_GENERATOR 0x72
 
-/* ºg[£@ */
+/* 浴室暖房乾燥機 */
 #define EOJ_X2_BATHROOM_DRYER 0x73
 
-/* z[Gx[^ */
+/* ホームエレベータ */
 #define EOJ_X2_HOME_ELEVATOR 0x74
 
-/* d®ÔdØè */
+/* 電動間仕切り */
 #define EOJ_X2_ELECTRICALLY_OPERATED_ROOM_DIVIDER 0x75
 
-/* 
-½gXt@ */
+/* 水平トランスファ */
 #define EOJ_X2_HORIZONTAL_TRANSFER 0x76
 
-/* d®¨±µ */
+/* 電動物干し */
 #define EOJ_X2_ELECTRICALLY_OPERATED_CLOTHES_DRYING_POLE 0x77
 
-/* ò»
- */
+/* 浄化槽 */
 #define EOJ_X2_SEPTIC_TANK 0x78
 
-/* Zîp¾zõ­d */
+/* 住宅用太陽光発電 */
 #define EOJ_X2_HOME_SOLAR_POWER_GENERATION 0x79
 
-/* â·
-M¹@ */
+/* 冷温水熱源機 */
 #define EOJ_X2_COLD_AND_HOT_WATER_HEAT_SOURCE_EQUIPMENT 0x7A
 
-/* °g[ */
+/* 床暖房 */
 #define EOJ_X2_FLOOR_HEATING 0x7B
 
-/* R¿dr */
+/* 燃料電池 */
 #define EOJ_X2_FUEL_CELL 0x7C
 
-/* ~dr */
+/* 蓄電池 */
 #define EOJ_X2_STORAGE_BATTERY 0x7D
 
-/* dC©®Ô[údVXe */
+/* 電気自動車充放電システム */
 #define EOJ_X2_ELECTRIC_VEHICLE 0x7E
 
-/* dÍÊ[^ */
+/* 電力量メータ */
 #define EOJ_X2_ELECTRIC_ENERGY_METER 0x80
 
-/* 
-¬Ê[^ */
+/* 水流量メータ */
 #define EOJ_X2_WATER_FLOW_METER 0x81
 
-/* KX[^ */
+/* ガスメータ */
 #define EOJ_X2_GAS_METER 0x82
 
-/* LPKX[^ */
+/* LPガスメータ */
 #define EOJ_X2_LP_GAS_METERS 0x83
 
-/* v */
+/* 時計 */
 #define EOJ_X2_CLOCK 0x84
 
-/* ©®hA */
+/* 自動ドア */
 #define EOJ_X2_AUTOMATIC_DOOR 0x85
 
-/* Æ±pGx[^ */
+/* 業務用エレベータ */
 #define EOJ_X2_COMMERCIAL_ELEVATOR 0x86
 
-/* ªdÕ[^O */
+/* 分電盤メータリング */
 #define EOJ_X2_DISTRIBUTION_PANEL_METERING 0x87
 
-/* X}[gdÍÊ[^ */
+/* スマート電力量メータ */
 #define EOJ_X2_SMART_ELECTRIC_ENERGY_METER 0x88
 
-/* X}[gKX[^ */
+/* スマートガスメータ */
 #define EOJ_X2_SMART_GAS_METER 0x89
 
-/* êÊÆ¾ */
+/* 一般照明 */
 #define EOJ_X2_GENERAL_LIGHTING_CLASS 0x90
 
-/* ñíÆ¾ */
+/* 非常照明 */
 #define EOJ_X2_EMERGENCY_LIGHTING 0x99
 
-/* ÝõÆ¾ */
+/* 設備照明 */
 #define EOJ_X2_EQUIPMENT_LIGHT 0x9D
 
-/* uU[ */
+/* ブザー */
 #define EOJ_X2_BUZZER 0xA0
 
 /*
- * ²EÆÖA@íNXO[v *
- */
-/* R[q[[J */
+ * 調理・家事関連機器クラスグループ *
+ */
+/* コーヒーメーカ */
 #define EOJ_X2_COFFEE_MACHINE 0xB0
 
-/* R[q[~ */
+/* コーヒーミル */
 #define EOJ_X2_COFFEE_MILL 0xB1
 
-/* dC|bg */
+/* 電気ポット */
 #define EOJ_X2_ELECTRIC_HOT_WATER_POT 0xB2
 
-/* dC±ñë */
+/* 電気こんろ */
 #define EOJ_X2_ELECTRIC_STOVE 0xB3
 
-/* g[X^ */
+/* トースタ */
 #define EOJ_X2_TOASTER 0xB4
 
-/* W
-[TE~LT */
+/* ジューサ・ミキサ */
 #define EOJ_X2_JUICER_FOOD_MIXER 0xB5
 
-/* t[hvZbT */
+/* フードプロセッサ */
 #define EOJ_X2_FOOD_PROCESSOR 0xB6
 
-/* ââ É */
+/* 冷凍冷蔵庫 */
 #define EOJ_X2_REFRIGERATOR_FREEZER 0xB7
 
-/* I[uW */
+/* オーブンレンジ */
 #define EOJ_X2_COMBINATION_MICROWAVE_OVEN 0xB8
 
-/* NbLOq[^ */
+/* クッキングヒータ */
 #define EOJ_X2_COOKING_HEATER 0xB9
 
-/* I[u */
+/* オーブン */
 #define EOJ_X2_OVEN 0xBA
 
-/* Ñí */
+/* 炊飯器 */
 #define EOJ_X2_RICE_COOKER 0xBB
 
-/* dqW[ */
+/* 電子ジャー */
 #define EOJ_X2_ELECTRONIC_JAR 0xBC
 
-/* Híô¢@ */
+/* 食器洗い機 */
 #define EOJ_X2_DISH_WASHER 0xBD
 
-/* Hí£@ */
+/* 食器乾燥機 */
 #define EOJ_X2_DISH_DRYER 0xBE
 
-/* dCà¿Â«@ */
+/* 電気もちつき機 */
 #define EOJ_X2_ELECTRIC_RICE_CAKE_COOKER 0xBF
 
-/* Û·@ */
+/* 保温機 */
 #define EOJ_X2_KEEP_WARM_MACHINE 0xC0
 
-/* ¸Ä@ */
+/* 精米機 */
 #define EOJ_X2_RICE_MILL 0xC1
 
-/* ©®»p@ */
+/* 自動製パン機 */
 #define EOJ_X2_AUTOMATIC_BREAD_COOKER 0xC2
 
-/* X[NbJ[ */
+/* スロークッカー */
 #define EOJ_X2_SLOW_COOKER 0xC3
 
-/* dCÐ¨@ */
+/* 電気漬物機 */
 #define EOJ_X2_ELECTRIC_PICKLES_COOKER 0xC4
 
-/* ôó@ */
+/* 洗濯機 */
 #define EOJ_X2_WASHING_MACHINE 0xC5
 
-/* ßÞ£@ */
+/* 衣類乾燥機 */
 #define EOJ_X2_CLOTH_DRYER 0xC6
 
-/* dCAC */
+/* 電気アイロン */
 #define EOJ_X2_ELECTRIC_IRON 0xC7
 
-/* Y{vbT */
+/* ズボンプレッサ */
 #define EOJ_X2_TROUSER_PRESS 0xC8
 
-/* ÓÆñ£@ */
+/* ふとん乾燥機 */
 #define EOJ_X2_FUTON_DRYER 0xC9
 
-/* ¬¨E­Â£@ */
+/* 小物・くつ乾燥機 */
 #define EOJ_X2_SMALL_ARTICLE_SHOES_DRYER 0xCA
 
-/* dC|@iZgN[iÜÞj */
+/* 電気掃除機（セントラルクリーナ含む） */
 #define EOJ_X2_ELECTRIC_VACUUM_CLEANER 0xCB
 
-/* fBX|[U */
+/* ディスポーザ */
 #define EOJ_X2_DISPOSER 0xCC
 
-/* dCáæè@ */
+/* 電気蚊取り機 */
 #define EOJ_X2_ELECTRIC_MOSQUITO_CATCHER 0xCD
 
-/* Æ±pV[P[X */
+/* 業務用ショーケース */
 #define EOJ_X2_COMMERCIAL_SHOW_CASE 0xCE
 
-/* Æ±pâ É */
+/* 業務用冷蔵庫 */
 #define EOJ_X2_COMMERCIAL_REFRIGERATOR 0xCF
 
-/* Æ±pzbgP[X */
+/* 業務用ホットケース */
 #define EOJ_X2_COMMERCIAL_HOT_CASE 0xD0
 
-/* Æ±ptC[ */
+/* 業務用フライヤー */
 #define EOJ_X2_COMMERCIAL_FRYER 0xD1
 
-/* Æ±pdqW */
+/* 業務用電子レンジ */
 #define EOJ_X2_COMMERCIAL_MICROWAVE_OVEN 0xD2
 
-/* ôó£@ */
+/* 洗濯乾燥機 */
 #define EOJ_X2_WASHER_AND_DRYER 0xD3
 
 /*
- * NÖA@íNXO[v *
- */
-/* Ìdv */
+ * 健康関連機器クラスグループ *
+ */
+/* 体重計 */
 #define EOJ_X2_WEIGHING_MACHINE 0x01
 
-/* Ì·v */
+/* 体温計 */
 #define EOJ_X2_CLINICAL_THERMOMETER 0x02
 
-/* ³v */
+/* 血圧計 */
 #define EOJ_X2_BLOOD_PRESSURE_METER 0x03
 
-/* lv */
+/* 血糖値計 */
 #define EOJ_X2_BLOOD_SUGAR_METER 0x04
 
-/* Ìbv */
+/* 体脂肪計 */
 #define EOJ_X2_BODY_FAT_METER 0x05
 
 /*
- * ÇEìÖA@íNXO[v *
- */
-/* ZL
-AÊMp¤L®Ýèm[h */
+ * 管理・操作関連機器クラスグループ *
+ */
+/* セキュア通信用共有鍵設定ノード */
 #define EOJ_X2_SECURE_COMMUNICATION_SHARED_KEY_SETUP_NODE 0xFC
 
-/* XCb`iJEMA/HA[qÎj */
+/* スイッチ（JEMA/HA端子対応） */
 #define EOJ_X2_SWITCH 0xFD
 
-/* gÑ[ */
+/* 携帯端末 */
 #define EOJ_X2_PORTABLE_TERMINAL 0xFE
 
-/* Rg[ */
+/* コントローラ */
 #define EOJ_X2_CONTROLLER 0xFF
 
 /*
- * `uÖA@íNXO[v *
- */
-/* fBXv[ */
+ * ＡＶ関連機器クラスグループ *
+ */
+/* ディスプレー */
 #define EOJ_X2_DISPLAY 0x01
 
-/* er */
+/* テレビ */
 #define EOJ_X2_TELEVISION 0x02
 
 /*
- * vt@CNXO[v *
- */
-/* m[hvt@C */
+ * プロファイルクラスグループ *
+ */
+/* ノードプロファイル */
 #define EOJ_X2_NODE_PROFILE 0xF0
 
Index: uKadecot/trunk/ecnl_ssp/echonet_dbg.c
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_dbg.c	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_dbg.c	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -41,5 +37,5 @@
 
 /*
- *		ECHONET Lite ^XN fobOoÍ
+ *		ECHONET Lite タスク デバッグ出力
  */
 
@@ -71,5 +67,5 @@
 static ER _ecn_dbg_wai_syslog(void);
 /*
- *  syslog()obt@É]TªÅ«éÜÅÒÂ
+ *  syslog()バッファに余裕ができるまで待つ
  */
 static ER _ecn_dbg_wai_syslog(void)
@@ -112,6 +108,6 @@
 
 /*
- * fobOoÍ
- * áF		ECN_DBG_PUT "task start" ECN_DBG_END;
+ * デバッグ出力
+ * 例：		ECN_DBG_PUT "task start" ECN_DBG_END;
  */
 int _ecn_dbg_dbgput(const char *fp_srcloc, const char *fp_form, ...)
@@ -122,10 +118,10 @@
 #ifdef ECN_DBG_PUT_USE_STATIC
  #ifndef SEM_ECN_DBG_PUT
-	/* 256byteobt@8{[e[V */
+	/* 256byteバッファ8本ローテーション */
 	static char				a_buf[8][256];
 	static volatile uint_t	a_buf_idx = 0;
 	uint_t					a_buf_idx_a;
  #else
-	/* Z}tHðp¢ÄA1{Ìobt@ãÉ¶ñðÀ×Äg¤ */
+	/* セマフォを用いて、1本のバッファ上に文字列を並べて使う */
 	static char				a_buf[1024];
 	static volatile uint_t	a_buf_pos = 0;
@@ -152,9 +148,9 @@
 	p_buf = a_buf[a_buf_idx_a & 0x07];
  #else
-	if (sizeof(a_buf) - a_buf_pos < 80)	/* cèª80byte¢ÉÈÁ½çAæªÉßé */
+	if (sizeof(a_buf) - a_buf_pos < 80)	/* 残りが80byte未満になったら、先頭に戻る */
 		a_buf_pos = 0;
 	p_buf = a_buf + a_buf_pos;
 	a_buf_len = sizeof(a_buf) - a_buf_pos - 1;
-	if (80 * 2 <= a_buf_len)	/* 80byte*2ÈãÌ]ª é¤¿ÍAö80byteðc· */
+	if (80 * 2 <= a_buf_len)	/* 80byte*2以上の余白があるうちは、末尾80byteを残す */
 		a_buf_len -= 80;
  #endif /* #ifdef SEM_ECN_DBG_PUT */
@@ -180,7 +176,7 @@
  #ifdef SEM_ECN_DBG_PUT
 	a_buf_len = strlen(p_buf) + 1;
-	/* cèª80byte¢ÉÈÁ½ç */
+	/* 残りが80byte未満になったら */
 	if (sizeof(a_buf) - a_buf_pos - a_buf_len < 80) {
-		/* æªÉßé */
+		/* 先頭に戻る */
 		a_buf_pos = 0;
 	} else {
@@ -190,5 +186,5 @@
 #endif
 
-	_ECN_DBG_WAI_SYSLOG; /* syslog()obt@É]TªÅ«éÜÅÒÂ */
+	_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 
 #ifdef SEM_ECN_DBG_PUT
@@ -206,5 +202,5 @@
 }
 
-/* ECN_ENOD_IDÌ¶ñÏ· */
+/* ECN_ENOD_IDの文字列変換 */
 const char *_ecn_dbg_enod2str(ECN_ENOD_ID fa_enod_id)
 {
@@ -254,9 +250,9 @@
 
 /*
- * oCi_voÍ
+ * バイナリダンプ出力
  */
 void _ecn_dbg_bindmp(const uint8_t *buffer, size_t len)
 {
-	/* staticÌæÌobt@ðØèÖ¦éÂ(2^n) */
+	/* static領域のバッファを切り替える個数(2^n) */
 	#define _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT (4)
 /*	*/
@@ -264,23 +260,23 @@
  #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
   #undef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
-  /* Z}tH(SEM_ECN_DBG_BINDMP)ªè`³êÄ¢éêAobt@ØèÖ¦ÍsvÈÌÅundef */
+  /* セマフォ(SEM_ECN_DBG_BINDMP)が定義されている場合、バッファ切り替えは不要なのでundef */
  #endif
 #endif
 #ifndef _ECN_FBS_DBG_BINDMP_BUFLEN
- /* obt@TCY(bindmpÌ1sªûÜéTCY) */
+ /* バッファサイズ(bindmp中の1行が収まるサイズ) */
  #define _ECN_FBS_DBG_BINDMP_BUFLEN (80)
 #endif
 #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
-	/* staticÌæÌobt@ðØèÖ¦é½ßÌÇpÏ */
+	/* static領域のバッファを切り替えるための管理用変数 */
 	static volatile uint8_t a_idx_vol = 0;
-	/* staticÌæÌobt@ØèÖ¦Ìæ */
+	/* static領域のバッファ切り替え領域 */
 	static char a_buf_area[1 << _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT][_ECN_FBS_DBG_BINDMP_BUFLEN];
 	uint8_t a_idx;
 	char *a_buf;
 #else
-	/* staticÌæÌobt@Ìæ */
+	/* static領域のバッファ領域 */
 	static char a_buf[_ECN_FBS_DBG_BINDMP_BUFLEN];
 #endif
-	const uint8_t *p = buffer;			/* ÇÝæè|C^ */
+	const uint8_t *p = buffer;			/* 読み取りポインタ */
 	int i, a_blk, a_blk_max, a_pos = 0;
 	const T_ECN_EDT_HDR *p_req_esv;
@@ -300,5 +296,5 @@
 	}
 	#ifndef ECN_DBG_BINDMP_MAXLEN
-	 /* bindmpoÍÌÅåTCY */
+	 /* bindmp出力の最大サイズ */
 	 #define ECN_DBG_BINDMP_MAXLEN 1600
 	#endif
@@ -315,5 +311,5 @@
 	for (a_blk = 0; p && a_blk < a_blk_max; p = ((T_ECN_FST_BLK *)buffer)->lnk.p_sub[a_blk++]->dat) {
 		if (0 < a_blk) {
-			_ECN_DBG_WAI_SYSLOG; /* syslog()obt@É]TªÅ«éÜÅÒÂ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			syslog(LOG_NOTICE, "p_sub[%d] (0x%08X)", a_blk - 1, p);
 		}
@@ -322,5 +318,5 @@
 			if (i % 16 == 0) {
 				if (a_buf[0]) {
-					_ECN_DBG_WAI_SYSLOG; /* syslog()obt@É]TªÅ«éÜÅÒÂ */
+					_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 					syslog(LOG_NOTICE, "%s", a_buf);
 				}
@@ -342,5 +338,5 @@
 		}
 		if (a_buf[0]) {
-			_ECN_DBG_WAI_SYSLOG; /* syslog()obt@É]TªÅ«éÜÅÒÂ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			syslog(LOG_NOTICE, "%s", a_buf);
 		}
@@ -353,18 +349,18 @@
 		case ECN_MSG_ECHONET:
 			p_req_esv = &((const T_ECN_FST_BLK *)buffer)->d.t_esv;
-			_ECN_DBG_WAI_SYSLOG; /* syslog()obt@É]TªÅ«éÜÅÒÂ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			syslog(LOG_NOTICE, " sender: %d %s, target: %d %s",
 				((T_ECN_FST_BLK *)buffer)->hdr.sender, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.sender),
 				((T_ECN_FST_BLK *)buffer)->hdr.target, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.target));
-			_ECN_DBG_WAI_SYSLOG; /* syslog()obt@É]TªÅ«éÜÅÒÂ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			syslog(LOG_NOTICE, " ecn_hdr: 0x%02X 0x%02X 0x%04X", p_req_esv->ecn_hdr.ehd1, p_req_esv->ecn_hdr.ehd2, p_req_esv->ecn_hdr.tid);
-			_ECN_DBG_WAI_SYSLOG; /* syslog()obt@É]TªÅ«éÜÅÒÂ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			syslog(LOG_NOTICE, " edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)",
 				p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3,
 				p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3,
 				p_req_esv->edata.esv, p_req_esv->edata.opc, _ecn_dbg_esv2str(p_req_esv->edata.esv));
-			_ECN_DBG_WAI_SYSLOG; /* syslog()obt@É]TªÅ«éÜÅÒÂ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			syslog(LOG_NOTICE, " ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc);
-			_ECN_DBG_WAI_SYSLOG; /* syslog()obt@É]TªÅ«éÜÅÒÂ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			syslog(LOG_NOTICE, " cur(blk/pos): wr %d/%d, rd %d/%d",
 				(int)((T_ECN_FST_BLK *)buffer)->hdr.wr.blk,
@@ -403,12 +399,12 @@
 	&& ((const T_ECN_FST_BLK *)buffer)->bin[1] == 0x81) {
 		p_req_esv = (const T_ECN_EDT_HDR *)&((const T_ECN_FST_BLK *)buffer)->bin[0];
-		_ECN_DBG_WAI_SYSLOG; /* syslog()obt@É]TªÅ«éÜÅÒÂ */
+		_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 		syslog(LOG_NOTICE, " ecn_hdr: 0x%02X 0x%02X 0x%04X", p_req_esv->ecn_hdr.ehd1, p_req_esv->ecn_hdr.ehd2, p_req_esv->ecn_hdr.tid);
-		_ECN_DBG_WAI_SYSLOG; /* syslog()obt@É]TªÅ«éÜÅÒÂ */
+		_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 		syslog(LOG_NOTICE, " edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)",
 			p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3,
 			p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3,
 			p_req_esv->edata.esv, p_req_esv->edata.opc, _ecn_dbg_esv2str(p_req_esv->edata.esv));
-		_ECN_DBG_WAI_SYSLOG; /* syslog()obt@É]TªÅ«éÜÅÒÂ */
+		_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 		syslog(LOG_NOTICE, " ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc);
 	}
@@ -419,25 +415,25 @@
 
 /*
- * ECHONET LiteT[rXR[h¶ñÏ·
+ * ECHONET Liteサービスコード文字列変換
  */
 const char *_ecn_dbg_esv2str(uint8_t fa_esv)
 {
 	switch (fa_esv) {
-	case ESV_SET_I_SNA:		return "vpeBl«ÝvsÂ";			/* 0x50 */
-	case ESV_SET_C_SNA:		return "vpeBl«ÝvsÂ";			/* 0x51	*/
-	case ESV_GET_SNA:		return "vpeBlÇÝoµsÂ";				/* 0x52	*/
-	case ESV_INF_SNA:		return "vpeBlÊmsÂ";					/* 0x53 */
-	case ESV_SET_GET_SNA:	return "vpeBl«ÝEÇÝoµsÂ";	/* 0x5E	*/
-	case ESV_SET_I:			return "vpeBl«Ývisvj";		/* 0x60 */
-	case ESV_SET_C:			return "vpeBl«Ývivj";		/* 0x61 */
-	case ESV_GET:			return "vpeBlÇÝoµv";					/* 0x62 */
-	case ESV_INF_REQ:		return "vpeBlÊmv";						/* 0x63 */
-	case ESV_SET_GET:		return "vpeBl«ÝEÇÝoµv";		/* 0x6E */
-	case ESV_SET_RES:		return "vpeBl«Ý";					/* 0x71 */
-	case ESV_GET_RES:		return "vpeBlÇÝoµ";					/* 0x72 */
-	case ESV_INF:			return "vpeBlÊm";							/* 0x73 */
-	case ESV_INFC:			return "vpeBlÊmivj";				/* 0x74 */
-	case ESV_SET_GET_RES:	return "vpeBl«ÝEÇÝoµ";		/* 0x7E */
-	case ESV_INFC_RES:		return "vpeBlÊm";						/* 0x7A */
+	case ESV_SET_I_SNA:		return "プロパティ値書き込み要求不可応答";			/* 0x50 */
+	case ESV_SET_C_SNA:		return "プロパティ値書き込み要求不可応答";			/* 0x51	*/
+	case ESV_GET_SNA:		return "プロパティ値読み出し不可応答";				/* 0x52	*/
+	case ESV_INF_SNA:		return "プロパティ値通知不可応答";					/* 0x53 */
+	case ESV_SET_GET_SNA:	return "プロパティ値書き込み・読み出し不可応答";	/* 0x5E	*/
+	case ESV_SET_I:			return "プロパティ値書き込み要求（応答不要）";		/* 0x60 */
+	case ESV_SET_C:			return "プロパティ値書き込み要求（応答要）";		/* 0x61 */
+	case ESV_GET:			return "プロパティ値読み出し要求";					/* 0x62 */
+	case ESV_INF_REQ:		return "プロパティ値通知要求";						/* 0x63 */
+	case ESV_SET_GET:		return "プロパティ値書き込み・読み出し要求";		/* 0x6E */
+	case ESV_SET_RES:		return "プロパティ値書き込み応答";					/* 0x71 */
+	case ESV_GET_RES:		return "プロパティ値読み出し応答";					/* 0x72 */
+	case ESV_INF:			return "プロパティ値通知";							/* 0x73 */
+	case ESV_INFC:			return "プロパティ値通知（応答要）";				/* 0x74 */
+	case ESV_SET_GET_RES:	return "プロパティ値書き込み・読み出し応答";		/* 0x7E */
+	case ESV_INFC_RES:		return "プロパティ値通知応答";						/* 0x7A */
 	default:
 		return "(unknown)";
Index: uKadecot/trunk/ecnl_ssp/echonet_dbg.cfg
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_dbg.cfg	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_dbg.cfg	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -41,7 +37,6 @@
 
 /*
- *  lbg[NÎTvvO(1)Ì
- *  VXeRtBM
-[Vt@C
+ *  ネットワーク対応サンプルプログラム(1)の
+ *  システムコンフィギュレーションファイル
  */
 
@@ -55,5 +50,5 @@
 /* INCLUDE("tinet/tinet_asp.cfg"); // */
 
-/* Z}tH */
+/* セマフォ */
 
 CRE_SEM(SEM_ECN_DBG_PUT, { TA_TPRI, 1, 1 });
Index: uKadecot/trunk/ecnl_ssp/echonet_dbg.h
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_dbg.h	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_dbg.h	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -41,5 +37,5 @@
 
 /*
- *		ECHONET Lite ^XN fobOoÍ
+ *		ECHONET Lite タスク デバッグ出力
  */
 
@@ -56,5 +52,5 @@
 #define ECN_DBG_PUT syslog(LOG_WARNING,
 #define ECN_DBG_END )
-/* áF		ECN_DBG_PUT "task start" ECN_DBG_END; */
+/* 例：		ECN_DBG_PUT "task start" ECN_DBG_END; */
 #else
 #define ECN_DBG_PUT for (;0;
@@ -62,9 +58,9 @@
 #endif
 
-/* fobOoÍ(CARP) */
+/* デバッグ出力(CARP) */
 #ifdef ECN_CAP_PUT_ENA
 #define ECN_CAP_PUT syslog(LOG_DEBUG,
 #define ECN_CAP_END )
-/* áF		ECN_CAP_PUT "task start" ECN_CAP_END; */
+/* 例：		ECN_CAP_PUT "task start" ECN_CAP_END; */
 #else
 #define ECN_CAP_PUT for (;0;
Index: uKadecot/trunk/ecnl_ssp/echonet_fbs.c
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_fbs.c	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_fbs.c	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -41,5 +37,5 @@
 
 /*
- * Åè·obt@ÂÏ·Xg[
+ * 固定長バッファ可変長ストリーム
  */
 
@@ -353,5 +349,5 @@
 }
 
-/* ubNæ¾ ok:|C^ NG:NULL */
+/* メモリブロック取得 ok:ポインタ NG:NULL */
 void *_ecn_fbs_mbx_get(ECN_FBS_SIZE_T fa_req_size)
 {
@@ -363,5 +359,5 @@
 }
 
-/* ubNðú */
+/* メモリブロック解放 */
 ER _ecn_fbs_mbx_rel(void *p)
 {
@@ -369,5 +365,5 @@
 }
 
-/* ÌæmÛ */
+/* 領域確保 */
 ER _ecn_fbs_cre(ECN_FBS_SIZE_T fa_req_size, ECN_FBS_ID *fp_id)
 {
@@ -375,5 +371,5 @@
 }
 
-/* Ìæðú */
+/* 領域解放 */
 ER _ecn_fbs_del(ECN_FBS_ID fa_id)
 {
@@ -381,5 +377,5 @@
 }
 
-/* Ûf[^ÌL³ */
+/* 保持データの有無 */
 bool_t _ecn_fbs_exist_data(ECN_FBS_ID fa_id)
 {
@@ -387,5 +383,5 @@
 }
 
-/* Ûf[^·Ìæ¾ */
+/* 保持データ長の取得 */
 ECN_FBS_SSIZE_T _ecn_fbs_get_datalen(ECN_FBS_ID fa_id)
 {
@@ -393,5 +389,5 @@
 }
 
-/* ÇÝæèJ[\ÌÊuæ¾ */
+/* 読み取りカーソルの位置取得 */
 ECN_FBS_SSIZE_T _ecn_fbs_get_rpos(ECN_FBS_ID fa_id)
 {
@@ -399,8 +395,8 @@
 }
 
-/* ÇÝæèJ[\ÌÊuÝè */
+/* 読み取りカーソルの位置設定 */
 ER _ecn_fbs_set_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_pos)
 {
-	if (fa_id.ptr->hdr.length <= (unsigned int)fa_pos)	/* Êuwèªå«·¬é */
+	if (fa_id.ptr->hdr.length <= (unsigned int)fa_pos)	/* 位置指定が大きすぎる */
 		return E_PAR;
 
@@ -410,5 +406,5 @@
 }
 
-/* ÇÝæèJ[\ÌÊuÚ® */
+/* 読み取りカーソルの位置移動 */
 ER _ecn_fbs_seek_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek)
 {
@@ -420,5 +416,5 @@
 }
 
-/* CÓwèÊuÌ1byteÇÝæè */
+/* 任意指定位置の1byte読み取り */
 int _ecn_fbs_peek(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek)
 {
@@ -431,5 +427,5 @@
 }
 
-/* CÓwèÊuÌ1byte«Ý */
+/* 任意指定位置の1byte書き込み */
 ER _ecn_fbs_poke(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek, int fa_val)
 {
@@ -442,5 +438,5 @@
 }
 
-/* f[^ÇÁ */
+/* データ追加 */
 ER _ecn_fbs_add_data(ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len)
 {
@@ -452,5 +448,5 @@
 }
 
-/* f[^ÇÁ(Ìæð©®IÉg£·é) */
+/* データ追加(領域を自動的に拡張する) */
 ER _ecn_fbs_add_data_ex(ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len)
 {
@@ -459,5 +455,5 @@
 }
 
-/* f[^æ¾ */
+/* データ取得 */
 ER _ecn_fbs_get_data(ECN_FBS_ID fa_id, void *fa_buf, ECN_FBS_SSIZE_T fa_maxlen, ECN_FBS_SSIZE_T *p_len)
 {
Index: uKadecot/trunk/ecnl_ssp/echonet_fbs.h
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_fbs.h	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_fbs.h	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
- * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -41,5 +37,5 @@
 
 /*
- * Åè·obt@ÂÏ·Xg[
+ * 固定長バッファ可変長ストリーム
  */
 
@@ -55,15 +51,15 @@
 
 #ifndef NUM_ECHONET_MEMPOOL_BLOCK
-#define NUM_ECHONET_MEMPOOL_BLOCK (60)		/* d¶pubNÌ */
+#define NUM_ECHONET_MEMPOOL_BLOCK (60)		/* 電文用メモリブロックの数 */
 #endif /* NUM_ECHONET_MEMPOOL_BLOCK */
 
 #ifndef ECHONET_MEMPOOL_BLOCK_SIZE
-#define ECHONET_MEMPOOL_BLOCK_SIZE (256)	/* d¶pubNÌTCY */
+#define ECHONET_MEMPOOL_BLOCK_SIZE (256)	/* 電文用メモリブロックのサイズ */
 #endif /* ECHONET_MEMPOOL_BLOCK_SIZE */
 
-typedef unsigned int ECN_FBS_SIZE_T;	/* size_t  */
-typedef int ECN_FBS_SSIZE_T;			/* ssize_t */
-
-/* T_EDATAÇÌæTCY */
+typedef unsigned int ECN_FBS_SIZE_T;	/* size_t相当  */
+typedef int ECN_FBS_SSIZE_T;			/* ssize_t相当 */
+
+/* T_EDATA管理領域サイズ */
 #ifdef TARGET_KERNEL_ASP
 #define DEF_ECN_EDT_HDR_LEN (sizeof(T_MSG))
@@ -72,29 +68,29 @@
 #endif
 
-/* ÇÌæTCY(64byte - sizeof(T_MSG)) */
+/* 管理領域サイズ(64byte - sizeof(T_MSG)) */
 /* #define DEF_ECN_FBS_LIB_HDR_LEN ((ECHONET_MEMPOOL_BLOCK_SIZE + sizeof(int) - 1)>> 2) // */
 #define DEF_ECN_FBS_LIB_HDR_LEN (64 - DEF_ECN_EDT_HDR_LEN)
 
-/* ÇÌæðÜÞubNÉÛ·éf[^TCY */
+/* 管理領域を含むブロックに保持するデータサイズ */
 #define DEF_ECN_FBS_FST_DAT_LEN (64)
 
-/* N|C^zñÌTCY(byte) */
+/* リンクポインタ配列のサイズ(byte) */
 #define DEF_ECN_FBS_LNK_LEN (ECHONET_MEMPOOL_BLOCK_SIZE - DEF_ECN_EDT_HDR_LEN - DEF_ECN_FBS_LIB_HDR_LEN - DEF_ECN_FBS_FST_DAT_LEN)
 
-/* Åè·obt@ÅåTCY */
+/* 固定長バッファ最大サイズ */
 #define DEF_ECN_FBS_BUF_MAXLEN ((DEF_ECN_FBS_LNK_LEN / sizeof(void *)) * ECHONET_MEMPOOL_BLOCK_SIZE + DEF_ECN_FBS_FST_DAT_LEN)
 
-/* qvfobt@ÌTCY */
+/* 子要素バッファのサイズ */
 #define DEF_ECN_FBS_SUB_BUF_LEN ECHONET_MEMPOOL_BLOCK_SIZE
 
-/* d¶ÌíÊ(àeÍ¼) */
+/* 電文の種別(内容は仮) */
 typedef enum
 {
-	ECN_FBS_TYPE_BLANK		=	0,		/* ¢gpXg[ */
-	ECN_FBS_TYPE_INTERNAL	=	1,		/* àbZ[W */
-	ECN_FBS_TYPE_ECHONET	=	2		/* ECHONETd¶ */
+	ECN_FBS_TYPE_BLANK		=	0,		/* 未使用ストリーム */
+	ECN_FBS_TYPE_INTERNAL	=	1,		/* 内部メッセージ */
+	ECN_FBS_TYPE_ECHONET	=	2		/* ECHONET電文 */
 } TA_ECN_MSG_TYPE;
 
-/* N|C^zñÉñ³êéAqvfobt@ */
+/* リンクポインタ配列に列挙される、子要素バッファ */
 typedef struct
 {
@@ -102,5 +98,5 @@
 } T_ECN_SUB_BLK;
 
-/* N|C^zñ */
+/* リンクポインタ配列 */
 typedef union
 {
@@ -109,33 +105,33 @@
 } T_ECN_FBS_LNK;
 
-/* ÇÌæ(64byte - sizeof(T_MSG)) */
+/* 管理領域(64byte - sizeof(T_MSG)) */
 typedef struct
 {
-	uint16_t	length;			/* bZ[W· */
-	uint16_t	type;			/* bZ[W^Cv */
+	uint16_t	length;			/* メッセージ長 */
+	uint16_t	type;			/* メッセージタイプ */
 	union{
-		ECN_ENOD_ID sender;		/* M³m[hIDiECHONETd¶j */
-		ID sender_mbxid;		/* M³[{bNXIDiàbZ[Wj */
+		ECN_ENOD_ID sender;		/* 送信元ノードID（ECHONET電文） */
+		ID sender_mbxid;		/* 送信元メールボックスID（内部メッセージ） */
 	};
 	union{
-		ECN_ENOD_ID target;		/* Mæm[hIDiECHONETd¶j */
-		ID target_mbxid;		/* Mæ[{bNXIDiàbZ[Wj */
+		ECN_ENOD_ID target;		/* 送信先ノードID（ECHONET電文） */
+		ID target_mbxid;		/* 送信先メールボックスID（内部メッセージ） */
 	};
 	union{
-		ECN_ENOD_ID reply;		/* ÔMæm[hIDiECHONETd¶j */
-		ID reply_mbxid;			/* ÔMæ[{bNXIDiàbZ[Wj */
+		ECN_ENOD_ID reply;		/* 返信先ノードID（ECHONET電文） */
+		ID reply_mbxid;			/* 返信先メールボックスID（内部メッセージ） */
 	};
 
-	int			rd;				/*	ÇÝæèwbhîñ	*/
-	int			wr;				/*	«Ýwbhîñ	*/
+	int			rd;				/*	読み取りヘッド情報	*/
+	int			wr;				/*	書き込みヘッド情報	*/
 } T_ECN_FBS_HDR;
 
-/* ÇÌæðÜÞubNÌ\¢ */
+/* 管理領域を含むブロックの構造 */
 typedef struct
 {
 	uint8_t	_msg[DEF_ECN_EDT_HDR_LEN];	/* T_MSG */
-	T_ECN_FBS_HDR	hdr;	/*	ÇÌæ  64byte  - sizeof(T_MSG)	*/
+	T_ECN_FBS_HDR	hdr;	/*	管理領域  64byte  - sizeof(T_MSG)	*/
 	uint8_t			_gap[DEF_ECN_FBS_LIB_HDR_LEN - sizeof(T_ECN_FBS_HDR)];
-	T_ECN_FBS_LNK	lnk;	/*	N|C^zñ	128byte			*/
+	T_ECN_FBS_LNK	lnk;	/*	リンクポインタ配列	128byte			*/
 	uint8_t			payload[DEF_ECN_FBS_FST_DAT_LEN];
 } T_ECN_FST_BLK;
@@ -147,126 +143,125 @@
 } ECN_FBS_ID;
 
-/* bZ[WL
-[ */
+/* メッセージキュー */
 typedef struct ecn_fbs_queue
 {
-	T_ECN_FST_BLK	*pk_head;		/* æªÌbZ[W */
-	T_ECN_FST_BLK	*pk_last;		/* öÌbZ[W */
+	T_ECN_FST_BLK	*pk_head;		/* 先頭のメッセージ */
+	T_ECN_FST_BLK	*pk_last;		/* 末尾のメッセージ */
 } T_ECN_FBS_QUEUE;
 
-/* ubNæ¾ ok:|C^ NG:NULL */
+/* メモリブロック取得 ok:ポインタ NG:NULL */
 void *_ecn_fbs_mbx_get(ECN_FBS_SIZE_T fa_req_size);
 
-/* ubNðú ok:0 NG:ñ0 */
+/* メモリブロック解放 ok:0 NG:非0 */
 ER _ecn_fbs_mbx_rel(void *p);
 
 /*
- * ÌæmÛ
- *	ø
- *		ECN_FBS_SIZE_T	fa_req_size		vobt@TCY(byte)
+ * 領域確保
+ *	引数
+ *		ECN_FBS_SIZE_T	fa_req_size		要求バッファサイズ(byte)
  *										max: DEF_ECN_FBS_BUF_MAXLEN
- *		ECN_FBS_ID		*fp_id			mÛµ½FBS-IDÌi[æ
- *	ßèl
- *		ER				0:ok ñ0:NG
+ *		ECN_FBS_ID		*fp_id			確保したFBS-IDの格納先
+ *	戻り値
+ *		ER				0:ok 非0:NG
  */
 ER _ecn_fbs_cre(ECN_FBS_SIZE_T fa_req_size, ECN_FBS_ID *fp_id);
 
 /*
- * Ìæðú
- *	ø
- *		ecn_fbs_id^	mÛµ½FBS-ID
- *	ßèl
- *		ER				0:ok, ñ0:NG
+ * 領域解放
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ecn_fbs_del(ECN_FBS_ID fa_id);
 
 /*
- * Ûf[^ÌL³
- *	ø
- *		ecn_fbs_id^	mÛµ½FBS-ID
- *	ßèl
- *		bool_t			0:³µ, 1: è
+ * 保持データの有無
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *	戻り値
+ *		bool_t			0:無し, 1:あり
  */
 bool_t _ecn_fbs_exist_data(ECN_FBS_ID fa_id);
 
 /*
- * Ûf[^·Ìæ¾
- *	ø
- *		ecn_fbs_id^	mÛµ½FBS-ID
- *	ßèl
- *		ECN_FBS_SSIZE_T	ÛµÄ¢éf[^Ì·³(byte) -1:NG
+ * 保持データ長の取得
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *	戻り値
+ *		ECN_FBS_SSIZE_T	保持しているデータの長さ(byte) -1:NG
  */
 ECN_FBS_SSIZE_T _ecn_fbs_get_datalen(ECN_FBS_ID fa_id);
 
 /*
- * ÇÝæèJ[\ÌÊuæ¾
- *	ø
- *		ecn_fbs_id^	mÛµ½FBS-ID
- *	ßèl
- *		ECN_FBS_SIZE_T	æª©çÌâÎÊu -1:NG
+ * 読み取りカーソルの位置取得
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *	戻り値
+ *		ECN_FBS_SIZE_T	先頭からの絶対位置 -1:NG
  */
 ECN_FBS_SSIZE_T _ecn_fbs_get_rpos(ECN_FBS_ID fa_id);
 
 /*
- * ÇÝæèJ[\ÌÊuÝè
- *	ø
- *		ecn_fbs_id^	mÛµ½FBS-ID
- *		ECN_FBS_SIZE_T	fa_pos	Ýè·éÊu(æª©çÌâÎÊu)
- *	ßèl
- *		ER				0:ok, ñ0:NG
+ * 読み取りカーソルの位置設定
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *		ECN_FBS_SIZE_T	fa_pos	設定する位置(先頭からの絶対位置)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ecn_fbs_set_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_pos);
 
 /*
- * ÇÝæèJ[\ÌÊuÚ®
- *	ø
- *		ecn_fbs_id^	mÛµ½FBS-ID
- *		ECN_FBS_SIZE_T	fa_seek	Ú®Ê(»óAOiÌÝ)
- *	ßèl
- *		ER				0:ok, ñ0:NG
+ * 読み取りカーソルの位置移動
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *		ECN_FBS_SIZE_T	fa_seek	移動量(現状、前進のみ)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ecn_fbs_seek_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek);
 
 /*
- * CÓwèÊuÌ1byteÇÝæè
+ * 任意指定位置の1byte読み取り
  */
 int _ecn_fbs_peek(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek);
 
 /*
- * CÓwèÊuÌ1byte«Ý
+ * 任意指定位置の1byte書き込み
  */
 ER _ecn_fbs_poke(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek, int fa_val);
 
 /*
- * f[^ÇÁ
- *	ø
- *		ecn_fbs_id^	mÛµ½FBS-ID
- *		const void *	fa_dat	ÇÁ·éf[^
- *		ECN_FBS_SSIZE_T	fa_len	ÇÁ·é·³(byte)
- *	ßèl
- *		ER				0:ok, ñ0:NG
+ * データ追加
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *		const void *	fa_dat	追加するデータ
+ *		ECN_FBS_SSIZE_T	fa_len	追加する長さ(byte)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ecn_fbs_add_data(ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len);
 
 /*
- * f[^ÇÁ(Ìæð©®IÉg£·é)
- *	ø
- *		ecn_fbs_id^	mÛµ½FBS-ID
- *		const void *	fa_dat	ÇÁ·éf[^
- *		ECN_FBS_SSIZE_T	fa_len	ÇÁ·é·³(byte)
- *	ßèl
- *		ER				0:ok, ñ0:NG
+ * データ追加(領域を自動的に拡張する)
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *		const void *	fa_dat	追加するデータ
+ *		ECN_FBS_SSIZE_T	fa_len	追加する長さ(byte)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ecn_fbs_add_data_ex(ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len);
 
 /*
- * f[^æ¾
- *	ø
- *		ecn_fbs_id^	mÛµ½FBS-ID
- *		void *			fa_buf		æ¾·éobt@
- *		ECN_FBS_SSIZE_T	fa_maxlen	æ¾·é·³(byte)
- *		ECN_FBS_SSIZE_T	*p_len		æ¾µ½·³(byte)
- *	ßèl
- *		ER				0:ok, ñ0:NG
+ * データ取得
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *		void *			fa_buf		取得するバッファ
+ *		ECN_FBS_SSIZE_T	fa_maxlen	取得する長さ(byte)
+ *		ECN_FBS_SSIZE_T	*p_len		取得した長さ(byte)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ecn_fbs_get_data(ECN_FBS_ID fa_id, void *fa_buf, ECN_FBS_SSIZE_T fa_maxlen,
Index: uKadecot/trunk/ecnl_ssp/echonet_lcl_task.h
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_lcl_task.h	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_lcl_task.h	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -41,5 +37,5 @@
 
 /*
- *		ECHONET Lite ºÊÊMC[^XN
+ *		ECHONET Lite 下位通信レイヤー処理タスク
  */
 
Index: uKadecot/trunk/ecnl_ssp/echonet_rename.h
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_rename.h	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_rename.h	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
Index: uKadecot/trunk/ecnl_ssp/echonet_ssp.cfg
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_ssp.cfg	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_ssp.cfg	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -41,6 +37,5 @@
 
 /*
- *  ECHONET Lite RtBM
-[Vt@C
+ *  ECHONET Lite コンフィギュレーションファイル
  */
 
@@ -50,40 +45,40 @@
 
 /*
- * ECHONET Lite d¶p
+ * ECHONET Lite 電文用メモリ
  */
 /*CRE_MPF(ECHONET_MEMPOOL, { TA_TFIFO, 60, 256, NULL, NULL });*/
 
 /*
- * ECHONET Lite APIp[{bNX
+ * ECHONET Lite API用メールボックス
  */
 CRE_DTQ(ECHONET_API_MAILBOX, { TA_TFIFO, NUM_ECHONET_API_MAILBOX, NULL });
 
 /*
- * ECHONET Lite T[rX^XNp[{bNX
+ * ECHONET Lite サービス処理タスク用メールボックス
  */
 CRE_DTQ(ECHONET_SVC_MAILBOX, { TA_TFIFO, NUM_ECHONET_MAILBOX, NULL });
 
 /*
- * ECHONET Lite T[rX^XN
+ * ECHONET Lite サービス処理タスク
  */
 CRE_TSK(ECHONET_SVC_TASK, { TA_HLNG, 0, echonet_task, ECHONET_TASK_PRIORITY, ECHONET_TASK_STACK_SIZE, NULL });
 
 /*
- * ECHONET Lite ^XNN®püúnh[
+ * ECHONET Lite タスク起動用周期ハンドラー
  */
 CRE_CYC(ECHONET_SVC_CYCHDR, { TA_NULL, ECHONET_SVC_TASK, echonet_cychdr, 1, 0 });
 
 /*
- * ECHONET Lite UDPÊMp[{bNX
+ * ECHONET Lite UDP通信処理用メールボックス
  */
 CRE_DTQ(ECHONET_UDP_MAILBOX, { TA_TFIFO, NUM_ECHONET_UDP_MAILBOX, NULL });
 
 /*
- * ECHONET Lite UDPÊM^XN
+ * ECHONET Lite UDP通信処理タスク
  */
 CRE_TSK(ECHONET_UDP_TASK, { TA_HLNG, 0, echonet_udp_task, ECHONET_UDP_TASK_PRIORITY, ECHONET_UDP_TASK_STACK_SIZE, NULL });
 
 /*
- * ECHONET Lite ^XNN®püúnh[
+ * ECHONET Lite タスク起動用周期ハンドラー
  */
 CRE_CYC(ECHONET_UDP_CYCHDR, { TA_NULL, ECHONET_UDP_TASK, echonet_udp_cychdr, 1, 0 });
Index: uKadecot/trunk/ecnl_ssp/echonet_task.c
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_task.c	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_task.c	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -41,5 +37,5 @@
 
 /*
- *		ECHONET Lite ^XN
+ *		ECHONET Lite タスク
  */
 
@@ -78,8 +74,8 @@
 static struct ecnl_state s;
 
-/* óMbZ[WðJú·é©Û© */
+/* 受信メッセージを開放するか否か */
 static bool_t g_release_esv;
 
-/* óMbZ[Wð]·é©Û© */
+/* 受信メッセージを転送するか否か */
 bool_t g_forward_esv;
 
@@ -126,5 +122,5 @@
 			target += - ENOD_REMOTE_ID + 1;
 			if (from_app && (target < tnum_enodid)) {
-				/* ñ¯úÌ[gm[hÍT[rX^XNÅ·é */
+				/* 非同期のリモートノードはサービス処理タスクで処理する */
 				switch (eobjcb_table[target].profile->eobjatr) {
 				case EOBJ_SYNC_REMOTE_NODE:
@@ -174,13 +170,12 @@
 	ECN_FBS_ID fa_fbs_id, ECN_FBS_ID *fa_fbs_anno);
 
-/* W
-[ú»tO */
+/* モジュール初期化フラグ */
 static uint8_t		m_eobjlist_need_init = 1;
 
-/* V[PXÔ */
+/* シーケンス番号 */
 static uint16_t		g_current_tid = 1;
 
 /*
- *  ECHONET Lite ^XNÌú»iRXgN^j
+ *  ECHONET Lite タスクの初期化（コンストラクタ相当）
  */
 void echonet_task_init(intptr_t exinf)
@@ -191,6 +186,5 @@
 
 /*
- * W
-[ú»
+ * モジュール初期化
  */
 static void _ecn_tsk_int_module_init(intptr_t exinf)
@@ -210,5 +204,5 @@
 
 /*
- *  ECHONET Lite ^XNÌ{Ì
+ *  ECHONET Lite タスクの本体
  */
 static
@@ -243,5 +237,5 @@
 	}
 
-	/* bZ[W[v */
+	/* メッセージループ */
 	for (;;) {
 		a_prev = a_now;
@@ -283,10 +277,10 @@
 
 			switch (a_mdt.fbs_id.ptr->hdr.type) {
-			/* àgpbZ[W */
+			/* 内部使用メッセージ */
 			case ECN_MSG_INTERNAL:
 				_ecn_tsk_int_msg(fa_exinf, a_mdt.fbs_id);
 				break;
 
-			/* ECHONETpbZ[W */
+			/* ECHONET用メッセージ */
 			case ECN_MSG_ECHONET:
 				_ecn_tsk_ecn_msg(fa_exinf, a_mdt.fbs_id);
@@ -297,5 +291,5 @@
 			}
 
-			/* Ìæðú */
+			/* 領域解放 */
 			if (g_release_esv)
 				_ecn_fbs_del(a_mdt.fbs_id);
@@ -312,5 +306,5 @@
 
 /*
- *  ECHONET Lite vgXbhN®^XN
+ *  ECHONET Lite プロトスレッド起動タスク
  */
 void echonet_task(intptr_t fa_exinf)
@@ -320,5 +314,5 @@
 
 /*
- *  ECHONET Lite ^XNN®püúnh[
+ *  ECHONET Lite タスク起動用周期ハンドラー
  */
 void echonet_cychdr(intptr_t exinf)
@@ -328,5 +322,5 @@
 
 /*
- * V[PXÔ¶¬
+ * シーケンス番号生成
  */
 static uint16_t _ecn_tsk_new_tid(void)
@@ -336,13 +330,13 @@
 
 /*
- * vd¶ì¬
- * ø
- * ECN_FBS_ID		*fp_fbs_id		æ¾µ½FBS_IDÌi[æ
- * ID				fa_seoj			M³ÌECHONETIuWFNgID
- * ID				fa_deoj			¶æÌECHONETIuWFNgID
- * uint8_t			fa_epc			vpeBR[h
- * uint8_t			fa_pdc			vpeBlf[^TCY
- * const void		*p_edt			vpeBlf[^
- * ECN_SRV_CODE		fa_esv			ECHONET Light T[rXR[h
+ * 要求電文作成
+ * 引数
+ * ECN_FBS_ID		*fp_fbs_id		取得したFBS_IDの格納先
+ * ID				fa_seoj			送信元のECHONETオブジェクトID
+ * ID				fa_deoj			宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc			プロパティコード
+ * uint8_t			fa_pdc			プロパティ値データサイズ
+ * const void		*p_edt			プロパティ値データ
+ * ECN_SRV_CODE		fa_esv			ECHONET Light サービスコード
  */
 ER _ecn_tsk_mk_esv(ECN_FBS_ID *fp_fbs_id, ID fa_seoj, ID fa_deoj,
@@ -351,5 +345,5 @@
 	ER				a_ret;
 	int				a_size, i;
-	ECN_FBS_ID		a_fbs_id = { 0 };	/* vd¶p				*/
+	ECN_FBS_ID		a_fbs_id = { 0 };	/* 要求電文用メモリ				*/
 	T_ECN_EDT_HDR	a_ecn_hdp;			/* ecn_hdr+edata+ecn_prp 14byte	*/
 	ID				a_enodid;
@@ -358,28 +352,28 @@
 
 	if (!fp_fbs_id)
-		return E_PAR; /* æ¾µ½FBS_IDÌi[æªNULL */
+		return E_PAR; /* 取得したFBS_IDの格納先がNULL */
 	if (ECHONET_MEMPOOL_BLOCK_SIZE <= fa_pdc)
-		return E_PAR; /* vpeBlTCYªå«·¬é */
+		return E_PAR; /* プロパティ値サイズが大きすぎる */
 	if (!p_edt && 0 < fa_pdc)
-		return E_PAR; /* vpeBlTCYª1ÈãÈÌÉf[^|C^ªNULL */
+		return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
 
 	if (fa_seoj <= EOBJ_NULL || tmax_eobjid < fa_seoj)
-		return E_NOEXS; /* ECHONETIuWFNgIDª¢è` */
+		return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
 #ifndef ECHONET_CONTROLLER_EXTENTION
 	if (fa_deoj < EOBJ_NULL || tmax_eobjid < fa_deoj)
-		return E_NOEXS; /* ECHONETIuWFNgIDª¢è` */
+		return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
 #else
 	if (fa_deoj < EOBJ_NULL || (tmax_eobjid + TNUM_AEOBJID) < fa_deoj)
-		return E_NOEXS; /* ECHONETIuWFNgIDª¢è` */
+		return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
 #endif
 	if (fa_deoj == EOBJ_NULL && fa_esv == ESV_INFC)
-		return E_NOEXS; /* ECHONETIuWFNgIDª¢è` */
-
-	/* vÅ¬TCYÌæ¾ */
+		return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
+
+	/* 要求最小サイズの取得 */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* vd¶pÌæ¾ */
+	/* 要求電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(a_size, &a_fbs_id);
-	if (a_ret != E_OK || !a_fbs_id.ptr) { /* mÛ¸s */
+	if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
 		ECN_DBG_PUT "_ecn_fbs_cre(%d) result = %d:%s",
 			a_size,
@@ -388,5 +382,5 @@
 	}
 
-	/* vd¶Ýè						*/
+	/* 要求電文設定						*/
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
 	a_ecn_hdp.ecn_hdr.ehd1 = ECN_EDH1_ECHONET_LITE;
@@ -395,9 +389,9 @@
 	memcpy(&a_ecn_hdp.edata.seoj, &eobjinib_table[fa_seoj - 1].eojx1, sizeof(a_ecn_hdp.edata.seoj));
 	a_ecn_hdp.edata.esv = fa_esv;
-	a_ecn_hdp.edata.opc = 1;		/* vpeB */
-	a_ecn_hdp.ecn_prp.epc = fa_epc;	/* vpeBR[h */
-	a_ecn_hdp.ecn_prp.pdc = fa_pdc;	/* tf[^TCY */
-
-	/* vd¶pÉf[^ÇÁ */
+	a_ecn_hdp.edata.opc = 1;		/* 処理プロパティ数 */
+	a_ecn_hdp.ecn_prp.epc = fa_epc;	/* プロパティコード */
+	a_ecn_hdp.ecn_prp.pdc = fa_pdc;	/* 付随データサイズ */
+
+	/* 要求電文用メモリにデータ追加 */
 	a_ret = _ecn_fbs_add_data_ex(a_fbs_id, &a_ecn_hdp, a_size);
 	if (a_ret) {
@@ -408,5 +402,5 @@
 	}
 	if (0 < fa_pdc) {
-		/* tf[^ÇÁ */
+		/* 付随データ追加 */
 		a_ret = _ecn_fbs_add_data_ex(a_fbs_id, p_edt, fa_pdc);
 		if (a_ret) {
@@ -418,6 +412,6 @@
 	}
 	if (fa_deoj == 0) {
-		ECN_DBG_PUT "%s", "}`LXg" ECN_DBG_END;
-		/* fa_deoj == 0 : }`LXg */
+		ECN_DBG_PUT "%s", "マルチキャスト" ECN_DBG_END;
+		/* fa_deoj == 0 : マルチキャスト */
 		((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx1 = EOJ_X1_PROFILE;
 		((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx2 = EOJ_X2_NODE_PROFILE;
@@ -427,10 +421,10 @@
 	else if (fa_deoj <= tmax_eobjid) {
 		ECN_DBG_PUT "fa_deoj = %d", fa_deoj ECN_DBG_END;
-		/* if (fa_deoj < 1 || tmax_eobjid < fa_deoj) cÌÙínÍÖ`ªÅOÏÝÆ·é */
+		/* if (fa_deoj < 1 || tmax_eobjid < fa_deoj) …の異常系は関数冒頭で除外済みとする */
 		a_eobj = &eobjinib_table[fa_deoj - 1];
 		memcpy(&((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj, &a_eobj->eojx1,
 			sizeof(((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj));
 
-		/* e[u©çõ */
+		/* テーブルから検索 */
 		a_fbs_id.ptr->hdr.target = ENOD_NOT_MATCH_ID;
 		a_enodid = (a_eobj->enodid == 0) ? fa_deoj : a_eobj->enodid;
@@ -472,5 +466,5 @@
 		ECN_ENOD_ID enodid;
 		ECN_DBG_PUT "fa_deoj = %d", fa_deoj ECN_DBG_END;
-		/* IuWFNgID©çEOJÆm[hIDðæ¾ */
+		/* オブジェクトIDからEOJとノードIDを取得 */
 		if(ecn_agent_get_eoj_enodid(fa_deoj, &eoj, &enodid)){
 			memcpy(&((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj, &eoj,
@@ -505,10 +499,10 @@
 		a_fbs_id.ptr->hdr.reply = ENOD_API_ID;
 
-	/* ³íI¹ */
+	/* 正常終了 */
 	*fp_fbs_id = a_fbs_id;
 	return E_OK;
 
 lb_except:
-	/* f[^ì¬¸sµ½çÌæðú */
+	/* データ作成失敗したら領域解放 */
 	if (a_fbs_id.ptr)
 		_ecn_fbs_del(a_fbs_id);
@@ -518,5 +512,5 @@
 
 /*
- * àgpbZ[W
+ * 内部使用メッセージ
  */
 static void _ecn_tsk_int_msg(intptr_t fa_exinf, ECN_FBS_ID fa_fbs_id)
@@ -549,5 +543,5 @@
 
 /*
- * ^XNú»
+ * タスク初期化
  */
 static void _ecn_tsk_int_startup(intptr_t fa_exinf)
@@ -558,5 +552,5 @@
 		_ecn_tsk_int_module_init(fa_exinf);
 
-	/* CX^XXgÊmÌM */
+	/* インスタンスリスト通知の送信 */
 	a_ret = _ecn_tsk_ntf_inl(fa_exinf);
 	if (a_ret) {
@@ -566,10 +560,10 @@
 
 /*
- * CX^XXgÊmÌM
- * ECHONET-Lite_Ver.1.10_02.pdf p.43 }4-1-4
+ * インスタンスリスト通知の送信
+ * ECHONET-Lite_Ver.1.10_02.pdf p.43 図4-1-4
  */
 ER _ecn_tsk_ntf_inl(intptr_t fa_exinf)
 {
-	const T_ECN_EOJ	a_seoj =	/* 0x01 : êÊm[hA0x02FMêpm[h */
+	const T_ECN_EOJ	a_seoj =	/* 0x01 : 一般ノード、0x02：送信専用ノード */
 		{ EOJ_X1_PROFILE, EOJ_X2_NODE_PROFILE, 0x01 };
 	const T_ECN_EOJ	a_deoj =
@@ -581,5 +575,5 @@
 	int			i;
 	uint8_t		a_count;
-	const EOBJCB	*enod = &eobjcb_table[0];	/* [Jm[h */
+	const EOBJCB	*enod = &eobjcb_table[0];	/* ローカルノード */
 	const EOBJINIB *eobj;
 
@@ -599,11 +593,11 @@
 
 		if (!a_eoj_ct) {
-			/* mÛEwb_i[ */
-			a_hdr.ecn_hdr.tid = (uint8_t)_ecn_tsk_new_tid(); /* V[PXÔ¶¬ */
+			/* メモリ確保・ヘッダ格納 */
+			a_hdr.ecn_hdr.tid = (uint8_t)_ecn_tsk_new_tid(); /* シーケンス番号生成 */
 			a_ret = _ecn_fbs_cre(sizeof(a_hdr), &a_fbs);
-			if (a_ret != E_OK) /* mÛ¸s */
+			if (a_ret != E_OK) /* 確保失敗 */
 				goto lb_except;
 			a_ret = _ecn_fbs_add_data(a_fbs, &a_hdr, sizeof(a_hdr));
-			if (a_ret != E_OK) /* f[^ÇÁ¸s */
+			if (a_ret != E_OK) /* データ追加失敗 */
 				goto lb_except;
 
@@ -612,26 +606,26 @@
 			a_fbs.ptr->hdr.target = ENOD_MULTICAST_ID;
 			a_fbs.ptr->hdr.reply = ENOD_LOCAL_ID;
-			((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc = 1;	/*  */
-			/* ði[ */
+			((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc = 1;	/* 件数 */
+			/* 件数を格納 */
 			a_count = (uint8_t)(enod->eobjcnt - i);
 			if (a_count >= ECN_IST_LST_EOJ_MAX_CT)
 				a_count = ECN_IST_LST_EOJ_MAX_CT;
 			a_ret = _ecn_fbs_add_data_ex(a_fbs, &a_count, sizeof(a_count));
-			if (a_ret != E_OK) /* f[^ÇÁ¸s */
+			if (a_ret != E_OK) /* データ追加失敗 */
 				goto lb_except;
 		}
-		/* ECHONETIuWFNgID(3byte)ði[ */
+		/* ECHONETオブジェクトID(3byte)を格納 */
 		a_ret = _ecn_fbs_add_data_ex(a_fbs, &eobj->eojx1, sizeof(T_ECN_EOJ));
-		if (a_ret != E_OK) /* f[^ÇÁ¸s */
+		if (a_ret != E_OK) /* データ追加失敗 */
 			goto lb_except;
 
-		/* EedtTCYÁZ */
+		/* 件数・edtサイズ加算 */
 		((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc += sizeof(T_ECN_EOJ);
 		if (++a_eoj_ct < ECN_IST_LST_EOJ_MAX_CT)
 			continue;
 
-		/* 1AiEXÅÌãÀÉBµ½çAêUM */
+		/* 1アナウンスでの上限に達したら、一旦送信 */
 		a_ret = _ecn_tsk_snd_mbx(a_fbs, false);
-		if (a_ret != E_OK) /* f[^M¸s */
+		if (a_ret != E_OK) /* データ送信失敗 */
 			goto lb_except;
 		a_eoj_ct = 0;
@@ -639,7 +633,7 @@
 	}
 	if (a_eoj_ct) {
-		/* ¢Mf[^ª Á½çAM */
+		/* 未送信データがあったら、送信 */
 		a_ret = _ecn_tsk_snd_mbx(a_fbs, false);
-		if (a_ret != E_OK) /* f[^M¸s */
+		if (a_ret != E_OK) /* データ送信失敗 */
 			goto lb_except;
 		a_fbs.ptr = 0;
@@ -685,5 +679,5 @@
 
 /*
- * 3byteÌeobjidÅzñðõ·é
+ * 3byteのeobjidで配列中を検索する
  */
 const EOBJINIB *_ecn_eoj_fnd(const EOBJCB *fp_nod, const T_ECN_EOJ *fp_eoj)
@@ -721,5 +715,5 @@
 
 /*
- * ECHONETpbZ[W
+ * ECHONET用メッセージ
  */
 static void _ecn_tsk_ecn_msg(intptr_t fa_exinf, ECN_FBS_ID fa_fbs_id)
@@ -749,17 +743,17 @@
 	}
 
-	/* M¶©çm[hðõ */
+	/* 送信宛からノードを検索 */
 	p_nod = _ecn_eno_fnd(fa_fbs_id.ptr->hdr.target);
-	/* M³©çm[hðõ */
+	/* 送信元からノードを検索 */
 	sender = fa_fbs_id.ptr->hdr.sender;
 	p_snod = _ecn_eno_fnd(sender);
 	if (p_snod != NULL) {
 		sobjatr = p_snod->profile->eobjatr;
-		/* m[hvt@CÌê */
+		/* ノードプロファイルの場合 */
 		if ((p_esv->edata.seoj.eojx1 == EOJ_X1_PROFILE)
 			&& (p_esv->edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
 			p_sobj = p_snod->profile;
 		}
-		/* @íIuWFNgÌê */
+		/* 機器オブジェクトの場合 */
 		else {
 			p_sobj = _ecn_eoj_fnd(p_snod, &p_esv->edata.seoj);
@@ -771,5 +765,5 @@
 #endif
 
-	/* m[hàÌ@íIuWFNgðõ */
+	/* ノード内の機器オブジェクトを検索 */
 	a_prc = false;
 	a_fwd = false;
@@ -778,13 +772,13 @@
 		eobjatr = p_nod->profile->eobjatr;
 		p_eoj = &p_esv->edata.deoj;
-		/* m[hvt@CÌê */
+		/* ノードプロファイルの場合 */
 		if ((p_eoj->eojx1 == EOJ_X1_PROFILE)
 			&& (p_eoj->eojx2 == EOJ_X2_NODE_PROFILE)) {
-			/* d¶Às */
+			/* 電文処理実行 */
 			if (_ecn_tsk_ecn_msg_main(fa_fbs_id, p_nod->profile, eobjatr, p_sobj, sobjatr) == 1)
 				a_fwd = true;
 			a_prc = true;
 		}
-		/* @íIuWFNgÌê */
+		/* 機器オブジェクトの場合 */
 		else {
 			count = p_nod->eobjcnt;
@@ -805,9 +799,9 @@
 				if (p_obj->eojx2 != p_eoj->eojx2)
 					continue;
-				/* CX^XR[hªOÌêA¯¶NXÌSÄÌCX^X¶ */
+				/* インスタンスコードが０の場合、同じクラスの全てのインスタンス宛 */
 				if ((p_obj->eojx3 != p_eoj->eojx3) && (p_eoj->eojx3 != 0))
 					continue;
 
-				/* d¶Às */
+				/* 電文処理実行 */
 				if (_ecn_tsk_ecn_msg_main(fa_fbs_id, p_obj, eobjatr, p_sobj, sobjatr) == 1)
 					a_fwd = true;
@@ -816,12 +810,12 @@
 		}
 	}
-	/* @íIuWFNgª©Â©çÈ¢êÅà */
+	/* 機器オブジェクトが見つからない場合でも */
 	if (!a_prc) {
-		/* d¶ÀsióMpj */
+		/* 電文処理実行（応答受信用） */
 		if (_ecn_tsk_ecn_msg_main(fa_fbs_id, NULL, EPC_NONE, p_sobj, sobjatr) == 1)
 			a_fwd = true;
 	}
 
-	/* ÌêAvP[VÉ]·é */
+	/* 応答の場合アプリケーションに転送する */
 	if (a_fwd && ((p_esv->ecn_hdr.tid == apitid_table[sender])
 		|| g_forward_esv))
@@ -829,5 +823,5 @@
 		g_release_esv = false;
 
-		ECN_CAP_PUT "redirect ecn_svc_mailboxid ¨ ecn_api_mailboxid (esv:0x%02X)",
+		ECN_CAP_PUT "redirect ecn_svc_mailboxid → ecn_api_mailboxid (esv:0x%02X)",
 			p_esv->edata.esv ECN_CAP_END;
 		fa_fbs_id.ptr->hdr.target = ENOD_API_ID;
@@ -853,5 +847,5 @@
 
 	switch (p_esv->edata.esv) {
-	/* 0x60 vpeBl«Ývisvj */
+	/* 0x60 プロパティ値書き込み要求（応答不要） */
 	case ESV_SET_I:
 		if (!p_obj) {
@@ -865,5 +859,5 @@
 		break;
 
-	/* 0x61 vpeBl«Ývivj */
+	/* 0x61 プロパティ値書き込み要求（応答要） */
 	case ESV_SET_C:
 		if (!p_obj) {
@@ -877,5 +871,5 @@
 		break;
 
-	/* 0x62 vpeBlÇÝoµv */
+	/* 0x62 プロパティ値読み出し要求 */
 	case ESV_GET:
 		if (!p_obj) {
@@ -889,5 +883,5 @@
 		break;
 
-	/* 0x63 vpeBlÊmv */
+	/* 0x63 プロパティ値通知要求 */
 	case ESV_INF_REQ:
 		if (!p_obj) {
@@ -902,5 +896,5 @@
 		break;
 
-	/* 0x6E vpeBl«ÝEÇÝoµv */
+	/* 0x6E プロパティ値書き込み・読み出し要求 */
 	case ESV_SET_GET:
 		if (!p_obj) {
@@ -914,5 +908,5 @@
 		break;
 
-	/* 0x74 vpeBlÊmivj */
+	/* 0x74 プロパティ値通知（応答要） */
 	case ESV_INFC:
 		if (!p_sobj)
@@ -925,18 +919,18 @@
 		break;
 
-	/* 0x60 vpeBl«Ývisvj */
-	case ESV_SET_I_SNA:		/* 0x50 vpeBl«ÝvsÂ */
+	/* 0x60 プロパティ値書き込み要求（応答不要） */
+	case ESV_SET_I_SNA:		/* 0x50 プロパティ値書き込み要求不可応答 */
 		result = 1;
 		break;
 
-	/* 0x61 vpeBl«Ývivj */
-	case ESV_SET_RES:		/* 0x71 vpeBl«Ý */
-	case ESV_SET_C_SNA:		/* 0x51 vpeBl«ÝvsÂ */
+	/* 0x61 プロパティ値書き込み要求（応答要） */
+	case ESV_SET_RES:		/* 0x71 プロパティ値書き込み応答 */
+	case ESV_SET_C_SNA:		/* 0x51 プロパティ値書き込み要求不可応答 */
 		result = 1;
 		break;
 
-	/* 0x62 vpeBlÇÝoµv */
-	case ESV_GET_RES:		/* 0x72 vpeBlÇÝoµ */
-	case ESV_GET_SNA:		/* 0x52 vpeBlÇÝoµsÂ */
+	/* 0x62 プロパティ値読み出し要求 */
+	case ESV_GET_RES:		/* 0x72 プロパティ値読み出し応答 */
+	case ESV_GET_SNA:		/* 0x52 プロパティ値読み出し不可応答 */
 		if (!p_sobj) {
 			ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
@@ -949,7 +943,7 @@
 		break;
 
-	/* 0x63 vpeBlÊmv */
-	case ESV_INF:			/* 0x73 vpeBlÊm */
-	case ESV_INF_SNA:		/* 0x53 vpeBlÊmsÂ */
+	/* 0x63 プロパティ値通知要求 */
+	case ESV_INF:			/* 0x73 プロパティ値通知 */
+	case ESV_INF_SNA:		/* 0x53 プロパティ値通知不可応答 */
 		if (!p_sobj) {
 			ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
@@ -962,7 +956,7 @@
 		break;
 
-	/* 0x6E vpeBl«ÝEÇÝoµv */
-	case ESV_SET_GET_RES:	/* 0x7E vpeBl«ÝEÇÝoµ */
-	case ESV_SET_GET_SNA:	/* 0x5E vpeBl«ÝEÇÝoµsÂ */
+	/* 0x6E プロパティ値書き込み・読み出し要求 */
+	case ESV_SET_GET_RES:	/* 0x7E プロパティ値書き込み・読み出し応答 */
+	case ESV_SET_GET_SNA:	/* 0x5E プロパティ値書き込み・読み出し不可応答 */
 		if (!p_sobj) {
 			ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
@@ -975,6 +969,6 @@
 		break;
 
-	/* 0x74 vpeBlÊmivj */
-	case ESV_INFC_RES:		/* 0x7A vpeBlÊm */
+	/* 0x74 プロパティ値通知（応答要） */
+	case ESV_INFC_RES:		/* 0x7A プロパティ値通知応答 */
 		result = 1;
 		break;
@@ -986,5 +980,5 @@
 	}
 
-	/* vpeBÊmvðM */
+	/* プロパティ通知要求を送信 */
 	if (a_fbs_anno.ptr != NULL) {
 		ER a_ret = _ecn_tsk_snd_mbx(a_fbs_anno, true);
@@ -1066,11 +1060,11 @@
 
 /*
- * ECN_FBS_ID©çT_ECN_PRP1Æ»Ìtf[^(edt)ðoµAedtÌ|C^ðÔ·
- * ø
- * ECN_FBS_ID fa_fbs_id					ÇÝæéFBS
- * T_ECN_PRP *fp_prp					epc+pdcÌi[æ
- * T_ECN_SUB_BLK * const fp_prev_blk	OñgÁ½Ì|C^(³¯êÎ0)
- * ³íF|C^ NG:0
- * |C^Í_ecn_fbs_mbx_rel()Åðú·éKvª é
+ * ECN_FBS_IDからT_ECN_PRP1件とその付随データ(edt)を抽出し、edtのポインタを返す
+ * 引数
+ * ECN_FBS_ID fa_fbs_id					読み取るFBS
+ * T_ECN_PRP *fp_prp					epc+pdcの格納先
+ * T_ECN_SUB_BLK * const fp_prev_blk	前回使ったメモリのポインタ(無ければ0)
+ * 正常：ポインタ NG:0
+ * ポインタは_ecn_fbs_mbx_rel()で解放する必要がある
  */
 static T_ECN_SUB_BLK *_ecn_tsk_get_prp_pce(ECN_FBS_ID fa_fbs_id, T_ECN_PRP *fp_prp,
@@ -1081,7 +1075,7 @@
 	ER		a_ret;
 
-	/* vpeBpÌæ¾ */
+	/* プロパティ用メモリの取得 */
 	if (fp_prev_blk) {
-		p_blk = fp_prev_blk; /* OñgÁ½ª éÈçAÄp·é */
+		p_blk = fp_prev_blk; /* 前回使ったメモリがあるなら、再利用する */
 	}
 	else {
@@ -1089,10 +1083,10 @@
 		if (!p_blk) {
 			ECN_DBG_PUT "_ecn_fbs_mbx_get() fault." ECN_DBG_END;
-			return 0;	/* s« */
+			return 0;	/* メモリ不足 */
 		}
 	}
 	memset(p_blk, 0, sizeof(*p_blk));
 
-	/* T_ECN_PRPª(epc,pdc)ðÇÝæé */
+	/* T_ECN_PRP部分(epc,pdc)を読み取る */
 	a_size = 0;
 	a_ret = _ecn_fbs_get_data(fa_fbs_id, fp_prp, sizeof(*fp_prp), &a_size);
@@ -1103,5 +1097,5 @@
 
 	if (0 < fp_prp->pdc) {
-		/* tf[^ª(edt)ðÇÝæé */
+		/* 付随データ部分(edt)を読み取る */
 		a_size = 0;
 		a_ret = _ecn_fbs_get_data(fa_fbs_id, p_blk, fp_prp->pdc, &a_size);
@@ -1115,5 +1109,5 @@
 
 lb_except:
-	/* vpeBpðú */
+	/* プロパティ用メモリ解放 */
 	if (p_blk && !fp_prev_blk)
 		_ecn_fbs_mbx_rel(p_blk);
@@ -1125,5 +1119,5 @@
 	ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, ECN_FBS_ID *fa_fbs_anno, int a_count,
 	int *p_sw_ok);
-/* vpeBl«ÝÀs */
+/* プロパティ値書き込み実行 */
 static ER _ecn_tsk_eoj_set_main(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_update,
 	ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, ECN_FBS_ID *fa_fbs_anno, int a_count,
@@ -1141,5 +1135,5 @@
 
 	for (i = 0; i < a_count; i++) {
-		/* ECN_FBS_ID©çT_ECN_PRP1Æ»Ìtf[^ðoµA»Ì|C^ðÔ· */
+		/* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出し、そのポインタを返す */
 		p_edt = _ecn_tsk_get_prp_pce(fa_fbs_id, &a_prp, p_edt);
 		if (!p_edt) {
@@ -1148,7 +1142,7 @@
 		}
 
-		/* vpeBÌÝè set_prp(obj, reqp, resp) */
+		/* プロパティの設定 set_prp(obj, reqp, resp) */
 		a_size = a_prp.pdc;
-		/* obj,epcÉÎ·ésetÖðÄÔ */
+		/* obj,epcに対応するset関数を呼ぶ */
 		a_eprp = _ecn_tsk_eoj_get_property(fp_obj, a_prp.epc);
 		if ((a_eprp != NULL)
@@ -1172,11 +1166,11 @@
 				fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3,
 				a_prp.epc, p_edt->payload[0], a_size ECN_DBG_END;
-			*p_sw_ok = 0;	/* vpeBÝè¸s */
-			/* ÌêEDTÍÝèµÈ¢ */
+			*p_sw_ok = 0;	/* プロパティ設定失敗 */
+			/* 応答処理の場合EDTは設定しない */
 			if (fa_update)
 				a_prp.pdc = 0;
 		}
 
-		/* d¶pÉf[^ÇÁ(epc,pdcÌ2byte) */
+		/* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
 		a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_prp, sizeof(a_prp));
 		if (a_ret) {
@@ -1186,5 +1180,5 @@
 
 		if (0 < a_prp.pdc) {
-			/* d¶pÉf[^ÇÁ(edt n-byte) */
+			/* 応答電文用メモリにデータ追加(edt n-byte) */
 			a_ret = _ecn_fbs_add_data_ex(a_fbs_res, p_edt->payload, a_prp.pdc);
 			if (a_ret) {
@@ -1195,5 +1189,5 @@
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc ++;
 
-		/* vpeBÊm èÌê */
+		/* プロパティ通知ありの場合 */
 		if (a_anno && (a_ans == a_size)) {
 			if (fa_fbs_anno->ptr == NULL) {
@@ -1213,5 +1207,5 @@
 
 lb_finally:
-	/* vpeBpðú */
+	/* プロパティ用メモリ解放 */
 	if (p_edt)
 		_ecn_fbs_mbx_rel(p_edt);
@@ -1222,10 +1216,10 @@
 static ER _ecn_tsk_eoj_get_main(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
 	ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok);
-/* vpeBlÇÝoµÀs */
+/* プロパティ値読み出し実行 */
 static ER _ecn_tsk_eoj_get_main(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
 	ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok)
 {
 	T_ECN_SUB_BLK	*p_edt		=	0;
-	void				*p_prp_buf	=	0;	/* ìÆÌæ */
+	void				*p_prp_buf	=	0;	/* 作業領域 */
 	const EPRPINIB		*a_eprp;
 	ER					a_ret		=	E_SYS;
@@ -1235,13 +1229,13 @@
 	((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
 
-	/* ìÆÌæmÛ */
+	/* 作業領域確保 */
 	p_prp_buf = _ecn_fbs_mbx_get(ECHONET_MEMPOOL_BLOCK_SIZE);
 	if (!p_prp_buf) {
 		ECN_DBG_PUT "_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
-		goto lb_except;	/* s« */
+		goto lb_except;	/* メモリ不足 */
 	}
 
 	for (i = 0; i < a_count; i++) {
-		/* ECN_FBS_ID©çT_ECN_PRP1Æ»Ìtf[^ðo */
+		/* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出 */
 		p_edt = _ecn_tsk_get_prp_pce(fa_fbs_id, &a_prp, p_edt);
 		if (!p_edt) {
@@ -1250,7 +1244,7 @@
 		}
 
-		/* vpeBÌæ¾ get_eprp(obj, reqp, resp, size) */
+		/* プロパティの取得 get_eprp(obj, reqp, resp, size) */
 		memset(p_prp_buf, 0, ECHONET_MEMPOOL_BLOCK_SIZE);
-		/* obj,epcÉÎ·égetÖðÄÔ */
+		/* obj,epcに対応するget関数を呼ぶ */
 		a_eprp = _ecn_tsk_eoj_get_property(fp_obj, a_prp.epc);
 		if ((a_eprp != NULL) && (((a_eprp->eprpatr & fa_access) != 0) && (fa_eobjatr == EOBJ_LOCAL_NODE) || fa_forward)) {
@@ -1263,10 +1257,10 @@
 			a_prp.pdc = (uint8_t)a_ans;
 		} else {
-			*p_sw_ok = 0;	/* vpeBæ¾¸s */
+			*p_sw_ok = 0;	/* プロパティ取得失敗 */
 			a_ans = 0;
 			a_prp.pdc = 0;
 		}
 
-		/* d¶pÉf[^ÇÁ(epc,pdcÌ2byte) */
+		/* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
 		a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_prp, sizeof(a_prp));
 		if (a_ret) {
@@ -1275,5 +1269,5 @@
 		}
 		if (0 < a_ans) {
-			/* tf[^ÇÁ */
+			/* 付随データ追加 */
 			a_ret = _ecn_fbs_add_data_ex(a_fbs_res, p_prp_buf, a_ans);
 			if (a_ret) {
@@ -1291,9 +1285,9 @@
 
 lb_finally:
-	/* ìÆÌæðú */
+	/* 作業領域解放 */
 	if (p_prp_buf)
 		_ecn_fbs_mbx_rel(p_prp_buf);
 
-	/* vpeBpðú */
+	/* プロパティ用メモリ解放 */
 	if (p_edt)
 		_ecn_fbs_mbx_rel(p_edt);
@@ -1303,9 +1297,9 @@
 
 static 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);
-/* vpeBlÇÝoµÀs */
+/* プロパティ値読み出し実行 */
 static 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)
 {
 	T_ECN_SUB_BLK	*p_edt		=	0;
-	void				*p_prp_buf	=	0;	/* ìÆÌæ */
+	void				*p_prp_buf	=	0;	/* 作業領域 */
 	ER					a_ret		=	E_SYS;
 	T_ECN_PRP			a_prp;			/* epc+pdc */
@@ -1314,13 +1308,13 @@
 	((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
 
-	/* ìÆÌæmÛ */
+	/* 作業領域確保 */
 	p_prp_buf = _ecn_fbs_mbx_get(ECHONET_MEMPOOL_BLOCK_SIZE);
 	if (!p_prp_buf) {
 		ECN_DBG_PUT "_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
-		goto lb_except;	/* s« */
+		goto lb_except;	/* メモリ不足 */
 	}
 
 	for (i = 0; i < a_count; i++) {
-		/* ECN_FBS_ID©çT_ECN_PRP1Æ»Ìtf[^ðo */
+		/* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出 */
 		p_edt = _ecn_tsk_get_prp_pce(fa_fbs_id, &a_prp, p_edt);
 		if (!p_edt) {
@@ -1331,5 +1325,5 @@
 		a_prp.pdc = 0;
 
-		/* d¶pÉf[^ÇÁ(epc,pdcÌ2byte) */
+		/* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
 		a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_prp, sizeof(a_prp));
 		if (a_ret) {
@@ -1346,9 +1340,9 @@
 
 lb_finally:
-	/* ìÆÌæðú */
+	/* 作業領域解放 */
 	if (p_prp_buf)
 		_ecn_fbs_mbx_rel(p_prp_buf);
 
-	/* vpeBpðú */
+	/* プロパティ用メモリ解放 */
 	if (p_edt)
 		_ecn_fbs_mbx_rel(p_edt);
@@ -1357,5 +1351,5 @@
 }
 
-/* vpeBlÇÝòÎµÀs */
+/* プロパティ値読み飛ばし実行 */
 static ER _ecn_tsk_eoj_skip_main(const EOBJINIB *fp_obj, ECN_FBS_ID fa_fbs_id,
 	int a_count);
@@ -1368,5 +1362,5 @@
 
 	for (i = 0; i < a_count; i++) {
-		/* T_ECN_PRPª(epc,pdc)ðÇÝæé */
+		/* T_ECN_PRP部分(epc,pdc)を読み取る */
 		a_size = 0;
 		a_ret = _ecn_fbs_get_data(fa_fbs_id, &a_prp, sizeof(a_prp), &a_size);
@@ -1376,5 +1370,5 @@
 		}
 
-		/* pdcªÇÝòÎµ */
+		/* pdc分読み飛ばし */
 		a_ret = _ecn_fbs_seek_rpos(fa_fbs_id, a_prp.pdc);
 		if (a_ret) {
@@ -1395,5 +1389,5 @@
 static void _ecn_tsk_mk_rsp_hdr(const EOBJINIB *fp_obj, T_ECN_EDT_HDR *fp_rsp_esv,
 	T_ECN_EDT_HDR const *fp_req_esv);
-/* d¶Ýè */
+/* 応答電文設定 */
 static void _ecn_tsk_mk_rsp_hdr(const EOBJINIB *fp_obj, T_ECN_EDT_HDR *fp_rsp_esv,
 	T_ECN_EDT_HDR const *fp_req_esv)
@@ -1420,7 +1414,7 @@
 }
 
-/* d¶pfbsÝè */
+/* 応答電文用fbs設定 */
 static void _ecn_tsk_set_rsp_fbs(ECN_FBS_ID fa_rsp_fbs, T_ECN_FST_BLK const *fp_req_ptr);
-/* d¶pfbsÝè(sender/targetÌÝè) */
+/* 応答電文用fbs設定(sender/targetの設定) */
 static void _ecn_tsk_set_rsp_fbs(ECN_FBS_ID fa_rsp_fbs, T_ECN_FST_BLK const *fp_req_ptr)
 {
@@ -1431,5 +1425,5 @@
 }
 
-/* vpeBl«Ýv	*/
+/* プロパティ値書き込み要求	*/
 static void _ecn_tsk_eoj_set(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_update,
 	ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv,
@@ -1446,13 +1440,13 @@
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
 
-	/* ÅåTCYÌæ¾ */
+	/* 応答最大サイズの取得 */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* d¶pÌæ¾ */
+	/* 応答電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(a_size, &a_fbs_res);
-	if (a_ret != E_OK || !a_fbs_res.ptr) /* mÛ¸s */
+	if (a_ret != E_OK || !a_fbs_res.ptr) /* 確保失敗 */
 		return;
 
-	/* d¶Ýè */
+	/* 応答電文設定 */
 	if(p_req_esv->edata.deoj.eojx3 != 0)
 		_ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
@@ -1460,7 +1454,7 @@
 		_ecn_tsk_mk_rsp_hdr(fp_obj, &a_ecn_hdp, p_req_esv);
 
-	/* ³íÌd¶ªvpeBlÊmÌê */
+	/* 正常時の応答電文がプロパティ値通知応答の場合 */
 	if (fa_res_esv == ESV_INFC_RES) {
-		/* M³Æ¶æðüêÖ¦ */
+		/* 送信元と宛先を入れ替え */
 		eoj = a_ecn_hdp.edata.seoj;
 		a_ecn_hdp.edata.seoj = a_ecn_hdp.edata.deoj;
@@ -1468,7 +1462,7 @@
 	}
 
-	f_put_fbs_eoj("_ecn_tsk_eoj_set", "fa_fbs_id", fa_fbs_id); /* s/deoj fobOoÍ */
-
-	/* d¶pÉf[^ÇÁ */
+	f_put_fbs_eoj("_ecn_tsk_eoj_set", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
+
+	/* 応答電文用メモリにデータ追加 */
 	a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_ecn_hdp,
 				sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
@@ -1476,13 +1470,13 @@
 		goto lb_except;
 
-	/* payloadæªÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)ðÇÝòÎ· */
+	/* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
 	a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
 	if (a_ret)
 		goto lb_except;
 
-	/* d¶pfbsÝè */
+	/* 応答電文用fbs設定 */
 	_ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
 
-	/* vpeBl«ÝÀs */
+	/* プロパティ値書き込み実行 */
 	a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, fa_update, fa_fbs_id, a_fbs_res,
 		fa_fbs_anno, p_req_esv->edata.opc, &a_sw_ok);
@@ -1490,23 +1484,23 @@
 		goto lb_except;
 
-	/* vÌê */
+	/* 応答要の場合 */
 	if (a_sw_ok) {
 		if (!fa_res_esv) {
-			/* svÌê */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(a_fbs_res);
 			goto lb_finally;
 		}
-		/* Ýè¬÷ */
+		/* 設定処理成功 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
 	} else {
 		if (!fa_sna_esv) {
-			/* svÌê */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(a_fbs_res);
 			goto lb_finally;
 		}
-		/* Ýè¸s */
+		/* 設定処理失敗 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
 	}
-	/* M */
+	/* 応答送信 */
 	a_ret = _ecn_tsk_snd_mbx(a_fbs_res, false);
 	if (a_ret == E_OK)
@@ -1514,5 +1508,5 @@
 
 lb_except:
-	/* f[^M¸sµ½çÌæðú */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_res.ptr)
 		_ecn_fbs_del(a_fbs_res);
@@ -1522,5 +1516,5 @@
 }
 
-/* vpeBlÇÝoµv	*/
+/* プロパティ値読み出し要求	*/
 static void _ecn_tsk_eoj_get(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
 	ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv)
@@ -1535,15 +1529,15 @@
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
 
-	/* úæ¾TCY */
+	/* 初期取得サイズ */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* d¶pÌæ¾ */
+	/* 応答電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(a_size, &a_fbs_res);
-	if (a_ret != E_OK || !a_fbs_res.ptr) { /* mÛ¸s */
+	if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
 		ECN_DBG_PUT "_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
 		goto lb_finally;
 	}
 
-	/* d¶Ýè */
+	/* 応答電文設定 */
 	if(p_req_esv->edata.deoj.eojx3 != 0)
 		_ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
@@ -1551,7 +1545,7 @@
 		_ecn_tsk_mk_rsp_hdr(fp_obj, &a_ecn_hdp, p_req_esv);
 
-	f_put_fbs_eoj("_ecn_tsk_eoj_get", "fa_fbs_id", fa_fbs_id); /* s/deoj fobOoÍ */
-
-	/* d¶pÉf[^ÇÁ */
+	f_put_fbs_eoj("_ecn_tsk_eoj_get", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
+
+	/* 応答電文用メモリにデータ追加 */
 	a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_ecn_hdp,
 			sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
@@ -1561,5 +1555,5 @@
 	}
 
-	/* payloadæªÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)ðÇÝòÎ· */
+	/* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
 	a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
 	if (a_ret) {
@@ -1568,8 +1562,8 @@
 	}
 
-	/* d¶pfbsÝè */
+	/* 応答電文用fbs設定 */
 	_ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
 
-	/* vpeBlÇÝÝÀs */
+	/* プロパティ値読み込み実行 */
 	a_ret = _ecn_tsk_eoj_get_main(fp_obj, fa_eobjatr, fa_forward, fa_access, fa_fbs_id, a_fbs_res,
 		((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc, &a_sw_ok);
@@ -1581,20 +1575,20 @@
 	if (a_sw_ok) {
 		if (!fa_res_esv) {
-			/* svÌê */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(a_fbs_res);
 			goto lb_finally;
 		}
-		/* Ýè¬÷ */
+		/* 設定処理成功 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
 	} else {
 		if (!fa_sna_esv) {
-			/* svÌê */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(a_fbs_res);
 			goto lb_finally;
 		}
-		/* Ýè¸s */
+		/* 設定処理失敗 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
 	}
-	/* M */
+	/* 応答送信 */
 	a_ret = _ecn_tsk_snd_mbx(a_fbs_res, false);
 	if (a_ret != E_OK) {
@@ -1605,5 +1599,5 @@
 
 lb_except:
-	/* f[^M¸sµ½çÌæðú */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_res.ptr)
 		_ecn_fbs_del(a_fbs_res);
@@ -1613,5 +1607,5 @@
 }
 
-/* vpeBlÇÝoµv	*/
+/* プロパティ値読み出し要求	*/
 static void _ecn_tsk_eoj_res(ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv,
 	ECN_SRV_CODE fa_sna_esv)
@@ -1626,20 +1620,20 @@
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
 
-	/* úæ¾TCY */
+	/* 初期取得サイズ */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* d¶pÌæ¾ */
+	/* 応答電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(a_size, &a_fbs_res);
-	if (a_ret != E_OK || !a_fbs_res.ptr) { /* mÛ¸s */
+	if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
 		ECN_DBG_PUT "_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
 		goto lb_finally;
 	}
 
-	/* d¶Ýè						*/
+	/* 応答電文設定						*/
 	_ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
 
-	f_put_fbs_eoj("_ecn_tsk_eoj_res", "fa_fbs_id", fa_fbs_id); /* s/deoj fobOoÍ */
-
-	/* d¶pÉf[^ÇÁ */
+	f_put_fbs_eoj("_ecn_tsk_eoj_res", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
+
+	/* 応答電文用メモリにデータ追加 */
 	a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_ecn_hdp,
 			sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
@@ -1649,5 +1643,5 @@
 	}
 
-	/* payloadæªÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)ðÇÝòÎ· */
+	/* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
 	a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
 	if (a_ret) {
@@ -1656,8 +1650,8 @@
 	}
 
-	/* d¶pfbsÝè */
+	/* 応答電文用fbs設定 */
 	_ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
 
-	/* vpeBlÇÝÝÀs */
+	/* プロパティ値読み込み実行 */
 	a_ret = _ecn_tsk_eoj_res_main(fa_fbs_id, a_fbs_res,
 		((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc, &a_sw_ok);
@@ -1669,20 +1663,20 @@
 	if (a_sw_ok) {
 		if (!fa_res_esv) {
-			/* svÌê */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(a_fbs_res);
 			goto lb_finally;
 		}
-		/* Ýè¬÷ */
+		/* 設定処理成功 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
 	} else {
 		if (!fa_sna_esv) {
-			/* svÌê */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(a_fbs_res);
 			goto lb_finally;
 		}
-		/* Ýè¸s */
+		/* 設定処理失敗 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
 	}
-	/* M */
+	/* 応答送信 */
 	a_ret = _ecn_tsk_snd_mbx(a_fbs_res, false);
 	if (a_ret != E_OK) {
@@ -1693,5 +1687,5 @@
 
 lb_except:
-	/* f[^M¸sµ½çÌæðú */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_res.ptr)
 		_ecn_fbs_del(a_fbs_res);
@@ -1708,9 +1702,9 @@
 	T_ECN_EDT_HDR	a_ecn_hdp;
 	ECN_FBS_ID		a_fbs_res	= { 0 };
-	int				a_rdprp_wrpos;	/*	vpeBÇÝÝ«ÝÌwbhÊu	*/
+	int				a_rdprp_wrpos;	/*	プロパティ読み込み件数書き込み時のヘッド位置	*/
 	ER		a_ret;
 	int		i, a_size, a_rdlen;
 	int		a_sw_ok = 1;
-	int		a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;	/* vpeB */
+	int		a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;	/* 処理プロパティ数 */
 
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
@@ -1719,13 +1713,13 @@
 		fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3 ECN_DBG_END;
 
-	/* úæ¾TCY */
+	/* 初期取得サイズ */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* d¶pÌæ¾ */
+	/* 応答電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(a_size, &a_fbs_res);
-	if (a_ret != E_OK || !a_fbs_res.ptr) /* mÛ¸s */
+	if (a_ret != E_OK || !a_fbs_res.ptr) /* 確保失敗 */
 		goto lb_finally;
 
-	/* d¶Ýè */
+	/* 応答電文設定 */
 	if(p_req_esv->edata.deoj.eojx3 != 0)
 		_ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
@@ -1734,7 +1728,7 @@
 	a_size -= sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY);
 
-	f_put_fbs_eoj("_ecn_tsk_eoj_set_get", "fa_fbs_id", fa_fbs_id); /* s/deoj fobOoÍ */
-
-	/* d¶pÉf[^ÇÁ */
+	f_put_fbs_eoj("_ecn_tsk_eoj_set_get", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
+
+	/* 応答電文用メモリにデータ追加 */
 	a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_ecn_hdp,
 				sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
@@ -1742,13 +1736,13 @@
 		goto lb_except;
 
-	/* payloadæªÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)ðÇÝòÎ· */
+	/* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
 	a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
 	if (a_ret)
 		goto lb_except;
 
-	/* d¶pfbsÝè */
+	/* 応答電文用fbs設定 */
 	_ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
 
-	/* vpeBl«ÝÀs */
+	/* プロパティ値書き込み実行 */
 	a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, false, fa_fbs_id, a_fbs_res,
 		fa_fbs_anno, a_count, &a_sw_ok);
@@ -1763,6 +1757,6 @@
 		(a_sw_ok ? "true" : "false") ECN_DBG_END;
 
-	/* ÌðÇÝæé(1byte)						*/
-	/* ¨ ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet]	*/
+	/* 次の件数を読み取る(1byte)						*/
+	/* → ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet]	*/
 	a_rdlen = i = 0;
 	a_ret = _ecn_fbs_get_data(fa_fbs_id, &i, 1, &a_rdlen);
@@ -1771,17 +1765,17 @@
 	a_count = *(uint8_t *)&i;
 
-	/* vpeBÇÝÝ«ÝÌwbhîñðL^ */
+	/* プロパティ読み込み件数書き込み時のヘッド情報を記録 */
 	a_rdprp_wrpos = _ecn_fbs_get_datalen(a_fbs_res);
 
-	/* d¶pÉf[^ÇÁ (OPCGet 1byte) */
+	/* 応答電文用メモリにデータ追加 (OPCGet 1byte) */
 	a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &i, 1);
 	if (a_ret)
 		goto lb_except;
 
-	/* ±Ì_ÅÌd¶vpeBðL^ */
+	/* この時点での応答電文中プロパティ件数を記録 */
 	i = ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc;
 	((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
 
-	/* vpeBlÇÝÝÀs */
+	/* プロパティ値読み込み実行 */
 	a_ret = _ecn_tsk_eoj_get_main(fp_obj, fa_eobjatr, false, EPC_RULE_GET, fa_fbs_id, a_fbs_res,
 		a_count, &a_sw_ok);
@@ -1796,19 +1790,19 @@
 		(a_sw_ok ? "true" : "false") ECN_DBG_END;
 
-	/* vpeBÇÝÝ«ÝÌwbhîñÅAÇÝoµðL^ */
+	/* プロパティ読み込み件数書き込み時のヘッド情報で、読み出し件数を記録 */
 	_ecn_fbs_poke(a_fbs_res, a_rdprp_wrpos, ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc);
 
-	/* L^µÄ¨¢½vpeBi«Ýjð«ß· */
+	/* 記録しておいたプロパティ件数（書き込み件数）を書き戻す */
 	((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = (uint8_t)i;
 
-	/* vÌê */
+	/* 応答要の場合 */
 	if (a_sw_ok) {
-		/* Ýè¬÷ */
+		/* 設定処理成功 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
 	} else {
-		/* Ýè¸s */
+		/* 設定処理失敗 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
 	}
-	/* M */
+	/* 応答送信 */
 	a_ret = _ecn_tsk_snd_mbx(a_fbs_res, false);
 	if (a_ret == E_OK)
@@ -1816,5 +1810,5 @@
 
 lb_except:
-	/* f[^M¸sµ½çÌæðú */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_res.ptr)
 		_ecn_fbs_del(a_fbs_res);
@@ -1833,5 +1827,5 @@
 	int		i, a_size, a_rdlen;
 	int		a_sw_ok = 1;
-	int		a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;	/* vpeB */
+	int		a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;	/* 処理プロパティ数 */
 
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
@@ -1840,22 +1834,22 @@
 		fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3 ECN_DBG_END;
 
-	/* úæ¾TCY */
+	/* 初期取得サイズ */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* d¶pi_~[jÌæ¾ */
+	/* 応答電文用メモリ（ダミー）の取得 */
 	a_ret = _ecn_fbs_cre(a_size, &a_fbs_dmy);
-	if (a_ret != E_OK || !a_fbs_dmy.ptr) /* mÛ¸s */
+	if (a_ret != E_OK || !a_fbs_dmy.ptr) /* 確保失敗 */
 		goto lb_finally;
 
-	/* d¶Ýè						*/
+	/* 応答電文設定						*/
 	_ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
 	a_size -= sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY);
 
-	/* payloadæªÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)ðÇÝòÎ· */
+	/* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
 	a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
 	if (a_ret)
 		goto lb_except;
 
-	/* vpeBl«ÝÇÝòÎµÀs */
+	/* プロパティ値書き込み応答読み飛ばし実行 */
 	a_ret = _ecn_tsk_eoj_skip_main(fp_obj, fa_fbs_id, a_count);
 	if (a_ret) {
@@ -1869,6 +1863,6 @@
 		(a_sw_ok ? "true" : "false") ECN_DBG_END;
 
-	/* ÌðÇÝæé(1byte)						*/
-	/* ¨ ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet]	*/
+	/* 次の件数を読み取る(1byte)						*/
+	/* → ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet]	*/
 	a_rdlen = i = 0;
 	a_ret = _ecn_fbs_get_data(fa_fbs_id, &i, 1, &a_rdlen);
@@ -1877,5 +1871,5 @@
 	a_count = *(uint8_t *)&i;
 
-	/* vpeBlÇÝoµÌ«ÝÀs */
+	/* プロパティ値読み出し応答の書き込み実行 */
 	a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, true, fa_fbs_id, a_fbs_dmy,
 								  fa_fbs_anno, a_count, &a_sw_ok);
@@ -1893,5 +1887,5 @@
 
 lb_except:
-	/* f[^M¸sµ½çÌæðú */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_dmy.ptr)
 		_ecn_fbs_del(a_fbs_dmy);
@@ -1902,10 +1896,10 @@
 
 /*
- * d¶Ò¿ÌèÝd¶ì¬
+ * 応答電文待ちの割り込み電文作成
  */
 ER _ecn_mk_brk_wai(ECN_FBS_ID *pk_fbs_id, const void *p_dat, size_t fa_size)
 {
 	ER				a_ret;
-	ECN_FBS_ID		a_fbs_id = { 0 };	/* vd¶p	*/
+	ECN_FBS_ID		a_fbs_id = { 0 };	/* 要求電文用メモリ	*/
 
 	if (!pk_fbs_id)
@@ -1913,16 +1907,16 @@
 	*pk_fbs_id = a_fbs_id;
 	if (sizeof(a_fbs_id.ptr->payload) <= fa_size)
-		return E_PAR; /* tf[^ªå«·¬é */
+		return E_PAR; /* 付随データが大きすぎる */
 	if (!p_dat && 0 < fa_size)
-		return E_PAR; /* tf[^TCYª1ÈãÈÌÉf[^|C^ªNULL */
-
-	/* vd¶pÌæ¾ */
+		return E_PAR; /* 付随データサイズが1以上なのにデータポインタがNULL */
+
+	/* 要求電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre((0 < fa_size ? fa_size : 1), &a_fbs_id);
-	if (a_ret != E_OK || !a_fbs_id.ptr) { /* mÛ¸s */
+	if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
 		syslog(LOG_WARNING, "_ecn_fbs_cre(%d) result = %d:%s", fa_size, a_ret, itron_strerror(a_ret));
 		return a_ret;
 	}
 
-	/* vd¶Ýè */
+	/* 要求電文設定 */
 	a_fbs_id.ptr->hdr.type = ECN_MSG_USER_BREAK;
 	a_fbs_id.ptr->hdr.sender = ENOD_API_ID;
@@ -1931,5 +1925,5 @@
 
 	if (0 < fa_size && p_dat) {
-		/* tf[^ÇÁ */
+		/* 付随データ追加 */
 		a_ret = _ecn_fbs_add_data_ex(a_fbs_id, p_dat, fa_size);
 		if (a_ret) {
@@ -1943,9 +1937,9 @@
 	*pk_fbs_id = a_fbs_id;
 
-	/* ³íI¹ */
+	/* 正常終了 */
 	return a_ret;
 
 lb_except:
-	/* f[^ì¬¸sµ½çÌæðú */
+	/* データ作成失敗したら領域解放 */
 	if (a_fbs_id.ptr)
 		_ecn_fbs_del(a_fbs_id);
@@ -1954,5 +1948,5 @@
 }
 
-/* d¶pfbsÝè(sender/targetÌÝè) */
+/* 応答電文用fbs設定(sender/targetの設定) */
 ER _ecn_tsk_cre_req_fbs(ID sender, uint8_t cmd, ECN_FBS_ID *pk_req)
 {
@@ -1983,5 +1977,5 @@
 }
 
-/* d¶pfbsÝè(sender/targetÌÝè) */
+/* 応答電文用fbs設定(sender/targetの設定) */
 ER _ecn_tsk_cre_res_fbs(ECN_FBS_ID req, uint8_t cmd, ECN_FBS_ID *pk_res)
 {
Index: uKadecot/trunk/ecnl_ssp/echonet_task.h
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_task.h	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_task.h	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -41,5 +37,5 @@
 
 /*
- *		ECHONET Lite ^XN
+ *		ECHONET Lite タスク
  */
 
@@ -58,12 +54,12 @@
 
 /*
- *  ECHONET Lite ^XNÖAÌèÌftHglÌè`
+ *  ECHONET Lite タスク関連の定数のデフォルト値の定義
  */ 
 #ifndef ECHONET_TASK_PRIORITY
-#define ECHONET_TASK_PRIORITY	6		/* úDæx */
+#define ECHONET_TASK_PRIORITY	6		/* 初期優先度 */
 #endif /* ECHONET_TASK_PRIORITY */
 
 #ifndef ECHONET_TASK_STACK_SIZE
-#define ECHONET_TASK_STACK_SIZE	1024	/* X^bNÌæÌTCY */
+#define ECHONET_TASK_STACK_SIZE	1024	/* スタック領域のサイズ */
 #endif /* ECHONET_TASK_STACK_SIZE */
 
@@ -82,22 +78,22 @@
 
 /*
- *  ECHONET Lite ^XNÌ{Ì
+ *  ECHONET Lite タスクの本体
  */
 void echonet_task(intptr_t exinf);
 
 /*
- *  ECHONET Lite ^XNN®p
+ *  ECHONET Lite タスク起動用
  */
 void echonet_cychdr(intptr_t exinf);
 
-/* ECHONET Lite CX^XXgÌ1AiEX½èÅåm[h */
+/* ECHONET Lite インスタンスリストの1アナウンス当たり最大ノード数 */
 #define ECN_IST_LST_EOJ_MAX_CT (84)
 
-/* ECHONET LiteIuWFNgR[h x1,x2,x3(T_ECN_EOJ)ð24bit®ÉÏ· */
+/* ECHONET Liteオブジェクトコード x1,x2,x3(T_ECN_EOJ)を24bit整数に変換 */
 #define _ECN_EOJ2VALUE(s) (((s).eojx1 << 16) | ((s).eojx2 << 8) | (s).eojx3)
 
 enum ecn_epc_code
 {
-	ECN_EPC_INL_BCS		=	0xD5	/* CX^XXgÊmvpeB */
+	ECN_EPC_INL_BCS		=	0xD5	/* インスタンスリスト通知プロパティ */
 };
 
@@ -129,5 +125,5 @@
 
 /*
- * vd¶ì¬
+ * 要求電文作成
  */
 ER _ecn_tsk_mk_esv(ECN_FBS_ID *fp_fbs_id, ID fa_seoj, ID fa_deoj,
@@ -137,5 +133,5 @@
 
 /*
- * d¶Ò¿ÌèÝd¶ì¬
+ * 応答電文待ちの割り込み電文作成
  */
 ER _ecn_mk_brk_wai(ECN_FBS_ID *pk_fbs_id, const void *p_dat, size_t fa_size);
Index: uKadecot/trunk/ecnl_ssp/echonet_uip_task.c
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_uip_task.c	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_uip_task.c	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -41,5 +37,5 @@
 
 /*
- *		ECHONET Lite UDPÊM^XN
+ *		ECHONET Lite UDP通信処理タスク
  */
 #ifdef SUPPORT_UIP
@@ -95,5 +91,5 @@
 
 /*
- * óMµ½UDPf[^ðMAILBOXÉé
+ * 受信したUDPデータをMAILBOXに送る
  */
 ER _ecn_udp2mbx(const uint8_t *buffer, size_t fa_len, const T_IPV4EP *dst);
@@ -110,6 +106,6 @@
 
 	a_rcv_pkt.buffer = buffer;
-	if (	a_rcv_pkt.t_esv->ecn_hdr.ehd1 != ECN_EDH1_ECHONET_LITE	/* ECHONET LiteKi	*/
-	||	a_rcv_pkt.t_esv->ecn_hdr.ehd2 != ECN_EDH2_FORMAT_1			/* d¶`®1		*/) {
+	if (	a_rcv_pkt.t_esv->ecn_hdr.ehd1 != ECN_EDH1_ECHONET_LITE	/* ECHONET Lite規格	*/
+	||	a_rcv_pkt.t_esv->ecn_hdr.ehd2 != ECN_EDH2_FORMAT_1			/* 電文形式1		*/) {
 		ECN_DBG_PUT "[UDP ECHO SRV] illegal type (0x%02X,0x%02X)", a_rcv_pkt.t_esv->ecn_hdr.ehd1, a_rcv_pkt.t_esv->ecn_hdr.ehd2 ECN_DBG_END;
 		return E_PAR;
@@ -134,5 +130,5 @@
 	a_fbs_id.ptr->hdr.sender = ENOD_NOT_MATCH_ID;
 
-	/* IPAhX©ç[gECHONETm[hÖÏ· */
+	/* IPアドレスからリモートECHONETノードへ変換 */
 	a_enod_id = udp_get_id((T_EDATA *)a_fbs_id.ptr, dst->ipaddr, dst->portno);
 	if (a_enod_id < 0 || tnum_enodadr <= a_enod_id) {
@@ -140,10 +136,10 @@
 			ip2str(NULL, dst->ipaddr) ECN_DBG_END;
 	} else {
-		/* M³ECHONETm[hðL^ */
+		/* 送信元ECHONETノードを記録 */
 		a_fbs_id.ptr->hdr.sender = a_enod_id;
 	}
 	a_fbs_id.ptr->hdr.reply = a_fbs_id.ptr->hdr.sender;
 
-	/* echonet_taskÉé */
+	/* echonet_taskに送る */
 	a_ret = psnd_dtq(ecn_svc_mailboxid, (intptr_t)a_fbs_id.ptr);
 	if (a_ret != E_OK) {
@@ -158,10 +154,10 @@
 
 /*
- *  ECHONET UDPÊM^XN
+ *  ECHONET UDP通信処理タスク
  */
 static
 PT_THREAD(echonet_udp_task_pt(void))
 {
-	/* UDPoÍÌæibèj */
+	/* UDP出力領域（暫定） */
 	static uint_t buffer[(UIP_BUFSIZE) / sizeof(uint_t) + 1];
 
@@ -201,5 +197,5 @@
 	}
 
-	/* üúnhÌN® */
+	/* 周期ハンドラの起動 */
 	a_ret = sta_cyc(ecn_udp_cychdrid);
 	if (a_ret != E_OK) {
@@ -220,5 +216,5 @@
 	}
 
-	/* bZ[W[v */
+	/* メッセージループ */
 	for (;;) {
 		a_prev = a_now;
@@ -244,5 +240,5 @@
 
 		if (a_ret == E_OK) {
-			/* Mf[^·ðæ¾ */
+			/* 送信データ長を取得 */
 			a_snd_len = _ecn_fbs_get_datalen(a_mdt.fbs_id);
 
@@ -270,5 +266,5 @@
 
 /*
- *  ECHONET UDPÊMvgXbhN®^XN
+ *  ECHONET UDP通信処理プロトスレッド起動タスク
  */
 void echonet_udp_task(intptr_t exinf)
@@ -278,5 +274,5 @@
 
 /*
- *  ECHONET UDPÊM^XNN®püúnh[
+ *  ECHONET UDP通信処理タスク起動用周期ハンドラー
  */
 void echonet_udp_cychdr(intptr_t exinf)
@@ -285,5 +281,5 @@
 }
 
-/* d¶pfbsÝè(sender/targetÌÝè) */
+/* 応答電文用fbs設定(sender/targetの設定) */
 static ER _ecn_udp_cre_req_fbs(ID sender, uint8_t cmd, ECN_FBS_ID *pk_req)
 {
@@ -314,5 +310,5 @@
 }
 
-/* d¶pfbsÝè(sender/targetÌÝè) */
+/* 応答電文用fbs設定(sender/targetの設定) */
 static ER _ecn_udp_cre_res_fbs(ECN_FBS_ID req, uint8_t cmd, ECN_FBS_ID *pk_res)
 {
@@ -344,5 +340,5 @@
 
 /*
- *  àbZ[WóM
+ *  内部メッセージ受信処理
  */
 void _ecn_int_msg(ECN_FBS_ID fbs_id, ECN_FBS_SSIZE_T a_snd_len)
@@ -362,5 +358,5 @@
 
 	switch(cmd){
-	// IPAhXðÔM
+	// IPアドレスを返信
 	case ECN_UDP_MSG_GET_IPADDR_REQ:
 		if (a_snd_len < sizeof(msg)) {
@@ -431,9 +427,9 @@
 
 /*
- *  ECHONET d¶óM
+ *  ECHONET 電文受信処理
  */
 void _ecn_esv_msg(ECN_FBS_ID fbs_id)
 {
-	/* UDPoÍÌæibèj */
+	/* UDP出力領域（暫定） */
 	static uint_t buffer[(UIP_BUFSIZE) / sizeof(uint_t) + 1];
 	T_IPV4EP a_dst;
@@ -444,8 +440,8 @@
 	uip_ipaddr(a_dst.ipaddr, 0,0,0,0);
 	a_dst.portno = 0;
-	/* MæIPAhX */
+	/* 送信先IPアドレス */
 	a_ret = udp_get_ip(&a_dst, fbs_id.ptr->hdr.target);
 	if (!a_ret) {
-		ECN_DBG_PUT "[UDP TSK] echonet-node 0x%02X-0x%02X-0x%02X ¨ udp dest(%s)",
+		ECN_DBG_PUT "[UDP TSK] echonet-node 0x%02X-0x%02X-0x%02X → udp dest(%s)",
 			((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx1,
 			((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx2,
@@ -453,5 +449,5 @@
 			ip2str(NULL, a_dst.ipaddr) ECN_DBG_END;
 
-		/* fbs©çoÍÌæÉf[^ðo */
+		/* fbsから出力領域にデータを抽出 */
 		a_snd_len = 0;
 		a_ret = _ecn_fbs_get_data(fbs_id, buffer, sizeof(buffer), &a_snd_len);
@@ -460,6 +456,6 @@
 		}
 		else if(uip_ipaddr_cmp(a_dst.ipaddr, localhost)) {
-			/* Mæª127.0.0.1 ¨ mbxÉ] */
-			ECN_DBG_PUT "redirect ecn_udp_mailboxid ¨ ecn_svc_mailboxid (esv:0x%02X)",
+			/* 送信先が127.0.0.1 → mbxに転送 */
+			ECN_DBG_PUT "redirect ecn_udp_mailboxid → ecn_svc_mailboxid (esv:0x%02X)",
 				((T_EDATA *)fbs_id.ptr)->hdr.edata.esv ECN_DBG_END;
 
@@ -475,5 +471,5 @@
 			_ecn_dbg_bindmp((const uint8_t *)buffer, a_snd_len);
 #endif
-			/* UDPM */
+			/* UDP送信 */
 			a_ret = udp_snd_dat(UDP_CEPID, &a_dst, buffer, a_snd_len);
 			if (a_ret < 0) {
@@ -482,5 +478,5 @@
 		}
 
-		/* f[^ª··¬Ä1pPbgÉûÜçÈ©Á½ê */
+		/* データが長すぎて1パケットに収まらなかった場合 */
 		if (_ecn_fbs_exist_data(fbs_id)) {
 			ECN_DBG_PUT "[UDP TSK] send, data so long: %dbyte(s)", _ecn_fbs_get_datalen(fbs_id) ECN_DBG_END;
@@ -497,5 +493,5 @@
 
 /*
- *  mubLOR[ÌR[obNÖ
+ *  ノンブロッキングコールのコールバック関数
  */
 static
@@ -518,5 +514,5 @@
 	}
 #ifdef _MSC_VER
-	/* (J­p) ECHONETppPbgÈOÍÇÝÌÄé */
+	/* (開発用) ECHONET用パケット以外は読み捨てる */
 	if (buffer[0] != 0x10 || buffer[1] != 0x81) {
 		PT_EXIT(&s.pt);
@@ -548,5 +544,5 @@
 
 /*
- *  [gECHONETm[hÌKmF
+ *  リモートECHONETノードの適合確認
  */
 bool_t is_match(const EOBJCB *enodcb, T_EDATA *edata, const void *_ipaddr, uint16_t portno)
@@ -566,5 +562,5 @@
 		return false;
 
-	/* m[hX^[gCX^XXgÊmÈOÍO */
+	/* ノードスタート時インスタンスリスト通知以外は除外 */
 	if (	edata->hdr.edata.esv != ESV_INF
 		||	edata->hdr.edata.deoj.eojx1 != EOJ_X1_PROFILE
@@ -588,17 +584,17 @@
 		}
 		ECN_DBG_PUT "is_match(): ecn_itr_nxt() result: epc=0x%02X, pdc=%d", epc, pdc ECN_DBG_END;
-		/* CX^XXgÊmÜ½Í©m[hCX^XXgrÈOÍO */
+		/* インスタンスリスト通知または自ノードインスタンスリストＳ以外は除外 */
 		if ((epc != 0xD5) && (epc != 0xD6)) {
 			continue;
 		}
 
-		/* QoCgÚÈ~Éeojªñ³êÄ¢é */
+		/* ２バイト目以降にeojが列挙されている */
 		count = (pdc - 1) / sizeof(T_ECN_EOJ);
 
-		/* m[hàÌ@íIuWFNgðõ */
+		/* ノード内の機器オブジェクトを検索 */
 		for (k = 0; k < enodcb->eobjcnt; k++) {
 			p_eobj = enodcb->eobjs[k];
 
-			/* CX^XXgðmF */
+			/* インスタンスリストを確認 */
 			match = false;
 			for (i = 0, j = 1; i < count; i++, j += sizeof(T_ECN_EOJ)) {
@@ -618,5 +614,5 @@
 		}
 
-		/* ·×ÄµÁÄ¢½çKiCX^XXgÌûª½­Äà¢¢±ÆÆ·éj */
+		/* すべて揃っていたら適合（インスタンスリストの方が多くてもいいこととする） */
 		return true;
 	}
@@ -626,5 +622,5 @@
 
 /*
- *  IPAhX©ç[gECHONETm[hÖÏ·
+ *  IPアドレスからリモートECHONETノードへ変換
  */
 ECN_ENOD_ID udp_get_id(T_EDATA *edata, const T_IN4_ADDR ipaddr, uint16_t portno)
@@ -638,5 +634,5 @@
 		return ENOD_MULTICAST_ID;
 
-	/* IPAhXÌ¯¶àÌðõ */
+	/* IPアドレスの同じものを検索 */
 	for (i = 0, ea = enodadrb_table; i < tnum_enodadr; i++, ea++) {
 		if (!ea->inuse)
@@ -650,5 +646,5 @@
 	}
 
-	/* Î·é[gm[hðõ */
+	/* 対応するリモートノードを検索 */
 	for (i = ENOD_REMOTE_ID, ea = &enodadrb_table[ENOD_REMOTE_ID]; i < tnum_enodadr; i++, ea++) {
 		if (!ea->inuse)
@@ -661,5 +657,5 @@
 			continue;
 
-		/* Î·é[gm[hª êÎIPAhXðÝè */
+		/* 対応するリモートノードがあればIPアドレスを設定 */
 		uip_ipaddr_copy(ea->ipaddr, ipaddr);
 
@@ -669,5 +665,5 @@
 	}
 
-	/* ó«ÌæðTµÄ©®o^ */
+	/* 空き領域を探して自動登録 */
 	for (i = ENOD_REMOTE_ID, ea = &enodadrb_table[ENOD_REMOTE_ID]; i < tnum_enodadr; i++, ea++) {
 		if (ea->inuse)
@@ -686,5 +682,5 @@
 
 /*
- *  [gECHONETm[h©çIPAhXÖÏ·
+ *  リモートECHONETノードからIPアドレスへ変換
  */
 int udp_get_ip(T_IPV4EP *fp_ipep, ECN_ENOD_ID fa_enodid)
@@ -698,5 +694,5 @@
 
 	if (fa_enodid == ENOD_MULTICAST_ID) {
-		/* targetªENOD_MULTICAST_IDÌêA}`LXgðs¤ */
+		/* targetがENOD_MULTICAST_IDの場合、マルチキャストを行う */
 		uip_ipaddr_copy(fp_ipep->ipaddr, multicast);
 		return 0;	/* ok */
@@ -704,5 +700,5 @@
 
 	if (fa_enodid < ENOD_REMOTE_ID) {
-		/* targetª¢è`ELOCALEAPIÌêA[Jzðs¤ */
+		/* targetが未定義・LOCAL・APIの場合、ローカル配送を行う */
 		uip_ipaddr_copy(fp_ipep->ipaddr, localhost);
 		return 0;	/* ok */
Index: uKadecot/trunk/ecnl_ssp/echonet_uip_task.h
===================================================================
--- uKadecot/trunk/ecnl_ssp/echonet_uip_task.h	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/echonet_uip_task.h	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -41,5 +37,5 @@
 
 /*
- *		ECHONET Lite ^XN
+ *		ECHONET Lite タスク
  */
 
@@ -55,5 +51,5 @@
 
 /*
- *  ECHONET Lite êÄ¯ñAhX
+ *  ECHONET Lite 一斉同報アドレス
  */
 #ifdef SIL_ENDIAN_LITTLE
@@ -64,12 +60,12 @@
 
 /*
- *  ECHONET Lite ^XNÖAÌèÌftHglÌè`
+ *  ECHONET Lite タスク関連の定数のデフォルト値の定義
  */
 #ifndef ECHONET_UDP_TASK_PRIORITY
-#define ECHONET_UDP_TASK_PRIORITY	5		/* úDæx */
+#define ECHONET_UDP_TASK_PRIORITY	5		/* 初期優先度 */
 #endif /* ECHONET_UDP_TASK_PRIORITY */
 
 #ifndef ECHONET_UDP_TASK_STACK_SIZE
-#define ECHONET_UDP_TASK_STACK_SIZE	1024	/* X^bNÌæÌTCY */
+#define ECHONET_UDP_TASK_STACK_SIZE	1024	/* スタック領域のサイズ */
 #endif /* ECHONET_UDP_TASK_STACK_SIZE */
 
@@ -79,20 +75,20 @@
 
 /*
- *  ECHONET Lite ^XNÌ{Ì
+ *  ECHONET Lite タスクの本体
  */
 void echonet_udp_task(intptr_t exinf);
 
-/*  mubLOR[ÌR[obNÖ  */
+/*  ノンブロッキングコールのコールバック関数  */
 ER callback_nblk_udp(struct uip_udp_conn *uip_udp_conn, int fncd, void *p_parblk);
 
-/*  ECHONET Lite ^XNN®püúnh[ */
+/*  ECHONET Lite タスク起動用周期ハンドラー */
 void echonet_udp_cychdr(intptr_t exinf);
 
 /*
- *  [gECHONETm[hÌKmF
+ *  リモートECHONETノードの適合確認
  */
 bool_t is_match(const EOBJCB *eobjcb, T_EDATA *edata, const void *_ipaddr, uint16_t portno);
 
-/* IPAhXð¶ñÉÏ· */
+/* IPアドレスを文字列に変換 */
 char *ipaddr2str(char *buf, int bubsz, uint8_t *ipaddr);
 
Index: uKadecot/trunk/ecnl_ssp/fbs_string.c
===================================================================
--- uKadecot/trunk/ecnl_ssp/fbs_string.c	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/fbs_string.c	(revision 107)
@@ -9,36 +9,32 @@
  *  Copyright (C) 2015 Cores Co., Ltd. Japan
  *
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  @(#) $Id$
@@ -51,8 +47,8 @@
 
 /*
- *  lð¶ñÉÏ·
+ *  数値を文字列に変換
  */
 #define CONVERT_BUFLEN	((sizeof(uintptr_t) * CHAR_BIT + 2) / 3)
-										/* uintptr_t^ÌlÌÅå¶ */
+										/* uintptr_t型の数値の最大文字数 */
 static ER
 convert(ECN_FBS_ID fbs, ECN_FBS_SSIZE_T *pos, uintptr_t val, uint_t radix, const char *radchar,
@@ -100,5 +96,5 @@
 
 /*
- *  ¶ñ®`oÍ
+ *  文字列整形出力
  */
 static const char raddec[] = "0123456789";
Index: uKadecot/trunk/ecnl_ssp/fbs_string.h
===================================================================
--- uKadecot/trunk/ecnl_ssp/fbs_string.h	(revision 101)
+++ uKadecot/trunk/ecnl_ssp/fbs_string.h	(revision 107)
@@ -4,36 +4,32 @@
  *  Copyright (C) 2015 Cores Co., Ltd. Japan
  *
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  @(#) $Id$
