Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/arduino.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/arduino.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/arduino.c	(revision 321)
@@ -19,5 +19,5 @@
 #include "sRtc.h"
 
-//ãã¼ã¸ã§ã³ã®ã»ãã
+//バージョンのセット
 volatile char	ProgVer[] = {WRBB_VERSION};
 
@@ -26,25 +26,25 @@
 void mrb_mruby_arduino_gem_init(mrb_state *mrb)
 {
-	kernel_Init(mrb);	/* ã«ã¼ãã«é¢é£ã¡ã½ããã®è¨­å® */
-	sys_Init(mrb);		/* ã·ã¹ãã é¢é£ã¡ã½ããã®è¨­å® */
-	serial_Init(mrb);	/* ã·ãªã¢ã«éä¿¡é¢é£ã¡ã½ããã®è¨­å® */
-	mem_Init(mrb);		/* ãã¡ã¤ã«é¢é£ã¡ã½ããã®è¨­å® */
-	i2c_Init(mrb);		/* I2Cé¢é£ã¡ã½ããã®è¨­å® */
-	servo_Init(mrb);	/* ãµã¼ãé¢é£ã¡ã½ããã®è¨­å® */
+	kernel_Init(mrb);	/* カーネル関連メソッドの設定 */
+	sys_Init(mrb);		/* システム関連メソッドの設定 */
+	serial_Init(mrb);	/* シリアル通信関連メソッドの設定 */
+	mem_Init(mrb);		/* ファイル関連メソッドの設定 */
+	i2c_Init(mrb);		/* I2C関連メソッドの設定 */
+	servo_Init(mrb);	/* サーボ関連メソッドの設定 */
 
 #if REALTIMECLOCK
-	rtc_Init(mrb);		/* RTCé¢é£ã¡ã½ããã®è¨­å® */
+	rtc_Init(mrb);		/* RTC関連メソッドの設定 */
 #endif
 
 #if FIRMWARE == JAM
-	pancake_Init(mrb);		/* PanCakeé¢é£ã¡ã½ããã®è¨­å® */
+	pancake_Init(mrb);		/* PanCake関連メソッドの設定 */
 #endif
 
 #if BOARD == BOARD_GR || FIRMWARE == SDBT || FIRMWARE == SDWF
-	sdcard_Init(mrb);		/* SDã«ã¼ãé¢é£ã¡ã½ããã®è¨­å® */
+	sdcard_Init(mrb);		/* SDカード関連メソッドの設定 */
 #endif
 
 #if FIRMWARE == SDWF
-	esp8266_Init(mrb);		/* WiFié¢é£ã¡ã½ããã®è¨­å® */
+	esp8266_Init(mrb);		/* WiFi関連メソッドの設定 */
 #endif
 }
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sI2c.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sI2c.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sI2c.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * I2Céä¿¡é¢é£
+ * I2C通信関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -23,5 +23,5 @@
 
 /******************************************************/
-/* ã¡ã¢ãªã®éæ¾æã«èµ°ã*/
+/* メモリの開放時に走る*/
 /******************************************************/
 static void i2c_free(mrb_state *mrb, void *ptr)
@@ -32,15 +32,15 @@
 
 /******************************************************/
-/* ãã®æ§é ä½ã®æå³ã¯ããããã£ã¦ããªã*/
+/* この構造体の意味はよくわかっていない*/
 /******************************************************/
 static struct mrb_data_type i2c_type = {"I2c", i2c_free};
 
 /******************************************************/
-/* I2Cãåæåãã¾ã: I2c.new*/
-/*  I2c.new(num)ã*/
-/*  num: éä¿¡çªå·(0:SDA-0/SCL-1, 1:SDA-5/SCL-6, 2:SDA-7/SCL-8, 3:SDA-12/SCL-11, 4:SDA-9(26)/SCL-3)*/
-/**/
-/* æ»ãå¤*/
-/*  I2cã®ã¤ã³ã¹ã¿ã³ã¹*/
+/* I2Cを初期化します: I2c.new*/
+/*  I2c.new(num)　*/
+/*  num: 通信番号(0:SDA-0/SCL-1, 1:SDA-5/SCL-6, 2:SDA-7/SCL-8, 3:SDA-12/SCL-11, 4:SDA-9(26)/SCL-3)*/
+/**/
+/* 戻り値*/
+/*  I2cのインスタンス*/
 /******************************************************/
 static mrb_value mrb_i2c_initialize(mrb_state *mrb, mrb_value self)
@@ -55,5 +55,5 @@
 
 	if (num <= 0 && num >= WIRE_MAX) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
@@ -66,13 +66,13 @@
 
 /******************************************************/
-/* ã¢ãã¬ã¹ã«ãã¼ã¿ãæ¸ãè¾¼ã¿ã¾ã: I2c.write*/
+/* アドレスにデータを書き込みます: I2c.write*/
 /*  I2c.write( deviceID, address, data )*/
-/*	deviceID: ããã¤ã¹ID*/
-/*  address: æ¸ãè¾¼ã¿ã¢ãã¬ã¹*/
-/*  data: ãã¼ã¿*/
-/**/
-/*  æ»ãå¤ã¯ä»¥ä¸ã®ã¨ãã*/
-/*		0: æå*/
-/*		4: ãã®ä»ã®ã¨ã©ã¼*/
+/*	deviceID: デバイスID*/
+/*  address: 書き込みアドレス*/
+/*  data: データ*/
+/**/
+/*  戻り値は以下のとおり*/
+/*		0: 成功*/
+/*		4: その他のエラー*/
 /******************************************************/
 mrb_value mrb_i2c_write(mrb_state *mrb, mrb_value self)
@@ -88,11 +88,11 @@
 
 /******************************************************/
-/* ã¢ãã¬ã¹ãããã¼ã¿ãèª­ã¿è¾¼ã¿: I2c.read*/
+/* アドレスからデータを読み込み: I2c.read*/
 /*  I2c.read( deviceID, addressL[, addressH] )*/
-/*	deviceID: ããã¤ã¹ID*/
-/*  addressL: èª­ã¿è¾¼ã¿ä¸ä½ã¢ãã¬ã¹*/
-/*  addressH: èª­ã¿è¾¼ã¿ä¸ä½ã¢ãã¬ã¹*/
-/**/
-/*  æ»ãå¤ã¯èª­ã¿è¾¼ãã å¤*/
+/*	deviceID: デバイスID*/
+/*  addressL: 読み込み下位アドレス*/
+/*  addressH: 読み込み上位アドレス*/
+/**/
+/*  戻り値は読み込んだ値*/
 /******************************************************/
 mrb_value mrb_i2c_read(mrb_state *mrb, mrb_value self)
@@ -113,9 +113,8 @@
 
 /******************************************************/
-/* I2Cããã¤ã¹ã«å¯¾ãã¦éä¿¡ãéå§ããããã®æºåããã: I2c.begin*/
+/* I2Cデバイスに対して送信を開始するための準備をする: I2c.begin*/
 /*	I2c.begin( deviceID )*/
-/*	ãã®é¢æ°ã¯éä¿¡ãããã¡ãåæåããã ãã§ãå®éã®åä½ã¯è¡ããªããç¹°ãè¿ãå¼ã¶ã¨ãéä¿¡ãããã¡ãå
-é ­ã«æ»ãã*/
-/*	deviceID: ããã¤ã¹ID 0ï½0x7Fã¾ã§ã®ç´ç²ãªã¢ãã¬ã¹*/
+/*	この関数は送信バッファを初期化するだけで、実際の動作は行わない。繰り返し呼ぶと、送信バッファが先頭に戻る。*/
+/*	deviceID: デバイスID 0～0x7Fまでの純粋なアドレス*/
 /******************************************************/
 mrb_value mrb_i2c_beginTransmission(mrb_state *mrb, mrb_value self)
@@ -130,14 +129,14 @@
 	i2c_byte_write(i2c, deviceID);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* éä¿¡ãããã¡ã®æ«å°¾ã«æ°å¤ãè¿½å ãã: I2c.lwrite*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 送信バッファの末尾に数値を追加する: I2c.lwrite*/
 /*	I2c.lwrite( data )*/
-/*	data: ã»ããããå¤*/
-/**/
-/* æ»ãå¤ã¯ãéä¿¡ãããã¤ãæ°(ãããã¡ã«æºãããã¤ãæ°)ãè¿ãã*/
-/*	éä¿¡ãããã¡(260ãã¤ã)ã«ç©ºãå®¹éãç¡ããã°å¤±æãã¦0ãè¿ã*/
+/*	data: セットする値*/
+/**/
+/* 戻り値は、送信したバイト数(バッファに溜めたバイト数)を返す。*/
+/*	送信バッファ(260バイト)に空き容量が無ければ失敗して0を返す*/
 /******************************************************/
 mrb_value mrb_i2c_lwrite(mrb_state *mrb, mrb_value self)
@@ -153,11 +152,11 @@
 
 /******************************************************/
-/* ããã¤ã¹ã«å¯¾ãã¦I2Cã®éä¿¡ã·ã¼ã±ã³ã¹ãçºè¡ãã: I2c.end*/
+/* デバイスに対してI2Cの送信シーケンスを発行する: I2c.end*/
 /*	I2c.end()*/
-/*	I2Cã®éä¿¡ã¯ãã®é¢æ°ãå®è¡ãã¦åãã¦å®éã«è¡ãããã*/
-/**/
-/* æ»ãå¤ã¯ä»¥ä¸ã®ã¨ãã*/
-/*	0: æå*/
-/*	4: ãã®ä»ã®ã¨ã©ã¼*/
+/*	I2Cの送信はこの関数を実行して初めて実際に行われる。*/
+/**/
+/* 戻り値は以下のとおり*/
+/*	0: 成功*/
+/*	4: その他のエラー*/
 /******************************************************/
 mrb_value mrb_i2c_endTransmission(mrb_state *mrb, mrb_value self)
@@ -169,11 +168,11 @@
 
 /******************************************************/
-/* ããã¤ã¹ã«å¯¾ãã¦åä¿¡ã·ã¼ã±ã³ã¹ãçºè¡ããã¼ã¿ãèª­ã¿åºã: I2c.request*/
+/* デバイスに対して受信シーケンスを発行しデータを読み出す: I2c.request*/
 /*	I2c.request( address, count )*/
-/*  num: éä¿¡çªå·(0:SDA-0/SCL-1, 1:SDA-5/SCL-6, 2:SDA-7/SCL-8, 3:SDA-12/SCL-11, 4:SDA-9(26)/SCL-3)*/
-/*	address: èª­ã¿è¾¼ã¿éå§ã¢ãã¬ã¹*/
-/*	count: èª­ã¿åºãæ°*/
-/**/
-/*  æ»ãå¤ã¯ãå®éã«åä¿¡ãããã¤ãæ°ã*/
+/*  num: 通信番号(0:SDA-0/SCL-1, 1:SDA-5/SCL-6, 2:SDA-7/SCL-8, 3:SDA-12/SCL-11, 4:SDA-9(26)/SCL-3)*/
+/*	address: 読み込み開始アドレス*/
+/*	count: 読み出す数*/
+/**/
+/*  戻り値は、実際に受信したバイト数。*/
 /******************************************************/
 mrb_value mrb_i2c_requestFrom(mrb_state *mrb, mrb_value self)
@@ -192,8 +191,8 @@
 
 /******************************************************/
-/* ããã¤ã¹ã«å¯¾ãã¦åä¿¡ã·ã¼ã±ã³ã¹ãçºè¡ããã¼ã¿ãèª­ã¿åºã: I2c.lread*/
+/* デバイスに対して受信シーケンスを発行しデータを読み出す: I2c.lread*/
 /*	I2c.lread()*/
 /**/
-/*  æ»ãå¤ã¯èª­ã¿è¾¼ãã å¤*/
+/*  戻り値は読み込んだ値*/
 /******************************************************/
 mrb_value mrb_i2c_lread(mrb_state *mrb, mrb_value self)
@@ -204,9 +203,8 @@
 
 /******************************************************/
-/* ããã¤ã¹ã«å¯¾ãã¦åä¿¡ãããã¡å
-ã«ãããã¼ã¿æ°ãèª¿ã¹ã: I2c.available*/
+/* デバイスに対して受信バッファ内にあるデータ数を調べる: I2c.available*/
 /*	I2c.available()*/
 /**/
-/*  æ»ãå¤ã¯ãã¼ã¿æ°*/
+/*  戻り値はデータ数*/
 /******************************************************/
 mrb_value mrb_i2c_available(mrb_state *mrb, mrb_value self)
@@ -217,8 +215,8 @@
 #if 0
 /******************************************************/
-/* å¨æ³¢æ°ãå¤æ´ãã: I2c.freq*/
+/* 周波数を変更する: I2c.freq*/
 /*  I2c.freq( Hz )*/
-/*  Hz: ã¯ã­ãã¯ã®å¨æ³¢æ°ãHzåä½ã§æå®ããã*/
-/*      æå¹ãªå¤ã¯1ï½200000ç¨åº¦ãåºæ¬çã«ã½ããã§ãã£ã¦ããã®ã§400kHzã¯åºãªãã*/
+/*  Hz: クロックの周波数をHz単位で指定する。*/
+/*      有効な値は1～200000程度。基本的にソフトでやっているので400kHzは出ない。*/
 /******************************************************/
 mrb_value mrb_i2c_freq(mrb_state *mrb, mrb_value self)
@@ -230,9 +228,9 @@
 	i2c_frequency(i2c, fq);
 
-	return mrb_nil_value();			/* æ»ãå¤ã¯ç¡ãã§ããã */
+	return mrb_nil_value();			/* 戻り値は無しですよ。 */
 }
 #endif
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void i2c_Init(mrb_state *mrb)
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sI2c.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sI2c.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sI2c.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * I2Céä¿¡é¢é£
+ * I2C通信関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void i2c_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sKernel.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sKernel.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sKernel.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ã«ã¼ãã«é¢é£
+ * カーネル関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -17,8 +17,8 @@
 
 /******************************************************/
-/* ãã¸ã¿ã«ã©ã¤ã*/
+/* デジタルライト*/
 /*  digitalWrite(pin, value) */
 /*	pin*/
-/*		ãã³ã®çªå·*/
+/*		ピンの番号*/
 /*	value*/
 /*		0: LOW*/
@@ -34,19 +34,19 @@
 	pin = get_pin(pintype_gpio, pinno);
 	if (pin == NULL)
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	gpio_write(&pin->gpio, value);
 
-	return mrb_nil_value();	/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* PINã®ã¢ã¼ãè¨­å®*/
+	return mrb_nil_value();	/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* PINのモード設定*/
 /*  pinMode(pin, mode) */
 /*  pin*/
-/*		ãã³ã®çªå·*/
+/*		ピンの番号*/
 /*	mode*/
-/*		0: INPUTã¢ã¼ã*/
-/*		1: OUTPUTã¢ã¼ã*/
+/*		0: INPUTモード*/
+/*		1: OUTPUTモード*/
 /******************************************************/
 mrb_value mrb_kernel_pinMode(mrb_state *mrb, mrb_value self)
@@ -59,16 +59,16 @@
 	pin = get_pin(pintype_gpio, pinno);
 	if (pin == NULL)
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	gpio_dir(&pin->gpio, value);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ãã£ã¬ã¤ å¼·å¶GCãè¡ã£ã¦ãã¾ã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* ディレイ 強制GCを行っています*/
 /*  delay(value) */
 /*	value*/
-/*		æé(ms)*/
+/*		時間(ms)*/
 /******************************************************/
 mrb_value mrb_kernel_delay(mrb_state *mrb, mrb_value self)
@@ -78,6 +78,5 @@
 	mrb_get_args(mrb, "i", &value);
 
-	/*è©¦ãã«å¼·å¶gcãå
-¥ãã¦è¦ã*/
+	/*試しに強制gcを入れて見る*/
 	mrb_full_gc(mrb);
 
@@ -86,13 +85,13 @@
 	}
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-
-/******************************************************/
-/* ããªç§ãåå¾ãã¾ã: millis*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+
+/******************************************************/
+/* ミリ秒を取得します: millis*/
 /*	millis()*/
-/* æ»ãå¤*/
-/*	èµ·åãã¦ããã®ããªç§æ°*/
+/* 戻り値*/
+/*	起動してからのミリ秒数*/
 /******************************************************/
 mrb_value mrb_kernel_millis(mrb_state *mrb, mrb_value self)
@@ -102,8 +101,8 @@
 
 /******************************************************/
-/* ãã¤ã¯ã­ç§ãåå¾ãã¾ã: micros*/
+/* マイクロ秒を取得します: micros*/
 /*	micros()*/
-/* æ»ãå¤*/
-/*	èµ·åãã¦ããã®ãã¤ã¯ã­ç§æ°*/
+/* 戻り値*/
+/*	起動してからのマイクロ秒数*/
 /******************************************************/
 mrb_value mrb_kernel_micros(mrb_state *mrb, mrb_value self)
@@ -113,7 +112,7 @@
 
 /******************************************************/
-/* ãã¸ã¿ã«ãªã¼ã: digitalRead*/
+/* デジタルリード: digitalRead*/
 /*  digitalRead(pin) */
-/*	pin: ãã³ã®çªå·*/
+/*	pin: ピンの番号*/
 /*	*/
 /*		0:LOW*/
@@ -129,5 +128,5 @@
 	pin = get_pin(pintype_gpio, pinno);
 	if (pin == NULL)
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	value = gpio_read(&pin->gpio);
@@ -138,10 +137,8 @@
 
 /******************************************************/
-/* ã¢ãã­ã°ãªãã¡ã¬ã³ã¹: analogReference*/
+/* アナログリファレンス: analogReference*/
 /*	analogReference(mode)*/
-/*  ã¢ãã­ã°å
-¥åã§ä½¿ãããåºæºé»å§ãè¨­å®ãã¾ã*/
-/*	mode: 0:DEFAULTï¼5.0V Arduinoäºæ, 1:INTERNALï¼1.1V å
-èµé»å§, 2:EXTERNALï¼AVREFãã³ä¾çµ¦é»å§, 3:RAW12BITï¼3.3V 12ãããA/Då¤æãè¡ã*/
+/*  アナログ入力で使われる基準電圧を設定します*/
+/*	mode: 0:DEFAULT：5.0V Arduino互換, 1:INTERNAL：1.1V 内蔵電圧, 2:EXTERNAL：AVREFピン供給電圧, 3:RAW12BIT：3.3V 12ビットA/D変換を行う*/
 /******************************************************/
 mrb_value mrb_kernel_analogReference(mrb_state *mrb, mrb_value self)
@@ -165,13 +162,13 @@
 		break;
 	}
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¢ãã­ã°ãªã¼ã: analogRead*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* アナログリード: analogRead*/
 /*  analogRead(pin) */
-/*	pin: ã¢ãã­ã°ã®çªå·*/
+/*	pin: アナログの番号*/
 /*	*/
-/*		10ãããã®å¤(0ï½1023)*/
+/*		10ビットの値(0～1023)*/
 /******************************************************/
 mrb_value mrb_kernel_analogRead(mrb_state *mrb, mrb_value self)
@@ -184,5 +181,5 @@
 	pin = get_pin(pintype_analogin, anapin);
 	if (pin == NULL)
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	value = analogin_read_u16(&pin->analogin);
@@ -193,8 +190,8 @@
 #if 0
 /****************************************************/
-/* åºåãã³ãä¸¦åæ¥ç¶ããã¦ãããã³ã¨ã·ã§ã¼ããããã©ããèª¿ã¹ã¾ã*/
+/* 出力ピンが並列接続されているピンとショートするかどうか調べます*/
 /**/
-/* true: è¡çªãã¦ãã*/
-/* false: è¡çªãã¦ããªããçæ¹ãINPUTã§ããã*/
+/* true: 衝突している*/
+/* false: 衝突していない。片方がINPUTである。*/
 /****************************************************/
 bool IsWritePinCollision(int pinSub)
@@ -209,9 +206,9 @@
 
 /******************************************************/
-/* PWMåºå: pwm*/
+/* PWM出力: pwm*/
 /*	pwm(pin, value)*/
-/*	pin: ãã³ã®çªå·(0,1,7,8,11,23ãã³ãPWMå¯è½)*/
-/*       ãã ãã23ãã³ã¯5ãã³ã¨24ãã³ç­çµ¡ãã¦ããã®ã§ãä½¿ç¨æã¯5ãã³ã¨24ãã³ãINPUTã«ãã¦ãã*/
-/*  value:	åºåPWMæ¯ç(0ï½255)*/
+/*	pin: ピンの番号(0,1,7,8,11,23ピンがPWM可能)*/
+/*       ただし、23ピンは5ピンと24ピン短絡しているので、使用時は5ピンと24ピンをINPUTにしておく*/
+/*  value:	出力PWM比率(0～255)*/
 /******************************************************/
 mrb_value mrb_kernel_pwm(mrb_state *mrb, mrb_value self)
@@ -224,15 +221,15 @@
 	pin = get_pin(pintype_pwmout, pinno);
 	if (pin == NULL)
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	pwmout_pulsewidth_us(&pin->pwmout, value);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
 }
 #if 0
 /******************************************************/
-/* PWMå¨æ³¢æ°è¨­å®: pwmHz*/
+/* PWM周波数設定: pwmHz*/
 /*	pwmHz(value)*/
-/*  value:	å¨æ³¢æ°(12ï½184999)Hz*/
+/*  value:	周波数(12～184999)Hz*/
 /******************************************************/
 mrb_value mrb_kernel_pwmHz(mrb_state *mrb, mrb_value self)
@@ -245,5 +242,5 @@
 	pin = get_pin(pintype_pwmout, pinno);
 	if (pin == NULL)
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	if (value >= 12 && value < 18500) {
@@ -254,11 +251,11 @@
 	}
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
 }
 #endif
 /******************************************************/
-/* ãã¼ã³åºååæ­¢: noTone*/
+/* トーン出力停止: noTone*/
 /*	noTone(pin)*/
-/*  pin: ãã³çªå·*/
+/*  pin: ピン番号*/
 /******************************************************/
 mrb_value mrb_kernel_noTone(mrb_state *mrb, mrb_value self)
@@ -269,18 +266,18 @@
 
 	if (pin == 4 || pin >= 20) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
 	noTone(pin);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ãã¼ã³åºå: tone*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* トーン出力: tone*/
 /*	tone(pin, frequency[,duration])*/
-/*  pin: ãã³çªå·*/
-/*  frequency: å¨æ³¢æ°(2ï½62500)Hz*/
-/*  duration: åºåãç¶­æããæé[ms]ãçç¥æã0æå®æã¯åºåãç¶ããã*/
+/*  pin: ピン番号*/
+/*  frequency: 周波数(2～62500)Hz*/
+/*  duration: 出力を維持する時間[ms]。省略時、0指定時は出力し続ける。*/
 /******************************************************/
 mrb_value mrb_kernel_tone(mrb_state *mrb, mrb_value self)
@@ -293,5 +290,5 @@
 
 	if (pin == 4 || pin >= 20) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
@@ -301,9 +298,9 @@
 		tone(pin, freq, dura);
 	}
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¢ãã­ã°DACãã³åæå: initDac*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* アナログDACピン初期化: initDac*/
 /*	initDac()*/
 /******************************************************/
@@ -311,11 +308,11 @@
 {
 	setPinModeDac(RB_PIN9);
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¢ãã­ã°DACåºå: analogDac*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* アナログDAC出力: analogDac*/
 /*	analogDac(value)*/
-/*  value:	10bitç²¾åº¦(0ï½4095)*/
+/*  value:	10bit精度(0～4095)*/
 /******************************************************/
 mrb_value mrb_kernel_analogDac(mrb_state *mrb, mrb_value self)
@@ -330,5 +327,5 @@
 		pin = get_pin(pintype_dac, RB_PIN9);
 		if (pin == NULL)
-			return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+			return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 		analogout_write_u16(&pin->dac, (value << 6) | (value >> 4));
@@ -336,5 +333,5 @@
 #endif
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
 }
 
@@ -351,5 +348,5 @@
 
 /******************************************************/
-/* LEDãªã³ãªã: led*/
+/* LEDオンオフ: led*/
 /*	led(sw)*/
 /******************************************************/
@@ -369,11 +366,11 @@
 #endif
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ä¹±æ°ãå¾ãããã®ç¨®ãä¸ãã¾ã: randomSeed*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 乱数を得るための種を与えます: randomSeed*/
 /*  randomSeed(value)*/
-/*  value: ç¨®ã¨ãªãå¤*/
+/*  value: 種となる値*/
 /******************************************************/
 mrb_value mrb_kernel_randomSeed(mrb_state *mrb, mrb_value self)
@@ -385,12 +382,12 @@
 	randomSeed(value);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ä¹±æ°ãåå¾ãã¾ã: random*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 乱数を取得します: random*/
 /*  random([min,] max)*/
-/*  min: ä¹±æ°ã®åãããæå°å¤ãçç¥å¯*/
-/*  max: ä¹±æ°ã®åãããæå¤§å¤*/
+/*  min: 乱数の取りうる最小値。省略可*/
+/*  max: 乱数の取りうる最大値*/
 /******************************************************/
 mrb_value mrb_kernel_random(mrb_state *mrb, mrb_value self)
@@ -408,5 +405,5 @@
 
 /******************************************************/
-/* é ãã³ãã³ãã§ã:  El_Psy.Congroo*/
+/* 隠しコマンドです:  El_Psy.Congroo*/
 /*	El_Psy.Congroo()*/
 /******************************************************/
@@ -415,9 +412,9 @@
 	mrb_raise(mrb, mrb_class_get(mrb, "Sys#exit Called"), "Normal Completion");
 
-	return mrb_nil_value();	/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+	return mrb_nil_value();	/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* ライブラリを定義します*/
 /******************************************************/
 void kernel_Init(mrb_state *mrb)
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sKernel.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sKernel.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sKernel.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ã«ã¼ãã«é¢é£
+ * カーネル関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -12,5 +12,5 @@
 
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void kernel_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sMem.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sMem.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sMem.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ãã¡ã¤ã«é¢é£
+ * ファイル関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -17,14 +17,14 @@
 
 FILEEEP Fpj0;
-FILEEEP *Fp0 = &Fpj0;			/*ã³ãã³ãç¨*/
+FILEEEP *Fp0 = &Fpj0;			/*コマンド用*/
 FILEEEP Fpj1;
-FILEEEP *Fp1 = &Fpj1;			/*ã³ãã³ãç¨*/
-
-/******************************************************/
-/* openãããã¡ã¤ã«ãã1ãã¤ãèª­ã¿è¾¼ã¿ã¾ã: MemFile.read*/
+FILEEEP *Fp1 = &Fpj1;			/*コマンド用*/
+
+/******************************************************/
+/* openしたファイルから1バイト読み込みます: MemFile.read*/
 /*	MemFile.read( number )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/* æ»ãå¤*/
-/*	0x00ï½0xFFãè¿ãããã¡ã¤ã«ã®æå¾ã ã£ãã-1ãè¿ãã*/
+/*	number: ファイル番号 0 または 1*/
+/* 戻り値*/
+/*	0x00～0xFFが返る。ファイルの最後だったら-1が返る。*/
 /******************************************************/
 mrb_value mrb_mem_read(mrb_state *mrb, mrb_value self)
@@ -46,11 +46,11 @@
 
 /******************************************************/
-/* openãããã¡ã¤ã«ãã¤ããªãã¼ã¿ãæ¸ãè¾¼ã: MemFile.write*/
+/* openしたファイルバイナリデータを書き込む: MemFile.write*/
 /*	MemFile.write( number, buf, len )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/*	buf: æ¸ãè¾¼ããã¼ã¿*/
-/*	len: æ¸ãè¾¼ããã¼ã¿ãµã¤ãº*/
-/* æ»ãå¤*/
-/*	å®éã«æ¸ãããã¤ãæ°*/
+/*	number: ファイル番号 0 または 1*/
+/*	buf: 書き込むデータ*/
+/*	len: 書き込むデータサイズ*/
+/* 戻り値*/
+/*	実際に書いたバイト数*/
 /******************************************************/
 mrb_value mrb_mem_write(mrb_state *mrb, mrb_value self)
@@ -78,11 +78,11 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ããªã¼ãã³ãã¾ã: MemFile.open*/
+/* ファイルをオープンします: MemFile.open*/
 /*	MemFile.open( number, filename[, mode] )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/*	filename: ãã¡ã¤ã«å(8.3å½¢å¼)*/
+/*	number: ファイル番号 0 または 1*/
+/*	filename: ファイル名(8.3形式)*/
 /*	mode: 0:Read, 1:Append, 2:New Create*/
-/* æ»ãå¤*/
-/*	æå: çªå·, å¤±æ: -1*/
+/* 戻り値*/
+/*	成功: 番号, 失敗: -1*/
 /******************************************************/
 mrb_value mrb_mem_open(mrb_state *mrb, mrb_value self)
@@ -142,7 +142,7 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ãã¯ã­ã¼ãºãã¾ã: MemFile.close( number )*/
+/* ファイルをクローズします: MemFile.close( number )*/
 /*	MemFile.close( number )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
+/*	number: ファイル番号 0 または 1*/
 /******************************************************/
 mrb_value mrb_mem_close(mrb_state *mrb, mrb_value self)
@@ -159,14 +159,14 @@
 	}
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* openãããã¡ã¤ã«ã®èª­ã¿åºãä½ç½®ãç§»åãã: MemFile.seek*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* openしたファイルの読み出し位置を移動する: MemFile.seek*/
 /*	MemFile.seek( number, byte )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/*	byte: seekãããã¤ãæ°(-1)ã§ãã¡ã¤ã«ã®æå¾ã«ç§»åãã*/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*	number: ファイル番号 0 または 1*/
+/*	byte: seekするバイト数(-1)でファイルの最後に移動する*/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_mem_seek(mrb_state *mrb, mrb_value self)
@@ -206,13 +206,11 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ãã³ãã¼ãã¾ã: MemFile.cp*/
+/* ファイルをコピーします: MemFile.cp*/
 /*  MemFile.cp( srcFilename, dstFilename[, mode] )*/
-/*  srcFilename: ã³ãã¼å
-ãã¡ã¤ã«å*/
-/*  dstFilename: ã³ãã¼å
-ãã¡ã¤ã«å*/
-/*  mode: 0ä¸æ¸ãããªã, 1:ä¸æ¸ããã*/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*  srcFilename: コピー元ファイル名*/
+/*  dstFilename: コピー先ファイル名*/
+/*  mode: 0上書きしない, 1:上書きする*/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_mem_cp(mrb_state *mrb, mrb_value self)
@@ -247,9 +245,9 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ãåé¤ãã¾ã: MemFile.rm*/
+/* ファイルを削除します: MemFile.rm*/
 /*  MemFile.rm( Filename )*/
-/*  Filename: åé¤ãããã¡ã¤ã«å*/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*  Filename: 削除するファイル名*/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_mem_rm(mrb_state *mrb, mrb_value self)
@@ -267,5 +265,5 @@
 
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void mem_Init(mrb_state *mrb)
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sMem.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sMem.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sMem.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ãã¡ã¤ã«é¢é£
+ * ファイル関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void mem_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sPanCake.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sPanCake.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sPanCake.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * PanCakeé¢é£
+ * PanCake関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -27,7 +27,7 @@
 
 /******************************************************/
-/* ç»é¢ãæ¶å»: PanCake.clear*/
+/* 画面を消去: PanCake.clear*/
 /*  PanCake.clear(cn)*/
-/*  cn: è²çªå·*/
+/*  cn: 色番号*/
 /******************************************************/
 mrb_value mrb_pancake_Clear(mrb_state *mrb, mrb_value self)
@@ -44,12 +44,12 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ç»é¢ã«ç·ãå¼ã: PanCake.line*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 画面に線を引く: PanCake.line*/
 /*  PanCake.line(x1,y1,x2,y2,cn)*/
-/*  (x1,y1)-(x2,y2)ã«ç·ãå¼ãã¾ã*/
-/*  cn: è²çªå·*/
+/*  (x1,y1)-(x2,y2)に線を引きます*/
+/*  cn: 色番号*/
 /******************************************************/
 mrb_value mrb_pancake_Line(mrb_state *mrb, mrb_value self)
@@ -74,13 +74,13 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ç»é¢ã«åãæã: PanCake.circle*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 画面に円を描く: PanCake.circle*/
 /*  PanCake.circle(xc, yc, ra, cn)*/
-/*  (xc,yc)ãä¸­å¿ã«åãæã*/
-/*  ra: åå¾*/
-/*  cn: è²çªå·*/
+/*  (xc,yc)を中心に円を描く*/
+/*  ra: 半径*/
+/*  cn: 色番号*/
 /******************************************************/
 mrb_value mrb_pancake_Circle(mrb_state *mrb, mrb_value self)
@@ -103,18 +103,18 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
 }
 
 int hex2int(char s)
 {
-	/* '0' ãã '9' ã®æå­ãªã*/
+	/* '0' から '9' の文字なら*/
 	if ('0' <= s && s <= '9') {
 		return(s - '0');
 	}
-	/*'A' ãã 'F' ã®æå­ãªã*/
+	/*'A' から 'F' の文字なら*/
 	else if ('A' <= s && s <= 'F') {
 		return(s - 'A' + 10);
 	}
-	/*'a' ãã 'f' ã®æå­ãªã*/
+	/*'a' から 'f' の文字なら*/
 	else if ('a' <= s && s <= 'f') {
 		return(s - 'a' + 10);
@@ -125,9 +125,9 @@
 
 /******************************************************/
-/* ç»é¢ã«8x8ã®çµµãæã: PanCake.stamp*/
+/* 画面に8x8の絵を描く: PanCake.stamp*/
 /*  PanCake.stamp(px, py, tc, string)*/
-/*  px,py: çµµã®å·¦ä¸åº§æ¨*/
-/*  tc: éæè²*/
-/*  string: 16é²æ°ã®æå­åã64å*/
+/*  px,py: 絵の左上座標*/
+/*  tc: 透明色*/
+/*  string: 16進数の文字列が64個*/
 /******************************************************/
 mrb_value mrb_pancake_Stamp(mrb_state *mrb, mrb_value self)
@@ -155,13 +155,13 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ç»é¢ã«8x8ã®1è²ã®çµµãæã: PanCake.stamp1*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 画面に8x8の1色の絵を描く: PanCake.stamp1*/
 /*  PanCake.stamp1(px, py, cn, string)*/
-/*  px,py: çµµã®å·¦ä¸åº§æ¨*/
-/*  cn: æãè²*/
-/*  string: 16é²æ°ã®æå­åã16å*/
+/*  px,py: 絵の左上座標*/
+/*  cn: 描く色*/
+/*  string: 16進数の文字列が16個*/
 /******************************************************/
 mrb_value mrb_pancake_Stamp1(mrb_state *mrb, mrb_value self)
@@ -189,11 +189,11 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ç»é¢ã«çµã¿è¾¼ã¿ç»åãæã: PanCake.image*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 画面に組み込み画像を描く: PanCake.image*/
 /*  PanCake.image(num)*/
-/*  num: çµã¿è¾¼ã¿ç»åã®çªå·*/
+/*  num: 組み込み画像の番号*/
 /******************************************************/
 mrb_value mrb_pancake_Image(mrb_state *mrb, mrb_value self)
@@ -210,11 +210,11 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ãããªåºåã®ON/OFF: PanCake.video*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* ビデオ出力のON/OFF: PanCake.video*/
 /*  PanCake.video(sw)*/
-/*  sw: ã¹ã¤ããON/OFF[01/00]*/
+/*  sw: スイッチON/OFF[01/00]*/
 /******************************************************/
 mrb_value mrb_pancake_Video(mrb_state *mrb, mrb_value self)
@@ -231,14 +231,14 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* 4chåæã«é³ãé³´ãã: PanCake.sound*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 4ch同時に音を鳴らす: PanCake.sound*/
 /*  PanCake.sound(o0, s0, o1, s1, o2, s2, o3, s3)*/
-/*  o0,o1,o2,o3: ãªã¯ã¿ã¼ã(0ï½4ï½7)*/
-/*  s0,s1,s2,s3: é³ç¨(0ï½b) eã¯ãã¤ãºé³*/
-/*               HighBits4ã¯é³è²(0ï½3)*/
-/*               é³ãæ¶ãã®ã¯ FF*/
+/*  o0,o1,o2,o3: オクターブ(0～4～7)*/
+/*  s0,s1,s2,s3: 音程(0～b) eはノイズ音*/
+/*               HighBits4は音色(0～3)*/
+/*               音を消すのは FF*/
 /******************************************************/
 mrb_value mrb_pancake_Sound(mrb_state *mrb, mrb_value self)
@@ -263,15 +263,15 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* 1ché³ãé³´ãã: PanCake.sound1*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 1ch音を鳴らす: PanCake.sound1*/
 /*  PanCake.sound1(cn, on, sn)*/
-/*  cn: ãã£ãã«*/
-/*  on: ãªã¯ã¿ã¼ã(0ï½4ï½7)*/
-/*  sn: é³ç¨(0ï½b) eã¯ãã¤ãºé³*/
-/*      HighBits4ã¯é³è²(0ï½3)*/
-/*      é³ãæ¶ãã®ã¯ FF*/
+/*  cn: チャネル*/
+/*  on: オクターブ(0～4～7)*/
+/*  sn: 音程(0～b) eはノイズ音*/
+/*      HighBits4は音色(0～3)*/
+/*      音を消すのは FF*/
 /******************************************************/
 mrb_value mrb_pancake_Sound1(mrb_state *mrb, mrb_value self)
@@ -290,10 +290,9 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* åæç¶æ
-ã«ãã: PanCake.reset*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 初期状態にする: PanCake.reset*/
 /*  PanCake.reset()*/
 /******************************************************/
@@ -306,11 +305,11 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* OUTãã¼ãã«åºå: PanCake.out*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* OUTポートに出力: PanCake.out*/
 /*  PanCake.out(pf)*/
-/*  pf: HIGHã«ãããã¼ãçªå·ã16é²æ°ã§æå®*/
+/*  pf: HIGHにするポート番号を16進数で指定*/
 /******************************************************/
 mrb_value mrb_pancake_Out(mrb_state *mrb, mrb_value self)
@@ -327,13 +326,13 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¹ãã©ã¤ããéå§ãã: Sprite.start*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* スプライトを開始する: Sprite.start*/
 /*  Sprite.start(num)*/
-/*  num: èæ¯ã«ä½¿ãçµã¿è¾¼ã¿ç»åçªå·*/
-/*       èæ¯ããã¿å¡ãã«ããå ´åã¯ num ã®HighBitsã1ã«ãã¾ãã*/
-/*      ã¹ãã©ã¤ãå¦çãåæ­¢ããã«ã¯ num ã FF ã«ãã¾ãã*/
+/*  num: 背景に使う組み込み画像番号*/
+/*       背景をベタ塗りにする場合は num のHighBitsを1にします。*/
+/*      スプライト処理を停止するには num を FF にします。*/
 /******************************************************/
 mrb_value mrb_pancake_Start(mrb_state *mrb, mrb_value self)
@@ -350,13 +349,13 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¹ãã©ã¤ããä½ã: Sprite.create*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* スプライトを作る: Sprite.create*/
 /*  Sprite.create(sn, si)*/
-/*  sn: ã¹ãã©ã¤ãçªå· 0ï½15*/
-/*  si: çµã¿è¾¼ã¿ã¹ãã©ã¤ãç»åçªå·*/
-/*      æ¶ãã®ã¯ FF*/
+/*  sn: スプライト番号 0～15*/
+/*  si: 組み込みスプライト画像番号*/
+/*      消すのは FF*/
 /******************************************************/
 mrb_value mrb_pancake_Create(mrb_state *mrb, mrb_value self)
@@ -374,12 +373,12 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¹ãã©ã¤ãã®ç§»å: Sprite.move*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* スプライトの移動: Sprite.move*/
 /*  Sprite.move(sn, px,py)*/
-/*  sn: ã¹ãã©ã¤ãçªå· 0ï½15*/
-/*  px,py: ç»é¢åº§æ¨*/
+/*  sn: スプライト番号 0～15*/
+/*  px,py: 画面座標*/
 /******************************************************/
 mrb_value mrb_pancake_Move(mrb_state *mrb, mrb_value self)
@@ -398,9 +397,9 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* é³æ¥½åçãã: Music.play*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 音楽再生する: Music.play*/
 /*  Music.play(sw)*/
 /*  sw: START/STOP[01/00]*/
@@ -419,9 +418,9 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* C D E F G A B ã0x0 ï½ 0xBã«ç½®ãæãã¾ã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* C D E F G A B を0x0 ～ 0xBに置き換えます*/
 /* C  D  E  F  G  A  B*/
 /* 0  2  4  5  7  9  B*/
@@ -454,10 +453,10 @@
 
 /******************************************************/
-/* MMLããµã¦ã³ãchã«ç»é²ãã: Music.score*/
+/* MMLをサウンドchに登録する: Music.score*/
 /*  Music.score(ch, pn, tt, string)*/
-/*  ch: ãã£ã³ãã«(00ï½03)*/
-/*  pn: 01:å³åçã00:å¾ã§åç*/
-/*  tt: ãã³ã(0ï½F)+é³è² [ex. 30 == ãã³ã3ãé³è²0]*/
-/*  string: MML 64ãã¤ãã¾ã§*/
+/*  ch: チャンネル(00～03)*/
+/*  pn: 01:即再生、00:後で再生*/
+/*  tt: テンポ(0～F)+音色 [ex. 30 == テンポ3、音色0]*/
+/*  string: MML 64バイトまで*/
 /******************************************************/
 mrb_value mrb_pancake_Score(mrb_state *mrb, mrb_value self)
@@ -539,11 +538,11 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* PanCakeã§ä½¿ãã·ãªã¢ã«ãã¼ãçªå·ãæå®: PanCake.serial*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* PanCakeで使うシリアルポート番号を指定: PanCake.serial*/
 /*  PanCake.serial(num)*/
-/*  num: ã·ãªã¢ã«ãã¼ãçªå·(1ï½3)*/
+/*  num: シリアルポート番号(1～3)*/
 /******************************************************/
 mrb_value mrb_pancake_Serial(mrb_state *mrb, mrb_value self)
@@ -560,5 +559,5 @@
 	SerialNum = num;
 
-	/*ã·ãªã¢ã«éä¿¡ã®åæåããã¾ã*/
+	/*シリアル通信の初期化をします*/
 	if (serial[SerialNum] != 0) {
 		serial_free(serial[SerialNum]);
@@ -567,5 +566,5 @@
 
 	if(!portToPins(SCI_SCI0P2x, &txpin, &rxpin))
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	serial[SerialNum] = mrb_malloc(mrb, sizeof(serial_t));
@@ -573,11 +572,11 @@
 	serial_baud(serial[SerialNum], PANCAKE_BAURATE);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¹ãã©ã¤ãã®å·¦å³åè»¢: Sprite.flip*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* スプライトの左右反転: Sprite.flip*/
 /*  Sprite.flip(sn, fs)*/
-/*  sn: ã¹ãã©ã¤ãçªå· 0ï½15*/
+/*  sn: スプライト番号 0～15*/
 /*  fs: ON/OFF[01/00]*/
 /******************************************************/
@@ -596,12 +595,12 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¹ãã©ã¤ãã®åè»¢: Sprite.rotate*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* スプライトの回転: Sprite.rotate*/
 /*  Sprite.rotate(sn, ra)*/
-/*  sn: ã¹ãã©ã¤ãçªå· 0ï½15*/
-/*  ra: è§åº¦[0:0Â°,1:-90Â°,2:180Â°,3:90Â°]*/
+/*  sn: スプライト番号 0～15*/
+/*  ra: 角度[0:0°,1:-90°,2:180°,3:90°]*/
 /******************************************************/
 mrb_value mrb_pancake_Rotate(mrb_state *mrb, mrb_value self)
@@ -619,13 +618,13 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¹ãã©ã¤ãç¨8x8ç»åã®å®ç¾©: Sprite.user*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* スプライト用8x8画像の定義: Sprite.user*/
 /*  Sprite.user(dn, tc, string)*/
-/*  dn: ã¹ãã©ã¤ãã®å®ç¾©çªå· FD ã FE*/
-/*  tc: éæè²*/
-/*  string: 16é²æ°ã®æå­åã64å(è²ã®çªå·ã§ã)*/
+/*  dn: スプライトの定義番号 FD か FE*/
+/*  tc: 透明色*/
+/*  string: 16進数の文字列が64個(色の番号です)*/
 /******************************************************/
 mrb_value mrb_pancake_User(mrb_state *mrb, mrb_value self)
@@ -650,9 +649,9 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* ライブラリを定義します*/
 /******************************************************/
 void pancake_Init(mrb_state *mrb)
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sPanCake.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sPanCake.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sPanCake.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * PanCakeé¢é£
+ * PanCake関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void pancake_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sRtc.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sRtc.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sRtc.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * RTCé¢é£
+ * RTC関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -19,16 +19,15 @@
 
 /******************************************************/
-/* RTCã®æè¨ãåå¾ãã¾ã: Rtc.getTime*/
+/* RTCの時計を取得します: Rtc.getTime*/
 /*  Rtc.getTime()*/
 /**/
-/*  æ»ãå¤ã¯ä»¥ä¸ã®å¤ãé
-åã§è¿ãã¾ã*/
-/*  year: å¹´(2000-2099)*/
-/*  mon: æ(1-12)*/
-/*  day: æ¥(1-31)*/
-/*  hour: æ(0-23)*/
-/*  min: å(0-59)*/
-/*  second: ç§(0-59)*/
-/*  weekday: ææ¥(0-6)0:æ¥,1:æ,2:ç«,3:æ°´,4:æ¨,5:é,6:å*/
+/*  戻り値は以下の値が配列で返ります*/
+/*  year: 年(2000-2099)*/
+/*  mon: 月(1-12)*/
+/*  day: 日(1-31)*/
+/*  hour: 時(0-23)*/
+/*  min: 分(0-59)*/
+/*  second: 秒(0-59)*/
+/*  weekday: 曜日(0-6)0:日,1:月,2:火,3:水,4:木,5:金,6:土*/
 /******************************************************/
 mrb_value mrb_rtc_getTime(mrb_state *mrb, mrb_value self)
@@ -49,12 +48,11 @@
 
 /******************************************************/
-/* RTCã®æè¨ãã»ãããã¾ã: Rtc.setTime*/
+/* RTCの時計をセットします: Rtc.setTime*/
 /*  Rtc.setTime( array )*/
-/*  array: å¹´(0000-9999),æ(1-12),æ¥(1-31),æ(0-23),å(0-59),ç§(0-59)ã®é
-å*/
+/*  array: 年(0000-9999),月(1-12),日(1-31),時(0-23),分(0-59),秒(0-59)の配列*/
 /**/
-/*  æ»ãå¤ã¯ä»¥ä¸ã®ã¨ãã*/
-/*		0: å¤±æ*/
-/*		1: æå*/
+/*  戻り値は以下のとおり*/
+/*		0: 失敗*/
+/*		1: 成功*/
 /******************************************************/
 mrb_value mrb_rtc_setTime(mrb_state *mrb, mrb_value self)
@@ -75,10 +73,10 @@
 
 /******************************************************/
-/* RTCãåæ­¢ãã¾ã: Rtc.deinit*/
+/* RTCを停止します: Rtc.deinit*/
 /*  Rtc.deinit()*/
 /**/
-/* æ»ãå¤ã¯ä»¥ä¸ã®ã¨ãã*/
-/*	0: å¤±æ*/
-/*	1: æå*/
+/* 戻り値は以下のとおり*/
+/*	0: 失敗*/
+/*	1: 成功*/
 /******************************************************/
 mrb_value mrb_rtc_deinit(mrb_state *mrb, mrb_value self)
@@ -89,11 +87,11 @@
 
 /******************************************************/
-/* RTCãèµ·åãã¾ã: Rtc.init*/
+/* RTCを起動します: Rtc.init*/
 /*  Rtc.init()*/
 /**/
-/* æ»ãå¤ã¯ä»¥ä¸ã®ã¨ãã*/
-/*	0: èµ·åå¤±æ*/
-/*	1: èµ·åæå*/
-/*	2: RTCã¯æ¢ã«èµ·åãã¦ãã(æå)*/
+/* 戻り値は以下のとおり*/
+/*	0: 起動失敗*/
+/*	1: 起動成功*/
+/*	2: RTCは既に起動していた(成功)*/
 /******************************************************/
 mrb_value mrb_rtc_init(mrb_state *mrb, mrb_value self)
@@ -108,5 +106,5 @@
 
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void rtc_Init(mrb_state *mrb)
@@ -123,27 +121,27 @@
 
 /*rtc_attach_alarm_handler*/
-/*æ¦è¦ 	ã¢ã©ã¼ã çºçæã«å¦çããé¢æ°ãç»é²ãã¾ãã*/
-/*ææ³ 	rtc_attach_alarm_handler(void(*)(void) function)*/
-/*ãã©ã¡ã¼ã¿ 	function: å¦çããé¢æ°*/
-/*æ»ãå¤ 	ãªã*/
+/*概要 	アラーム発生時に処理する関数を登録します。*/
+/*文法 	rtc_attach_alarm_handler(void(*)(void) function)*/
+/*パラメータ 	function: 処理する関数*/
+/*戻り値 	なし*/
 /**/
 /*rtc_set_alarm_time*/
-/*æ¦è¦ 	ã¢ã©ã¼ã æéãè¨­å®ãã¾ãã*/
-/*ææ³ 	int rtc_set_alarm_time (int hour, int min, int week_flag)*/
-/*ãã©ã¡ã¼ã¿ 	hour: æ*/
-/*min: å*/
-/*week_flag: ææ¥ï¼è¤æ°æå®ã®å ´åã¯è«çåã§æå®ï¼*/
-/*æ»ãå¤ 	0:å¤±æã1:æå*/
+/*概要 	アラーム時間を設定します。*/
+/*文法 	int rtc_set_alarm_time (int hour, int min, int week_flag)*/
+/*パラメータ 	hour: 時*/
+/*min: 分*/
+/*week_flag: 曜日（複数指定の場合は論理和で指定）*/
+/*戻り値 	0:失敗、1:成功*/
 /**/
 /*rtc_alarm_on*/
-/*æ¦è¦ 	ã¢ã©ã¼ã ãONã«ãã¾ãã*/
-/*ææ³ 	rtc_alarm_on()*/
-/*ãã©ã¡ã¼ã¿ 	ãªã*/
-/*æ»ãå¤ 	ãªã*/
+/*概要 	アラームをONにします。*/
+/*文法 	rtc_alarm_on()*/
+/*パラメータ 	なし*/
+/*戻り値 	なし*/
 /**/
 /*rtc_alarm_off*/
-/*æ¦è¦ 	ã¢ã©ã¼ã ãOFFã«ãã¾ãã*/
-/*ææ³ 	rtc_alarm_off()*/
-/*ãã©ã¡ã¼ã¿ 	ãªã*/
-/*æ»ãå¤ 	ãªã*/
+/*概要 	アラームをOFFにします。*/
+/*文法 	rtc_alarm_off()*/
+/*パラメータ 	なし*/
+/*戻り値 	なし*/
 /**/
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sRtc.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sRtc.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sRtc.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * RTCé¢é£
+ * RTC関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void rtc_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSdCard.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSdCard.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSdCard.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * SDã«ã¼ãé¢é£
+ * SDカード関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -21,10 +21,10 @@
 
 /******************************************************/
-/*ãã¡ã¤ã«ãå­å¨ãããã©ããèª¿ã¹ã: SD_exists*/
+/*ファイルが存在するかどうか調べる: SD_exists*/
 /*	SD_exists( filename )*/
-/*  filename: èª¿ã¹ããã¡ã¤ã«å*/
-/**/
-/* æ»ãå¤*/
-/*	å­å¨ãã: 1, å­å¨ããªã: 0*/
+/*  filename: 調べるファイル名*/
+/**/
+/* 戻り値*/
+/*	存在する: 1, 存在しない: 0*/
 /******************************************************/
 mrb_value mrb_sdcard_exists(mrb_state *mrb, mrb_value self)
@@ -46,10 +46,10 @@
 
 /******************************************************/
-/* ãã£ã¬ã¯ããªãä½æãã: SD_mkdir*/
+/* ディレクトリを作成する: SD_mkdir*/
 /*	SD_mkdir( dirname )*/
-/*  dirname: ä½æãããã£ã¬ã¯ããªå*/
-/**/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*  dirname: 作成するディレクトリ名*/
+/**/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_sdcard_mkdir(mrb_state *mrb, mrb_value self)
@@ -71,10 +71,10 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ãåé¤ãã: SD_remove*/
+/* ファイルを削除する: SD_remove*/
 /*	SD_remove( filename )*/
-/*  filename: åé¤ãããã¡ã¤ã«å*/
-/**/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*  filename: 削除するファイル名*/
+/**/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_sdcard_remove(mrb_state *mrb, mrb_value self)
@@ -96,13 +96,11 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ãã³ãã¼ãã: SD_copy*/
+/* ファイルをコピーする: SD_copy*/
 /*	SD_copy( srcfilename, distfilename )*/
-/*  srcfilename: ã³ãã¼å
-ãã¡ã¤ã«å*/
-/*  distfilename: ã³ãã¼å
-ãã¡ã¤ã«å*/
-/**/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*  srcfilename: コピー元ファイル名*/
+/*  distfilename: コピー先ファイル名*/
+/**/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_sdcard_copy(mrb_state *mrb, mrb_value self)
@@ -124,5 +122,5 @@
 	}
 
-	/*æ¢å­ã®ãã¡ã¤ã«ãã³ãã¼ãã*/
+	/*既存のファイルをコピーする*/
 	File *s = &Fp[0];
 	File *d = &Fp[1];
@@ -147,10 +145,10 @@
 
 /******************************************************/
-/* ãã£ã¬ã¯ããªãåé¤ãã: SD_rmdir*/
+/* ディレクトリを削除する: SD_rmdir*/
 /*	SD_rmdir( dirname )*/
-/*  dirname: åé¤ãããã£ã¬ã¯ããªå*/
-/**/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*  dirname: 削除するディレクトリ名*/
+/**/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_sdcard_rmdir(mrb_state *mrb, mrb_value self)
@@ -172,11 +170,11 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ããªã¼ãã³ãã¾ã: SD_open*/
+/* ファイルをオープンします: SD_open*/
 /*	SD_open( number, filename[, mode] )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/*	filename: ãã¡ã¤ã«å(8.3å½¢å¼)*/
+/*	number: ファイル番号 0 または 1*/
+/*	filename: ファイル名(8.3形式)*/
 /*	mode: 0:Read, 1:Append, 2:New Create*/
-/* æ»ãå¤*/
-/*	æå: çªå·, å¤±æ: -1*/
+/* 戻り値*/
+/*	成功: 番号, 失敗: -1*/
 /******************************************************/
 mrb_value mrb_sdcard_open(mrb_state *mrb, mrb_value self)
@@ -196,5 +194,5 @@
 
 	if (mode == 2) {
-		/*æ°è¦æ¸ãè¾¼ã¿*/
+		/*新規書き込み*/
 		if (SD_exists(str) == true) {
 			SD_remove(str);
@@ -221,7 +219,7 @@
 
 /******************************************************/
-/* openãããã¡ã¤ã«ãã¯ã­ã¼ãºãã¾ã: SD_close*/
+/* openしたファイルをクローズします: SD_close*/
 /*	SD_close( number )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
+/*	number: ファイル番号 0 または 1*/
 /******************************************************/
 mrb_value mrb_sdcard_close(mrb_state *mrb, mrb_value self)
@@ -235,13 +233,13 @@
 	}
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* openãããã¡ã¤ã«ãã1ãã¤ãèª­ã¿è¾¼ã¿ã¾ã: SD_read*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* openしたファイルから1バイト読み込みます: SD_read*/
 /*	SD_read( number )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/* æ»ãå¤*/
-/*	0x00ï½0xFFãè¿ãããã¡ã¤ã«ã®æå¾ã ã£ãã-1ãè¿ãã*/
+/*	number: ファイル番号 0 または 1*/
+/* 戻り値*/
+/*	0x00～0xFFが返る。ファイルの最後だったら-1が返る。*/
 /******************************************************/
 mrb_value mrb_sdcard_read(mrb_state *mrb, mrb_value self)
@@ -260,10 +258,10 @@
 
 /******************************************************/
-/* openãããã¡ã¤ã«ã®èª­ã¿åºãä½ç½®ãç§»åãã: SD_seek*/
+/* openしたファイルの読み出し位置を移動する: SD_seek*/
 /*	SD_seek( number, byte )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/*	byte: seekãããã¤ãæ°(-1)ã§ãã¡ã¤ã«ã®æå¾ã«ç§»åãã*/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*	number: ファイル番号 0 または 1*/
+/*	byte: seekするバイト数(-1)でファイルの最後に移動する*/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_sdcard_seek(mrb_state *mrb, mrb_value self)
@@ -291,11 +289,11 @@
 
 /******************************************************/
-/* openãããã¡ã¤ã«ã«ãã¤ããªãã¼ã¿ãæ¸ãè¾¼ã: SD_write*/
+/* openしたファイルにバイナリデータを書き込む: SD_write*/
 /*	SD_write( number, buf, len )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/*	buf: æ¸ãè¾¼ããã¼ã¿*/
-/*	len: æ¸ãè¾¼ããã¼ã¿ãµã¤ãº*/
-/* æ»ãå¤*/
-/*	å®éã«æ¸ãããã¤ãæ°*/
+/*	number: ファイル番号 0 または 1*/
+/*	buf: 書き込むデータ*/
+/*	len: 書き込むデータサイズ*/
+/* 戻り値*/
+/*	実際に書いたバイト数*/
 /******************************************************/
 mrb_value mrb_sdcard_write(mrb_state *mrb, mrb_value self)
@@ -318,7 +316,7 @@
 
 /******************************************************/
-/* openãããã¡ã¤ã«ã®æ¸ãè¾¼ã¿ããã©ãã·ã¥ãã¾ã: SD_flush*/
+/* openしたファイルの書き込みをフラッシュします: SD_flush*/
 /*	SD_flush( number )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
+/*	number: ファイル番号 0 または 1*/
 /******************************************************/
 mrb_value mrb_sdcard_flush(mrb_state *mrb, mrb_value self)
@@ -332,14 +330,14 @@
 	}
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* openãããã¡ã¤ã«ã®ãµã¤ãºãåå¾ãã¾ã: SD_size*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* openしたファイルのサイズを取得します: SD_size*/
 /*	SD_size( number )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/**/
-/* æ»ãå¤*/
-/*	ãã¡ã¤ã«ãµã¤ãº*/
+/*	number: ファイル番号 0 または 1*/
+/**/
+/* 戻り値*/
+/*	ファイルサイズ*/
 /******************************************************/
 mrb_value mrb_sdcard_size(mrb_state *mrb, mrb_value self)
@@ -358,10 +356,10 @@
 
 /******************************************************/
-/* openãããã¡ã¤ã«ã®seekä½ç½®ãåå¾ãã¾ã: SD_position*/
+/* openしたファイルのseek位置を取得します: SD_position*/
 /*	SD_position( number )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/**/
-/* æ»ãå¤*/
-/*	ã·ã¼ã¯ä½ç½®*/
+/*	number: ファイル番号 0 または 1*/
+/**/
+/* 戻り値*/
+/*	シーク位置*/
 /******************************************************/
 mrb_value mrb_sdcard_position(mrb_state *mrb, mrb_value self)
@@ -380,9 +378,9 @@
 
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 int sdcard_Init(mrb_state *mrb)
 {
-	/*æ¥ä»ã¨æå»ãè¿ãé¢æ°ãç»é²*/
+	/*日付と時刻を返す関数を登録*/
 	/*SdFile::dateTimeCallback( &SD_DateTime );*/
 
@@ -408,5 +406,5 @@
 
 /******************************************************/
-/* æ¥ä»ã¨æå»ãè¿ãã³ã¼ã«ããã¯é¢æ°*/
+/* 日付と時刻を返すコールバック関数*/
 /******************************************************/
 void SD_DateTime(uint16_t *date, uint16_t *time)
@@ -427,8 +425,8 @@
 	second = tm->tm_sec;
 
-	/* FAT_DATEãã¯ã­ã§ãã£ã¼ã«ããåãã¦æ¥ä»ãè¿ã*/
+	/* FAT_DATEマクロでフィールドを埋めて日付を返す*/
 	*date = (year - 1980) << 9 | month << 5 | day;
 
-	/* FAT_TIMEãã¯ã­ã§ãã£ã¼ã«ããåãã¦æéãè¿ã*/
+	/* FAT_TIMEマクロでフィールドを埋めて時間を返す*/
 	*time = hour << 11 | minute << 5 | second >> 1;
 }
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSdCard.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSdCard.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSdCard.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * SDã«ã¼ãé¢é£
+ * SDカード関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 int sdcard_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSerial.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSerial.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSerial.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ã·ãªã¢ã«éä¿¡é¢é£
+ * シリアル通信関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -24,5 +24,5 @@
 
 /******************************************************/
-/* ã¡ã¢ãªã®éæ¾æã«èµ°ã*/
+/* メモリの開放時に走る*/
 /******************************************************/
 static void mrb_serial_free(mrb_state *mrb, void *ptr)
@@ -33,5 +33,5 @@
 
 /******************************************************/
-/* ãã®æ§é ä½ã®æå³ã¯ããããã£ã¦ããªã*/
+/* この構造体の意味はよくわかっていない*/
 /******************************************************/
 static struct mrb_data_type serial_type = {"Serial", mrb_serial_free};
@@ -39,11 +39,11 @@
 
 /******************************************************/
-/* ã·ãªã¢ã«éä¿¡ãåæåãã¾ã: Serial.new*/
-/*  Serial.new(num[, bps])ã*/
-/*  num: éä¿¡çªå·(0:USB, 1:TX-0/RX-1, 2:TX-5/RX-6, 3:TX-7/RX-8, 4:TX-12/RX-11, 5:TX-9(26)/RX-3)*/
-/*  bps: ãã¼ã¬ã¼ã*/
+/* シリアル通信を初期化します: Serial.new*/
+/*  Serial.new(num[, bps])　*/
+/*  num: 通信番号(0:USB, 1:TX-0/RX-1, 2:TX-5/RX-6, 3:TX-7/RX-8, 4:TX-12/RX-11, 5:TX-9(26)/RX-3)*/
+/*  bps: ボーレート*/
 /**/
-/* æ»ãå¤*/
-/*  Serialã®ã¤ã³ã¹ã¿ã³ã¹*/
+/* 戻り値*/
+/*  Serialのインスタンス*/
 /******************************************************/
 static mrb_value mrb_serial_initialize(mrb_state *mrb, mrb_value self)
@@ -60,9 +60,9 @@
 
 	if (num < 0 && num >= SERIAL_MAX) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
 	if(!portToPins(num, &txpin, &rxpin))
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	serial_t* serialc = mrb_malloc(mrb, sizeof(serial_t));
@@ -78,7 +78,7 @@
 
 /******************************************************/
-/* ãã¼ã¬ã¼ããè¨­å®ãã¾ã: Serial.bps*/
+/* ボーレートを設定します: Serial.bps*/
 /*  Serial.bps(bps)*/
-/*  bps: ãã¼ã¬ã¼ã */
+/*  bps: ボーレート */
 /******************************************************/
 mrb_value mrb_serial_bps(mrb_state *mrb, mrb_value self)
@@ -92,12 +92,12 @@
 	serial_baud(serialc, bps);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã·ãªã¢ã«ã«åºåãã¾ã: Serial.print*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* シリアルに出力します: Serial.print*/
 /*  Serial.print([str])*/
-/*  str: æå­å*/
-/*    çç¥æã¯ä½ãåºåãã¾ãã*/
+/*  str: 文字列*/
+/*    省略時は何も出力しません*/
 /******************************************************/
 mrb_value mrb_serial_print(mrb_state *mrb, mrb_value self)
@@ -112,12 +112,12 @@
 		serial_print(serialc, RSTRING_PTR(text));
 	}
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã·ãªã¢ã«ã«\r\nä»ãã§åºåãã¾ã: Serial.println*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* シリアルに\r\n付きで出力します: Serial.println*/
 /*  Serial.println([str])*/
-/*  str: æå­å*/
-/*    çç¥æã¯æ¹è¡ã®ã¿*/
+/*  str: 文字列*/
+/*    省略時は改行のみ*/
 /******************************************************/
 mrb_value mrb_serial_println(mrb_state *mrb, mrb_value self)
@@ -135,11 +135,11 @@
 		serial_println(serialc, "");
 	}
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã·ãªã¢ã«ãã¼ã¿ããããã©ããèª¿ã¹ã¾ã: Serial.available*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* シリアルデータがあるかどうか調べます: Serial.available*/
 /*  Serial.available()*/
-/*  æ»ãå¤ ã·ãªã¢ã«ãããã¡ã«ãããã¼ã¿ã®ãã¤ãæ°ã0ã®å ´åã¯ãã¼ã¿ãªã*/
+/*  戻り値 シリアルバッファにあるデータのバイト数。0の場合はデータなし*/
 /******************************************************/
 mrb_value mrb_serial_available(mrb_state *mrb, mrb_value self)
@@ -151,9 +151,8 @@
 
 /******************************************************/
-/* ã·ãªã¢ã«ãããã¼ã¿ãåå¾ãã¾ã: Serial.read*/
+/* シリアルからデータを取得します: Serial.read*/
 /*  Serial.read()*/
-/* æ»ãå¤*/
-/*	ãã¼ã¿é
-å*/
+/* 戻り値*/
+/*	データ配列*/
 /******************************************************/
 mrb_value mrb_serial_read(mrb_state *mrb, mrb_value self)
@@ -176,10 +175,10 @@
 
 /******************************************************/
-/* ã·ãªã¢ã«ã«ãã¼ã¿ãåºåãã¾ã: Serial.write*/
+/* シリアルにデータを出力します: Serial.write*/
 /*  Serial.write(buf,len)*/
-/*	buf: åºåãã¼ã¿*/
-/*	len: åºåãã¼ã¿ãµã¤ãº*/
-/* æ»ãå¤*/
-/*	åºåãããã¤ãæ°*/
+/*	buf: 出力データ*/
+/*	len: 出力データサイズ*/
+/* 戻り値*/
+/*	出力したバイト数*/
 /******************************************************/
 mrb_value mrb_serial_write(mrb_state *mrb, mrb_value self)
@@ -202,5 +201,5 @@
 
 /******************************************************/
-/* ã·ãªã¢ã«ãã¼ã¿ããã©ãã·ã¥ãã¾ã: Serial.flash*/
+/* シリアルデータをフラッシュします: Serial.flash*/
 /*  Serial.flash()*/
 /******************************************************/
@@ -211,12 +210,12 @@
 	//serial_flush(serialc);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
 }
 #if 0
 unsigned char WiFiData[256];
 /***************************************************/
-/* USBãã¼ãã¨ESP8266ãã·ãªã¢ã«ã§ç´çµãã¾ã: WiFi.bypass*/
+/* USBポートとESP8266をシリアルで直結します: WiFi.bypass*/
 /*  WiFi.bypass()*/
-/* ãªã»ããããã¾ã§ãå¦çã¯æ»ãã¾ããã*/
+/* リセットするまで、処理は戻りません。*/
 //**************************************************/
 mrb_value mrb_wifi_bypass(mrb_state *mrb, mrb_value self)
@@ -238,8 +237,8 @@
 				WiFiData[i] = (unsigned char)serial_read(RbSerial[0]);
 
-				if(WiFiData[i] == 0x0d){ /*0x0Dã®ã¿ã®æ¹è¡ãé£æãããbypassã¢ã¼ããæãã*/
+				if(WiFiData[i] == 0x0d){ /*0x0Dのみの改行を連打したらbypassモードを抜ける*/
 					retCnt++;
 					if(retCnt > 20){
-						return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+						return mrb_nil_value();			/*戻り値は無しですよ。*/
 					}
 				}
@@ -260,10 +259,10 @@
 		}
 	}
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
 }
 #endif
 
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void serial_Init(mrb_state* mrb)
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSerial.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSerial.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSerial.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ã·ãªã¢ã«éä¿¡é¢é£
+ * シリアル通信関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void serial_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sServo.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sServo.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sServo.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ãµã¼ãã»ãã¼ãé¢é£
+ * サーボ・ハード関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -22,12 +22,10 @@
 
 /******************************************************/
-/* ãµã¼ãåºåãä»»æã®ãã³ã«å²ãå½ã¦ã¾ã: Servo.attach*/
+/* サーボ出力を任意のピンに割り当てます: Servo.attach*/
 /* Servo.attach(ch, pin[,min,max])*/
-/*	ch: ãµã¼ãã®ãã£ãã« 0ï½11ã¾ã§æå®ã§ãã¾ã*/
-/*  pin: å²ãå½ã¦ããã³çªå·*/
-/*  min: ãµã¼ãã®è§åº¦ã0åº¦ã®ã¨ãã®ãã«ã¹å¹
-(ãã¤ã¯ã­ç§)ãããã©ã«ãã¯544*/
-/*  max: ãµã¼ãã®è§åº¦ã180åº¦ã®ã¨ãã®ãã«ã¹å¹
-(ãã¤ã¯ã­ç§)ãããã©ã«ãã¯2400*/
+/*	ch: サーボのチャネル 0～11まで指定できます*/
+/*  pin: 割り当てるピン番号*/
+/*  min: サーボの角度が0度のときのパルス幅(マイクロ秒)。デフォルトは544*/
+/*  max: サーボの角度が180度のときのパルス幅(マイクロ秒)。デフォルトは2400*/
 /******************************************************/
 mrb_value mrb_servo_attach(mrb_state *mrb, mrb_value self)
@@ -42,13 +40,13 @@
 
 	if (pinno >= 20) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-	}
-
-	/* nã2ä»¥ä¸ã®ã¨ãã¯ãminãå¼æ°ã«ç¡ãã®ã§ã */
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
+	}
+
+	/* nが2以下のときは、minが引数に無いので、 */
 	if (n <= 2) {
 		min = 544;
 	}
 
-	/* nã3ä»¥ä¸ã®ã¨ãã¯ãmaxãå¼æ°ã«ç¡ãã®ã§ã */
+	/* nが3以下のときは、maxが引数に無いので、 */
 	if (n <= 3) {
 		max = 2400;
@@ -56,5 +54,5 @@
 
 	if (ch < 0 || ch >= ATTACH_MAX) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
@@ -66,5 +64,5 @@
 	pin = get_pin(pintype_pwmout, pinno);
 	if (pin == NULL)
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	servo[ch] = pin;
@@ -72,12 +70,12 @@
 	servo[ch]->max = max;
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ãµã¼ãã®è§åº¦ãã»ãããã¾ã: Servo.write*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* サーボの角度をセットします: Servo.write*/
 /* Servo.write(ch,angle)*/
-/*	ch: ãµã¼ãã®ãã£ãã« 0ï½11ã¾ã§æå®ã§ãã¾ã*/
-/*  angle: è§åº¦ 0ï½180*/
+/*	ch: サーボのチャネル 0～11まで指定できます*/
+/*  angle: 角度 0～180*/
 /******************************************************/
 mrb_value mrb_servo_write(mrb_state *mrb, mrb_value self)
@@ -91,9 +89,9 @@
 
 	if (ch < 0 || ch >= ATTACH_MAX) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
 	if (servo[ch] == NULL) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
@@ -106,15 +104,14 @@
 	pwmout_pulsewidth_us(&servo[ch]->pwmout, (angle * (max - min)) / 180 + min);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ãµã¼ãã¢ã¼ã¿ã«usåä½ã§è§åº¦ãæå®ãã: Servo.us*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* サーボモータにus単位で角度を指定する: Servo.us*/
 /* Servo.us(ch,us)*/
-/*	ch: ãµã¼ãã®ãã£ãã« 0ï½11ã¾ã§æå®ã§ãã¾ã*/
-/*  us: åºåããããã«ã¹ã®å¹
- 1ï½19999, 0ã§åºå OFF*/
-/*   ãµã¼ãã¢ã¼ã¿ã«ä¸ãããããã«ã¹ã¯20mså¨æã§ã1å¨æä¸­ã®Highã®æéãç´æ¥æå®ããã*/
-/*   å®è³ªçã«PWMåºåãé£ç¶åè»¢ã¿ã¤ãã®ãµã¼ãã§ã¯ãåè»¢ã®ã¹ãã¼ããè¨­å®ãããã¨ãã§ããã*/
+/*	ch: サーボのチャネル 0～11まで指定できます*/
+/*  us: 出力したいパルスの幅 1～19999, 0で出力 OFF*/
+/*   サーボモータに与えられるパルスは20ms周期で、1周期中のHighの時間を直接指定する。*/
+/*   実質的にPWM出力。連続回転タイプのサーボでは、回転のスピードが設定することができる。*/
 /******************************************************/
 mrb_value mrb_servo_us(mrb_state *mrb, mrb_value self)
@@ -126,22 +123,22 @@
 
 	if (ch < 0 || ch >= ATTACH_MAX) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
 	if (servo[ch] == 0) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
 	pwmout_pulsewidth_us(&servo[ch]->pwmout, us);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* æå¾ã«è¨­å®ãããè§åº¦ãèª­ã¿åºã: Servo.read*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 最後に設定された角度を読み出す: Servo.read*/
 /* Servo.read(ch)*/
-/*	ch: ãµã¼ãã®ãã£ãã« 0ï½11ã¾ã§æå®ã§ãã¾ã*/
-/* æ»ãå¤*/
-/*  ãã¤ã¯ã­ç§åä½ us(ch) ã§ä¸ããå¤ã¯èª­ã¿ã¨ããªã*/
+/*	ch: サーボのチャネル 0～11まで指定できます*/
+/* 戻り値*/
+/*  マイクロ秒単位 us(ch) で与えた値は読みとれない*/
 /******************************************************/
 mrb_value mrb_servo_read(mrb_state *mrb, mrb_value self)
@@ -166,10 +163,10 @@
 
 /******************************************************/
-/* ãã³ã«ãµã¼ããå²ãå½ã¦ããã¦ããããç¢ºèªãã: Servo.attached*/
+/* ピンにサーボが割り当てられているかを確認する: Servo.attached*/
 /* Servo.attached(ch)*/
-/*	ch: ãµã¼ãã®ãã£ãã« 0ï½11ã¾ã§æå®ã§ãã¾ã*/
-/* æ»ãå¤*/
-/*  1: å²ãå½ã¦ããã¦ãã*/
-/*  0: å²ãå½ã¦ã¯ãªã*/
+/*	ch: サーボのチャネル 0～11まで指定できます*/
+/* 戻り値*/
+/*  1: 割り当てられている*/
+/*  0: 割り当てはない*/
 /******************************************************/
 mrb_value mrb_servo_attached(mrb_state *mrb, mrb_value self)
@@ -196,7 +193,7 @@
 
 /******************************************************/
-/* ãµã¼ãã®åä½ãæ­¢ããå²ãè¾¼ã¿ãç¦æ­¢ãã: Servo.detach*/
+/* サーボの動作を止め、割り込みを禁止する: Servo.detach*/
 /* Servo.detach(ch)*/
-/*	ch: ãµã¼ãã®ãã£ãã« 0ï½9ã¾ã§æå®ã§ãã¾ã*/
+/*	ch: サーボのチャネル 0～9まで指定できます*/
 /******************************************************/
 mrb_value mrb_servo_detach(mrb_state *mrb, mrb_value self)
@@ -207,9 +204,9 @@
 
 	if (ch < 0 || ch >= ATTACH_MAX) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
 	if (servo[ch] == NULL) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
@@ -217,9 +214,9 @@
 	servo[ch] = 0;
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* ライブラリを定義します*/
 /******************************************************/
 void servo_Init(mrb_state *mrb)
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sServo.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sServo.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sServo.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ãµã¼ãã»ãã¼ãé¢é£
+ * サーボ・ハード関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void servo_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSys.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSys.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSys.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ã·ã¹ãã é¢é£
+ * システム関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -28,7 +28,7 @@
 
 /******************************************************/
-/* çµäºããã¾ã*/
+/* 終了させます*/
 /*	System.exit()*/
-/*	ã¨ã©ã¼å¤ããã©ããå³çµäº*/
+/*	エラー値がもどり、即終了*/
 /******************************************************/
 mrb_value mrb_system_exit(mrb_state *mrb, mrb_value self)
@@ -36,9 +36,9 @@
 	mrb_raise(mrb, mrb_class_get(mrb, "Sys#exit Called"), "Normal Completion");
 
-	return mrb_nil_value();	/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* æ¬¡ã«å®è¡ããã¹ã¯ãªãããã¡ã¤ã«ãVmFilenameã«ã»ãããã¾ãã*/
+	return mrb_nil_value();	/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 次に実行するスクリプトファイルをVmFilenameにセットします。*/
 /* System.setRun( filename )*/
 /******************************************************/
@@ -56,11 +56,11 @@
 	RubyFilename[0] = '\0';
 
-	return mrb_nil_value();	/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã·ã¹ãã ã®ãã¼ã¸ã§ã³ãåå¾ãã¾ã*/
+	return mrb_nil_value();	/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* システムのバージョンを取得します*/
 /* System.version([R])*/
-/* å¼æ°ãããã°mrubyã®ãã¼ã·ã§ã³ãè¿ã*/
+/* 引数があればmrubyのバーションを返す*/
 /******************************************************/
 mrb_value mrb_system_version(mrb_state *mrb, mrb_value self)
@@ -78,11 +78,11 @@
 
 /******************************************************/
-/*ãã©ãã·ã¥ã¡ã¢ãªã«æ¸ãè¾¼ã¿ã¾ã*/
+/*フラッシュメモリに書き込みます*/
 /* System.push(address, buf, length)*/
-/*	address: æ¸ãè¾¼ã¿éå§ã¢ãã¬ã¹(0x0000ï½0x00ff)*/
-/*  buf: æ¸ãè¾¼ããã¼ã¿*/
-/*  length: æ¸ãè¾¼ããµã¤ãº*/
-/* æ»ãå¤*/
-/*  1:æå, 0:å¤±æ*/
+/*	address: 書き込み開始アドレス(0x0000～0x00ff)*/
+/*  buf: 書き込むデータ*/
+/*  length: 書き込むサイズ*/
+/* 戻り値*/
+/*  1:成功, 0:失敗*/
 /******************************************************/
 mrb_value mrb_system_push(mrb_state *mrb, mrb_value self)
@@ -115,10 +115,10 @@
 
 /******************************************************/
-/*ãã©ãã·ã¥ã¡ã¢ãªããèª­ã¿åºãã¾ã*/
+/*フラッシュメモリから読み出します*/
 /* System.pop(address, length)*/
-/*	address: èª­ã¿è¾¼ã¿ã¢ãã¬ã¹(0x0000ï½0x00ff)*/
-/*  length: èª­ã¿è¾¼ã¿ãµã¤ãº(MAX 32ãã¤ã)*/
-/* æ»ãå¤*/
-/*  èª­ã¿è¾¼ãã ãã¼ã¿*/
+/*	address: 読み込みアドレス(0x0000～0x00ff)*/
+/*  length: 読み込みサイズ(MAX 32バイト)*/
+/* 戻り値*/
+/*  読み込んだデータ*/
 /******************************************************/
 mrb_value mrb_system_pop(mrb_state *mrb, mrb_value self)
@@ -147,39 +147,37 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ã­ã¼ãã¼ãå¼ã³åºãã¾ã*/
+/* ファイルローダーを呼び出します*/
 /* System.fileload()*/
 /******************************************************/
 mrb_value mrb_system_fileload(mrb_state *mrb, mrb_value self)
 {
-	/*ãã¡ã¤ã«ã­ã¼ãã¼ã®å¼ã³åºã*/
+	/*ファイルローダーの呼び出し*/
 	if (fileloader((const char*)ProgVer, MRUBY_VERSION) == 1) {
-		mrb_full_gc(mrb);	/*å¼·å¶GCãå
-¥ãã*/
-		/*å¼·å¶çµäº*/
+		mrb_full_gc(mrb);	/*強制GCを入れる*/
+		/*強制終了*/
 		mrb_raise(mrb, mrb_class_get(mrb, "Sys#exit Called"), "Normal Completion");
 	}
 
-	mrb_full_gc(mrb);	/*å¼·å¶GCãå
-¥ãã*/
-
-	return mrb_nil_value();	/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ãªã»ãããã¾ã*/
+	mrb_full_gc(mrb);	/*強制GCを入れる*/
+
+	return mrb_nil_value();	/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* リセットします*/
 /* System.reset()*/
 /******************************************************/
 mrb_value mrb_system_reset(mrb_state *mrb, mrb_value self)
 {
-	system_reboot(REBOOT_USERAPP);	/*ãªã»ããå¾ã«ã¦ã¼ã¶ã¢ããªãèµ·åãã*/
-
-	return mrb_nil_value();	/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* SDã«ã¼ããä½¿ããããã«ãã¾ã: System.useSD*/
+	system_reboot(REBOOT_USERAPP);	/*リセット後にユーザアプリを起動する*/
+
+	return mrb_nil_value();	/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* SDカードを使えるようにします: System.useSD*/
 /* System.useSD()*/
-/*æ»ãå¤*/
-/* 0:ä½¿ç¨ä¸å¯, 1:ä½¿ç¨å¯è½*/
+/*戻り値*/
+/* 0:使用不可, 1:使用可能*/
 /******************************************************/
 mrb_value mrb_system_useSD(mrb_state *mrb, mrb_value self)
@@ -188,5 +186,5 @@
 
 #if BOARD == BOARD_GR || FIRMWARE == SDBT || FIRMWARE == SDWF || BOARD == BOARD_P05 || BOARD == BOARD_P06
-	ret = sdcard_Init(mrb);		/*SDã«ã¼ãé¢é£ã¡ã½ããã®è¨­å®*/
+	ret = sdcard_Init(mrb);		/*SDカード関連メソッドの設定*/
 #endif
 
@@ -195,8 +193,8 @@
 
 /******************************************************/
-/* WiFiã¢ã¸ã¥ã¼ã«ESP8266ãã¼ããä½¿ããããã«ãã¾ã: System.useWiFi*/
+/* WiFiモジュールESP8266ボードを使えるようにします: System.useWiFi*/
 /* System.useWiFi()*/
-/*æ»ãå¤*/
-/* 0:ä½¿ç¨ä¸å¯, 1:ä½¿ç¨å¯è½*/
+/*戻り値*/
+/* 0:使用不可, 1:使用可能*/
 /******************************************************/
 mrb_value mrb_system_useWiFi(mrb_state *mrb, mrb_value self)
@@ -205,5 +203,5 @@
 
 #if (BOARD == FIRMWARE && BOARD == SDWF) || BOARD == BOARD_P05 || BOARD == BOARD_P06
-	ret = esp8266_Init(mrb);		/*ESP8266ãã¼ãé¢é£ã¡ã½ããã®è¨­å®*/
+	ret = esp8266_Init(mrb);		/*ESP8266ボード関連メソッドの設定*/
 #endif
 
@@ -212,8 +210,8 @@
 
 /******************************************************/
-/* å®è¡ãã¦ããmrbãã¡ã¤ã«ãã¹ãåå¾ãã¾ã: System.getMrbPath*/
+/* 実行しているmrbファイルパスを取得します: System.getMrbPath*/
 /* System.getMrbPath()*/
-/*æ»ãå¤*/
-/* å®è¡ãã¦ããmrbãã¡ã¤ã«ãã¹*/
+/*戻り値*/
+/* 実行しているmrbファイルパス*/
 /******************************************************/
 mrb_value mrb_system_getmrbpath(mrb_state *mrb, mrb_value self)
@@ -223,5 +221,5 @@
 
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void sys_Init(mrb_state *mrb)
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSys.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSys.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSys.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ã·ã¹ãã é¢é£
+ * システム関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void sys_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sWiFi.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sWiFi.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sWiFi.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ESP-WROOM-02é¢é£
+ * ESP-WROOM-02関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -26,11 +26,11 @@
 
 unsigned char WiFiData[256];
-int WiFiRecvOutlNum = -1;	/*ESP8266ããã®åä¿¡ãåºåããã·ãªã¢ã«çªå·: -1ã®å ´åã¯åºåããªãã*/
-
-/******************************************************/
-/* OK 0d0a ã ERROR 0d0aãæ¥ãã¾ã§ WiFiData[]ã«èª­ããã*/
-/* æå®ãããã·ãªã¢ã«ãã¼ãã«åºåãã¾ã*/
+int WiFiRecvOutlNum = -1;	/*ESP8266からの受信を出力するシリアル番号: -1の場合は出力しない。*/
+
+/******************************************************/
+/* OK 0d0a か ERROR 0d0aが来るまで WiFiData[]に読むか、*/
+/* 指定されたシリアルポートに出力します*/
 /**/
-/* 1:åä¿¡ãã, 0:åä¿¡ã§ããªãã£ã*/
+/* 1:受信した, 0:受信できなかった*/
 /******************************************************/
 int getData(int wait_msec)
@@ -49,8 +49,7 @@
 	times = us_ticker_read() / 1000;
 	while (n < 256) {
-		/*digitalWrite(get_pin(WIFI_CTS), 0);	//éä¿¡è¨±å¯*/
-
-		/*wait_msec å¾
-ã¤*/
+		/*digitalWrite(get_pin(WIFI_CTS), 0);	//送信許可*/
+
+		/*wait_msec 待つ*/
 		if ((us_ticker_read() / 1000) - times > wait_msec) {
 			DEBUG_PRINT("WiFi get Data", "Time OUT");
@@ -63,5 +62,5 @@
 				c = serial_getc(RbSerial[WIFI_SERIAL]);
 
-				/*æå®ã®ã·ãªã¢ã«ãã¼ãã«åºãè¨­å®ã§ããã°ãåä¿¡å¤ãåºåãã¾ã*/
+				/*指定のシリアルポートに出す設定であれば、受信値を出力します*/
 				if (WiFiRecvOutlNum >= 0) {
 					serial_putc(RbSerial[WiFiRecvOutlNum], (unsigned char)c);
@@ -107,10 +106,10 @@
 		}
 	}
-	/*digitalWrite(get_pin(WIFI_CTS), 0);	//éä¿¡è¨±å¯*/
+	/*digitalWrite(get_pin(WIFI_CTS), 0);	//送信許可*/
 	return 1;
 }
 
 /******************************************************/
-/* ã¹ãã¼ã·ã§ã³ã¢ã¼ãã®è¨­å®: WiFi.cwmode*/
+/* ステーションモードの設定: WiFi.cwmode*/
 /*  WiFi.cwmode(mode)*/
 /*  mode: 1:Station, 2:SoftAP, 3:Station + SoftAP*/
@@ -128,5 +127,5 @@
 	serial_println(RbSerial[WIFI_SERIAL], tmode);
 
-	/*OK 0d0a ã ERROR 0d0aãæ¥ãã¾ã§ WiFiData[]ã«èª­ããæå®ãããã·ãªã¢ã«ãã¼ãã«åºåãã¾ã*/
+	/*OK 0d0a か ERROR 0d0aが来るまで WiFiData[]に読か、指定されたシリアルポートに出力します*/
 	getData(WIFI_WAIT_MSEC);
 
@@ -135,9 +134,8 @@
 
 /******************************************************/
-/* ã³ãã³ãå¿ç­ã®ã·ãªã¢ã«åºåè¨­å®: WiFi.sout*/
+/* コマンド応答のシリアル出力設定: WiFi.sout*/
 /*  WiFi.sout( mode[,serialNumber] )*/
-/*	mode: 0:åºåããªã, 1:åºåãã*/
-/*  serialNumber: åºåå
-ã®ã·ãªã¢ã«çªå·*/
+/*	mode: 0:出力しない, 1:出力する*/
+/*  serialNumber: 出力先のシリアル番号*/
 /******************************************************/
 mrb_value mrb_wifi_Sout(mrb_state *mrb, mrb_value self)
@@ -158,13 +156,12 @@
 		}
 	}
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ATã³ãã³ãã®éä¿¡: WiFi.at*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* ATコマンドの送信: WiFi.at*/
 /*  WiFi.at( command[, mode] )*/
-/*	commnad: ATã³ãã³ãå
-å®¹*/
-/*  mode: 0:'AT+'ãèªåè¿½å ããã1:'AT+'ãèªåè¿½å ããªã*/
+/*	commnad: ATコマンド内容*/
+/*  mode: 0:'AT+'を自動追加する、1:'AT+'を自動追加しない*/
 /******************************************************/
 mrb_value mrb_wifi_at(mrb_state *mrb, mrb_value self)
@@ -191,5 +188,5 @@
 	/*DEBUG_PRINT("WiFi.at",(const char*)WiFiData);*/
 
-	/*OK 0d0a ã ERROR 0d0aãæ¥ãã¾ã§ WiFiData[]ã«èª­ããæå®ãããã·ãªã¢ã«ãã¼ãã«åºåãã¾ã*/
+	/*OK 0d0a か ERROR 0d0aが来るまで WiFiData[]に読か、指定されたシリアルポートに出力します*/
 	getData(WIFI_WAIT_MSEC);
 
@@ -198,8 +195,8 @@
 
 /******************************************************/
-/* WiFiæ¥ç¶ãã¾ã: WiFi.cwjap*/
+/* WiFi接続します: WiFi.cwjap*/
 /*  WiFi.cwjap(SSID,Passwd)*/
-/*  SSID: WiFiã®SSID*/
-/*  Passwd: ãã¹ã¯ã¼ã*/
+/*  SSID: WiFiのSSID*/
+/*  Passwd: パスワード*/
 /******************************************************/
 mrb_value mrb_wifi_Cwjap(mrb_state *mrb, mrb_value self)
@@ -245,5 +242,5 @@
 	serial_println(RbSerial[WIFI_SERIAL], (const char*)WiFiData);
 
-	/*OK 0d0a ã ERROR 0d0aãæ¥ãã¾ã§ WiFiData[]ã«èª­ããæå®ãããã·ãªã¢ã«ãã¼ãã«åºåãã¾ã*/
+	/*OK 0d0a か ERROR 0d0aが来るまで WiFiData[]に読か、指定されたシリアルポートに出力します*/
 	getData(WIFI_WAIT_MSEC);
 
@@ -252,5 +249,5 @@
 
 /******************************************************/
-/* IPã¢ãã¬ã¹ã¨MACã¢ãã¬ã¹ã®è¡¨ç¤º: WiFi.cifsr*/
+/* IPアドレスとMACアドレスの表示: WiFi.cifsr*/
 /*  WiFi.cwjap()*/
 /******************************************************/
@@ -259,5 +256,5 @@
 	serial_println(RbSerial[WIFI_SERIAL], "AT+CIFSR");
 
-	/*OK 0d0a ã ERROR 0d0aãæ¥ãã¾ã§ WiFiData[]ã«èª­ããæå®ãããã·ãªã¢ã«ãã¼ãã«åºåãã¾ã*/
+	/*OK 0d0a か ERROR 0d0aが来るまで WiFiData[]に読か、指定されたシリアルポートに出力します*/
 	getData(WIFI_WAIT_MSEC);
 
@@ -266,7 +263,7 @@
 
 /******************************************************/
-/* USBãã¼ãã¨ESP8266ãã·ãªã¢ã«ã§ç´çµãã¾ã: WiFi.bypass*/
+/* USBポートとESP8266をシリアルで直結します: WiFi.bypass*/
 /*  WiFi.bypass()*/
-/* ãªã»ããããã¾ã§ãå¦çã¯æ»ãã¾ããã*/
+/* リセットするまで、処理は戻りません。*/
 /******************************************************/
 mrb_value mrb_wifi_bypass(mrb_state *mrb, mrb_value self)
@@ -297,9 +294,9 @@
 		}
 	}
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* ライブラリを定義します*/
 /******************************************************/
 int esp8266_Init(mrb_state *mrb)
@@ -307,13 +304,13 @@
 	PinName txpin, rxpin;
 
-	/*ESP8266ããã®åä¿¡ãåºåããªãã«è¨­å®*/
+	/*ESP8266からの受信を出力しないに設定*/
 	WiFiRecvOutlNum = -1;
 
-	/*CTSç¨ã«PIN15ãOUTPUTã«è¨­å®ãã¾ã*/
+	/*CTS用にPIN15をOUTPUTに設定します*/
 	/*pinMode(get_pin(WIFI_CTS), 1);*/
 	/*digitalWrite(get_pin(WIFI_CTS), 1);*/
 
-	/*WiFiã®ã·ãªã¢ã«3ãè¨­å®*/
-	/*ã·ãªã¢ã«éä¿¡ã®åæåããã¾ã*/
+	/*WiFiのシリアル3を設定*/
+	/*シリアル通信の初期化をします*/
 	portToPins(SCI_SCI0P2x, &txpin, &rxpin);
 	serial_init(RbSerial[WIFI_SERIAL], txpin, rxpin);
@@ -321,5 +318,5 @@
 	int len;
 
-	/*åä¿¡ãããã¡ãç©ºã«ãã¾ã*/
+	/*受信バッファを空にします*/
 	while ((len = serial_readable(RbSerial[WIFI_SERIAL])) > 0) {
 		/*serial_print(RbSerial[0], len);*/
@@ -329,8 +326,8 @@
 	}
 
-	/*ECHOãªãã³ãã³ããéä¿¡ãã*/
+	/*ECHOオフコマンドを送信する*/
 	serial_println(RbSerial[WIFI_SERIAL], "ATE0");
 
-	/*OK 0d0a ã ERROR 0d0aãæ¥ãã¾ã§ WiFiData[]ã«èª­ã*/
+	/*OK 0d0a か ERROR 0d0aが来るまで WiFiData[]に読む*/
 	if (getData(500) == 0) {
 		return 0;
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sWiFi.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sWiFi.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sWiFi.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ESP-WROOM-02é¢é£
+ * ESP-WROOM-02関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 int esp8266_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
@@ -62,5 +47,5 @@
 
 /*
- * ECHONET Liteãµã¼ãã¹å¦çéå§
+ * ECHONET Liteサービス処理開始
  */
 ER ecn_sta_svc(ecnl_svc_task_t *svc)
@@ -72,18 +57,11 @@
 
 /*
- * ECHONETãªãã¸ã§ã¯ãåç
-§
- * å¼æ°
- * ID		fa_eobjid	ECHONETãªãã¸ã§ã¯ãID
- * T_REOBJ	*fp_eobj	ECHONETãªãã¸ã§ã¯ãã®è¨­å®å
-å®¹ã³ãã¼å
-
+ * ECHONETオブジェクト参照
+ * 引数
+ * ID		fa_eobjid	ECHONETオブジェクトID
+ * T_REOBJ	*fp_eobj	ECHONETオブジェクトの設定内容コピー先
  *
- * eobjidã§æå®ããECHONETãªãã¸ã§ã¯ãã®è¨­å®å
-å®¹ãåç
-§ããã
- * åç
-§ããè¨­å®å
-å®¹ã¯pk_eobjã«æå®ããã¡ã¢ãªã«è¿ãããã
+ * eobjidで指定したECHONETオブジェクトの設定内容を参照する。
+ * 参照した設定内容はpk_eobjに指定したメモリに返される。
  */
 ER ecn_ref_eobj(ecnl_svc_task_t *svc, ID fa_eobjid, T_REOBJ *fp_eobj)
@@ -92,8 +70,8 @@
 
 	if (!fp_eobj)
-		return E_PAR;	/* ãã©ã¡ã¼ã¿ã¨ã©ã¼ */
+		return E_PAR;	/* パラメータエラー */
 
 	if ((fa_eobjid <= 0) || (fa_eobjid > svc->tmax_eobjid))
-		return E_OBJ;	/* ãªãã¸ã§ã¯ãæªç»é² */
+		return E_OBJ;	/* オブジェクト未登録 */
 
 	p_obj = echonet_svctask_get_eobjinib(svc, fa_eobjid);
@@ -105,19 +83,12 @@
 
 /*
- * ECHONETãã­ããã£åç
-§
- * å¼æ°
- * ID			fa_eobjid	ECHONETãªãã¸ã§ã¯ãID
- * uint8_t		fa_epc		ãã­ããã£ã³ã¼ã
- * T_RPRP		*fp_eprp	ECHONETãªãã¸ã§ã¯ãã®ãã­ããã£è¨­å®å
-å®¹ã³ãã¼å
-
+ * ECHONETプロパティ参照
+ * 引数
+ * ID			fa_eobjid	ECHONETオブジェクトID
+ * uint8_t		fa_epc		プロパティコード
+ * T_RPRP		*fp_eprp	ECHONETオブジェクトのプロパティ設定内容コピー先
  *
- * eobjidã§æå®ããECHONETãªãã¸ã§ã¯ãã®ãepcã§æå®ãããã­ããã£ã®è¨­å®å
-å®¹ãåç
-§ããã
- * åç
-§ããè¨­å®å
-å®¹ã¯pk_eprpã«æå®ããã¡ã¢ãªã«è¿ãããã
+ * eobjidで指定したECHONETオブジェクトの、epcで指定したプロパティの設定内容を参照する。
+ * 参照した設定内容はpk_eprpに指定したメモリに返される。
  */
 ER ecn_ref_eprp(ecnl_svc_task_t *svc, ID fa_eobjid, uint8_t fa_epc, T_RPRP *fp_eprp)
@@ -128,13 +99,12 @@
 
 	if (!fp_eprp)
-		return E_PAR;	/* ãã©ã¡ã¼ã¿ã¨ã©ã¼ */
+		return E_PAR;	/* パラメータエラー */
 
 	if ((fa_eobjid <= 0) || (fa_eobjid > svc->tmax_eobjid))
-		return E_OBJ;	/* ãªãã¸ã§ã¯ãæªç»é² */
+		return E_OBJ;	/* オブジェクト未登録 */
 
 	p_obj = svc->eobjinib_table[fa_eobjid - 1];
 
-	/* eojã®æã¤ãã­ããã£åæåå®ç¾©é
-åããæ¤ç´¢ */
+	/* eojの持つプロパティ初期化定義配列から検索 */
 	p = p_obj->eprp;
 	for (i = 0; i < p_obj->eprpcnt; i++, p++) {
@@ -145,25 +115,21 @@
 	}
 
-	return E_PAR;	/* ãã©ã¡ã¼ã¿ã¨ã©ã¼ */
-}
-
-/*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼é»æä½æ
- * å¼æ°
- * T_EDATA			**ppk_esv	åå¾ããé»æã®æ ¼ç´å
-
- * ID				fa_deoj		å®å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * uint8_t			fa_epc		ãã­ããã£ã³ã¼ã
- * uint8_t			fa_pdc		ãã­ããã£å¤ãã¼ã¿ãµã¤ãº
- * const void		*p_edt		ãã­ããã£å¤ãã¼ã¿
+	return E_PAR;	/* パラメータエラー */
+}
+
+/*
+ * プロパティ値書き込み要求（応答不要）電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
+ * uint8_t			fa_pdc		プロパティ値データサイズ
+ * const void		*p_edt		プロパティ値データ
  *
- *	ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼é»æãä½æããã
- *	é»æã¯deojã§æå®ããECHONETãªãã¸ã§ã¯ããå®å
-ã¨ãã
- *	é»æã®åãã®ãã­ããã£å¤ã¨ãã¦ãepcã¨pdcãp_edtã§æå®ããã
- *	ãã­ããã£ã³ã¼ãããã¼ã¿ãµã¤ãºããã¼ã¿ãé»æã«è¨­å®ããã
- *	ä½æããé»æã®å
-é ­ã¢ãã¬ã¹ã¯ãã¤ã³ã¿çµç±ã§è¿ãããã
+ *	プロパティ値書き込み要求（応答不要）電文を作成する。
+ *	電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ *	電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
+ *	プロパティコード、データサイズ、データを電文に設定する。
+ *	作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_seti(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
@@ -174,21 +140,17 @@
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼é»æä½æ
- * å¼æ°
- * T_EDATA			**ppk_esv	åå¾ããé»æã®æ ¼ç´å
-
- * ID				fa_deoj		å®å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * uint8_t			fa_epc		ãã­ããã£ã³ã¼ã
- * uint8_t			fa_pdc		ãã­ããã£å¤ãã¼ã¿ãµã¤ãº
- * const void		*p_edt		ãã­ããã£å¤ãã¼ã¿
+ * プロパティ値書き込み要求（応答要）電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
+ * uint8_t			fa_pdc		プロパティ値データサイズ
+ * const void		*p_edt		プロパティ値データ
  *
- *	ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼é»æãä½æããã
- *	é»æã¯deojã§æå®ããECHONETãªãã¸ã§ã¯ããå®å
-ã¨ãã
- *	é»æã®åãã®ãã­ããã£å¤ã¨ãã¦ãepcã¨pdcãp_edtã§æå®ããã
- *	ãã­ããã£ã³ã¼ãããã¼ã¿ãµã¤ãºããã¼ã¿ãé»æã«è¨­å®ããã
- *	ä½æããé»æã®å
-é ­ã¢ãã¬ã¹ã¯ãã¤ã³ã¿çµç±ã§è¿ãããã
+ *	プロパティ値書き込み要求（応答要）電文を作成する。
+ *	電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ *	電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
+ *	プロパティコード、データサイズ、データを電文に設定する。
+ *	作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_setc(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
@@ -199,19 +161,15 @@
 
 /*
- * ãã­ããã£å¤èª­ã¿åºãè¦æ±é»æä½æ
- * å¼æ°
- * T_EDATA			**ppk_esv	åå¾ããé»æã®æ ¼ç´å
-
- * ID				fa_deoj		å®å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * uint8_t			fa_epc		ãã­ããã£ã³ã¼ã
+ * プロパティ値読み出し要求電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
  *
- * ãã­ããã£å¤èª­ã¿åºãè¦æ±é»æãä½æããã
- * é»æã¯deojã§æå®ããECHONETãªãã¸ã§ã¯ããå®å
-ã¨ãã
- * é»æã®åãã®ãã­ããã£å¤ã¨ãã¦ãepcã§æå®ããã
- * ãã­ããã£ã³ã¼ããé»æã«è¨­å®ããã
- * ä½æããé»æã®å
-é ­ã¢ãã¬ã¹ã¯ãã¤ã³ã¿çµç±ã§è¿ãããã
+ * プロパティ値読み出し要求電文を作成する。
+ * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ * 電文の初めのプロパティ値として、epcで指定された
+ * プロパティコードを電文に設定する。
+ * 作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_get(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc)
@@ -221,19 +179,15 @@
 
 /*
- * ãã­ããã£å¤éç¥è¦æ±é»æä½æ
- * å¼æ°
- * T_EDATA			**ppk_esv	åå¾ããé»æã®æ ¼ç´å
-
- * ID				fa_deoj		å®å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * uint8_t			fa_epc		ãã­ããã£ã³ã¼ã
+ * プロパティ値通知要求電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
  *
- * ãã­ããã£å¤éç¥è¦æ±é»æãä½æããã
- * é»æã¯deojã§æå®ããECHONETãªãã¸ã§ã¯ããå®å
-ã¨ãã
- * é»æã®åãã®ãã­ããã£å¤ã¨ãã¦ãepcã§æå®ããã
- * ãã­ããã£ã³ã¼ããé»æã«è¨­å®ããã
- * ä½æããé»æã®å
-é ­ã¢ãã¬ã¹ã¯ãã¤ã³ã¿çµç±ã§è¿ãããã
+ * プロパティ値通知要求電文を作成する。
+ * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ * 電文の初めのプロパティ値として、epcで指定された
+ * プロパティコードを電文に設定する。
+ * 作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_inf_req(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc)
@@ -243,21 +197,17 @@
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æ
- * å¼æ°
- * T_EDATA			**ppk_esv	åå¾ããé»æã®æ ¼ç´å
-
- * ID				fa_deoj		å®å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * uint8_t			fa_epc		ãã­ããã£ã³ã¼ã
- * uint8_t			fa_pdc		ãã­ããã£å¤ãã¼ã¿ãµã¤ãº
- * const void		*p_edt		ãã­ããã£å¤ãã¼ã¿
+ * プロパティ値書き込み・読み出し要求電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
+ * uint8_t			fa_pdc		プロパティ値データサイズ
+ * const void		*p_edt		プロパティ値データ
  *
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æãä½æããã
- * é»æã¯deojã§æå®ããECHONETãªãã¸ã§ã¯ããå®å
-ã¨ãã
- * é»æã®åãã®ãã­ããã£å¤ã¨ãã¦ãepcã¨pdcãp_edtã§æå®ããã
- * ãã­ããã£ã³ã¼ãããã¼ã¿ãµã¤ãºããã¼ã¿ãé»æã«è¨­å®ããã
- * ä½æããé»æã®å
-é ­ã¢ãã¬ã¹ã¯ãã¤ã³ã¿çµç±ã§è¿ãããã
+ * プロパティ値書き込み・読み出し要求電文を作成する。
+ * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ * 電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
+ * プロパティコード、データサイズ、データを電文に設定する。
+ * 作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_set_get(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
@@ -268,9 +218,7 @@
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æï¼æãè¿ãæå®
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æä¸­ã®ãæ¸ãè¾¼ã¿ãã­ããã£é
-åãçµãã¦
- * èª­ã¿åºããã­ããã£é
-åã«ç§»ãæã«ç¨ããã
+ * プロパティ値書き込み・読み出し要求電文作成：折り返し指定
+ * プロパティ値書き込み・読み出し要求電文作成中の、書き込みプロパティ配列を終えて
+ * 読み出しプロパティ配列に移る時に用いる。
  */
 ER ecn_trn_set_get(mrb_state *mrb, T_EDATA *ppk_esv, int *p_trn_pos)
@@ -283,9 +231,8 @@
 		return E_PAR;
 
-	/* ãã­ããã£èª­ã¿è¾¼ã¿ä»¶æ°æ¸ãè¾¼ã¿æã®ãããæ
-å ±ãè¨é² */
+	/* プロパティ読み込み件数書き込み時のヘッド情報を記録 */
 	*p_trn_pos = _ecn_fbs_get_datalen(*(ECN_FBS_ID *)&ppk_esv);
 
-	/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å ã»ãã®æç¹ã§ã®å¿ç­é»æä¸­ãã­ããã£ä»¶æ°ãè¨é² */
+	/* 応答電文用メモリにデータ追加・この時点での応答電文中プロパティ件数を記録 */
 	a_ret = _ecn_fbs_add_data_ex(mrb, *(ECN_FBS_ID *)&ppk_esv, &ppk_esv->hdr.edata.opc, 1);
 	if (a_ret) {
@@ -294,5 +241,5 @@
 	}
 
-	/* å¿ç­é»æä¸­ãã­ããã£ä»¶æ°ã 0 ã«æ»ãï¼ä»å¾ãçµäºæå®ããã¾ã§ã¯èª­ã¿åºããã­ããã£ä»¶æ°ã«ãªãï¼ */
+	/* 応答電文中プロパティ件数を 0 に戻す（今後、終了指定するまでは読み出しプロパティ件数になる） */
 	ppk_esv->hdr.edata.opc = 0;
 
@@ -301,7 +248,6 @@
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æï¼çµäºæå®
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æä¸­ã®ãèª­ã¿åºããã­ããã£é
-åãçµããæã«ç¨ããã
+ * プロパティ値書き込み・読み出し要求電文作成：終了指定
+ * プロパティ値書き込み・読み出し要求電文作成中の、読み出しプロパティ配列を終える時に用いる。
  */
 ER ecn_end_set_get(mrb_state *mrb, T_EDATA *ppk_esv, int fa_trn_pos)
@@ -314,8 +260,8 @@
 		return E_PAR;
 
-	/* ãã®æç¹ã§ã®å¿ç­é»æä¸­ãã­ããã£ä»¶æ°(èª­ã¿åºããã­ããã£ä»¶æ°)ãä¿æ */
+	/* この時点での応答電文中プロパティ件数(読み出しプロパティ件数)を保持 */
 	a_rd_opc = ppk_esv->hdr.edata.opc;
 
-	/* å¿ç­é»æä¸­ãã­ããã£ä»¶æ°(æ¸ãè¾¼ã¿ãã­ããã£ä»¶æ°)ãä¿å­ä½ç½®ããèª­ã¿åã */
+	/* 応答電文中プロパティ件数(書き込みプロパティ件数)を保存位置から読み取り */
 	a_wr_opc = _ecn_fbs_peek(mrb, *(ECN_FBS_ID *)&ppk_esv, fa_trn_pos);
 	if (a_wr_opc < 0) {
@@ -324,9 +270,8 @@
 	}
 
-	/* å¿ç­é»æä¸­ãã­ããã£ä»¶æ°(æ¸ãè¾¼ã¿ãã­ããã£ä»¶æ°)ãå¾©å
- */
+	/* 応答電文中プロパティ件数(書き込みプロパティ件数)を復元 */
 	ppk_esv->hdr.edata.opc = (uint8_t)a_wr_opc;
 
-	/* å¿ç­é»æä¸­ãã­ããã£ä»¶æ°(èª­ã¿åºããã­ããã£ä»¶æ°)ãä¿å­ä½ç½®ã«æ¸ãè¾¼ã¿ */
+	/* 応答電文中プロパティ件数(読み出しプロパティ件数)を保存位置に書き込み */
 	a_ret = _ecn_fbs_poke(mrb, *(ECN_FBS_ID *)&ppk_esv, fa_trn_pos, a_rd_opc);
 	if (a_ret) {
@@ -339,14 +284,10 @@
 
 /*
- * ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼é»æä½æ
- * å¼æ°
- * T_EDATA			**ppk_esv	åå¾ããé»æã®æ ¼ç´å
-
- * ID				fa_deoj		å®å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * ID				fa_seoj		éä¿¡å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * uint8_t			fa_sepc		éä¿¡å
-ã®ãã­ããã£ã³ã¼ã
+ * プロパティ値通知（応答要）電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * ID				fa_seoj		送信元のECHONETオブジェクトID
+ * uint8_t			fa_sepc		送信元のプロパティコード
  */
 ER ecn_esv_infc(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, ID fa_seoj, uint8_t fa_sepc)
@@ -356,5 +297,5 @@
 
 /*
- * è¦æ±é»æã¸ã®ãã­ããã£æå®è¿½å  (ãã­ããã£ãã¼ã¿ãä»éããªãå ´åã«ç¨ãã)
+ * 要求電文へのプロパティ指定追加 (プロパティデータが付随しない場合に用いる)
  */
 ER ecn_add_epc(mrb_state *mrb, T_EDATA *pk_esv, uint8_t epc)
@@ -364,5 +305,5 @@
 
 /*
- * è¦æ±é»æã¸ã®ãã­ããã£ãã¼ã¿è¿½å  (ãã­ããã£ããã³ä»éãã¼ã¿ãè¿½å ãã)
+ * 要求電文へのプロパティデータ追加 (プロパティおよび付随データを追加する)
  */
 ER ecn_add_edt(mrb_state *mrb, T_EDATA *pk_esv, uint8_t fa_epc, uint8_t fa_pdc, const void *p_edt)
@@ -373,16 +314,15 @@
 
 	if (!pk_esv)
-		return E_PAR; /* åå¾ããFBS_IDã®æ ¼ç´å
-ãNULL */
+		return E_PAR; /* 取得したFBS_IDの格納先がNULL */
 	if (ECHONET_MEMPOOL_BLOCK_SIZE <= fa_pdc)
-		return E_PAR; /* ãã­ããã£å¤ãµã¤ãºãå¤§ãããã */
+		return E_PAR; /* プロパティ値サイズが大きすぎる */
 	if (!p_edt && 0 < fa_pdc)
-		return E_PAR; /* ãã­ããã£å¤ãµã¤ãºã1ä»¥ä¸ãªã®ã«ãã¼ã¿ãã¤ã³ã¿ã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; /* ãã­ããã£ãå¤ããã */
-
-	/* è¦æ±é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å  */
+		return E_PAR; /* プロパティが多すぎる */
+
+	/* 要求電文用メモリにデータ追加 */
 	memset(&a_ecn_prp, 0, sizeof(a_ecn_prp));
 	a_ecn_prp.epc = fa_epc;
@@ -395,5 +335,5 @@
 	}
 	if (0 < fa_pdc) {
-		/* ä»éãã¼ã¿è¿½å  */
+		/* 付随データ追加 */
 		a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_id, p_edt, fa_pdc);
 		if (a_ret) {
@@ -403,5 +343,5 @@
 		}
 	}
-	/* ãã­ããã£æ°ã¤ã³ã¯ãªã¡ã³ã */
+	/* プロパティ数インクリメント */
 	((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc++;
 
@@ -411,8 +351,7 @@
 
 /*
- * è¦æ±é»æã®éä¿¡
- * esvã§æå®ãããè¦æ±é»æãéä¿¡ããã
- * é»æã«æå®ãããå®å
-ããéä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ãç¹å®ããUDPãã±ããã¨ãã¦éä¿¡ããã
+ * 要求電文の送信
+ * esvで指定された要求電文を送信する。
+ * 電文に指定された宛先から通信レイヤーアドレスを特定し、UDPパケットとして送信する。
  */
 ER ecn_snd_esv(ecnl_svc_task_t *svc, T_EDATA *pk_esv)
@@ -424,11 +363,8 @@
 
 /*
- * å¿ç­é»æã®åä¿¡ãã¼ãªã³ã°
- * å¿ç­é»æãåä¿¡ããã®ãå¾
-ã¤ã
- * åä¿¡ããå¿ç­é»æã¯ppk_esvã§æå®ãããã¤ã³ã¿ã¼ã«å
-é ­ã¢ãã¬ã¹ãè¿ãããã
- * å¿ç­é»æã®åä¿¡ã®æç¡ã«ããããããå¾
-ããã«é¢æ°ãæããã
+ * 応答電文の受信ポーリング
+ * 応答電文を受信するのを待つ。
+ * 受信した応答電文はppk_esvで指定したポインターに先頭アドレスが返される。
+ * 応答電文の受信の有無にかかわらず、待たずに関数を抜ける。
  */
 ER ecn_prcv_esv(ecnl_svc_task_t *svc, T_EDATA **ppk_esv)
@@ -451,5 +387,5 @@
 
 /*
- * å¿ç­é»æã®ç ´æ£
+ * 応答電文の破棄
  */
 ER ecn_rel_esv(mrb_state *mrb, T_EDATA *pk_esv)
@@ -464,6 +400,5 @@
 
 /*
- * å¿ç­é»æã®éä¿¡å
-ãã¼ããåå¾ãã
+ * 応答電文の送信元ノードを取得する
  */
 ID ecn_get_enod(ecnl_svc_task_t *svc, T_EDATA *pk_esv)
@@ -487,6 +422,5 @@
 
 /*
- * å¿ç­é»æã®éä¿¡å
-æ©å¨ãªãã¸ã§ã¯ããåå¾ãã
+ * 応答電文の送信元機器オブジェクトを取得する
  */
 ID ecn_get_eobj(ecnl_svc_task_t *svc, T_EDATA *pk_esv)
@@ -499,10 +433,10 @@
 	p_snod = _ecn_eno_fnd(svc, ((T_ECN_FST_BLK *)pk_esv)->hdr.sender.id);
 	if (p_snod != NULL) {
-		/* ãã¼ããã­ãã¡ã¤ã«ã®å ´å */
+		/* ノードプロファイルの場合 */
 		if ((p_esv->edata.seoj.eojx1 == EOJ_X1_PROFILE)
 			&& (p_esv->edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
 			p_sobj = p_snod->profile;
 		}
-		/* æ©å¨ãªãã¸ã§ã¯ãã®å ´å */
+		/* 機器オブジェクトの場合 */
 		else {
 			p_sobj = _ecn_eoj_fnd(p_snod, &p_esv->edata.seoj);
@@ -520,5 +454,5 @@
 
 /*
- * å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼åæå
+ * 応答電文解析イテレーター初期化
  */
 ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv)
@@ -532,14 +466,14 @@
 	pk_itr->pk_esv = pk_esv;
 	pk_itr->count = pk_esv->hdr.edata.opc;
-								/* ä»ã®ãã­ãã¯ã§ã®ãã­ããã£ç·æ° */
-	pk_itr->got_ct = 0;			/* ä»ã®ãã­ãã¯ã§ãèª­ã¿åã£ãæ° */
-	pk_itr->next_blk_ct = 0;	/* å¾ç¶ãã­ãã¯æ° */
-	pk_itr->is_eof = 0;			/* çµç«¯ã«éããæãé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 ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±		*/
-	case ESV_SET_GET_RES:	/* 0x7E ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãå¿ç­		*/
-	case ESV_SET_GET_SNA:	/* 0x5E	ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãä¸å¯å¿ç­	*/
+	case ESV_SET_GET:		/* 0x6E プロパティ値書き込み・読み出し要求		*/
+	case ESV_SET_GET_RES:	/* 0x7E プロパティ値書き込み・読み出し応答		*/
+	case ESV_SET_GET_SNA:	/* 0x5E	プロパティ値書き込み・読み出し不可応答	*/
 		pk_itr->next_blk_ct ++;
 	default:
@@ -551,5 +485,5 @@
 
 /*
- * å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼ã¤ã³ã¯ãªã¡ã³ã
+ * 応答電文解析イテレーターインクリメント
  */
 ER ecn_itr_nxt(mrb_state *mrb, T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt)
@@ -571,14 +505,13 @@
 
 	if (pk_itr->is_eof)
-		return E_BOVR; /* ãã¼ã¿çµäº */
+		return E_BOVR; /* データ終了 */
 	if (pk_itr->count <= pk_itr->got_ct && pk_itr->next_blk_ct < 1) {
-		pk_itr->is_eof = 1;			/* çµç«¯ã«éããæãé0 */
-		return E_BOVR; /* ãã¼ã¿çµäº */
+		pk_itr->is_eof = 1;			/* 終端に達した時、非0 */
+		return E_BOVR; /* データ終了 */
 	}
 
 	a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_itr->pk_esv;
 
-	/* å
-ã®ã«ã¼ã½ã«ä½ç½®ãä¿å­ããã¤ãã¬ã¼ã¿ã®ã«ã¼ã½ã«ä½ç½®ã«ãã */
+	/* 元のカーソル位置を保存し、イテレータのカーソル位置にする */
 	a_rd_bak = a_fbs_id.ptr->hdr.rd;
 	a_fbs_id.ptr->hdr.rd = pk_itr->cur;
@@ -588,10 +521,10 @@
 #endif
 	if (pk_itr->count <= pk_itr->got_ct && 0 < pk_itr->next_blk_ct) {
-		/* æ¬¡ãã­ãã¯ã«ç§»å */
+		/* 次ブロックに移動 */
 		pk_itr->next_blk_ct --;
-		pk_itr->count = 0;		/* ä»ã®ãã­ãã¯ã§ã®ãã­ããã£ç·æ° */
-		pk_itr->got_ct = 0;		/* ä»ã®ãã­ãã¯ã§ãèª­ã¿åã£ãæ° */
-
-		/* æ¬¡ãã­ãã¯ã®ãã­ããã£æ°ãèª­ã¿åã */
+		pk_itr->count = 0;		/* 今のブロックでのプロパティ総数 */
+		pk_itr->got_ct = 0;		/* 今のブロックで、読み取った数 */
+
+		/* 次ブロックのプロパティ数を読み取る */
 		a_rd_len = 0;
 		a_ret = _ecn_fbs_get_data(mrb, a_fbs_id, &a_ecn_prp.pdc, 1, &a_rd_len);
@@ -599,11 +532,11 @@
 			goto lb_except;
 		if (0 < a_rd_len) {
-			pk_itr->count = a_ecn_prp.pdc;	/* ä»ã®ãã­ãã¯ã§ã®ãã­ããã£ç·æ° */
+			pk_itr->count = a_ecn_prp.pdc;	/* 今のブロックでのプロパティ総数 */
 		}
-		a_ret = E_BOVR;	/* ãã¼ã¿çµäº */
+		a_ret = E_BOVR;	/* データ終了 */
 		goto lb_finally;
 	}
 
-	/* ãã­ããã£ã³ã¼ãã¨ãã¼ã¿ãµã¤ãºãèª­ã¿åã */
+	/* プロパティコードとデータサイズを読み取る */
 	memset(&a_ecn_prp, 0, sizeof(a_ecn_prp));
 	a_rd_len = 0;
@@ -613,6 +546,6 @@
 	if (a_rd_len < sizeof(a_ecn_prp)) {
 		ECN_DBG_PUT_1("ecn_itr_nxt() ecn_prp read fault. rd.cur=%d", pk_itr->cur);
-		pk_itr->is_eof = 1;			/* çµç«¯ã«éããæãé0 */
-		a_ret = E_BOVR;	/* ãã¼ã¿çµäº */
+		pk_itr->is_eof = 1;			/* 終端に達した時、非0 */
+		a_ret = E_BOVR;	/* データ終了 */
 		goto lb_finally;
 	}
@@ -627,5 +560,5 @@
 		}
 		else {
-			/* ä»éãã¼ã¿ãèª­ã¿åã */
+			/* 付随データを読み取る */
 			a_rd_len = 0;
 			a_ret = _ecn_fbs_get_data(mrb, a_fbs_id, p_edt, a_ecn_prp.pdc, &a_rd_len);
@@ -635,6 +568,6 @@
 				ECN_DBG_PUT_3("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);
-				pk_itr->is_eof = 1;			/* çµç«¯ã«éããæãé0 */
-				a_ret = E_BOVR;	/* ãã¼ã¿çµäº */
+				pk_itr->is_eof = 1;			/* 終端に達した時、非0 */
+				a_ret = E_BOVR;	/* データ終了 */
 				goto lb_finally;
 			}
@@ -648,10 +581,9 @@
 
 lb_finally:
-	/* ã¤ãã¬ã¼ã¿ã®ã«ã¼ã½ã«ä½ç½®ãæ´æ° */
+	/* イテレータのカーソル位置を更新 */
 	pk_itr->cur = a_fbs_id.ptr->hdr.rd;
 
 lb_except:
-	/* å
-ã®ã«ã¼ã½ã«ä½ç½®ã«æ»ã */
+	/* 元のカーソル位置に戻す */
 	a_fbs_id.ptr->hdr.rd = a_rd_bak;
 	return a_ret;
@@ -659,19 +591,17 @@
 
 /*
- * å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿éä¿¡
+ * 応答電文待ちの割り込み送信
  */
 ER ecn_brk_wai(ecnl_svc_task_t *svc, const void *p_dat, int fa_datsz)
 {
 	ER				a_ret;
-	ECN_FBS_ID		a_fbs_id = { 0 };	/* è¦æ±é»æç¨ã¡ã¢ãª	*/
-
-	/* å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿é»æä½æ */
+	ECN_FBS_ID		a_fbs_id = { 0 };	/* 要求電文用メモリ	*/
+
+	/* 応答電文待ちの割り込み電文作成 */
 	a_ret = _ecn_mk_brk_wai(svc, &a_fbs_id, p_dat, fa_datsz);
 	if (a_ret)
 		return a_ret;
 
-	/* å²ãè¾¼ã¿éä¿¡ */
+	/* 割り込み送信 */
 	a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_id, true);
 	if (a_ret) {
@@ -681,9 +611,9 @@
 	}
 
-	/* æ­£å¸¸çµäº */
+	/* 正常終了 */
 	return a_ret;
 
 lb_except:
-	/* ãã¼ã¿ä½æå¤±æãããé åè§£æ¾ */
+	/* データ作成失敗したら領域解放 */
 	if (a_fbs_id.ptr)
 		_ecn_fbs_del(svc->mrb, a_fbs_id);
@@ -693,5 +623,5 @@
 
 /*
- * å²ãè¾¼ã¿ãã¼ã¿ã®åå¾
+ * 割り込みデータの取得
  */
 ER ecn_get_brk_dat(mrb_state *mrb, T_EDATA *pk_esv, void *p_buf, int fa_bufsz, int *p_datsz)
@@ -713,6 +643,5 @@
 	}
 
-	/* èª­ã¿åãä½ç½®ãå
-é ­ã«æ»ã */
+	/* 読み取り位置を先頭に戻す */
 	a_ret = _ecn_fbs_set_rpos(a_fbs, 0);
 	if (a_ret) {
@@ -722,5 +651,5 @@
 	}
 
-	/* ä»éãã¼ã¿ãèª­ã¿è¾¼ã */
+	/* 付随データを読み込む */
 	if (p_buf && 0 < fa_bufsz) {
 		a_len = 0;
@@ -739,5 +668,5 @@
 #ifndef ECN_USER_DATA_PROP_SET
 /*
- * ãã¼ã¿è¨­å®é¢æ°
+ * データ設定関数
  */
 int ecn_data_prop_set(ecnl_svc_task_t *svc, const EPRPINIB *item, const void *src, int size, bool_t *anno)
@@ -757,5 +686,5 @@
 #ifndef ECN_USER_DATA_PROP_GET
 /*
- * ãã¼ã¿åå¾é¢æ°
+ * データ取得関数
  */
 int ecn_data_prop_get(ecnl_svc_task_t *svc, const EPRPINIB *item, void *dst, int size)
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
@@ -64,67 +49,63 @@
 
 #ifndef TOPPERS_T_STDDEF_H
-typedef char			bool_t;		/* çå½å¤ */
-
-typedef signed int		int_t;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ä»ãæ´æ° */
-typedef unsigned int	uint_t;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ç¡ãæ´æ° */
-
-typedef int_t			ER;			/* ã¨ã©ã¼ã³ã¼ã */
-typedef int_t			ID;			/* ãªãã¸ã§ã¯ãã®IDçªå· */
-typedef uint_t			ATR;		/* ãªãã¸ã§ã¯ãã®å±æ§ */
-typedef int_t			TMO;		/* ã¿ã¤ã ã¢ã¦ãæå® */
+typedef char			bool_t;		/* 真偽値 */
+
+typedef signed int		int_t;		/* 自然なサイズの符号付き整数 */
+typedef unsigned int	uint_t;		/* 自然なサイズの符号無し整数 */
+
+typedef int_t			ER;			/* エラーコード */
+typedef int_t			ID;			/* オブジェクトのID番号 */
+typedef uint_t			ATR;		/* オブジェクトの属性 */
+typedef int_t			TMO;		/* タイムアウト指定 */
 
 #ifndef NULL
-#define NULL		0			/* ç¡å¹ãã¤ã³ã¿ */
+#define NULL		0			/* 無効ポインタ */
 #endif /* NULL */
 
 #ifndef true
-#define true		1			/* ç */
+#define true		1			/* 真 */
 #endif /* true */
 
 #ifndef false
-#define false		0			/* å½ */
+#define false		0			/* 偽 */
 #endif /* false */
 
-#define E_OK		0			/* æ­£å¸¸çµäº */
-
-#define E_SYS		(-5)		/* ã·ã¹ãã ã¨ã©ã¼ */
-#define E_PAR		(-17)		/* ãã©ã¡ã¼ã¿ã¨ã©ã¼ */
-#define E_NOMEM		(-33)		/* ã¡ã¢ãªä¸è¶³ */
-#define E_OBJ		(-41)		/* ãªãã¸ã§ã¯ãç¶æ
-ã¨ã©ã¼ */
-#define E_NOEXS		(-42)		/* ãªãã¸ã§ã¯ãæªçæ */
-#define E_TMOUT		(-50)		/* ãã¼ãªã³ã°å¤±æã¾ãã¯ã¿ã¤ã ã¢ã¦ã */
-#define E_BOVR		(-58)		/* ãããã¡ãªã¼ãã¼ãã­ã¼ */
-#define E_BRK		(-100)		/* ã¦ã¼ã¶ã¼ã«ããä¸­æ­ */
-
-#define TMO_FEVR	(-1)		/* æ°¸ä¹
-å¾
-ã¡ */
+#define E_OK		0			/* 正常終了 */
+
+#define E_SYS		(-5)		/* システムエラー */
+#define E_PAR		(-17)		/* パラメータエラー */
+#define E_NOMEM		(-33)		/* メモリ不足 */
+#define E_OBJ		(-41)		/* オブジェクト状態エラー */
+#define E_NOEXS		(-42)		/* オブジェクト未生成 */
+#define E_TMOUT		(-50)		/* ポーリング失敗またはタイムアウト */
+#define E_BOVR		(-58)		/* バッファオーバーフロー */
+#define E_BRK		(-100)		/* ユーザーによる中断 */
+
+#define TMO_FEVR	(-1)		/* 永久待ち */
 #endif
 
 #define EOBJ_NULL 0x00
-#define EOBJ_LOCAL_NODE 0x01			/* èªãã¼ã */
-#define EOBJ_SYNC_REMOTE_NODE 0x02		/* ä»ãã¼ã */
-#define EOBJ_ASYNC_REMOTE_NODE 0x04		/* ä»ãã¼ãï¼éåæï¼ */
-#define EOBJ_DEVICE 0x08				/* æ©å¨ãªãã¸ã§ã¯ã */
+#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				/* ã¢ã¯ã»ã¹ã«ã¼ã« Set */
-#define EPC_RULE_GET 0x02				/* ã¢ã¯ã»ã¹ã«ã¼ã« Get */
-#define EPC_RULE_ANNO 0x04				/* ã¢ã¯ã»ã¹ã«ã¼ã« Anno */
-#define EPC_ANNOUNCE 0x40				/* ç¶æ
-å¤åæéç¥ */
-#define EPC_VARIABLE 0x80				/* å¯å¤é·ãã¼ã¿ */
+#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,			/* ã¢ãã¬ã¹IDç»é²ãªã */
-	ENOD_MULTICAST_ID	= 0,			/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ID */
-	ENOD_LOCAL_ID		= 1,			/* èªãã¼ãã¢ãã¬ã¹ID */
-	ENOD_API_ID			= 2,			/* APIã¢ãã¬ã¹ID */
-	ENOD_REMOTE_ID		= 3,			/* ä»ãã¼ãã¢ãã¬ã¹ID */
+	ENOD_NOT_MATCH_ID	= -1,			/* アドレスID登録なし */
+	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 Liteè¦æ ¼ */
+/* ECHONET Lite規格 */
 typedef enum
 {
@@ -132,31 +113,31 @@
 } ECN_EHD1_ECL_VERSION;
 
-/* é»æå½¢å¼1/2 */
+/* 電文形式1/2 */
 typedef enum
 {
-	ECN_EDH2_FORMAT_1 = 0x81,	/* é»æå½¢å¼1 */
-	ECN_EDH2_FORMAT_2 = 0x82	/* é»æå½¢å¼2 */
+	ECN_EDH2_FORMAT_1 = 0x81,	/* 電文形式1 */
+	ECN_EDH2_FORMAT_2 = 0x82	/* 電文形式2 */
 } ECN_EHD2_FORMAT;
 
-/* ECHONET Liteãµã¼ãã¹ã³ã¼ã */
+/* ECHONET Liteサービスコード */
 typedef enum _echonet_service_code
 {
-	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	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãä¸å¯å¿ç­	*/
+	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;
 
@@ -173,48 +154,46 @@
 
 /*
- *  ECHONET Liteé»æãããã¼
+ *  ECHONET Lite電文ヘッダー
  */
 typedef struct
 {
-	uint8_t	ehd1;		/* ECHONET Liteé»æãããã¼1 ECN_EHD1_ECL_VERSION */
-	uint8_t	ehd2;		/* ECHONET Liteé»æãããã¼2 ECN_EHD2_FORMAT */
-	uint16_t	tid;	/* ãã©ã³ã¶ã¯ã·ã§ã³ID */
+	uint8_t	ehd1;		/* ECHONET Lite電文ヘッダー1 ECN_EHD1_ECL_VERSION */
+	uint8_t	ehd2;		/* ECHONET Lite電文ヘッダー2 ECN_EHD2_FORMAT */
+	uint16_t	tid;	/* トランザクションID */
 } __attribute__((packed)) T_ECN_HDR;
 
 /*
- *  ECHONET Liteãªãã¸ã§ã¯ãã³ã¼ã
+ *  ECHONET Liteオブジェクトコード
  */
 typedef struct
 {
-	uint8_t	eojx1;		/* ã¯ã©ã¹ã°ã«ã¼ãã³ã¼ã */
-	uint8_t	eojx2;		/* ã¯ã©ã¹ã³ã¼ã */
-	uint8_t	eojx3;		/* ã¤ã³ã¹ã¿ã³ã¹ã³ã¼ã */
+	uint8_t	eojx1;		/* クラスグループコード */
+	uint8_t	eojx2;		/* クラスコード */
+	uint8_t	eojx3;		/* インスタンスコード */
 } __attribute__((packed)) T_ECN_EOJ;
 
 /*
- *  ECHONET Liteãã¼ã¿ãããã¼
+ *  ECHONET Liteデータヘッダー
  */
 typedef struct
 {
-	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_EOJ	seoj;	/* 送信元ECHONET Liteオブジェクト指定 */
+	T_ECN_EOJ	deoj;	/* 相手先ECHONET Liteオブジェクト指定 */
+	uint8_t	esv;		/* ECHONET Liteサービス (ECN_SRV_CODE) */
+	uint8_t	opc;		/* 処理プロパティ数 */
 } __attribute__((packed)) T_ECN_EDATA_BODY;
 
 /*
- *  ECHONET Liteãã­ããã£
+ *  ECHONET Liteプロパティ
  */
 typedef struct
 {
-	uint8_t	epc;		/* ECHONET Liteãã­ããã£ã³ã¼ã */
-	uint8_t	pdc;		/* EDTã®ãã¤ãæ° */
-	/*void	*p_edt;*/	/* ãã­ããã£å¤ãã¼ã¿ */
+	uint8_t	epc;		/* ECHONET Liteプロパティコード */
+	uint8_t	pdc;		/* EDTのバイト数 */
+	/*void	*p_edt;*/	/* プロパティ値データ */
 } __attribute__((packed)) T_ECN_PRP;
 
 /*
- *  ECHONET Liteãã¼ã¿
+ *  ECHONET Liteデータ
  */
 typedef struct
@@ -226,5 +205,5 @@
 
 /*
- *  ECHONET Lite é»æ
+ *  ECHONET Lite 電文
  */
 typedef struct echonet_object_data
@@ -246,13 +225,13 @@
 
 /*
- *  å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼
+ *  応答電文解析イテレーター
  */
 typedef struct echonet_epc_enumerator
 {
 	T_EDATA *pk_esv;
-	uint8_t count;			/* ä»èª­ã¿åãä¸­ã®ãã­ãã¯ã«ãããã­ããã£ç·æ° */
-	uint8_t got_ct;			/* ä»èª­ã¿åãä¸­ã®ãã­ãã¯ã§ãèª­ã¿åã£ãæ° */
-	uint8_t next_blk_ct;	/* å¾ç¶ãã­ãã¯æ° */
-	uint8_t is_eof;			/* çµç«¯ã«éããæãé0 */
+	uint8_t count;			/* 今読み取り中のブロックにあるプロパティ総数 */
+	uint8_t got_ct;			/* 今読み取り中のブロックで、読み取った数 */
+	uint8_t next_blk_ct;	/* 後続ブロック数 */
+	uint8_t is_eof;			/* 終端に達した時、非0 */
 	int cur;
 } T_ENUM_EPC;
@@ -263,57 +242,55 @@
 
 /*
- * ECHONET Lite ãã­ããã£ã®è¨­å®é¢æ°
+ * ECHONET Lite プロパティの設定関数
  */
 typedef int (EPRP_SETTER)(ecnl_svc_task_t *svc, const EPRPINIB *item, const void *src, int size, bool_t *anno);
 
 /*
- * ECHONET Lite ãã­ããã£ã®åå¾é¢æ°
+ * ECHONET Lite プロパティの取得関数
  */
 typedef int (EPRP_GETTER)(ecnl_svc_task_t *svc, const EPRPINIB *item, void *dst, int size);
 
 /*
- *  ECHONET Lite ãã­ããã£åæåãã­ãã¯
+ *  ECHONET Lite プロパティ初期化ブロック
  */
 struct echonet_property_initialization_block
 {
-	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 ãã­ããã£ã®åå¾é¢æ° */
+	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 ãªãã¸ã§ã¯ãIDã®æå°å¤ */
-
-/*
- *  ECHONET Lite ãªãã¸ã§ã¯ãåæåãã­ãã¯
+#define TMIN_EOBJID		1		/* ECHONET Lite オブジェクトIDの最小値 */
+
+/*
+ *  ECHONET Lite オブジェクト初期化ブロック
  */
 typedef struct echonet_object_initialization_block
 {
-	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 ãã­ããã£åæåãã­ãã¯æ° */
+	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 ãã¼ãç®¡çãã­ãã¯
+ *  ECHONET Lite ノード管理ブロック
  */
 typedef struct echonet_object_control_block
 {
-	const EOBJINIB *profile;	/* ECHONET Lite ãã¼ããã­ãã¡ã¤ã«ã¸ã®ãã¤ã³ã¿ */
-	const EOBJINIB **eobjs;		/* ECHONET Lite ãªãã¸ã§ã¯ããªã¹ãã¸ã®ãã¤ã³ã¿ */
-	uint_t		eobjcnt;		/* ECHONET Lite ãªãã¸ã§ã¯ãæ° */
+	const EOBJINIB *profile;	/* ECHONET Lite ノードプロファイルへのポインタ */
+	const EOBJINIB **eobjs;		/* ECHONET Lite オブジェクトリストへのポインタ */
+	uint_t		eobjcnt;		/* ECHONET Lite オブジェクト数 */
 } EOBJCB;
 
 /*
- *  ECHONET Lite ãªãã¸ã§ã¯ãæ©è½ã®åæå
+ *  ECHONET Lite オブジェクト機能の初期化
  */
 extern void initialize_echonet_object(void);
@@ -324,125 +301,120 @@
 
 /*
- * ECHONET Liteãµã¼ãã¹å¦çéå§
+ * ECHONET Liteサービス処理開始
  */
 ER ecn_sta_svc(ecnl_svc_task_t *svc);
 
 /*
- * ECHONETãªãã¸ã§ã¯ãåç
-§
+ * ECHONETオブジェクト参照
  */
 ER ecn_ref_eobj(ecnl_svc_task_t *svc, ID eobjid, T_REOBJ *pk_eobj);
 
 /*
- * ECHONETãã­ããã£åç
-§
+ * ECHONETプロパティ参照
  */
 ER ecn_ref_eprp(ecnl_svc_task_t *svc, ID eobjid, uint8_t epc, T_RPRP *pk_eprp);
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼é»æä½æ
+ * プロパティ値書き込み要求（応答不要）電文作成
  */
 ER ecn_esv_seti(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼é»æä½æ
+ * プロパティ値書き込み要求（応答要）電文作成
  */
 ER ecn_esv_setc(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
 
 /*
- * ãã­ããã£å¤èª­ã¿åºãè¦æ±é»æä½æ
+ * プロパティ値読み出し要求電文作成
  */
 ER ecn_esv_get(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID eobjid, uint8_t epc);
 
 /*
- * ãã­ããã£å¤éç¥è¦æ±é»æä½æ
+ * プロパティ値通知要求電文作成
  */
 ER ecn_esv_inf_req(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID eobjid, uint8_t epc);
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æ
+ * プロパティ値書き込み・読み出し要求電文作成
  */
 ER ecn_esv_set_get(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»ææãè¿ãæå®
+ * プロパティ値書き込み・読み出し要求電文折り返し指定
  */
 ER ecn_trn_set_get(mrb_state *mrb, T_EDATA *pk_esv, int *p_trn_pos);
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æçµäºæå®
+ * プロパティ値書き込み・読み出し要求電文終了指定
  */
 ER ecn_end_set_get(mrb_state *mrb, T_EDATA *pk_esv, int trn_pos);
 
 /*
- * ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼é»æä½æ
+ * プロパティ値通知（応答要）電文作成
  */
 ER ecn_esv_infc(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID eobjid, ID seobjid, uint8_t sepc);
 
 /*
- * è¦æ±é»æã¸ã®ãã­ããã£æå®è¿½å 
+ * 要求電文へのプロパティ指定追加
  */
 ER ecn_add_epc(mrb_state *mrb, T_EDATA *pk_esv, uint8_t epc);
 
 /*
- * è¦æ±é»æã¸ã®ãã­ããã£ãã¼ã¿è¿½å 
+ * 要求電文へのプロパティデータ追加
  */
 ER ecn_add_edt(mrb_state *mrb, T_EDATA *pk_esv, uint8_t epc, uint8_t pdc, const void *p_edt);
 
 /*
- * è¦æ±é»æã®éä¿¡
+ * 要求電文の送信
  */
 ER ecn_snd_esv(ecnl_svc_task_t *svc, T_EDATA *pk_esv);
 
 /*
- * å¿ç­é»æã®åä¿¡ãã¼ãªã³ã°
+ * 応答電文の受信ポーリング
  */
 ER ecn_prcv_esv(ecnl_svc_task_t *svc, T_EDATA **ppk_esv);
 
 /*
- * å¿ç­é»æã®ç ´æ£
+ * 応答電文の破棄
  */
 ER ecn_rel_esv(mrb_state *mrb, T_EDATA *pk_esv);
 
 /*
- * å¿ç­é»æã®éä¿¡å
-ãã¼ããåå¾ãã
+ * 応答電文の送信元ノードを取得する
  */
 ID ecn_get_enod(ecnl_svc_task_t *svc, T_EDATA *pk_esv);
 
 /*
- * å¿ç­é»æã®éä¿¡å
-æ©å¨ãªãã¸ã§ã¯ããåå¾ãã
+ * 応答電文の送信元機器オブジェクトを取得する
  */
 ID ecn_get_eobj(ecnl_svc_task_t *svc, T_EDATA *pk_esv);
 
 /*
- * å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼åæå
+ * 応答電文解析イテレーター初期化
  */
 ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv);
 
 /*
- * å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼ã¤ã³ã¯ãªã¡ã³ã
+ * 応答電文解析イテレーターインクリメント
  */
 ER ecn_itr_nxt(mrb_state *mrb, T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt);
 
 /*
- * å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿éä¿¡
+ * 応答電文待ちの割り込み送信
  */
 ER ecn_brk_wai(ecnl_svc_task_t *svc, const void *p_dat, int datsz);
 
 /*
- * å²ãè¾¼ã¿ãã¼ã¿ã®åå¾
+ * 割り込みデータの取得
  */
 ER ecn_get_brk_dat(mrb_state *mrb, T_EDATA *pk_esv, void *p_buf, int bufsz, int *p_datsz);
 
 /*
- * ãã¼ã¿è¨­å®é¢æ°
+ * データ設定関数
  */
 int ecn_data_prop_set(ecnl_svc_task_t *svc, const EPRPINIB *item, const void *src, int size, bool_t *anno);
 
 /*
- * ãã¼ã¿åå¾é¢æ°
+ * データ取得関数
  */
 int ecn_data_prop_get(ecnl_svc_task_t *svc, const EPRPINIB *item, void *dst, int size);
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_agent.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_agent.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_agent.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2015-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,5 +37,5 @@
 
 /*
- *		ECHONET Lite åççæãã¼ã
+ *		ECHONET Lite 動的生成ノード
  */
 
@@ -158,7 +143,7 @@
 
 /*
- *  ã­ã¥ã¼ã®åæå
+ *  キューの初期化
  *
- *  p_queueã«ã¯ã­ã¥ã¼ããããæå®ããï¼
+ *  p_queueにはキューヘッダを指定する．
  */
 static void
@@ -173,11 +158,8 @@
 
 /*
- *  ã­ã¥ã¼ã®åã¨ã³ããªã¸ã®æ¿å
-¥
+ *  キューの前エントリへの挿入
  *
- *  p_queueã®åã«p_entryãæ¿å
-¥ããï¼p_queueã«ã­ã¥ã¼ããããæå®ããå ´
- *  åã«ã¯ï¼ã­ã¥ã¼ã®æ«å°¾ã«p_entryãæ¿å
-¥ãããã¨ã«ãªãï¼
+ *  p_queueの前にp_entryを挿入する．p_queueにキューヘッダを指定した場
+ *  合には，キューの末尾にp_entryを挿入することになる．
  */
 static void
@@ -195,7 +177,7 @@
 
 /*
- *  ã¨ã³ããªã®åé¤
+ *  エントリの削除
  *
- *  p_entryãã­ã¥ã¼ããåé¤ããï¼
+ *  p_entryをキューから削除する．
  */
 static void
@@ -310,5 +292,5 @@
 	int i = eobjid;
 
-	/* ãªãã¸ã§ã¯ãIDããå®ä½ãåå¾ */
+	/* オブジェクトIDから実体を取得 */
 	i -= (svc->tmax_eobjid + 1);
 	if ((i < 0)
@@ -321,8 +303,8 @@
 		return false;
 
-	/* ãªãã¸ã§ã¯ãã®EOJãã³ãã¼ */
+	/* オブジェクトのEOJをコピー */
 	memcpy(eoj, &buf->cnt.obj.inib.eojx1, sizeof(*eoj));
 
-	/* æå±ãããã¼ãã®ãªãã¸ã§ã¯ãIDãåå¾ */
+	/* 所属するノードのオブジェクトIDを取得 */
 	if(buf->cnt.obj.inib.enodid == 0)
 		i = buf->cnt.obj.eobjId;
@@ -336,5 +318,5 @@
 	}
 
-	/* ãã¼ãIDãåå¾ */
+	/* ノードIDを取得 */
 	buf = &agent->blockes[i];
 	*enodid = buf->cnt.node.node.enodId;
@@ -365,11 +347,10 @@
 void ecn_agent_init(ecnl_svc_task_t *svc)
 {
-	svc->agent.eprpinib.eprpcd = 0x00;					/* ãã­ããã£ã³ã¼ã */
-	svc->agent.eprpinib.eprpatr = EPC_RULE_SET | EPC_RULE_GET;		/* ãã­ããã£å±æ§ */
-	svc->agent.eprpinib.eprpsz = 255;					/* ãã­ããã£ã®ãµã¤ãº */
-	svc->agent.eprpinib.exinf = (intptr_t)&svc->agent;	/* ãã­ããã£ã®æ¡å¼µæ
-å ± */
-	svc->agent.eprpinib.eprpset = ecn_agent_eprpset;	/* ãã­ããã£ã®è¨­å®é¢æ° */
-	svc->agent.eprpinib.eprpget = ecn_agent_eprpget;	/* ãã­ããã£ã®åå¾é¢æ° */
+	svc->agent.eprpinib.eprpcd = 0x00;					/* プロパティコード */
+	svc->agent.eprpinib.eprpatr = EPC_RULE_SET | EPC_RULE_GET;		/* プロパティ属性 */
+	svc->agent.eprpinib.eprpsz = 255;					/* プロパティのサイズ */
+	svc->agent.eprpinib.exinf = (intptr_t)&svc->agent;	/* プロパティの拡張情報 */
+	svc->agent.eprpinib.eprpset = ecn_agent_eprpset;	/* プロパティの設定関数 */
+	svc->agent.eprpinib.eprpget = ecn_agent_eprpget;	/* プロパティの取得関数 */
 
 	svc->agent.peprpinib = &svc->agent.eprpinib;
@@ -390,5 +371,5 @@
 	T_ECN_EOJ *eoj, *end;
 
-	// ãã­ããã£éç¥ãåå¾å¿ç­ã§ã
+	// プロパティ通知か取得応答で、
 	switch (esv->hdr.edata.esv) {
 	case ESV_GET_RES:
@@ -400,5 +381,5 @@
 	}
 
-	// ãã¼ããã­ãã¡ã¤ã«å®ã®å ´å
+	// ノードプロファイル宛の場合
 	eoj = &esv->hdr.edata.seoj;
 	if ((eoj->eojx1 != EOJ_X1_PROFILE) || (eoj->eojx2 != EOJ_X2_NODE_PROFILE)
@@ -413,9 +394,9 @@
 	while (ecn_itr_nxt(mrb, &enm, &epc, &pdc, &edt) == E_OK) {
 		switch (epc) {
-		// ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®å ´å
+		// インスタンスリスト通知の場合
 		case 0xD5:
-		// èªãã¼ãã¤ã³ã¹ã¿ã³ã¹ãªã¹ãï¼³éç¥ã®å ´å
+		// 自ノードインスタンスリストＳ通知の場合
 		case 0xD6:
-			// ãµã¤ãºãåããªãå ´å
+			// サイズが合わない場合
 			if (pdc != (1 + edt[0] * sizeof(T_ECN_EOJ)))
 				return NULL;
@@ -765,8 +746,7 @@
 	ecn_obj_t *sobj;
 
-	/* éçã«å®ç¾©ãããéä¿¡å
-ã®å ´å */
+	/* 静的に定義された送信元の場合 */
 	if ((*ppk_snod != NULL) && (*ppk_snod)->eobjs != NULL) {
-		/* å¦çããªã */
+		/* 処理しない */
 		return;
 	}
@@ -774,10 +754,7 @@
 	snod = ecn_agent_find_node2(svc, *ppk_snod);
 
-	/* éä¿¡å
-ãç¥ããªãã£ãã */
+	/* 送信元を知らなかったら */
 	if (snod == NULL) {
-		/* éä¿¡å
-ã®ãã¼ãæ
-å ±ãæ°è¦ã«ä½æ */
+		/* 送信元のノード情報を新規に作成 */
 		snod = ecn_agent_create_node(svc, agent, esv);
 		if (snod == NULL)
@@ -787,10 +764,10 @@
 	sobj = ecn_agent_find_obj2(snod, *ppk_sobj);
 
-	/* ãã¼ããã­ãã¡ã¤ã«ã®å ´å */
+	/* ノードプロファイルの場合 */
 	if ((esv->hdr.edata.seoj.eojx1 == EOJ_X1_PROFILE)
 		&& (esv->hdr.edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
 		sobj = &snod->node.base;
 	}
-	/* æ©å¨ãªãã¸ã§ã¯ãã®å ´å */
+	/* 機器オブジェクトの場合 */
 	else {
 		sobj = ecn_agent_find_eobj(&snod->node.eobj, esv->hdr.edata.seoj);
@@ -837,5 +814,5 @@
 	ecn_obj_t *obj = node->current;
 
-	// ãã­ããã£å¤èª­ã¿åºãè¦æ±
+	// プロパティ値読み出し要求
 	ecn_esv_get(svc, &esv, obj->eobjId, 0x9E);
 	ecn_snd_esv(svc, esv);
@@ -850,5 +827,5 @@
 	ecn_obj_t *obj = node->current;
 
-	// ãã­ããã£å¤èª­ã¿åºãè¦æ±
+	// プロパティ値読み出し要求
 	ecn_esv_get(svc, &esv, obj->eobjId, 0x9F);
 	ecn_snd_esv(svc, esv);
@@ -863,5 +840,5 @@
 	ecn_obj_t *obj = node->current;
 
-	// ãã­ããã£å¤èª­ã¿åºãè¦æ±
+	// プロパティ値読み出し要求
 	ecn_esv_get(svc, &esv, obj->eobjId, 0x9D);
 	ecn_snd_esv(svc, esv);
@@ -877,22 +854,21 @@
 	ecn_device_t *device;
 
-	/* objãæå®ããã¦ããªãå ´å */
+	/* objが指定されていない場合 */
 	if(obj == NULL){
-		/* ãã®ãã¼ããè¿ã */
+		/* このノードを返す */
 		node->current = &node->node.base;
 		return;
 	}
-	/* ãã¼ãã®å ´å */
+	/* ノードの場合 */
 	else if((obj->inib.eojx1 == EOJ_X1_PROFILE) && (obj->inib.eojx2 == EOJ_X2_NODE_PROFILE)){
 		node = (ecn_node_agent_t *)obj;
 
-		/* é
-ä¸ã®æ©å¨ãè¿ã */
+		/* 配下の機器を返す */
 		queue = node->node.devices.p_next;
 		device = (ecn_device_t *)cast_obj(queue);
 	}
-	/* æ©å¨ã®å ´å */
+	/* 機器の場合 */
 	else{
-		/* æ¬¡ã®æ©å¨ãè¿ã */
+		/* 次の機器を返す */
 		node = (ecn_node_agent_t *)((ecn_device_t *)obj)->node;
 		queue = cast_queue(obj)->p_next;
@@ -900,5 +876,5 @@
 	}
 
-	/* ãã®æ©å¨ãæ«å°¾ã ã£ãå ´å */
+	/* その機器が末尾だった場合 */
 	if(&node->node.devices == queue){
 		node->current = NULL;
@@ -1037,6 +1013,5 @@
 	bool_t has = false;
 
-	/* ãã¼ãã®å ´åã¯ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã¨èªãã¼ãã¤ã³ã¹ã¿ã³ã¹ãªã¹ãï¼³éç¥ãå¿
-é ã§åãåã */
+	/* ノードの場合はインスタンスリスト通知と自ノードインスタンスリストＳ通知を必須で受け取る */
 	if ((fp_obj->enodid == 0) && ((fa_epc == 0xD5) || (fa_epc == 0xD6)))
 		has = true;
@@ -1072,7 +1047,7 @@
 
 	switch (item->eprpcd) {
-	/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®å ´å */
+	/* インスタンスリスト通知の場合 */
 	case 0xD5:
-	/* èªãã¼ãã¤ã³ã¹ã¿ã³ã¹ãªã¹ãï¼³éç¥ã®å ´å */
+	/* 自ノードインスタンスリストＳ通知の場合 */
 	case 0xD6:
 		if ((node != NULL) && (node->state == ecn_node_state_idle)) {
@@ -1092,10 +1067,10 @@
 		}
 		break;
-	/* éç¥ãã­ããã£ãããã®å ´å */
+	/* 通知プロパティマップの場合 */
 	case 0x9D:
 		eprpcnt = edt[0];
 
 		if (eprpcnt < 16) {
-			/* ãµã¤ãºãã§ãã¯ */
+			/* サイズチェック */
 			if (eprpcnt + 1 != size)
 				return 0;
@@ -1105,5 +1080,5 @@
 		}
 		else {
-			/* ãµã¤ãºãã§ãã¯ */
+			/* サイズチェック */
 			if (size != 17)
 				return 0;
@@ -1114,10 +1089,10 @@
 		sobj->pmapFlag |= PMAP_FLAG_ANNO;
 		break;
-	/* SETãã­ããã£ãããã®å ´å */
+	/* SETプロパティマップの場合 */
 	case 0x9E:
 		eprpcnt = edt[0];
 
 		if (eprpcnt < 16) {
-			/* ãµã¤ãºãã§ãã¯ */
+			/* サイズチェック */
 			if (eprpcnt + 1 != size)
 				return 0;
@@ -1127,5 +1102,5 @@
 		}
 		else {
-			/* ãµã¤ãºãã§ãã¯ */
+			/* サイズチェック */
 			if (size != 17)
 				return 0;
@@ -1136,10 +1111,10 @@
 		sobj->pmapFlag |= PMAP_FLAG_SET;
 		break;
-	/* GETãã­ããã£ãããã®å ´å */
+	/* GETプロパティマップの場合 */
 	case 0x9F:
 		eprpcnt = edt[0];
 
 		if (eprpcnt < 16) {
-			/* ãµã¤ãºãã§ãã¯ */
+			/* サイズチェック */
 			if (eprpcnt + 1 != size)
 				return 0;
@@ -1149,5 +1124,5 @@
 		}
 		else {
-			/* ãµã¤ãºãã§ãã¯ */
+			/* サイズチェック */
 			if (size != 17)
 				return 0;
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_agent.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_agent.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_agent.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2015-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,5 +37,5 @@
 
 /*
- *		ECHONET Lite åççæãã¼ã
+ *		ECHONET Lite 動的生成ノード
  */
 
@@ -65,12 +50,12 @@
 
 /*
- *  ã­ã¥ã¼ã®ãã¼ã¿æ§é ã®å®ç¾©
+ *  キューのデータ構造の定義
  */
 typedef struct ecn_agent_queue {
 #ifdef _DEBUG
-	struct ecn_agent_queue *p_parent;	/* è¦ªã­ã¥ã¼ã¸ã®ãã¤ã³ã¿ */
+	struct ecn_agent_queue *p_parent;	/* 親キューへのポインタ */
 #endif
-	struct ecn_agent_queue *p_next;		/* æ¬¡ã¨ã³ããªã¸ã®ãã¤ã³ã¿ */
-	struct ecn_agent_queue *p_prev;		/* åã¨ã³ããªã¸ã®ãã¤ã³ã¿ */
+	struct ecn_agent_queue *p_next;		/* 次エントリへのポインタ */
+	struct ecn_agent_queue *p_prev;		/* 前エントリへのポインタ */
 } ecn_agent_queue_t;
 
@@ -84,13 +69,12 @@
 	ID eobjId;
 	EOBJINIB inib;
-	uint8_t pmapSet[16];		/* SETãã­ããã£ããã */
-	uint8_t pmapGet[16];		/* GETãã­ããã£ããã */
-	uint8_t pmapAnno[16];		/* ç¶æ
-å¤åæéç¥ãã­ããã£ããã */
+	uint8_t pmapSet[16];		/* SETプロパティマップ */
+	uint8_t pmapGet[16];		/* GETプロパティマップ */
+	uint8_t pmapAnno[16];		/* 状態変化時通知プロパティマップ */
 	uint8_t pmapFlag;
-	uint8_t eprpcnt;			/* ECHONET Lite ãã­ããã£æ° */
-	uint8_t annocnt;			/* éç¥ãã­ããã£ã®æ° */
-	uint8_t setcnt;				/* è¨­å®ãã­ããã£ã®æ° */
-	uint8_t getcnt;				/* åå¾ãã­ããã£ã®æ° */
+	uint8_t eprpcnt;			/* ECHONET Lite プロパティ数 */
+	uint8_t annocnt;			/* 通知プロパティの数 */
+	uint8_t setcnt;				/* 設定プロパティの数 */
+	uint8_t getcnt;				/* 取得プロパティの数 */
 } ecn_obj_t;
 
@@ -158,13 +142,11 @@
 typedef struct ecn_inm_get_device_item
 {
-	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;			/* éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹åå¾ç¨ID */
+	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;			/* 通信レイヤーアドレス取得用ID */
 } ecn_inm_get_device_item_t;
 
@@ -191,30 +173,29 @@
 } ecn_inm_get_device_info_res_t;
 
-/* åæå */
+/* 初期化 */
 void ecn_agent_init(ecnl_svc_task_t *svc);
-/* ãã¼ããæ¤ç´¢ */
+/* ノードを検索 */
 ecn_node_t *ecn_agent_find_node(ecnl_svc_task_t *svc, ECN_ENOD_ID enodid);
-/* æ©å¨ãæ¤ç´¢ */
+/* 機器を検索 */
 ecn_obj_t *ecn_agent_find_eobj(const EOBJCB *pk_nod, T_ECN_EOJ eoj);
-/* ãªãã¸ã§ã¯ãIDãåå¾ */
+/* オブジェクトIDを取得 */
 ID ecn_agent_get_eobj(const EOBJINIB *pk_obj);
-/* æ¬¡ã®æ©å¨ãåå¾ */
+/* 次の機器を取得 */
 const EOBJINIB *ecn_agent_next_eobj(const EOBJCB *pk_nod, const EOBJINIB *pk_obj);
-/* ãªãã¸ã§ã¯ãIDããEOJã¨ãã¼ãIDãåå¾ */
+/* オブジェクトIDからEOJとノードIDを取得 */
 bool_t ecn_agent_get_eoj_enodid(ecnl_svc_task_t *svc, ID eobjid, T_ECN_EOJ *eoj, ECN_ENOD_ID *enodid);
-/* ã¿ã¤ã ã¢ã¦ãå¤ãè¿ã */
+/* タイムアウト値を返す */
 TMO ecn_agent_get_timer(ecnl_svc_task_t *svc);
-/* ã¿ã¤ãã¼ã®æéãé²ãã */
+/* タイマーの時間を進める */
 void ecn_agent_progress(ecnl_svc_task_t *svc, TMO interval);
-/* ã¿ã¤ã ã¢ã¦ãå¦çï¼ã®ããã®å¼ã³åºãï¼ */
+/* タイムアウト処理（のための呼び出し） */
 void ecn_agent_timeout(ecnl_svc_task_t *svc);
-/* å
-é¨ã¡ãã»ã¼ã¸å¦ç */
+/* 内部メッセージ処理 */
 bool_t ecn_agent_proc_int_msg(ecnl_svc_task_t *svc, ECN_FBS_ID fbs, uint8_t cmd);
-/* ECHONETé»æåä¿¡å¦ç */
+/* ECHONET電文受信処理 */
 void ecn_agent_proc_ecn_msg(ecnl_svc_task_t *svc, const EOBJCB **snod, const EOBJINIB **sobj, T_EDATA *esv);
-/* ECHONETé»æåä¿¡å¦ççµäº */
+/* ECHONET電文受信処理終了 */
 void ecn_agent_proc_ecn_msg_end(ecnl_svc_task_t *svc);
-/* ãã­ããã£ãåå¾ */
+/* プロパティを取得 */
 const EPRPINIB *ecn_agent_get_property(const EOBJINIB *fp_obj, uint8_t fa_epc, const EPRPINIB *item);
 
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_class.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_class.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_class.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
@@ -53,576 +38,557 @@
 #define ECHONET_CLASS_H
 
-/* ã»ã³ãµã¼é¢é£æ©å¨ */
+/* センサー関連機器 */
 #define EOJ_X1_SENSOR 0x00
 
-/* ç©ºèª¿é¢é£æ©å¨ */
+/* 空調関連機器 */
 #define EOJ_X1_AIR_CONDITIONER 0x01
 
-/* ä½å®
-ã»è¨­åé¢é£æ©å¨ */
+/* 住宅・設備関連機器 */
 #define EOJ_X1_AMENITY 0x02
 
-/* èª¿çã»å®¶äºé¢é£æ©å¨ */
+/* 調理・家事関連機器 */
 #define EOJ_X1_HOUSEWORK 0x03
 
-/* å¥åº·é¢é£æ©å¨ */
+/* 健康関連機器 */
 #define EOJ_X1_WELLNESS 0x04
 
-/* ç®¡çã»æä½é¢é£æ©å¨ */
+/* 管理・操作関連機器 */
 #define EOJ_X1_CONTROLLER 0x05
 
-/* AVé¢é£æ©å¨ */
+/* AV関連機器 */
 #define EOJ_X1_AUDIO_VISUAL 0x06
 
-/* ãã­ãã¡ã¤ã« */
+/* プロファイル */
 #define EOJ_X1_PROFILE 0x0E
 
-/* ã¦ã¼ã¶ã¼å®ç¾© */
+/* ユーザー定義 */
 #define EOJ_X1_USER_DEFINED 0x0F
 
 /*
- * ã»ã³ãµé¢é£æ©å¨ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* ã¬ã¹æ¼ãã»ã³ãµ */
+ * センサ関連機器クラスグループ *
+ */
+/* ガス漏れセンサ */
 #define EOJ_X2_GAS_LEAK_SENSOR 0x01
 
-/* é²ç¯ã»ã³ãµ */
+/* 防犯センサ */
 #define EOJ_X2_CRIME_PREVENTION_SENSOR 0x02
 
-/* éå¸¸ãã¿ã³ */
+/* 非常ボタン */
 #define EOJ_X2_EMERGENCY_BUTTON 0x03
 
-/* ææ¥ç¨ã»ã³ãµ */
+/* 救急用センサ */
 #define EOJ_X2_FIRST_AID_SENSOR 0x04
 
-/* å°éã»ã³ãµ */
+/* 地震センサ */
 #define EOJ_X2_EARTHQUAKE_SENSOR 0x05
 
-/* æ¼é»ã»ã³ãµ */
+/* 漏電センサ */
 #define EOJ_X2_ELECTRIC_LEAK_SENSOR 0x06
 
-/* äººä½æ¤ç¥ã»ã³ãµ */
+/* 人体検知センサ */
 #define EOJ_X2_HUMAN_DETECTION_SENSOR 0x07
 
-/* æ¥å®¢ã»ã³ãµ */
+/* 来客センサ */
 #define EOJ_X2_VISITOR_SENSOR 0x08
 
-/* å¼ã³åºãã»ã³ãµ */
+/* 呼び出しセンサ */
 #define EOJ_X2_CALL_SENSOR 0x09
 
-/* çµé²ã»ã³ãµ */
+/* 結露センサ */
 #define EOJ_X2_CONDENSATION_SENSOR 0x0A
 
-/* ç©ºæ°æ±æã»ã³ãµ */
+/* 空気汚染センサ */
 #define EOJ_X2_AIR_POLLUTION_SENSOR 0x0B
 
-/* é
-¸ç´ ã»ã³ãµ */
+/* 酸素センサ */
 #define EOJ_X2_OXYGEN_SENSOR 0x0C
 
-/* ç
-§åº¦ã»ã³ãµ */
+/* 照度センサ */
 #define EOJ_X2_ILLUMINANCE_SENSOR 0x0D
 
-/* é³ã»ã³ãµ */
+/* 音センサ */
 #define EOJ_X2_SOUND_SENSOR 0x0E
 
-/* æå½ã»ã³ãµ */
+/* 投函センサ */
 #define EOJ_X2_MAILING_SENSOR 0x0F
 
-/* éè·ã»ã³ãµ */
+/* 重荷センサ */
 #define EOJ_X2_WEIGHT_SENSOR 0x10
 
-/* æ¸©åº¦ã»ã³ãµ */
+/* 温度センサ */
 #define EOJ_X2_TEMPERATURE_SENSOR 0x11
 
-/* æ¹¿åº¦ã»ã³ãµ */
+/* 湿度センサ */
 #define EOJ_X2_HUMIDITY_SENSOR 0x12
 
-/* é¨ã»ã³ãµ */
+/* 雨センサ */
 #define EOJ_X2_RAIN_SENSOR 0x13
 
-/* æ°´ä½ã»ã³ãµ */
+/* 水位センサ */
 #define EOJ_X2_WATER_LEVEL_SENSOR 0x14
 
-/* é¢¨åæ°´ä½ã»ã³ãµ */
+/* 風呂水位センサ */
 #define EOJ_X2_BATH_WATER_LEVEL_SENSOR 0x15
 
-/* é¢¨åæ²¸ãä¸ããã»ã³ãµ */
+/* 風呂沸き上がりセンサ */
 #define EOJ_X2_BATH_HEATING_STATUS_SENSOR 0x16
 
-/* æ°´æ¼ãã»ã³ãµ */
+/* 水漏れセンサ */
 #define EOJ_X2_WATER_LEAK_SENSOR 0x17
 
-/* æ°´ããµãã»ã³ãµ */
+/* 水あふれセンサ */
 #define EOJ_X2_WATER_OVERFLOW_SENSOR 0x18
 
-/* ç«ç½ã»ã³ãµ */
+/* 火災センサ */
 #define EOJ_X2_FIRE_SENSOR 0x19
 
-/* ã¿ãã³ç
-ã»ã³ãµ */
+/* タバコ煙センサ */
 #define EOJ_X2_CIGARETTE_SMOKE_SENSOR 0x1A
 
-/* ï¼£ï¼¯ï¼ã»ã³ãµ */
+/* ＣＯ２センサ */
 #define EOJ_X2_CO2_SENSOR 0x1B
 
-/* ã¬ã¹ã»ã³ãµ */
+/* ガスセンサ */
 #define EOJ_X2_GAS_SENSOR 0x1C
 
-/* ï¼¶ï¼¯ï¼£ã»ã³ãµ */
+/* ＶＯＣセンサ */
 #define EOJ_X2_VOC_SENSOR 0x1D
 
-/* å·®å§ã»ã³ãµ */
+/* 差圧センサ */
 #define EOJ_X2_DIFFERENTIAL_PRESSURE_SENSOR 0x1E
 
-/* é¢¨éã»ã³ãµ */
+/* 風速センサ */
 #define EOJ_X2_AIR_SPEED_SENSOR 0x1F
 
-/* è­ãã»ã³ãµ */
+/* 臭いセンサ */
 #define EOJ_X2_ODOR_SENSOR 0x20
 
-/* çã»ã³ãµ */
+/* 炎センサ */
 #define EOJ_X2_FLAME_SENSOR 0x21
 
-/* é»åéã»ã³ãµ */
+/* 電力量センサ */
 #define EOJ_X2_ELECTRIC_ENERGY_SENSOR 0x22
 
-/* é»æµéã»ã³ãµ */
+/* 電流量センサ */
 #define EOJ_X2_CURRENT_VALUE_SENSOR 0x23
 
-/* æ¼å
-ã»ã³ãµ */
+/* 昼光センサ */
 #define EOJ_X2_DAYLIGHT_SENSOR 0x24
 
-/* æ°´æµéã»ã³ãµ */
+/* 水流量センサ */
 #define EOJ_X2_WATER_FLOW_RATE_SENSOR 0x25
 
-/* å¾®åã»ã³ãµ */
+/* 微動センサ */
 #define EOJ_X2_MICROMOTION_SENSOR 0x26
 
-/* ééã»ã³ãµ */
+/* 通過センサ */
 #define EOJ_X2_PASSAGE_SENSOR 0x27
 
-/* å¨åºã»ã³ãµ */
+/* 在床センサ */
 #define EOJ_X2_BED_PRESENCE_SENSOR 0x28
 
-/* ééã»ã³ãµ */
+/* 開閉センサ */
 #define EOJ_X2_OPEN_CLOSE_SENSOR 0x29
 
-/* æ´»åéã»ã³ãµ */
+/* 活動量センサ */
 #define EOJ_X2_ACTIVITY_AMOUNT_SENSOR 0x2A
 
-/* äººä½ä½ç½®ã»ã³ãµ */
+/* 人体位置センサ */
 #define EOJ_X2_HUMAN_BODY_LOCATION_SENSOR 0x2B
 
-/* éªã»ã³ãµ */
+/* 雪センサ */
 #define EOJ_X2_SNOW_SENSOR 0x2C
 
 /*
- * ç©ºèª¿é¢é£æ©å¨ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* å®¶åº­ç¨ã¨ã¢ã³ã³ */
+ * 空調関連機器クラスグループ *
+ */
+/* 家庭用エアコン */
 #define EOJ_X2_HOME_AIR_CONDITIONER 0x30
 
-/* å·é¢¨æ© */
+/* 冷風機 */
 #define EOJ_X2_COLD_BLASTER 0x31
 
-/* æé¢¨æ© */
+/* 扇風機 */
 #define EOJ_X2_ELECTRIC_FAN 0x32
 
-/* ææ°æ */
+/* 換気扇 */
 #define EOJ_X2_VENTILATION_FAN 0x33
 
-/* ç©ºèª¿ææ°æ */
+/* 空調換気扇 */
 #define EOJ_X2_AIR_CONDITIONING_VENTILATION_FAN 0x34
 
-/* ç©ºæ°æ¸
-æµå¨ */
+/* 空気清浄器 */
 #define EOJ_X2_AIR_CLEANER 0x35
 
-/* å·é¢¨æ */
+/* 冷風扇 */
 #define EOJ_X2_COLD_BLAST_FAN 0x36
 
-/* ãµã¼ã­ã¥ã¬ã¼ã¿ */
+/* サーキュレータ */
 #define EOJ_X2_CIRCULATOR 0x37
 
-/* é¤æ¹¿æ© */
+/* 除湿機 */
 #define EOJ_X2_DEHUMIDIFIER 0x38
 
-/* å æ¹¿å¨ */
+/* 加湿器 */
 #define EOJ_X2_HUMIDIFIER 0x39
 
-/* å¤©äºæ */
+/* 天井扇 */
 #define EOJ_X2_CEILING_FAN 0x3A
 
-/* é»æ°ããã¤ */
+/* 電気こたつ */
 #define EOJ_X2_ELECTRIC_KOTATSU 0x3B
 
-/* é»æ°ããã */
+/* 電気あんか */
 #define EOJ_X2_ELECTRIC_HEATING_PAD 0x3C
 
-/* é»æ°æ¯å¸ */
+/* 電気毛布 */
 #define EOJ_X2_ELECTRIC_BLANKET 0x3D
 
-/* ã¹ãã¼ã */
+/* ストーブ */
 #define EOJ_X2_SPACE_HEATER 0x3E
 
-/* ããã«ãã¼ã¿ */
+/* パネルヒータ */
 #define EOJ_X2_PANEL_HEATER 0x3F
 
-/* é»æ°ã«ã¼ããã */
+/* 電気カーペット */
 #define EOJ_X2_ELECTRIC_CARPET 0x40
 
-/* ãã­ã¢ãã¼ã¿ */
+/* フロアヒータ */
 #define EOJ_X2_FLOOR_HEATER 0x41
 
-/* é»æ°ææ¿å¨ */
+/* 電気暖房器 */
 #define EOJ_X2_ELECTRIC_HEATER 0x42
 
-/* ãã¡ã³ãã¼ã¿ */
+/* ファンヒータ */
 #define EOJ_X2_FAN_HEATER 0x43
 
-/* å
-
-é»å¨ */
+/* 充電器 */
 #define EOJ_X2_BATTERY_CHARGER 0x44
 
-/* æ¥­åç¨ããã±ã¼ã¸ã¨ã¢ã³ã³å®¤å
-æ© */
+/* 業務用パッケージエアコン室内機 */
 #define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_INDOOR_UNIT 0x45
 
-/* æ¥­åç¨ããã±ã¼ã¸ã¨ã¢ã³ã³å®¤å¤æ© */
+/* 業務用パッケージエアコン室外機 */
 #define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_OUTDOOR_UNIT 0x46
 
-/* æ¥­åç¨ããã±ã¼ã¸ã¨ã¢ã³ã³èç±ã¦ããã */
+/* 業務用パッケージエアコン蓄熱ユニット */
 #define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_THERMAL_STORAGE_UNIT 0x47
 
-/* æ¥­åç¨ãã¡ã³ã³ã¤ã«ã¦ããã */
+/* 業務用ファンコイルユニット */
 #define EOJ_X2_COMMERCIAL_FAN_COIL_UNIT 0x48
 
-/* æ¥­åç¨ç©ºèª¿å·ç±æº(ãã©ã¼) */
+/* 業務用空調冷熱源(チラー) */
 #define EOJ_X2_COMMERCIAL_AIR_CONDITIONING_COLD_SOURCE_CHILLER 0x49
 
-/* æ¥­åç¨ç©ºèª¿æ¸©ç±æº(ãã¤ã©ã¼) */
+/* 業務用空調温熱源(ボイラー) */
 #define EOJ_X2_COMMERCIAL_AIR_CONDITIONING_HEAT_SOURCE_BOILER 0x50
 
-/* æ¥­åç¨ç©ºèª¿VAV */
+/* 業務用空調VAV */
 #define EOJ_X2_AIR_CONDITIONING_VAV_FOR_COMMERCIAL_APPLICATION 0x51
 
-/* æ¥­åç¨ç©ºèª¿ã¨ã¢ãã³ããªã³ã°ã¦ããã */
+/* 業務用空調エアハンドリングユニット */
 #define EOJ_X2_AIR_HANDLING_UNIT_AIR_CONDITIONING_FOR_COMMERCIAL_APPLICATION 0x52
 
-/* ã¦ãããã¯ã¼ã©ã¼ */
+/* ユニットクーラー */
 #define EOJ_X2_UNIT_COOLER 0x53
 
-/* æ¥­åç¨ã³ã³ãã³ã·ã³ã°ã¦ããã */
+/* 業務用コンデンシングユニット */
 #define EOJ_X2_CONDENSING_UNIT_FOR_COMMERCIAL_APPLICATION 0x54
 
 /*
- * ä½å®
-ã»è¨­åé¢é£æ©å¨ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* é»åãã©ã¤ã³ã */
+ * 住宅・設備関連機器クラスグループ *
+ */
+/* 電動ブラインド */
 #define EOJ_X2_ELECTRICALLY_OPERATED_SHADE 0x60
 
-/* é»åã·ã£ãã¿ã¼ */
+/* 電動シャッター */
 #define EOJ_X2_ELECTRICALLY_OPERATED_SHUTTER 0x61
 
-/* é»åã«ã¼ãã³ */
+/* 電動カーテン */
 #define EOJ_X2_ELECTRICALLY_OPERATED_CURTAIN 0x62
 
-/* é»åé¨æ¸ */
+/* 電動雨戸 */
 #define EOJ_X2_ELECTRICALLY_OPERATED_STORM_WINDOW 0x63
 
-/* é»åã¬ã¬ã¼ã¸ */
+/* 電動ガレージ */
 #define EOJ_X2_ELECTRICALLY_OPERATED_DOOR 0x64
 
-/* é»åå¤©çª */
+/* 電動天窓 */
 #define EOJ_X2_ELECTRICALLY_OPERATED_SKYLIGHT 0x65
 
-/* ãªã¼ãã³ã°ï¼æ¥ããï¼ */
+/* オーニング（日よけ） */
 #define EOJ_X2_AWNING 0x66
 
-/* æ£æ°´å¨ï¼åº­ç¨ï¼ */
+/* 散水器（庭用） */
 #define EOJ_X2_GARDEN_SPRINKLER 0x67
 
-/* æ£æ°´å¨ï¼ç«ç½ç¨ï¼ */
+/* 散水器（火災用） */
 #define EOJ_X2_FIRE_SPRINKLER 0x68
 
-/* å´æ°´ */
+/* 噴水 */
 #define EOJ_X2_FOUNTAIN 0x69
 
-/* ç¬éæ¹¯æ²¸å¨ */
+/* 瞬間湯沸器 */
 #define EOJ_X2_INSTANTANEOUS_WATER_HEATERS 0x6A
 
-/* é»æ°æ¸©æ°´å¨ */
+/* 電気温水器 */
 #define EOJ_X2_ELECTRIC_WATER_HEATER 0x6B
 
-/* å¤ªé½ç±æ¸©æ°´å¨ */
+/* 太陽熱温水器 */
 #define EOJ_X2_SOLAR_WATER_HEATER 0x6C
 
-/* å¾ªç°ãã³ã */
+/* 循環ポンプ */
 #define EOJ_X2_CIRCULATION_PUMP 0x6D
 
-/* é»æ°ä¾¿åº§ï¼æ¸©æ°´æ´æµä¾¿åº§ãææ¿ä¾¿åº§ãªã©ï¼ */
+/* 電気便座（温水洗浄便座、暖房便座など） */
 #define EOJ_X2_BIDET_EQUIPPED_TOILET 0x6E
 
-/* é»æ°é  */
+/* 電気錠 */
 #define EOJ_X2_ELECTRIC_KEY 0x6F
 
-/* ã¬ã¹å
-å¼ */
+/* ガス元弁 */
 #define EOJ_X2_GAS_LINE_VALVE 0x70
 
-/* ãã¼ã ãµã¦ã */
+/* ホームサウナ */
 #define EOJ_X2_HOME_SAUNA 0x71
 
-/* ç¬éå¼çµ¦æ¹¯å¨ */
+/* 瞬間式給湯器 */
 #define EOJ_X2_HOT_WATER_GENERATOR 0x72
 
-/* æµ´å®¤ææ¿ä¹¾ç¥æ© */
+/* 浴室暖房乾燥機 */
 #define EOJ_X2_BATHROOM_DRYER 0x73
 
-/* ãã¼ã ã¨ã¬ãã¼ã¿ */
+/* ホームエレベータ */
 #define EOJ_X2_HOME_ELEVATOR 0x74
 
-/* é»åéä»åã */
+/* 電動間仕切り */
 #define EOJ_X2_ELECTRICALLY_OPERATED_ROOM_DIVIDER 0x75
 
-/* æ°´å¹³ãã©ã³ã¹ãã¡ */
+/* 水平トランスファ */
 #define EOJ_X2_HORIZONTAL_TRANSFER 0x76
 
-/* é»åç©å¹²ã */
+/* 電動物干し */
 #define EOJ_X2_ELECTRICALLY_OPERATED_CLOTHES_DRYING_POLE 0x77
 
-/* æµåæ§½ */
+/* 浄化槽 */
 #define EOJ_X2_SEPTIC_TANK 0x78
 
-/* ä½å®
-ç¨å¤ªé½å
-çºé» */
+/* 住宅用太陽光発電 */
 #define EOJ_X2_HOME_SOLAR_POWER_GENERATION 0x79
 
-/* å·æ¸©æ°´ç±æºæ© */
+/* 冷温水熱源機 */
 #define EOJ_X2_COLD_AND_HOT_WATER_HEAT_SOURCE_EQUIPMENT 0x7A
 
-/* åºææ¿ */
+/* 床暖房 */
 #define EOJ_X2_FLOOR_HEATING 0x7B
 
-/* çæé»æ±  */
+/* 燃料電池 */
 #define EOJ_X2_FUEL_CELL 0x7C
 
-/* èé»æ±  */
+/* 蓄電池 */
 #define EOJ_X2_STORAGE_BATTERY 0x7D
 
-/* é»æ°èªåè»å
-
-æ¾é»ã·ã¹ãã  */
+/* 電気自動車充放電システム */
 #define EOJ_X2_ELECTRIC_VEHICLE 0x7E
 
-/* é»åéã¡ã¼ã¿ */
+/* 電力量メータ */
 #define EOJ_X2_ELECTRIC_ENERGY_METER 0x80
 
-/* æ°´æµéã¡ã¼ã¿ */
+/* 水流量メータ */
 #define EOJ_X2_WATER_FLOW_METER 0x81
 
-/* ã¬ã¹ã¡ã¼ã¿ */
+/* ガスメータ */
 #define EOJ_X2_GAS_METER 0x82
 
-/* LPã¬ã¹ã¡ã¼ã¿ */
+/* LPガスメータ */
 #define EOJ_X2_LP_GAS_METERS 0x83
 
-/* æè¨ */
+/* 時計 */
 #define EOJ_X2_CLOCK 0x84
 
-/* èªåãã¢ */
+/* 自動ドア */
 #define EOJ_X2_AUTOMATIC_DOOR 0x85
 
-/* æ¥­åç¨ã¨ã¬ãã¼ã¿ */
+/* 業務用エレベータ */
 #define EOJ_X2_COMMERCIAL_ELEVATOR 0x86
 
-/* åé»ç¤ã¡ã¼ã¿ãªã³ã° */
+/* 分電盤メータリング */
 #define EOJ_X2_DISTRIBUTION_PANEL_METERING 0x87
 
-/* ã¹ãã¼ãé»åéã¡ã¼ã¿ */
+/* スマート電力量メータ */
 #define EOJ_X2_SMART_ELECTRIC_ENERGY_METER 0x88
 
-/* ã¹ãã¼ãã¬ã¹ã¡ã¼ã¿ */
+/* スマートガスメータ */
 #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
 
-/* ãã¶ã¼ */
+/* ブザー */
 #define EOJ_X2_BUZZER 0xA0
 
 /*
- * èª¿çã»å®¶äºé¢é£æ©å¨ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* ã³ã¼ãã¼ã¡ã¼ã« */
+ * 調理・家事関連機器クラスグループ *
+ */
+/* コーヒーメーカ */
 #define EOJ_X2_COFFEE_MACHINE 0xB0
 
-/* ã³ã¼ãã¼ãã« */
+/* コーヒーミル */
 #define EOJ_X2_COFFEE_MILL 0xB1
 
-/* é»æ°ããã */
+/* 電気ポット */
 #define EOJ_X2_ELECTRIC_HOT_WATER_POT 0xB2
 
-/* é»æ°ããã */
+/* 電気こんろ */
 #define EOJ_X2_ELECTRIC_STOVE 0xB3
 
-/* ãã¼ã¹ã¿ */
+/* トースタ */
 #define EOJ_X2_TOASTER 0xB4
 
-/* ã¸ã¥ã¼ãµã»ãã­ãµ */
+/* ジューサ・ミキサ */
 #define EOJ_X2_JUICER_FOOD_MIXER 0xB5
 
-/* ãã¼ããã­ã»ããµ */
+/* フードプロセッサ */
 #define EOJ_X2_FOOD_PROCESSOR 0xB6
 
-/* å·åå·èµåº« */
+/* 冷凍冷蔵庫 */
 #define EOJ_X2_REFRIGERATOR_FREEZER 0xB7
 
-/* ãªã¼ãã³ã¬ã³ã¸ */
+/* オーブンレンジ */
 #define EOJ_X2_COMBINATION_MICROWAVE_OVEN 0xB8
 
-/* ã¯ãã­ã³ã°ãã¼ã¿ */
+/* クッキングヒータ */
 #define EOJ_X2_COOKING_HEATER 0xB9
 
-/* ãªã¼ãã³ */
+/* オーブン */
 #define EOJ_X2_OVEN 0xBA
 
-/* çé£¯å¨ */
+/* 炊飯器 */
 #define EOJ_X2_RICE_COOKER 0xBB
 
-/* é»å­ã¸ã£ã¼ */
+/* 電子ジャー */
 #define EOJ_X2_ELECTRONIC_JAR 0xBC
 
-/* é£å¨æ´ãæ© */
+/* 食器洗い機 */
 #define EOJ_X2_DISH_WASHER 0xBD
 
-/* é£å¨ä¹¾ç¥æ© */
+/* 食器乾燥機 */
 #define EOJ_X2_DISH_DRYER 0xBE
 
-/* é»æ°ãã¡ã¤ãæ© */
+/* 電気もちつき機 */
 #define EOJ_X2_ELECTRIC_RICE_CAKE_COOKER 0xBF
 
-/* ä¿æ¸©æ© */
+/* 保温機 */
 #define EOJ_X2_KEEP_WARM_MACHINE 0xC0
 
-/* ç²¾ç±³æ© */
+/* 精米機 */
 #define EOJ_X2_RICE_MILL 0xC1
 
-/* èªåè£½ãã³æ© */
+/* 自動製パン機 */
 #define EOJ_X2_AUTOMATIC_BREAD_COOKER 0xC2
 
-/* ã¹ã­ã¼ã¯ãã«ã¼ */
+/* スロークッカー */
 #define EOJ_X2_SLOW_COOKER 0xC3
 
-/* é»æ°æ¼¬ç©æ© */
+/* 電気漬物機 */
 #define EOJ_X2_ELECTRIC_PICKLES_COOKER 0xC4
 
-/* æ´æ¿¯æ© */
+/* 洗濯機 */
 #define EOJ_X2_WASHING_MACHINE 0xC5
 
-/* è¡£é¡ä¹¾ç¥æ© */
+/* 衣類乾燥機 */
 #define EOJ_X2_CLOTH_DRYER 0xC6
 
-/* é»æ°ã¢ã¤ã­ã³ */
+/* 電気アイロン */
 #define EOJ_X2_ELECTRIC_IRON 0xC7
 
-/* ãºãã³ãã¬ããµ */
+/* ズボンプレッサ */
 #define EOJ_X2_TROUSER_PRESS 0xC8
 
-/* ãµã¨ãä¹¾ç¥æ© */
+/* ふとん乾燥機 */
 #define EOJ_X2_FUTON_DRYER 0xC9
 
-/* å°ç©ã»ãã¤ä¹¾ç¥æ© */
+/* 小物・くつ乾燥機 */
 #define EOJ_X2_SMALL_ARTICLE_SHOES_DRYER 0xCA
 
-/* é»æ°æé¤æ©ï¼ã»ã³ãã©ã«ã¯ãªã¼ãå«ãï¼ */
+/* 電気掃除機（セントラルクリーナ含む） */
 #define EOJ_X2_ELECTRIC_VACUUM_CLEANER 0xCB
 
-/* ãã£ã¹ãã¼ã¶ */
+/* ディスポーザ */
 #define EOJ_X2_DISPOSER 0xCC
 
-/* é»æ°èåãæ© */
+/* 電気蚊取り機 */
 #define EOJ_X2_ELECTRIC_MOSQUITO_CATCHER 0xCD
 
-/* æ¥­åç¨ã·ã§ã¼ã±ã¼ã¹ */
+/* 業務用ショーケース */
 #define EOJ_X2_COMMERCIAL_SHOW_CASE 0xCE
 
-/* æ¥­åç¨å·èµåº« */
+/* 業務用冷蔵庫 */
 #define EOJ_X2_COMMERCIAL_REFRIGERATOR 0xCF
 
-/* æ¥­åç¨ãããã±ã¼ã¹ */
+/* 業務用ホットケース */
 #define EOJ_X2_COMMERCIAL_HOT_CASE 0xD0
 
-/* æ¥­åç¨ãã©ã¤ã¤ã¼ */
+/* 業務用フライヤー */
 #define EOJ_X2_COMMERCIAL_FRYER 0xD1
 
-/* æ¥­åç¨é»å­ã¬ã³ã¸ */
+/* 業務用電子レンジ */
 #define EOJ_X2_COMMERCIAL_MICROWAVE_OVEN 0xD2
 
-/* æ´æ¿¯ä¹¾ç¥æ© */
+/* 洗濯乾燥機 */
 #define EOJ_X2_WASHER_AND_DRYER 0xD3
 
 /*
- * å¥åº·é¢é£æ©å¨ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* ä½éè¨ */
+ * 健康関連機器クラスグループ *
+ */
+/* 体重計 */
 #define EOJ_X2_WEIGHING_MACHINE 0x01
 
-/* ä½æ¸©è¨ */
+/* 体温計 */
 #define EOJ_X2_CLINICAL_THERMOMETER 0x02
 
-/* è¡å§è¨ */
+/* 血圧計 */
 #define EOJ_X2_BLOOD_PRESSURE_METER 0x03
 
-/* è¡ç³å¤è¨ */
+/* 血糖値計 */
 #define EOJ_X2_BLOOD_SUGAR_METER 0x04
 
-/* ä½èèªè¨ */
+/* 体脂肪計 */
 #define EOJ_X2_BODY_FAT_METER 0x05
 
 /*
- * ç®¡çã»æä½é¢é£æ©å¨ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* ã»ã­ã¥ã¢éä¿¡ç¨å
-±æéµè¨­å®ãã¼ã */
+ * 管理・操作関連機器クラスグループ *
+ */
+/* セキュア通信用共有鍵設定ノード */
 #define EOJ_X2_SECURE_COMMUNICATION_SHARED_KEY_SETUP_NODE 0xFC
 
-/* ã¹ã¤ããï¼JEMA/HAç«¯å­å¯¾å¿ï¼ */
+/* スイッチ（JEMA/HA端子対応） */
 #define EOJ_X2_SWITCH 0xFD
 
-/* æºå¸¯ç«¯æ« */
+/* 携帯端末 */
 #define EOJ_X2_PORTABLE_TERMINAL 0xFE
 
-/* ã³ã³ãã­ã¼ã© */
+/* コントローラ */
 #define EOJ_X2_CONTROLLER 0xFF
 
 /*
- * ï¼¡ï¼¶é¢é£æ©å¨ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* ãã£ã¹ãã¬ã¼ */
+ * ＡＶ関連機器クラスグループ *
+ */
+/* ディスプレー */
 #define EOJ_X2_DISPLAY 0x01
 
-/* ãã¬ã */
+/* テレビ */
 #define EOJ_X2_TELEVISION 0x02
 
 /*
- * ãã­ãã¡ã¤ã«ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* ãã¼ããã­ãã¡ã¤ã« */
+ * プロファイルクラスグループ *
+ */
+/* ノードプロファイル */
 #define EOJ_X2_NODE_PROFILE 0xF0
 
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_dbg.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_dbg.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_dbg.c	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /*
- *		ECHONET Lite ã¿ã¹ã¯ ãããã°åºå
+ *		ECHONET Lite タスク デバッグ出力
  */
 
@@ -76,6 +61,5 @@
 static ER _ecn_dbg_wai_syslog(void);
 /*
- *  syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤
+ *  syslog()バッファに余裕ができるまで待つ
  */
 static ER _ecn_dbg_wai_syslog(void)
@@ -118,6 +102,6 @@
 
 /*
- * ãããã°åºå
- * ä¾ï¼		ECN_DBG_PUT_2("task start");
+ * デバッグ出力
+ * 例：		ECN_DBG_PUT_2("task start");
  */
 int _ecn_dbg_dbgput(ecnl_svc_task_t *svc, const char *fp_srcloc, const char *fp_form, ...)
@@ -127,10 +111,10 @@
 #ifdef ECN_DBG_PUT_USE_STATIC
  #ifndef SEM_ECN_DBG_PUT
-	/* 256byteãããã¡8æ¬ã­ã¼ãã¼ã·ã§ã³ */
+	/* 256byteバッファ8本ローテーション */
 	static char				a_buf[8][256];
 	static volatile uint_t	a_buf_idx = 0;
 	uint_t					a_buf_idx_a;
  #else
-	/* ã»ããã©ãç¨ãã¦ã1æ¬ã®ãããã¡ä¸ã«æå­åãä¸¦ã¹ã¦ä½¿ã */
+	/* セマフォを用いて、1本のバッファ上に文字列を並べて使う */
 	static char				a_buf[1024];
 	static volatile uint_t	a_buf_pos = 0;
@@ -155,10 +139,9 @@
 	p_buf = a_buf[a_buf_idx_a & 0x07];
  #else
-	if (sizeof(a_buf) - a_buf_pos < 80)	/* æ®ãã80byteæªæºã«ãªã£ãããå
-é ­ã«æ»ã */
+	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ä»¥ä¸ã®ä½ç½ããããã¡ã¯ãæ«å°¾80byteãæ®ã */
+	if (80 * 2 <= a_buf_len)	/* 80byte*2以上の余白があるうちは、末尾80byteを残す */
 		a_buf_len -= 80;
  #endif /* #ifdef SEM_ECN_DBG_PUT */
@@ -184,8 +167,7 @@
  #ifdef SEM_ECN_DBG_PUT
 	a_buf_len = strlen(p_buf) + 1;
-	/* æ®ãã80byteæªæºã«ãªã£ãã */
+	/* 残りが80byte未満になったら */
 	if (sizeof(a_buf) - a_buf_pos - a_buf_len < 80) {
-		/* å
-é ­ã«æ»ã */
+		/* 先頭に戻る */
 		a_buf_pos = 0;
 	} else {
@@ -195,6 +177,5 @@
 #endif
 
-	_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+	_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 
 #ifdef SEM_ECN_DBG_PUT
@@ -212,5 +193,5 @@
 }
 
-/* ECN_ENOD_IDã®æå­åå¤æ */
+/* ECN_ENOD_IDの文字列変換 */
 const char *_ecn_dbg_enod2str(ECN_ENOD_ID fa_enod_id)
 {
@@ -260,9 +241,9 @@
 
 /*
- * ãã¤ããªãã³ãåºå
+ * バイナリダンプ出力
  */
 void _ecn_dbg_bindmp(const uint8_t *buffer, size_t len)
 {
-	/* staticé åã®ãããã¡ãåãæ¿ããåæ°(2^n) */
+	/* static領域のバッファを切り替える個数(2^n) */
 	#define _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT (4)
 /*	*/
@@ -270,23 +251,23 @@
  #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
   #undef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
-  /* ã»ããã©(SEM_ECN_DBG_BINDMP)ãå®ç¾©ããã¦ããå ´åããããã¡åãæ¿ãã¯ä¸è¦ãªã®ã§undef */
+  /* セマフォ(SEM_ECN_DBG_BINDMP)が定義されている場合、バッファ切り替えは不要なのでundef */
  #endif
 #endif
 #ifndef _ECN_FBS_DBG_BINDMP_BUFLEN
- /* ãããã¡ãµã¤ãº(bindmpä¸­ã®1è¡ãåã¾ããµã¤ãº) */
+ /* バッファサイズ(bindmp中の1行が収まるサイズ) */
  #define _ECN_FBS_DBG_BINDMP_BUFLEN (80)
 #endif
 #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
-	/* staticé åã®ãããã¡ãåãæ¿ããããã®ç®¡çç¨å¤æ° */
+	/* static領域のバッファを切り替えるための管理用変数 */
 	static volatile uint8_t a_idx_vol = 0;
-	/* staticé åã®ãããã¡åãæ¿ãé å */
+	/* 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é åã®ãããã¡é å */
+	/* static領域のバッファ領域 */
 	static char a_buf[_ECN_FBS_DBG_BINDMP_BUFLEN];
 #endif
-	const uint8_t *p = buffer;			/* èª­ã¿åããã¤ã³ã¿ */
+	const uint8_t *p = buffer;			/* 読み取りポインタ */
 	int i, a_blk, a_blk_max, a_pos = 0;
 	const T_ECN_EDT_HDR *p_req_esv;
@@ -305,5 +286,5 @@
 	}
 	#ifndef ECN_DBG_BINDMP_MAXLEN
-	 /* bindmpåºåã®æå¤§ãµã¤ãº */
+	 /* bindmp出力の最大サイズ */
 	 #define ECN_DBG_BINDMP_MAXLEN 1600
 	#endif
@@ -320,6 +301,5 @@
 	for (a_blk = 0; p && a_blk < a_blk_max; p = ((T_ECN_FST_BLK *)buffer)->lnk.p_sub[a_blk++]->payload) {
 		if (0 < a_blk) {
-			_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			printf("p_sub[%d] (0x%p)", a_blk - 1, p);
 		}
@@ -328,6 +308,5 @@
 			if (i % 16 == 0) {
 				if (a_buf[0]) {
-					_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+					_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 					printf("%s", a_buf);
 				}
@@ -349,6 +328,5 @@
 		}
 		if (a_buf[0]) {
-			_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			printf("%s", a_buf);
 		}
@@ -361,23 +339,18 @@
 		case ECN_MSG_ECHONET:
 			p_req_esv = (T_ECN_EDT_HDR *)&((const T_ECN_FST_BLK *)buffer)->payload;
-			_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			printf(" sender: %d %s, target: %d %s",
 				((T_ECN_FST_BLK *)buffer)->hdr.sender.id, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.sender.id),
 				((T_ECN_FST_BLK *)buffer)->hdr.target.id, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.target.id));
-			_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			printf(" 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()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			printf(" 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()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			printf(" ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc);
-			_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			printf(" cur(blk/pos): wr %d, rd %d",
 				(int)((T_ECN_FST_BLK *)buffer)->hdr.wr,
@@ -419,15 +392,12 @@
 	&& ((const T_ECN_FST_BLK *)buffer)->payload[1] == 0x81) {
 		p_req_esv = (const T_ECN_EDT_HDR *)&((const T_ECN_FST_BLK *)buffer)->payload[0];
-		_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+		_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 		printf(" 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()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+		_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 		printf(" 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()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+		_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 		printf(" ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc);
 	}
@@ -438,25 +408,25 @@
 
 /*
- * ECHONET Liteãµã¼ãã¹ã³ã¼ãæå­åå¤æ
+ * ECHONET Liteサービスコード文字列変換
  */
 const char *_ecn_dbg_esv2str(uint8_t fa_esv)
 {
 	switch (fa_esv) {
-	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 */
+	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)";
@@ -467,13 +437,12 @@
 {
 	switch (errorno) {
-	case E_SYS:		return "ã·ã¹ãã ã¨ã©ã¼";
-	case E_PAR:		return "ãã©ã¡ã¼ã¿ã¨ã©ã¼";
-	case E_NOMEM:	return "ã¡ã¢ãªä¸è¶³";
-	case E_OBJ:		return "ãªãã¸ã§ã¯ãç¶æ
-ã¨ã©ã¼";
-	case E_NOEXS:	return "ãªãã¸ã§ã¯ãæªçæ";
-	case E_TMOUT:	return "ãã¼ãªã³ã°å¤±æã¾ãã¯ã¿ã¤ã ã¢ã¦ã";
-	case E_BOVR:	return "ãããã¡ãªã¼ãã¼ãã­ã¼";
-	case E_BRK:		return "ã¦ã¼ã¶ã¼ã«ããä¸­æ­";
+	case E_SYS:		return "システムエラー";
+	case E_PAR:		return "パラメータエラー";
+	case E_NOMEM:	return "メモリ不足";
+	case E_OBJ:		return "オブジェクト状態エラー";
+	case E_NOEXS:	return "オブジェクト未生成";
+	case E_TMOUT:	return "ポーリング失敗またはタイムアウト";
+	case E_BOVR:	return "バッファオーバーフロー";
+	case E_BRK:		return "ユーザーによる中断";
 	default:
 		return "(unknown)";
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_dbg.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_dbg.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_dbg.h	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /*
- *		ECHONET Lite ã¿ã¹ã¯ ãããã°åºå
+ *		ECHONET Lite タスク デバッグ出力
  */
 
@@ -79,5 +64,5 @@
 #endif
 
-/* ãããã°åºå(CARP) */
+/* デバッグ出力(CARP) */
 #ifdef ECN_CAP_PUT_ENA
 #define ECN_CAP_PUT(a)					printf(a)
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_fbs.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_fbs.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_fbs.c	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  */
 
 /*
- * åºå®é·ãããã¡å¯å¤é·ã¹ããªã¼ã 
+ * 固定長バッファ可変長ストリーム
  */
 
@@ -264,5 +249,5 @@
 }
 
-/* ã¡ã¢ãªãã­ãã¯åå¾ ok:ãã¤ã³ã¿ NG:NULL */
+/* メモリブロック取得 ok:ポインタ NG:NULL */
 void *_ecn_fbs_mbx_get(mrb_state *mrb, ECN_FBS_SIZE_T fa_req_size)
 {
@@ -281,5 +266,5 @@
 }
 
-/* ã¡ã¢ãªãã­ãã¯è§£æ¾ */
+/* メモリブロック解放 */
 ER _ecn_fbs_mbx_rel(mrb_state *mrb, void *p)
 {
@@ -289,5 +274,5 @@
 }
 
-/* é åç¢ºä¿ */
+/* 領域確保 */
 ER _ecn_fbs_cre(mrb_state *mrb, ECN_FBS_SIZE_T fa_req_size, ECN_FBS_ID *fp_id)
 {
@@ -295,5 +280,5 @@
 }
 
-/* é åè§£æ¾ */
+/* 領域解放 */
 ER _ecn_fbs_del(mrb_state *mrb, ECN_FBS_ID fa_id)
 {
@@ -301,5 +286,5 @@
 }
 
-/* ä¿æãã¼ã¿ã®æç¡ */
+/* 保持データの有無 */
 bool_t _ecn_fbs_exist_data(ECN_FBS_ID fa_id)
 {
@@ -307,5 +292,5 @@
 }
 
-/* ä¿æãã¼ã¿é·ã®åå¾ */
+/* 保持データ長の取得 */
 ECN_FBS_SSIZE_T _ecn_fbs_get_datalen(ECN_FBS_ID fa_id)
 {
@@ -313,5 +298,5 @@
 }
 
-/* èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®åå¾ */
+/* 読み取りカーソルの位置取得 */
 ECN_FBS_SSIZE_T _ecn_fbs_get_rpos(ECN_FBS_ID fa_id)
 {
@@ -319,8 +304,8 @@
 }
 
-/* èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®è¨­å® */
+/* 読み取りカーソルの位置設定 */
 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)	/* ä½ç½®æå®ãå¤§ãããã */
+	if (fa_id.ptr->hdr.length <= (unsigned int)fa_pos)	/* 位置指定が大きすぎる */
 		return E_PAR;
 
@@ -330,5 +315,5 @@
 }
 
-/* èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®ç§»å */
+/* 読み取りカーソルの位置移動 */
 ER _ecn_fbs_seek_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek)
 {
@@ -340,5 +325,5 @@
 }
 
-/* ä»»ææå®ä½ç½®ã®1byteèª­ã¿åã */
+/* 任意指定位置の1byte読み取り */
 int _ecn_fbs_peek(mrb_state *mrb, ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek)
 {
@@ -351,5 +336,5 @@
 }
 
-/* ä»»ææå®ä½ç½®ã®1byteæ¸ãè¾¼ã¿ */
+/* 任意指定位置の1byte書き込み */
 ER _ecn_fbs_poke(mrb_state *mrb, ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek, int fa_val)
 {
@@ -362,5 +347,5 @@
 }
 
-/* ãã¼ã¿è¿½å  */
+/* データ追加 */
 ER _ecn_fbs_add_data(mrb_state *mrb, ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len)
 {
@@ -372,5 +357,5 @@
 }
 
-/* ãã¼ã¿è¿½å (é åãèªåçã«æ¡å¼µãã) */
+/* データ追加(領域を自動的に拡張する) */
 ER _ecn_fbs_add_data_ex(mrb_state *mrb, ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len)
 {
@@ -379,5 +364,5 @@
 }
 
-/* ãã¼ã¿åå¾ */
+/* データ取得 */
 ER _ecn_fbs_get_data(mrb_state *mrb, ECN_FBS_ID fa_id, void *fa_buf, ECN_FBS_SSIZE_T fa_maxlen, ECN_FBS_SSIZE_T *p_len)
 {
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_fbs.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_fbs.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_fbs.h	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
- * 
- */
-
-/*
- * åºå®é·ãããã¡å¯å¤é·ã¹ããªã¼ã 
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ */
+
+/*
+ * 固定長バッファ可変長ストリーム
  */
 
@@ -66,46 +51,42 @@
 
 #ifndef NUM_ECHONET_MEMPOOL_BLOCK
-#define NUM_ECHONET_MEMPOOL_BLOCK (60)		/* é»æç¨ã¡ã¢ãªãã­ãã¯ã®æ° */
+#define NUM_ECHONET_MEMPOOL_BLOCK (60)		/* 電文用メモリブロックの数 */
 #endif /* NUM_ECHONET_MEMPOOL_BLOCK */
 
 #ifndef ECHONET_MEMPOOL_BLOCK_SIZE
-#define ECHONET_MEMPOOL_BLOCK_SIZE (256)	/* é»æç¨ã¡ã¢ãªãã­ãã¯ã®ãµã¤ãº */
+#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ç®¡çé åãµã¤ãº */
+typedef unsigned int ECN_FBS_SIZE_T;	/* size_t相当  */
+typedef int ECN_FBS_SSIZE_T;			/* ssize_t相当 */
+
+/* T_EDATA管理領域サイズ */
 #define DEF_ECN_EDT_HDR_LEN (sizeof(intptr_t))
 
-/* ç®¡çé åãµã¤ãº(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)
 
-/* ç®¡çé åãå«ããã­ãã¯ã«ä¿æãããã¼ã¿ãµã¤ãº */
+/* 管理領域を含むブロックに保持するデータサイズ */
 #define DEF_ECN_FBS_FST_DAT_LEN (64)
 
-/* ãªã³ã¯ãã¤ã³ã¿é
-åã®ãµã¤ãº(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)
 
-/* åºå®é·ãããã¡æå¤§ãµã¤ãº */
+/* 固定長バッファ最大サイズ */
 #define DEF_ECN_FBS_BUF_MAXLEN ((DEF_ECN_FBS_LNK_LEN / sizeof(void *)) * ECHONET_MEMPOOL_BLOCK_SIZE + DEF_ECN_FBS_FST_DAT_LEN)
 
-/* å­è¦ç´ ãããã¡ã®ãµã¤ãº */
+/* 子要素バッファのサイズ */
 #define DEF_ECN_FBS_SUB_BUF_LEN ECHONET_MEMPOOL_BLOCK_SIZE
 
-/* é»æã®ç¨®å¥(å
-å®¹ã¯ä»®) */
+/* 電文の種別(内容は仮) */
 typedef enum
 {
-	ECN_FBS_TYPE_BLANK		=	0,		/* æªä½¿ç¨ã¹ããªã¼ã  */
-	ECN_FBS_TYPE_INTERNAL	=	1,		/* å
-é¨ã¡ãã»ã¼ã¸ */
-	ECN_FBS_TYPE_ECHONET	=	2		/* ECHONETé»æ */
+	ECN_FBS_TYPE_BLANK		=	0,		/* 未使用ストリーム */
+	ECN_FBS_TYPE_INTERNAL	=	1,		/* 内部メッセージ */
+	ECN_FBS_TYPE_ECHONET	=	2		/* ECHONET電文 */
 } TA_ECN_MSG_TYPE;
 
-/* ãªã³ã¯ãã¤ã³ã¿é
-åã«åæããããå­è¦ç´ ãããã¡ */
+/* リンクポインタ配列に列挙される、子要素バッファ */
 typedef struct
 {
@@ -113,6 +94,5 @@
 } T_ECN_SUB_BLK;
 
-/* ãªã³ã¯ãã¤ã³ã¿é
-å */
+/* リンクポインタ配列 */
 typedef union
 {
@@ -121,45 +101,33 @@
 } T_ECN_FBS_LNK;
 
-/* ç®¡çé å(64byte - sizeof(T_MSG)) */
+/* 管理領域(64byte - sizeof(T_MSG)) */
 typedef struct
 {
-	uint16_t	length;			/* ã¡ãã»ã¼ã¸é· */
-	uint16_t	type;			/* ã¡ãã»ã¼ã¸ã¿ã¤ã */
+	uint16_t	length;			/* メッセージ長 */
+	uint16_t	type;			/* メッセージタイプ */
 	union{
-		ECN_ENOD_ID id;			/* éä¿¡å
-ãã¼ãIDï¼ECHONETé»æï¼ */
-		struct ecn_fbs_queue *mbxid;	/* éä¿¡å
-ã¡ã¼ã«ããã¯ã¹IDï¼å
-é¨ã¡ãã»ã¼ã¸ï¼ */
+		ECN_ENOD_ID id;			/* 送信元ノードID（ECHONET電文） */
+		struct ecn_fbs_queue *mbxid;	/* 送信元メールボックスID（内部メッセージ） */
 	}sender;
 	union{
-		ECN_ENOD_ID id;			/* éä¿¡å
-ãã¼ãIDï¼ECHONETé»æï¼ */
-		struct ecn_fbs_queue *mbxid;	/* éä¿¡å
-ã¡ã¼ã«ããã¯ã¹IDï¼å
-é¨ã¡ãã»ã¼ã¸ï¼ */
+		ECN_ENOD_ID id;			/* 送信先ノードID（ECHONET電文） */
+		struct ecn_fbs_queue *mbxid;	/* 送信先メールボックスID（内部メッセージ） */
 	}target;
 	union{
-		ECN_ENOD_ID id;			/* è¿ä¿¡å
-ãã¼ãIDï¼ECHONETé»æï¼ */
-		struct ecn_fbs_queue *mbxid;	/* è¿ä¿¡å
-ã¡ã¼ã«ããã¯ã¹IDï¼å
-é¨ã¡ãã»ã¼ã¸ï¼ */
+		ECN_ENOD_ID id;			/* 返信先ノードID（ECHONET電文） */
+		struct ecn_fbs_queue *mbxid;	/* 返信先メールボックスID（内部メッセージ） */
 	}reply;
 
-	int			rd;				/*	èª­ã¿åããããæ
-å ±	*/
-	int			wr;				/*	æ¸ãè¾¼ã¿ãããæ
-å ±	*/
+	int			rd;				/*	読み取りヘッド情報	*/
+	int			wr;				/*	書き込みヘッド情報	*/
 } T_ECN_FBS_HDR;
 
-/* ç®¡çé åãå«ããã­ãã¯ã®æ§é  */
+/* 管理領域を含むブロックの構造 */
 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;	/*	ãªã³ã¯ãã¤ã³ã¿é
-å	128byte			*/
+	T_ECN_FBS_LNK	lnk;	/*	リンクポインタ配列	128byte			*/
 	uint8_t			payload[DEF_ECN_FBS_FST_DAT_LEN];
 } T_ECN_FST_BLK;
@@ -171,129 +139,125 @@
 } ECN_FBS_ID;
 
-/* ã¡ãã»ã¼ã¸ã­ã¥ã¼ */
+/* メッセージキュー */
 typedef struct ecn_fbs_queue
 {
-	T_ECN_FST_BLK	*pk_head;		/* å
-é ­ã®ã¡ãã»ã¼ã¸ */
-	T_ECN_FST_BLK	*pk_last;		/* æ«å°¾ã®ã¡ãã»ã¼ã¸ */
+	T_ECN_FST_BLK	*pk_head;		/* 先頭のメッセージ */
+	T_ECN_FST_BLK	*pk_last;		/* 末尾のメッセージ */
 } T_ECN_FBS_QUEUE;
 
-/* ã¡ã¢ãªãã­ãã¯åå¾ ok:ãã¤ã³ã¿ NG:NULL */
+/* メモリブロック取得 ok:ポインタ NG:NULL */
 void *_ecn_fbs_mbx_get(mrb_state *mrb, ECN_FBS_SIZE_T fa_req_size);
 
-/* ã¡ã¢ãªãã­ãã¯è§£æ¾ ok:0 NG:é0 */
+/* メモリブロック解放 ok:0 NG:非0 */
 ER _ecn_fbs_mbx_rel(mrb_state *mrb, void *p);
 
 /*
- * é åç¢ºä¿
- *	å¼æ°
- *		ECN_FBS_SIZE_T	fa_req_size		è¦æ±ãããã¡ãµã¤ãº(byte)
+ * 領域確保
+ *	引数
+ *		ECN_FBS_SIZE_T	fa_req_size		要求バッファサイズ(byte)
  *										max: DEF_ECN_FBS_BUF_MAXLEN
- *		ECN_FBS_ID		*fp_id			ç¢ºä¿ããFBS-IDã®æ ¼ç´å
-
- *	æ»ãå¤
- *		ER				0:ok é0:NG
+ *		ECN_FBS_ID		*fp_id			確保したFBS-IDの格納先
+ *	戻り値
+ *		ER				0:ok 非0:NG
  */
 ER _ecn_fbs_cre(mrb_state *mrb, ECN_FBS_SIZE_T fa_req_size, ECN_FBS_ID *fp_id);
 
 /*
- * é åè§£æ¾
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *	æ»ãå¤
- *		ER				0:ok, é0:NG
+ * 領域解放
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ecn_fbs_del(mrb_state *mrb, ECN_FBS_ID fa_id);
 
 /*
- * ä¿æãã¼ã¿ã®æç¡
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *	æ»ãå¤
- *		bool_t			0:ç¡ã, 1:ãã
+ * 保持データの有無
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *	戻り値
+ *		bool_t			0:無し, 1:あり
  */
 bool_t _ecn_fbs_exist_data(ECN_FBS_ID fa_id);
 
 /*
- * ä¿æãã¼ã¿é·ã®åå¾
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *	æ»ãå¤
- *		ECN_FBS_SSIZE_T	ä¿æãã¦ãããã¼ã¿ã®é·ã(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);
 
 /*
- * èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®åå¾
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *	æ»ãå¤
- *		ECN_FBS_SIZE_T	å
-é ­ããã®çµ¶å¯¾ä½ç½® -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);
 
 /*
- * èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®è¨­å®
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *		ECN_FBS_SIZE_T	fa_pos	è¨­å®ããä½ç½®(å
-é ­ããã®çµ¶å¯¾ä½ç½®)
- *	æ»ãå¤
- *		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);
 
 /*
- * èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®ç§»å
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *		ECN_FBS_SIZE_T	fa_seek	ç§»åé(ç¾ç¶ãåé²ã®ã¿)
- *	æ»ãå¤
- *		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);
 
 /*
- * ä»»ææå®ä½ç½®ã®1byteèª­ã¿åã
+ * 任意指定位置の1byte読み取り
  */
 int _ecn_fbs_peek(mrb_state *mrb, ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek);
 
 /*
- * ä»»ææå®ä½ç½®ã®1byteæ¸ãè¾¼ã¿
+ * 任意指定位置の1byte書き込み
  */
 ER _ecn_fbs_poke(mrb_state *mrb, ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek, int fa_val);
 
 /*
- * ãã¼ã¿è¿½å 
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *		const void *	fa_dat	è¿½å ãããã¼ã¿
- *		ECN_FBS_SSIZE_T	fa_len	è¿½å ããé·ã(byte)
- *	æ»ãå¤
- *		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(mrb_state *mrb, ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len);
 
 /*
- * ãã¼ã¿è¿½å (é åãèªåçã«æ¡å¼µãã)
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *		const void *	fa_dat	è¿½å ãããã¼ã¿
- *		ECN_FBS_SSIZE_T	fa_len	è¿½å ããé·ã(byte)
- *	æ»ãå¤
- *		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(mrb_state *mrb, ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len);
 
 /*
- * ãã¼ã¿åå¾
- *	å¼æ°
- *		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
+ * データ取得
+ *	引数
+ *		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(mrb_state *mrb, ECN_FBS_ID fa_id, void *fa_buf, ECN_FBS_SSIZE_T fa_maxlen,
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_lcl_task.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_lcl_task.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_lcl_task.c	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /*
- *		ECHONET Lite LCLéä¿¡å¦çã¿ã¹ã¯
+ *		ECHONET Lite LCL通信処理タスク
  */
 
@@ -90,5 +75,5 @@
 
 /*
- * åä¿¡ããLCLãã¼ã¿ãMAILBOXã«éã
+ * 受信したLCLデータをMAILBOXに送る
  */
 ER _ecn_lcl2mbx(ecnl_svc_task_t *svc, const uint8_t *buffer, size_t fa_len, const mrb_value dst);
@@ -106,6 +91,6 @@
 
 	a_rcv_pkt.buffer = buffer;
-	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		*/) {
+	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_2("[LCL ECHO SRV] illegal type (0x%02X,0x%02X)", a_rcv_pkt.t_esv->ecn_hdr.ehd1, a_rcv_pkt.t_esv->ecn_hdr.ehd2);
 		return E_PAR;
@@ -130,5 +115,5 @@
 	a_fbs_id.ptr->hdr.sender.id = ENOD_NOT_MATCH_ID;
 
-	/* éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ãããªã¢ã¼ãECHONETãã¼ãã¸å¤æ */
+	/* 通信レイヤーアドレスからリモートECHONETノードへ変換 */
 	a_enod_id = lcl_get_id(svc, (T_EDATA *)a_fbs_id.ptr, dst);
 	if (!lcl_is_valid_addrid(svc, a_enod_id)) {
@@ -136,11 +121,10 @@
 			ip2str(NULL, &dst->lcladdr));
 	} else {
-		/* éä¿¡å
-ECHONETãã¼ããè¨é² */
+		/* 送信元ECHONETノードを記録 */
 		a_fbs_id.ptr->hdr.sender.id = a_enod_id;
 	}
 	a_fbs_id.ptr->hdr.reply.id = a_fbs_id.ptr->hdr.sender.id;
 
-	/* echonet_taskã«éã */
+	/* echonet_taskに送る */
 	a_ret = ecn_fbs_enqueue(&svc->svc_mbxid, a_fbs_id.ptr);
 	if (a_ret != E_OK) {
@@ -155,5 +139,5 @@
 
 /*
-* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ ã¿ã¤ãã¼å¤åå¾
+* ECHONET Lite 通信レイヤータスク タイマー値取得
 */
 TMO echonet_lcltask_get_timer(ecnl_svc_task_t *svc)
@@ -168,5 +152,5 @@
 
 /*
-* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ æéçµéå¦ç
+* ECHONET Lite 通信レイヤータスク 時間経過処理
 */
 void echonet_lcltask_progress(ecnl_svc_task_t *svc, TMO a_timer)
@@ -176,5 +160,5 @@
 
 /*
-* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ ã¡ãã»ã¼ã¸åä¿¡å¦ç
+* ECHONET Lite 通信レイヤータスク メッセージ受信処理
 */
 void echonet_lcltask_recv_msg(ecnl_svc_task_t *svc, T_ECN_FST_BLK *p_msg)
@@ -185,5 +169,5 @@
 	a_fbs_id.ptr = p_msg;
 
-	/* éä¿¡ãã¼ã¿é·ãåå¾ */
+	/* 送信データ長を取得 */
 	a_snd_len = _ecn_fbs_get_datalen(a_fbs_id);
 
@@ -191,11 +175,10 @@
 
 	switch (a_fbs_id.ptr->hdr.type) {
-		/* å
-é¨ä½¿ç¨ã¡ãã»ã¼ã¸ */
+		/* 内部使用メッセージ */
 	case ECN_MSG_INTERNAL:
 		_ecn_int_msg(svc, a_fbs_id, a_snd_len);
 		break;
 
-		/* ECHONETç¨ã¡ãã»ã¼ã¸ */
+		/* ECHONET用メッセージ */
 	case ECN_MSG_ECHONET:
 		_ecn_esv_msg(svc, a_fbs_id);
@@ -206,10 +189,10 @@
 	}
 
-	/* é åè§£æ¾ */
+	/* 領域解放 */
 	_ecn_fbs_del(svc->mrb, a_fbs_id);
 }
 
 /*
-* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ ã¿ã¤ã ã¢ã¦ãå¦ç
+* ECHONET Lite 通信レイヤータスク タイムアウト処理
 */
 void echonet_lcltask_timeout(ecnl_svc_task_t *svc)
@@ -218,5 +201,5 @@
 }
 
-/* å¿ç­é»æç¨fbsè¨­å®(sender/targetã®è¨­å®) */
+/* 応答電文用fbs設定(sender/targetの設定) */
 static ER _ecn_lcl_cre_req_fbs(ecnl_svc_task_t *svc, T_ECN_FBS_QUEUE *sender, uint8_t cmd, ECN_FBS_ID *pk_req)
 {
@@ -248,5 +231,5 @@
 }
 
-/* å¿ç­é»æç¨fbsè¨­å®(sender/targetã®è¨­å®) */
+/* 応答電文用fbs設定(sender/targetの設定) */
 static ER _ecn_lcl_cre_res_fbs(ecnl_svc_task_t *svc, ECN_FBS_ID req, uint8_t cmd, ECN_FBS_ID *pk_res)
 {
@@ -279,6 +262,5 @@
 
 /*
- *  å
-é¨ã¡ãã»ã¼ã¸åä¿¡å¦ç
+ *  内部メッセージ受信処理
  */
 void _ecn_int_msg(ecnl_svc_task_t *svc, ECN_FBS_ID fbs_id, ECN_FBS_SSIZE_T a_snd_len)
@@ -300,5 +282,5 @@
 
 	switch(cmd){
-	// éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ãè¿ä¿¡
+	// 通信レイヤーアドレスを返信
 	case ECN_LCL_MSG_GET_LCLADDR_REQ:
 		if (a_snd_len < sizeof(msg)) {
@@ -370,5 +352,5 @@
 
 /*
- *  ECHONET é»æåä¿¡å¦ç
+ *  ECHONET 電文受信処理
  */
 void _ecn_esv_msg(ecnl_svc_task_t *svc, ECN_FBS_ID fbs_id)
@@ -381,9 +363,8 @@
 	ECN_FBS_SSIZE_T a_snd_len;
 
-	/* éä¿¡å
-éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ */
+	/* 送信先通信レイヤーアドレス */
 	a_dst = lcl_get_addr(svc, fbs_id.ptr->hdr.target.id);
 	if (mrb_type(a_dst) != MRB_TT_FALSE/*nil*/) {
-		ECN_DBG_PUT_4("[LCL TSK] echonet-node 0x%02X-0x%02X-0x%02X â lcl dest(%s)",
+		ECN_DBG_PUT_4("[LCL TSK] echonet-node 0x%02X-0x%02X-0x%02X → lcl dest(%s)",
 			((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx1,
 			((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx2,
@@ -393,5 +374,5 @@
 		a_msg = mrb_str_buf_new(mrb, a_len);
 
-		/* fbsããåºåé åã«ãã¼ã¿ãæ½åº */
+		/* fbsから出力領域にデータを抽出 */
 		a_snd_len = 0;
 		a_ret = _ecn_fbs_get_data(mrb, fbs_id, RSTRING_PTR(a_msg), a_len, &a_snd_len);
@@ -402,7 +383,6 @@
 			RSTR_SET_LEN(RSTRING(a_msg), a_snd_len);
 
-			/* éä¿¡å
-ã127.0.0.1 â mbxã«è»¢é */
-			ECN_DBG_PUT_1("redirect svc->lcl_mbxid â svc->svc_mbxid (esv:0x%02X)",
+			/* 送信先が127.0.0.1 → mbxに転送 */
+			ECN_DBG_PUT_1("redirect svc->lcl_mbxid → svc->svc_mbxid (esv:0x%02X)",
 				((T_EDATA *)fbs_id.ptr)->hdr.edata.esv);
 
@@ -420,5 +400,5 @@
 			_ecn_dbg_bindmp(RSTRING_PTR(a_msg), a_snd_len);
 #endif
-			/* éä¿¡ã¬ã¤ã¤ã¼ã¸éä¿¡ */
+			/* 通信レイヤーへ送信 */
 			a_ret = lcl_snd_msg(svc, a_dst, a_msg);
 			if (a_ret < 0) {
@@ -427,5 +407,5 @@
 		}
 
-		/* ãã¼ã¿ãé·ããã¦1ãã±ããã«åã¾ããªãã£ãå ´å */
+		/* データが長すぎて1パケットに収まらなかった場合 */
 		if (_ecn_fbs_exist_data(fbs_id)) {
 			ECN_DBG_PUT_1("[LCL TSK] send, data so long: %dbyte(s)", _ecn_fbs_get_datalen(fbs_id));
@@ -440,5 +420,5 @@
 
 /*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ *  ノンブロッキングコールのコールバック関数
  */
 ER echonet_lcl_input_msg(ecnl_svc_task_t *svc, mrb_value ep, mrb_value data)
@@ -452,5 +432,5 @@
 
 /*
- *  ãªã¢ã¼ãECHONETãã¼ãã®é©åç¢ºèª
+ *  リモートECHONETノードの適合確認
  */
 bool_t ecn_is_match(ecnl_svc_task_t *svc, const EOBJCB *enodcb, T_EDATA *edata, mrb_value ep)
@@ -470,5 +450,5 @@
 		return false;
 
-	/* ãã¼ãã¹ã¿ã¼ãæã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ä»¥å¤ã¯é¤å¤ */
+	/* ノードスタート時インスタンスリスト通知以外は除外 */
 	if (	edata->hdr.edata.esv != ESV_INF
 		||	edata->hdr.edata.deoj.eojx1 != EOJ_X1_PROFILE
@@ -492,18 +472,17 @@
 		}
 		ECN_DBG_PUT_2("ecn_is_match(): ecn_itr_nxt() result: epc=0x%02X, pdc=%d", epc, pdc);
-		/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã¾ãã¯èªãã¼ãã¤ã³ã¹ã¿ã³ã¹ãªã¹ãï¼³ä»¥å¤ã¯é¤å¤ */
+		/* インスタンスリスト通知または自ノードインスタンスリストＳ以外は除外 */
 		if ((epc != 0xD5) && (epc != 0xD6)) {
 			continue;
 		}
 
-		/* ï¼ãã¤ãç®ä»¥éã«eojãåæããã¦ãã */
+		/* ２バイト目以降にeojが列挙されている */
 		count = (pdc - 1) / sizeof(T_ECN_EOJ);
 
-		/* ãã¼ãå
-ã®æ©å¨ãªãã¸ã§ã¯ããæ¤ç´¢ */
+		/* ノード内の機器オブジェクトを検索 */
 		for (k = 0; k < enodcb->eobjcnt; k++) {
 			p_eobj = enodcb->eobjs[k];
 
-			/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ããç¢ºèª */
+			/* インスタンスリストを確認 */
 			match = false;
 			for (i = 0, j = 1; i < count; i++, j += sizeof(T_ECN_EOJ)) {
@@ -523,5 +502,5 @@
 		}
 
-		/* ãã¹ã¦æã£ã¦ãããé©åï¼ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãã®æ¹ãå¤ãã¦ããããã¨ã¨ããï¼ */
+		/* すべて揃っていたら適合（インスタンスリストの方が多くてもいいこととする） */
 		return true;
 	}
@@ -531,5 +510,5 @@
 
 /*
- *  éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ãããªã¢ã¼ãECHONETãã¼ãã¸å¤æ
+ *  通信レイヤーアドレスからリモートECHONETノードへ変換
  */
 ECN_ENOD_ID lcl_get_id(ecnl_svc_task_t *svc, T_EDATA *edata, const mrb_value ep)
@@ -542,5 +521,5 @@
 		return ENOD_MULTICAST_ID;
 
-	/* éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ã®åããã®ãæ¤ç´¢ */
+	/* 通信レイヤーアドレスの同じものを検索 */
 	if ((id = lcl_get_remote_id(svc, ep)) != ENOD_NOT_MATCH_ID) {
 		ECN_CAP_PUT_2("lcl_get_id(): ip-found remote(%d) = %s",
@@ -549,5 +528,5 @@
 	}
 
-	/* å¯¾å¿ãããªã¢ã¼ããã¼ããããã°éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ãè¨­å® */
+	/* 対応するリモートノードがあれば通信レイヤーアドレスを設定 */
 	if ((id = lcl_set_remote_addr(svc, edata, ep)) != ENOD_NOT_MATCH_ID) {
 		ECN_CAP_PUT_2("lcl_get_id(): enod-found remote(%d) = %s",
@@ -556,5 +535,5 @@
 	}
 
-	/* ç©ºãé åãæ¢ãã¦èªåç»é² */
+	/* 空き領域を探して自動登録 */
 	if ((id = lcl_add_remote_addr(svc, edata, ep)) != ENOD_NOT_MATCH_ID) {
 		ECN_CAP_PUT_2("lcl_get_id(): empty-found remote(%d) = %s",
@@ -567,16 +546,15 @@
 
 /*
- *  ãªã¢ã¼ãECHONETãã¼ãããéä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ã¸å¤æ
+ *  リモートECHONETノードから通信レイヤーアドレスへ変換
  */
 mrb_value lcl_get_addr(ecnl_svc_task_t *svc, ECN_ENOD_ID fa_enodid)
 {
 	if (fa_enodid == ENOD_MULTICAST_ID) {
-		/* targetãENOD_MULTICAST_IDã®å ´åããã«ãã­ã£ã¹ããè¡ã */
+		/* targetがENOD_MULTICAST_IDの場合、マルチキャストを行う */
 		return lcl_get_multicast_addr(svc);
 	}
 
 	if (fa_enodid < ENOD_REMOTE_ID) {
-		/* targetãæªå®ç¾©ã»LOCALã»APIã®å ´åãã­ã¼ã«ã«é
-éãè¡ã */
+		/* targetが未定義・LOCAL・APIの場合、ローカル配送を行う */
 		return lcl_get_local_addr(svc);
 	}
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_lcl_task.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_lcl_task.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_lcl_task.h	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /*
- *		ECHONET Lite ã¿ã¹ã¯
+ *		ECHONET Lite タスク
  */
 
@@ -66,5 +51,5 @@
 
 /*
- *  ECHONET Lite ä¸æåå ±ã¢ãã¬ã¹
+ *  ECHONET Lite 一斉同報アドレス
  */
 #ifdef SIL_ENDIAN_LITTLE
@@ -75,13 +60,12 @@
 
 /*
- *  ECHONET Lite ã¿ã¹ã¯é¢é£ã®å®æ°ã®ããã©ã«ãå¤ã®å®ç¾©
+ *  ECHONET Lite タスク関連の定数のデフォルト値の定義
  */
 #ifndef ECHONET_LCL_TASK_PRIORITY
-#define ECHONET_LCL_TASK_PRIORITY	3		/* åæåªå
-åº¦ */
+#define ECHONET_LCL_TASK_PRIORITY	3		/* 初期優先度 */
 #endif /* ECHONET_LCL_TASK_PRIORITY */
 
 #ifndef ECHONET_LCL_TASK_STACK_SIZE
-#define ECHONET_LCL_TASK_STACK_SIZE	1024	/* ã¹ã¿ãã¯é åã®ãµã¤ãº */
+#define ECHONET_LCL_TASK_STACK_SIZE	1024	/* スタック領域のサイズ */
 #endif /* ECHONET_LCL_TASK_STACK_SIZE */
 
@@ -90,22 +74,21 @@
 #endif /* NUM_ECHONET_LCL_MAILBOX */
 
- /* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ ã¿ã¤ãã¼å¤åå¾ */
+ /* ECHONET Lite 通信レイヤータスク タイマー値取得 */
 TMO echonet_lcltask_get_timer(ecnl_svc_task_t *svc);
 
-/* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ æéçµéå¦ç */
+/* ECHONET Lite 通信レイヤータスク 時間経過処理 */
 void echonet_lcltask_progress(ecnl_svc_task_t *svc, TMO a_timer);
 
-/* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ ã¡ãã»ã¼ã¸åä¿¡å¦ç */
+/* ECHONET Lite 通信レイヤータスク メッセージ受信処理 */
 void echonet_lcltask_recv_msg(ecnl_svc_task_t *svc, T_ECN_FST_BLK *p_msg);
 
-/* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ ã¿ã¤ã ã¢ã¦ãå¦ç */
+/* ECHONET Lite 通信レイヤータスク タイムアウト処理 */
 void echonet_lcltask_timeout(ecnl_svc_task_t *svc);
 
-/* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¡ãã»ã¼ã¸å
-¥å */
+/* ECHONET Lite 通信レイヤーメッセージ入力 */
 ER echonet_lcl_input_msg(ecnl_svc_task_t *svc, mrb_value ep, mrb_value data);
 
 /*
- *  ãªã¢ã¼ãECHONETãã¼ãã®é©åç¢ºèª
+ *  リモートECHONETノードの適合確認
  */
 bool_t ecn_is_match(ecnl_svc_task_t *svc, const EOBJCB *eobjcb, T_EDATA *edata, mrb_value ep);
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_task.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_task.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_task.c	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /*
- *		ECHONET Lite ã¿ã¹ã¯
+ *		ECHONET Lite タスク
  */
 
@@ -120,5 +105,5 @@
 			i += - ENOD_REMOTE_ID + 1;
 			if (from_app && (i < svc->tnum_enodid)) {
-				/* éåæã®ãªã¢ã¼ããã¼ãã¯ãµã¼ãã¹å¦çã¿ã¹ã¯ã§å¦çãã */
+				/* 非同期のリモートノードはサービス処理タスクで処理する */
 				switch (svc->eobjcb_table[i].profile->eobjatr) {
 				case EOBJ_SYNC_REMOTE_NODE:
@@ -168,5 +153,5 @@
 
 /*
- *  ECHONET Lite ã¿ã¹ã¯ã®åæåï¼ã³ã³ã¹ãã©ã¯ã¿ç¸å½ï¼
+ *  ECHONET Lite タスクの初期化（コンストラクタ相当）
  */
 void echonet_task_init(ecnl_svc_task_t *svc, intptr_t exinf)
@@ -176,5 +161,5 @@
 
 /*
- * ã¢ã¸ã¥ã¼ã«åæå
+ * モジュール初期化
  */
 static void _ecn_tsk_int_module_init(ecnl_svc_task_t *svc)
@@ -193,5 +178,5 @@
 
 /*
- * ECHONET Lite ã¿ã¹ã¯ ã¿ã¤ãã¼å¤åå¾
+ * ECHONET Lite タスク タイマー値取得
  */
 TMO echonet_svctask_get_timer(ecnl_svc_task_t *svc)
@@ -217,5 +202,5 @@
 
 /*
- * ECHONET Lite ã¿ã¹ã¯ æéçµéå¦ç
+ * ECHONET Lite タスク 時間経過処理
  */
 void echonet_svctask_progress(ecnl_svc_task_t *svc, TMO a_timer)
@@ -228,5 +213,5 @@
 
 /*
- * ECHONET Lite ã¿ã¹ã¯ ã¡ãã»ã¼ã¸åä¿¡å¦ç
+ * ECHONET Lite タスク メッセージ受信処理
  */
 void echonet_svctask_recv_msg(ecnl_svc_task_t *svc, T_ECN_FST_BLK *p_msg)
@@ -239,11 +224,10 @@
 
 	switch (fbs_id.ptr->hdr.type) {
-	/* å
-é¨ä½¿ç¨ã¡ãã»ã¼ã¸ */
+	/* 内部使用メッセージ */
 	case ECN_MSG_INTERNAL:
 		_ecn_tsk_int_msg(svc, svc->exinf, fbs_id);
 		break;
 
-	/* ECHONETç¨ã¡ãã»ã¼ã¸ */
+	/* ECHONET用メッセージ */
 	case ECN_MSG_ECHONET:
 		_ecn_tsk_ecn_msg(svc, svc->exinf, fbs_id);
@@ -254,5 +238,5 @@
 	}
 
-	/* é åè§£æ¾ */
+	/* 領域解放 */
 	if (svc->release_esv)
 		_ecn_fbs_del(svc->mrb, fbs_id);
@@ -260,5 +244,5 @@
 
 /*
- * ECHONET Lite ã¿ã¹ã¯ ã¿ã¤ã ã¢ã¦ãå¦ç
+ * ECHONET Lite タスク タイムアウト処理
  */
 void echonet_svctask_timeout(ecnl_svc_task_t *svc)
@@ -271,5 +255,5 @@
 
 /*
- * ã·ã¼ã±ã³ã¹çªå·çæ
+ * シーケンス番号生成
  */
 static uint16_t _ecn_tsk_new_tid(ecnl_svc_task_t *svc)
@@ -279,16 +263,13 @@
 
 /*
- * è¦æ±é»æä½æ
- * å¼æ°
- * 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 ãµã¼ãã¹ã³ã¼ã
+ * 要求電文作成
+ * 引数
+ * 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(ecnl_svc_task_t *svc, ECN_FBS_ID *fp_fbs_id, ID fa_seoj, ID fa_deoj,
@@ -298,5 +279,5 @@
 	ER				a_ret;
 	int				a_size, i;
-	ECN_FBS_ID		a_fbs_id = { 0 };	/* è¦æ±é»æç¨ã¡ã¢ãª				*/
+	ECN_FBS_ID		a_fbs_id = { 0 };	/* 要求電文用メモリ				*/
 	T_ECN_EDT_HDR	a_ecn_hdp;			/* ecn_hdr+edata+ecn_prp 14byte	*/
 	ID				a_enodid;
@@ -305,29 +286,28 @@
 
 	if (!fp_fbs_id)
-		return E_PAR; /* åå¾ããFBS_IDã®æ ¼ç´å
-ãNULL */
+		return E_PAR; /* 取得したFBS_IDの格納先がNULL */
 	if (ECHONET_MEMPOOL_BLOCK_SIZE <= fa_pdc)
-		return E_PAR; /* ãã­ããã£å¤ãµã¤ãºãå¤§ãããã */
+		return E_PAR; /* プロパティ値サイズが大きすぎる */
 	if (!p_edt && 0 < fa_pdc)
-		return E_PAR; /* ãã­ããã£å¤ãµã¤ãºã1ä»¥ä¸ãªã®ã«ãã¼ã¿ãã¤ã³ã¿ãNULL */
+		return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
 
 	if (fa_seoj <= EOBJ_NULL || svc->tmax_eobjid < fa_seoj)
-		return E_NOEXS; /* ECHONETãªãã¸ã§ã¯ãIDãæªå®ç¾© */
+		return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
 #ifndef ECHONET_CONTROLLER_EXTENTION
 	if (fa_deoj < EOBJ_NULL || svc->tmax_eobjid < fa_deoj)
-		return E_NOEXS; /* ECHONETãªãã¸ã§ã¯ãIDãæªå®ç¾© */
+		return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
 #else
 	if (fa_deoj < EOBJ_NULL || (svc->tmax_eobjid + TNUM_AEOBJID) < fa_deoj)
-		return E_NOEXS; /* ECHONETãªãã¸ã§ã¯ãIDãæªå®ç¾© */
+		return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
 #endif
 	if (fa_deoj == EOBJ_NULL && fa_esv == ESV_INFC)
-		return E_NOEXS; /* ECHONETãªãã¸ã§ã¯ãIDãæªå®ç¾© */
-
-	/* è¦æ±æå°ãµã¤ãºã®åå¾ */
+		return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
+
+	/* 要求最小サイズの取得 */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* è¦æ±é»æç¨ã¡ã¢ãªã®åå¾ */
+	/* 要求電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_id);
-	if (a_ret != E_OK || !a_fbs_id.ptr) { /* ç¢ºä¿å¤±æ */
+	if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
 		ECN_DBG_PUT_3("_ecn_fbs_cre(%d) result = %d:%s",
 			a_size,
@@ -336,5 +316,5 @@
 	}
 
-	/* è¦æ±é»æè¨­å®						*/
+	/* 要求電文設定						*/
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
 	a_ecn_hdp.ecn_hdr.ehd1 = ECN_EDH1_ECHONET_LITE;
@@ -343,9 +323,9 @@
 	memcpy(&a_ecn_hdp.edata.seoj, &echonet_svctask_get_eobjinib(svc, fa_seoj)->eojx1, sizeof(a_ecn_hdp.edata.seoj));
 	a_ecn_hdp.edata.esv = fa_esv;
-	a_ecn_hdp.edata.opc = 1;		/* å¦çãã­ããã£æ° */
-	a_ecn_hdp.ecn_prp.epc = fa_epc;	/* ãã­ããã£ã³ã¼ã */
-	a_ecn_hdp.ecn_prp.pdc = fa_pdc;	/* ä»éãã¼ã¿ãµã¤ãº */
-
-	/* è¦æ±é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å  */
+	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(mrb, a_fbs_id, &a_ecn_hdp, a_size);
 	if (a_ret) {
@@ -356,5 +336,5 @@
 	}
 	if (0 < fa_pdc) {
-		/* ä»éãã¼ã¿è¿½å  */
+		/* 付随データ追加 */
 		a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_id, p_edt, fa_pdc);
 		if (a_ret) {
@@ -366,6 +346,6 @@
 	}
 	if (fa_deoj == 0) {
-		ECN_DBG_PUT("ãã«ãã­ã£ã¹ã");
-		/* fa_deoj == 0 : ãã«ãã­ã£ã¹ã */
+		ECN_DBG_PUT("マルチキャスト");
+		/* 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;
@@ -375,10 +355,10 @@
 	else if (fa_deoj <= svc->tmax_eobjid) {
 		ECN_DBG_PUT_1("fa_deoj = %d", fa_deoj);
-		/* if (fa_deoj < 1 || svc->tmax_eobjid < fa_deoj) â¦ã®ç°å¸¸ç³»ã¯é¢æ°åé ­ã§é¤å¤æ¸ã¿ã¨ãã */
+		/* if (fa_deoj < 1 || svc->tmax_eobjid < fa_deoj) …の異常系は関数冒頭で除外済みとする */
 		a_eobj = echonet_svctask_get_eobjinib(svc, fa_deoj);
 		memcpy(&((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj, &a_eobj->eojx1,
 			sizeof(((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj));
 
-		/* ãã¼ãã«ããæ¤ç´¢ */
+		/* テーブルから検索 */
 		a_fbs_id.ptr->hdr.target.id = ENOD_NOT_MATCH_ID;
 		a_enodid = (a_eobj->enodid == 0) ? fa_deoj : a_eobj->enodid;
@@ -420,5 +400,5 @@
 		ECN_ENOD_ID enodid;
 		ECN_DBG_PUT_1("fa_deoj = %d", fa_deoj);
-		/* ãªãã¸ã§ã¯ãIDããEOJã¨ãã¼ãIDãåå¾ */
+		/* オブジェクトIDからEOJとノードIDを取得 */
 		if(ecn_agent_get_eoj_enodid(svc, fa_deoj, &eoj, &enodid)){
 			memcpy(&((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj, &eoj,
@@ -452,10 +432,10 @@
 
 	((T_EDATA *)a_fbs_id.ptr)->trn_pos = -1;
-	/* æ­£å¸¸çµäº */
+	/* 正常終了 */
 	*fp_fbs_id = a_fbs_id;
 	return E_OK;
 
 lb_except:
-	/* ãã¼ã¿ä½æå¤±æãããé åè§£æ¾ */
+	/* データ作成失敗したら領域解放 */
 	if (a_fbs_id.ptr)
 		_ecn_fbs_del(mrb, a_fbs_id);
@@ -465,6 +445,5 @@
 
 /*
- * å
-é¨ä½¿ç¨ã¡ãã»ã¼ã¸
+ * 内部使用メッセージ
  */
 static void _ecn_tsk_int_msg(ecnl_svc_task_t *svc, intptr_t fa_exinf, ECN_FBS_ID fa_fbs_id)
@@ -497,5 +476,5 @@
 
 /*
- * ã¿ã¹ã¯åæå
+ * タスク初期化
  */
 void _ecn_tsk_int_startup(ecnl_svc_task_t *svc)
@@ -505,11 +484,11 @@
 
 /*
- * ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®éä¿¡
- * 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(ecnl_svc_task_t *svc)
 {
 	mrb_state *mrb = svc->mrb;
-	const T_ECN_EOJ	a_seoj =	/* 0x01 : ä¸è¬ãã¼ãã0x02ï¼éä¿¡å°ç¨ãã¼ã */
+	const T_ECN_EOJ	a_seoj =	/* 0x01 : 一般ノード、0x02：送信専用ノード */
 		{ EOJ_X1_PROFILE, EOJ_X2_NODE_PROFILE, 0x01 };
 	const T_ECN_EOJ	a_deoj =
@@ -521,5 +500,5 @@
 	int			i;
 	uint8_t		a_count;
-	const EOBJCB	*enod = &svc->eobjcb_table[0];	/* ã­ã¼ã«ã«ãã¼ã */
+	const EOBJCB	*enod = &svc->eobjcb_table[0];	/* ローカルノード */
 	const EOBJINIB *eobj;
 
@@ -539,11 +518,11 @@
 
 		if (!a_eoj_ct) {
-			/* ã¡ã¢ãªç¢ºä¿ã»ãããæ ¼ç´ */
-			a_hdr.ecn_hdr.tid = (uint8_t)_ecn_tsk_new_tid(svc); /* ã·ã¼ã±ã³ã¹çªå·çæ */
+			/* メモリ確保・ヘッダ格納 */
+			a_hdr.ecn_hdr.tid = (uint8_t)_ecn_tsk_new_tid(svc); /* シーケンス番号生成 */
 			a_ret = _ecn_fbs_cre(mrb, sizeof(a_hdr), &a_fbs);
-			if (a_ret != E_OK) /* ç¢ºä¿å¤±æ */
+			if (a_ret != E_OK) /* 確保失敗 */
 				goto lb_except;
 			a_ret = _ecn_fbs_add_data(mrb, a_fbs, &a_hdr, sizeof(a_hdr));
-			if (a_ret != E_OK) /* ãã¼ã¿è¿½å å¤±æ */
+			if (a_ret != E_OK) /* データ追加失敗 */
 				goto lb_except;
 
@@ -552,26 +531,26 @@
 			a_fbs.ptr->hdr.target.id = ENOD_MULTICAST_ID;
 			a_fbs.ptr->hdr.reply.id = ENOD_LOCAL_ID;
-			((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc = 1;	/* ä»¶æ° */
-			/* ä»¶æ°ãæ ¼ç´ */
+			((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(mrb, a_fbs, &a_count, sizeof(a_count));
-			if (a_ret != E_OK) /* ãã¼ã¿è¿½å å¤±æ */
+			if (a_ret != E_OK) /* データ追加失敗 */
 				goto lb_except;
 		}
-		/* ECHONETãªãã¸ã§ã¯ãID(3byte)ãæ ¼ç´ */
+		/* ECHONETオブジェクトID(3byte)を格納 */
 		a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs, &eobj->eojx1, sizeof(T_ECN_EOJ));
-		if (a_ret != E_OK) /* ãã¼ã¿è¿½å å¤±æ */
+		if (a_ret != E_OK) /* データ追加失敗 */
 			goto lb_except;
 
-		/* ä»¶æ°ã»edtãµã¤ãºå ç® */
+		/* 件数・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;
 
-		/* 1ã¢ãã¦ã³ã¹ã§ã®ä¸éã«éããããä¸æ¦éä¿¡ */
+		/* 1アナウンスでの上限に達したら、一旦送信 */
 		a_ret = _ecn_tsk_snd_mbx(svc, a_fbs, false);
-		if (a_ret != E_OK) /* ãã¼ã¿éä¿¡å¤±æ */
+		if (a_ret != E_OK) /* データ送信失敗 */
 			goto lb_except;
 		a_eoj_ct = 0;
@@ -579,7 +558,7 @@
 	}
 	if (a_eoj_ct) {
-		/* æªéä¿¡ãã¼ã¿ããã£ãããéä¿¡ */
+		/* 未送信データがあったら、送信 */
 		a_ret = _ecn_tsk_snd_mbx(svc, a_fbs, false);
-		if (a_ret != E_OK) /* ãã¼ã¿éä¿¡å¤±æ */
+		if (a_ret != E_OK) /* データ送信失敗 */
 			goto lb_except;
 		a_fbs.ptr = 0;
@@ -625,6 +604,5 @@
 
 /*
- * 3byteã®eobjidã§é
-åä¸­ãæ¤ç´¢ãã
+ * 3byteのeobjidで配列中を検索する
  */
 const EOBJINIB *_ecn_eoj_fnd(const EOBJCB *fp_nod, const T_ECN_EOJ *fp_eoj)
@@ -659,5 +637,5 @@
 
 /*
- * é»æã®æ§æè¦ç´ æ°ã¨ãµã¤ãºã®ãã§ãã¯ãè¡ã
+ * 電文の構成要素数とサイズのチェックを行う
  */
 static bool_t _ecn_tsk_check_format(ecnl_svc_task_t *svc, T_EDATA *edata, int len)
@@ -702,5 +680,5 @@
 
 /*
- * ECHONETç¨ã¡ãã»ã¼ã¸
+ * ECHONET用メッセージ
  */
 static void _ecn_tsk_ecn_msg(ecnl_svc_task_t *svc, intptr_t fa_exinf, ECN_FBS_ID fa_fbs_id)
@@ -752,5 +730,5 @@
 	}
 
-	/* é»æã®æ§æè¦ç´ æ°ã¨ãµã¤ãºã®ãã§ãã¯ãè¡ã */
+	/* 電文の構成要素数とサイズのチェックを行う */
 	if (!_ecn_tsk_check_format(svc, (T_EDATA *)fa_fbs_id.ptr, fa_fbs_id.ptr->hdr.length)) {
 		ECN_DBG_PUT("_ecn_tsk_ecn_msg() format fault");
@@ -758,17 +736,16 @@
 	}
 
-	/* éä¿¡å®ãããã¼ããæ¤ç´¢ */
+	/* 送信宛からノードを検索 */
 	p_nod = _ecn_eno_fnd(svc, fa_fbs_id.ptr->hdr.target.id);
-	/* éä¿¡å
-ãããã¼ããæ¤ç´¢ */
+	/* 送信元からノードを検索 */
 	p_snod = _ecn_eno_fnd(svc, fa_fbs_id.ptr->hdr.sender.id);
 	if (p_snod != NULL) {
 		sobjatr = p_snod->profile->eobjatr;
-		/* ãã¼ããã­ãã¡ã¤ã«ã®å ´å */
+		/* ノードプロファイルの場合 */
 		if ((p_esv->edata.seoj.eojx1 == EOJ_X1_PROFILE)
 			&& (p_esv->edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
 			p_sobj = p_snod->profile;
 		}
-		/* æ©å¨ãªãã¸ã§ã¯ãã®å ´å */
+		/* 機器オブジェクトの場合 */
 		else {
 			p_sobj = _ecn_eoj_fnd(p_snod, &p_esv->edata.seoj);
@@ -780,6 +757,5 @@
 #endif
 
-	/* ãã¼ãå
-ã®æ©å¨ãªãã¸ã§ã¯ããæ¤ç´¢ */
+	/* ノード内の機器オブジェクトを検索 */
 	a_prc = false;
 	a_fwd = false;
@@ -788,20 +764,20 @@
 		eobjatr = p_nod->profile->eobjatr;
 		p_eoj = &p_esv->edata.deoj;
-		/* ãã¼ããã­ãã¡ã¤ã«ã®å ´å */
+		/* ノードプロファイルの場合 */
 		if ((p_eoj->eojx1 == EOJ_X1_PROFILE)
 			&& (p_eoj->eojx2 == EOJ_X2_NODE_PROFILE)) {
 			if ((p_eoj->eojx3 == p_nod->profile->eojx3)
 				|| (p_eoj->eojx3 == 0)) {
-				/* é»æå¦çå®è¡ */
+				/* 電文処理実行 */
 				if (_ecn_tsk_ecn_msg_main(svc, fa_fbs_id, p_nod->profile, eobjatr, p_sobj, sobjatr) == 1)
 					a_fwd = true;
 				a_prc = true;
 			}
-			/* 0x74 ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼ã®å ´åã®å ´åã¯é»æç ´æ£ */
+			/* 0x74 プロパティ値通知（応答要）の場合の場合は電文破棄 */
 			else if (p_esv->edata.esv == ESV_INFC) {
 				a_prc = true;
 			}
 		}
-		/* æ©å¨ãªãã¸ã§ã¯ãã®å ´å */
+		/* 機器オブジェクトの場合 */
 		else {
 			count = p_nod->eobjcnt;
@@ -822,10 +798,9 @@
 				if (p_obj->eojx2 != p_eoj->eojx2)
 					continue;
-				/* ã¤ã³ã¹ã¿ã³ã¹ã³ã¼ããï¼ã®å ´åãåãã¯ã©ã¹ã®å
-¨ã¦ã®ã¤ã³ã¹ã¿ã³ã¹å® */
+				/* インスタンスコードが０の場合、同じクラスの全てのインスタンス宛 */
 				if ((p_obj->eojx3 != p_eoj->eojx3) && (p_eoj->eojx3 != 0))
 					continue;
 
-				/* é»æå¦çå®è¡ */
+				/* 電文処理実行 */
 				if (_ecn_tsk_ecn_msg_main(svc, fa_fbs_id, p_obj, eobjatr, p_sobj, sobjatr) == 1)
 					a_fwd = true;
@@ -833,5 +808,5 @@
 			}
 
-			/* æ©å¨ãªãã¸ã§ã¯ããè¦ã¤ãããã0x74 ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼ã®å ´åã¯é»æç ´æ£ */
+			/* 機器オブジェクトが見つからず、0x74 プロパティ値通知（応答要）の場合は電文破棄 */
 			if (!a_prc && (p_esv->edata.esv == ESV_INFC)) {
 				a_prc = true;
@@ -839,12 +814,12 @@
 		}
 	}
-	/* æ©å¨ãªãã¸ã§ã¯ããè¦ã¤ãããªãå ´åã§ã */
+	/* 機器オブジェクトが見つからない場合でも */
 	if (!a_prc) {
-		/* é»æå¦çå®è¡ï¼å¿ç­åä¿¡ç¨ï¼ */
+		/* 電文処理実行（応答受信用） */
 		if (_ecn_tsk_ecn_msg_main(svc, fa_fbs_id, NULL, EPC_NONE, p_sobj, sobjatr) == 1)
 			a_fwd = true;
 	}
 
-	/* å¿ç­ã®å ´åã¢ããªã±ã¼ã·ã§ã³ã«è»¢éãã */
+	/* 応答の場合アプリケーションに転送する */
 	if (a_fwd && ((p_esv->ecn_hdr.tid == svc->api_tid)
 		|| svc->forward_esv))
@@ -852,5 +827,5 @@
 		svc->release_esv = false;
 
-		ECN_CAP_PUT_1("redirect svc->svc_mbxid â svc->api_mbxid (esv:0x%02X)",
+		ECN_CAP_PUT_1("redirect svc->svc_mbxid → svc->api_mbxid (esv:0x%02X)",
 			p_esv->edata.esv);
 		fa_fbs_id.ptr->hdr.target.id = ENOD_API_ID;
@@ -878,5 +853,5 @@
 
 	switch (p_esv->edata.esv) {
-	/* 0x60 ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼ */
+	/* 0x60 プロパティ値書き込み要求（応答不要） */
 	case ESV_SET_I:
 		if (!p_obj) {
@@ -890,5 +865,5 @@
 		break;
 
-	/* 0x61 ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼ */
+	/* 0x61 プロパティ値書き込み要求（応答要） */
 	case ESV_SET_C:
 		if (!p_obj) {
@@ -902,5 +877,5 @@
 		break;
 
-	/* 0x62 ãã­ããã£å¤èª­ã¿åºãè¦æ± */
+	/* 0x62 プロパティ値読み出し要求 */
 	case ESV_GET:
 		if (!p_obj) {
@@ -914,5 +889,5 @@
 		break;
 
-	/* 0x63 ãã­ããã£å¤éç¥è¦æ± */
+	/* 0x63 プロパティ値通知要求 */
 	case ESV_INF_REQ:
 		if (!p_obj) {
@@ -927,5 +902,5 @@
 		break;
 
-	/* 0x6E ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ± */
+	/* 0x6E プロパティ値書き込み・読み出し要求 */
 	case ESV_SET_GET:
 		if (!p_obj) {
@@ -939,34 +914,32 @@
 		break;
 
-	/* 0x74 ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼ */
+	/* 0x74 プロパティ値通知（応答要） */
 	case ESV_INFC:
 		if (!p_sobj)
-			/* éä¿¡å
-ãæªç¥ã®ä»ãã¼ãã§ãã£ãå ´åãå¿ç­ãè¿ã */
+			/* 送信元が未知の他ノードであった場合、応答を返す */
 			_ecn_tsk_eoj_res(svc, fa_fbs_id, ESV_INFC_RES, ESV_INFC_RES); /* 0x7A; 0x7A */
 		else if (fromapp)
-			/* ã¢ããªã±ã¼ã·ã§ã³ããã®è¦æ±ã®å ´åããã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼ãéä¿¡ãã */
+			/* アプリケーションからの要求の場合、プロパティ値通知（応答要）を送信する */
 			_ecn_tsk_eoj_get(svc, p_sobj, sobjatr, true, (EPC_RULE_GET|EPC_RULE_ANNO), fa_fbs_id, ESV_INFC, ESV_NOP); /* 0x74; 0 */
 		else
-			/* éä¿¡å
-ãæ¢ç¥ã®ä»ãã¼ãã§ãã£ãå ´åããã­ããã£å¤ãæ´æ°ãå¿ç­ãè¿ã */
+			/* 送信元が既知の他ノードであった場合、プロパティ値を更新し応答を返す */
 			_ecn_tsk_eoj_set(svc, p_sobj, sobjatr, fromapp, true, fa_fbs_id, ESV_INFC_RES, ESV_INFC_RES, &a_fbs_anno); /* 0x7A; 0x7A */
 		result = 0;
 		break;
 
-	/* 0x60 ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼ */
-	case ESV_SET_I_SNA:		/* 0x50 ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç­ */
+	/* 0x60 プロパティ値書き込み要求（応答不要） */
+	case ESV_SET_I_SNA:		/* 0x50 プロパティ値書き込み要求不可応答 */
 		result = 1;
 		break;
 
-	/* 0x61 ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼ */
-	case ESV_SET_RES:		/* 0x71 ãã­ããã£å¤æ¸ãè¾¼ã¿å¿ç­ */
-	case ESV_SET_C_SNA:		/* 0x51 ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç­ */
+	/* 0x61 プロパティ値書き込み要求（応答要） */
+	case ESV_SET_RES:		/* 0x71 プロパティ値書き込み応答 */
+	case ESV_SET_C_SNA:		/* 0x51 プロパティ値書き込み要求不可応答 */
 		result = 1;
 		break;
 
-	/* 0x62 ãã­ããã£å¤èª­ã¿åºãè¦æ± */
-	case ESV_GET_RES:		/* 0x72 ãã­ããã£å¤èª­ã¿åºãå¿ç­ */
-	case ESV_GET_SNA:		/* 0x52 ãã­ããã£å¤èª­ã¿åºãä¸å¯å¿ç­ */
+	/* 0x62 プロパティ値読み出し要求 */
+	case ESV_GET_RES:		/* 0x72 プロパティ値読み出し応答 */
+	case ESV_GET_SNA:		/* 0x52 プロパティ値読み出し不可応答 */
 		if (!p_sobj) {
 			ECN_DBG_PUT_1("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
@@ -979,7 +952,7 @@
 		break;
 
-	/* 0x63 ãã­ããã£å¤éç¥è¦æ± */
-	case ESV_INF:			/* 0x73 ãã­ããã£å¤éç¥ */
-	case ESV_INF_SNA:		/* 0x53 ãã­ããã£å¤éç¥ä¸å¯å¿ç­ */
+	/* 0x63 プロパティ値通知要求 */
+	case ESV_INF:			/* 0x73 プロパティ値通知 */
+	case ESV_INF_SNA:		/* 0x53 プロパティ値通知不可応答 */
 		if (!p_sobj) {
 			ECN_DBG_PUT_1("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
@@ -992,7 +965,7 @@
 		break;
 
-	/* 0x6E ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ± */
-	case ESV_SET_GET_RES:	/* 0x7E ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãå¿ç­ */
-	case ESV_SET_GET_SNA:	/* 0x5E ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãä¸å¯å¿ç­ */
+	/* 0x6E プロパティ値書き込み・読み出し要求 */
+	case ESV_SET_GET_RES:	/* 0x7E プロパティ値書き込み・読み出し応答 */
+	case ESV_SET_GET_SNA:	/* 0x5E プロパティ値書き込み・読み出し不可応答 */
 		if (!p_sobj) {
 			ECN_DBG_PUT_1("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
@@ -1005,6 +978,6 @@
 		break;
 
-	/* 0x74 ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼ */
-	case ESV_INFC_RES:		/* 0x7A ãã­ããã£å¤éç¥å¿ç­ */
+	/* 0x74 プロパティ値通知（応答要） */
+	case ESV_INFC_RES:		/* 0x7A プロパティ値通知応答 */
 		result = 1;
 		break;
@@ -1016,5 +989,5 @@
 	}
 
-	/* ãã­ããã£éç¥è¦æ±ãéä¿¡ */
+	/* プロパティ通知要求を送信 */
 	if (a_fbs_anno.ptr != NULL) {
 		ER a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_anno, true);
@@ -1093,13 +1066,11 @@
 
 /*
- * 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()ã§è§£æ¾ããå¿
-è¦ããã
+ * 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(ecnl_svc_task_t *svc, ECN_FBS_ID fa_fbs_id, T_ECN_PRP *fp_prp,
@@ -1111,7 +1082,7 @@
 	ER		a_ret;
 
-	/* ãã­ããã£ç¨ã¡ã¢ãªã®åå¾ */
+	/* プロパティ用メモリの取得 */
 	if (fp_prev_blk) {
-		p_blk = fp_prev_blk; /* ååä½¿ã£ãã¡ã¢ãªããããªããåå©ç¨ãã */
+		p_blk = fp_prev_blk; /* 前回使ったメモリがあるなら、再利用する */
 	}
 	else {
@@ -1119,10 +1090,10 @@
 		if (!p_blk) {
 			ECN_DBG_PUT("_ecn_fbs_mbx_get() fault.");
-			return 0;	/* ã¡ã¢ãªä¸è¶³ */
+			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(mrb, fa_fbs_id, fp_prp, sizeof(*fp_prp), &a_size);
@@ -1133,5 +1104,5 @@
 
 	if (0 < fp_prp->pdc) {
-		/* ä»éãã¼ã¿é¨å(edt)ãèª­ã¿åã */
+		/* 付随データ部分(edt)を読み取る */
 		a_size = 0;
 		a_ret = _ecn_fbs_get_data(mrb, fa_fbs_id, p_blk, fp_prp->pdc, &a_size);
@@ -1145,5 +1116,5 @@
 
 lb_except:
-	/* ãã­ããã£ç¨ã¡ã¢ãªè§£æ¾ */
+	/* プロパティ用メモリ解放 */
 	if (p_blk && !fp_prev_blk)
 		_ecn_fbs_mbx_rel(mrb, p_blk);
@@ -1155,5 +1126,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);
-/* ãã­ããã£å¤æ¸ãè¾¼ã¿å®è¡ */
+/* プロパティ値書き込み実行 */
 static ER _ecn_tsk_eoj_set_main(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_fromapp, 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,
@@ -1172,5 +1143,5 @@
 
 	for (i = 0; i < a_count; i++) {
-		/* ECN_FBS_IDããT_ECN_PRP1ä»¶ã¨ãã®ä»éãã¼ã¿ãæ½åºãããã®ãã¤ã³ã¿ãè¿ã */
+		/* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出し、そのポインタを返す */
 		p_edt = _ecn_tsk_get_prp_pce(svc, fa_fbs_id, &a_prp, p_edt);
 		if (!p_edt) {
@@ -1179,7 +1150,7 @@
 		}
 
-		/* ãã­ããã£ã®è¨­å® 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)
@@ -1203,11 +1174,11 @@
 				fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3,
 				a_prp.epc, p_edt->payload[0], a_size);
-			*p_sw_ok = 0;	/* ãã­ããã£è¨­å®å¤±æ */
-			/* å¿ç­å¦çã®å ´åEDTã¯è¨­å®ããªã */
+			*p_sw_ok = 0;	/* プロパティ設定失敗 */
+			/* 応答処理の場合EDTは設定しない */
 			if (fa_update)
 				a_prp.pdc = 0;
 		}
 
-		/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å (epc,pdcã®2byte) */
+		/* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
 		a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_prp, sizeof(a_prp));
 		if (a_ret) {
@@ -1217,5 +1188,5 @@
 
 		if (0 < a_prp.pdc) {
-			/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å (edt n-byte) */
+			/* 応答電文用メモリにデータ追加(edt n-byte) */
 			a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, p_edt->payload, a_prp.pdc);
 			if (a_ret) {
@@ -1226,5 +1197,5 @@
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc ++;
 
-		/* ãã­ããã£éç¥ããã®å ´å */
+		/* プロパティ通知ありの場合 */
 		if (a_anno && (a_ans == a_size)) {
 			if (fa_fbs_anno->ptr == NULL) {
@@ -1244,5 +1215,5 @@
 
 lb_finally:
-	/* ãã­ããã£ç¨ã¡ã¢ãªè§£æ¾ */
+	/* プロパティ用メモリ解放 */
 	if (p_edt)
 		_ecn_fbs_mbx_rel(mrb, p_edt);
@@ -1253,5 +1224,5 @@
 static ER _ecn_tsk_eoj_get_main(ecnl_svc_task_t *svc, 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);
-/* ãã­ããã£å¤èª­ã¿åºãå®è¡ */
+/* プロパティ値読み出し実行 */
 static ER _ecn_tsk_eoj_get_main(ecnl_svc_task_t *svc, 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)
@@ -1259,5 +1230,5 @@
 	mrb_state *mrb = svc->mrb;
 	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;
@@ -1267,13 +1238,13 @@
 	((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
 
-	/* ä½æ¥­é åç¢ºä¿ */
+	/* 作業領域確保 */
 	p_prp_buf = _ecn_fbs_mbx_get(mrb, ECHONET_MEMPOOL_BLOCK_SIZE);
 	if (!p_prp_buf) {
 		ECN_DBG_PUT_2("_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret));
-		goto lb_except;	/* ã¡ã¢ãªä¸è¶³ */
+		goto lb_except;	/* メモリ不足 */
 	}
 
 	for (i = 0; i < a_count; i++) {
-		/* ECN_FBS_IDããT_ECN_PRP1ä»¶ã¨ãã®ä»éãã¼ã¿ãæ½åº */
+		/* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出 */
 		p_edt = _ecn_tsk_get_prp_pce(svc, fa_fbs_id, &a_prp, p_edt);
 		if (!p_edt) {
@@ -1282,7 +1253,7 @@
 		}
 
-		/* ãã­ããã£ã®åå¾ 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)) {
@@ -1295,10 +1266,10 @@
 			a_prp.pdc = (uint8_t)a_ans;
 		} else {
-			*p_sw_ok = 0;	/* ãã­ããã£åå¾å¤±æ */
+			*p_sw_ok = 0;	/* プロパティ取得失敗 */
 			a_ans = 0;
 			a_prp.pdc = 0;
 		}
 
-		/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å (epc,pdcã®2byte) */
+		/* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
 		a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_prp, sizeof(a_prp));
 		if (a_ret) {
@@ -1307,5 +1278,5 @@
 		}
 		if (0 < a_ans) {
-			/* ä»éãã¼ã¿è¿½å  */
+			/* 付随データ追加 */
 			a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, p_prp_buf, a_ans);
 			if (a_ret) {
@@ -1323,9 +1294,9 @@
 
 lb_finally:
-	/* ä½æ¥­é åè§£æ¾ */
+	/* 作業領域解放 */
 	if (p_prp_buf)
 		_ecn_fbs_mbx_rel(mrb, p_prp_buf);
 
-	/* ãã­ããã£ç¨ã¡ã¢ãªè§£æ¾ */
+	/* プロパティ用メモリ解放 */
 	if (p_edt)
 		_ecn_fbs_mbx_rel(mrb, p_edt);
@@ -1335,10 +1306,10 @@
 
 static ER _ecn_tsk_eoj_res_main(ecnl_svc_task_t *svc, ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok);
-/* ãã­ããã£å¤èª­ã¿åºãå®è¡ */
+/* プロパティ値読み出し実行 */
 static ER _ecn_tsk_eoj_res_main(ecnl_svc_task_t *svc, ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok)
 {
 	mrb_state *mrb = svc->mrb;
 	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 */
@@ -1347,13 +1318,13 @@
 	((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
 
-	/* ä½æ¥­é åç¢ºä¿ */
+	/* 作業領域確保 */
 	p_prp_buf = _ecn_fbs_mbx_get(mrb, ECHONET_MEMPOOL_BLOCK_SIZE);
 	if (!p_prp_buf) {
 		ECN_DBG_PUT_2("_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret));
-		goto lb_except;	/* ã¡ã¢ãªä¸è¶³ */
+		goto lb_except;	/* メモリ不足 */
 	}
 
 	for (i = 0; i < a_count; i++) {
-		/* ECN_FBS_IDããT_ECN_PRP1ä»¶ã¨ãã®ä»éãã¼ã¿ãæ½åº */
+		/* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出 */
 		p_edt = _ecn_tsk_get_prp_pce(svc, fa_fbs_id, &a_prp, p_edt);
 		if (!p_edt) {
@@ -1364,5 +1335,5 @@
 		a_prp.pdc = 0;
 
-		/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å (epc,pdcã®2byte) */
+		/* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
 		a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_prp, sizeof(a_prp));
 		if (a_ret) {
@@ -1379,9 +1350,9 @@
 
 lb_finally:
-	/* ä½æ¥­é åè§£æ¾ */
+	/* 作業領域解放 */
 	if (p_prp_buf)
 		_ecn_fbs_mbx_rel(mrb, p_prp_buf);
 
-	/* ãã­ããã£ç¨ã¡ã¢ãªè§£æ¾ */
+	/* プロパティ用メモリ解放 */
 	if (p_edt)
 		_ecn_fbs_mbx_rel(mrb, p_edt);
@@ -1390,5 +1361,5 @@
 }
 
-/* ãã­ããã£å¤èª­ã¿é£ã°ãå®è¡ */
+/* プロパティ値読み飛ばし実行 */
 static ER _ecn_tsk_eoj_skip_main(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ECN_FBS_ID fa_fbs_id,
 	int a_count);
@@ -1402,5 +1373,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(mrb, fa_fbs_id, &a_prp, sizeof(a_prp), &a_size);
@@ -1410,5 +1381,5 @@
 		}
 
-		/* pdcåèª­ã¿é£ã°ã */
+		/* pdc分読み飛ばし */
 		a_ret = _ecn_fbs_seek_rpos(fa_fbs_id, a_prp.pdc);
 		if (a_ret) {
@@ -1429,5 +1400,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);
-/* å¿ç­é»æè¨­å® */
+/* 応答電文設定 */
 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)
@@ -1454,7 +1425,7 @@
 }
 
-/* å¿ç­é»æç¨fbsè¨­å® */
+/* 応答電文用fbs設定 */
 static void _ecn_tsk_set_rsp_fbs(ECN_FBS_ID fa_rsp_fbs, T_ECN_FST_BLK const *fp_req_ptr);
-/* å¿ç­é»æç¨fbsè¨­å®(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)
 {
@@ -1465,5 +1436,5 @@
 }
 
-/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±	*/
+/* プロパティ値書き込み要求	*/
 static void _ecn_tsk_eoj_set(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_fromapp, bool_t fa_update,
 	ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv,
@@ -1481,13 +1452,13 @@
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
 
-	/* å¿ç­æå¤§ãµã¤ãºã®åå¾ */
+	/* 応答最大サイズの取得 */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* å¿ç­é»æç¨ã¡ã¢ãªã®åå¾ */
+	/* 応答電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_res);
-	if (a_ret != E_OK || !a_fbs_res.ptr) /* ç¢ºä¿å¤±æ */
+	if (a_ret != E_OK || !a_fbs_res.ptr) /* 確保失敗 */
 		return;
 
-	/* å¿ç­é»æè¨­å® */
+	/* 応答電文設定 */
 	if(p_req_esv->edata.deoj.eojx3 != 0)
 		_ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
@@ -1495,10 +1466,7 @@
 		_ecn_tsk_mk_rsp_hdr(fp_obj, &a_ecn_hdp, p_req_esv);
 
-	/* æ­£å¸¸æã®å¿ç­é»æããã­ããã£å¤éç¥å¿ç­ã®å ´å */
+	/* 正常時の応答電文がプロパティ値通知応答の場合 */
 	if (fa_res_esv == ESV_INFC_RES) {
-		/* éä¿¡å
-ã¨å®å
-ãå
-¥ãæ¿ã */
+		/* 送信元と宛先を入れ替え */
 		eoj = a_ecn_hdp.edata.seoj;
 		a_ecn_hdp.edata.seoj = a_ecn_hdp.edata.deoj;
@@ -1506,7 +1474,7 @@
 	}
 
-	f_put_fbs_eoj("_ecn_tsk_eoj_set", "fa_fbs_id", fa_fbs_id); /* s/deoj ãããã°åºå */
-
-	/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å  */
+	f_put_fbs_eoj("_ecn_tsk_eoj_set", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
+
+	/* 応答電文用メモリにデータ追加 */
 	a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_ecn_hdp,
 				sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
@@ -1514,14 +1482,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;
 
-	/* å¿ç­é»æç¨fbsè¨­å® */
+	/* 応答電文用fbs設定 */
 	_ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿å®è¡ */
+	/* プロパティ値書き込み実行 */
 	a_ret = _ecn_tsk_eoj_set_main(svc, fp_obj, fa_eobjatr, fa_fromapp, fa_update, fa_fbs_id, a_fbs_res,
 		fa_fbs_anno, p_req_esv->edata.opc, &a_sw_ok);
@@ -1529,23 +1496,23 @@
 		goto lb_except;
 
-	/* å¿ç­è¦ã®å ´å */
+	/* 応答要の場合 */
 	if (a_sw_ok) {
 		if (!fa_res_esv) {
-			/* å¿ç­ä¸è¦ã®å ´å */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(mrb, a_fbs_res);
 			goto lb_finally;
 		}
-		/* è¨­å®å¦çæå */
+		/* 設定処理成功 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
 	} else {
 		if (!fa_sna_esv) {
-			/* å¿ç­ä¸è¦ã®å ´å */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(mrb, a_fbs_res);
 			goto lb_finally;
 		}
-		/* è¨­å®å¦çå¤±æ */
+		/* 設定処理失敗 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
 	}
-	/* å¿ç­éä¿¡ */
+	/* 応答送信 */
 	a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_res, false);
 	if (a_ret == E_OK)
@@ -1553,5 +1520,5 @@
 
 lb_except:
-	/* ãã¼ã¿éä¿¡å¤±æãããé åè§£æ¾ */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_res.ptr)
 		_ecn_fbs_del(mrb, a_fbs_res);
@@ -1561,5 +1528,5 @@
 }
 
-/* ãã­ããã£å¤èª­ã¿åºãè¦æ±	*/
+/* プロパティ値読み出し要求	*/
 static void _ecn_tsk_eoj_get(ecnl_svc_task_t *svc, 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)
@@ -1575,15 +1542,15 @@
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
 
-	/* åæåå¾ãµã¤ãº */
+	/* 初期取得サイズ */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* å¿ç­é»æç¨ã¡ã¢ãªã®åå¾ */
+	/* 応答電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_res);
-	if (a_ret != E_OK || !a_fbs_res.ptr) { /* ç¢ºä¿å¤±æ */
+	if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
 		ECN_DBG_PUT_2("_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret));
 		goto lb_finally;
 	}
 
-	/* å¿ç­é»æè¨­å® */
+	/* 応答電文設定 */
 	if(p_req_esv->edata.deoj.eojx3 != 0)
 		_ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
@@ -1591,7 +1558,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 ãããã°åºå */
-
-	/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å  */
+	f_put_fbs_eoj("_ecn_tsk_eoj_get", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
+
+	/* 応答電文用メモリにデータ追加 */
 	a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_ecn_hdp,
 			sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
@@ -1601,6 +1568,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) {
@@ -1609,8 +1575,8 @@
 	}
 
-	/* å¿ç­é»æç¨fbsè¨­å® */
+	/* 応答電文用fbs設定 */
 	_ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
 
-	/* ãã­ããã£å¤èª­ã¿è¾¼ã¿å®è¡ */
+	/* プロパティ値読み込み実行 */
 	a_ret = _ecn_tsk_eoj_get_main(svc, 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);
@@ -1622,25 +1588,25 @@
 	if (a_sw_ok) {
 		if (!fa_res_esv) {
-			/* å¿ç­ä¸è¦ã®å ´å */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(mrb, a_fbs_res);
 			goto lb_finally;
 		}
-		/* è¨­å®å¦çæå */
+		/* 設定処理成功 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
 	} else {
 		if (!fa_sna_esv) {
-			/* å¿ç­ä¸è¦ã®å ´å */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(mrb, a_fbs_res);
 			goto lb_finally;
 		}
-		/* è¨­å®å¦çå¤±æ */
+		/* 設定処理失敗 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
 
-		/* ä¸å¯å¿ç­ã®å ´åã¯åå¥éä¿¡ãã */
+		/* 不可応答の場合は個別送信する */
 		if (a_fbs_res.ptr->hdr.target.id == ENOD_MULTICAST_ID) {
 			a_fbs_res.ptr->hdr.target.id = fa_fbs_id.ptr->hdr.sender.id;
 		}
 	}
-	/* å¿ç­éä¿¡ */
+	/* 応答送信 */
 	a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_res, false);
 	if (a_ret != E_OK) {
@@ -1651,5 +1617,5 @@
 
 lb_except:
-	/* ãã¼ã¿éä¿¡å¤±æãããé åè§£æ¾ */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_res.ptr)
 		_ecn_fbs_del(mrb, a_fbs_res);
@@ -1659,5 +1625,5 @@
 }
 
-/* ãã­ããã£å¤èª­ã¿åºãè¦æ±	*/
+/* プロパティ値読み出し要求	*/
 static void _ecn_tsk_eoj_res(ecnl_svc_task_t *svc, ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv,
 	ECN_SRV_CODE fa_sna_esv)
@@ -1673,20 +1639,20 @@
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
 
-	/* åæåå¾ãµã¤ãº */
+	/* 初期取得サイズ */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* å¿ç­é»æç¨ã¡ã¢ãªã®åå¾ */
+	/* 応答電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_res);
-	if (a_ret != E_OK || !a_fbs_res.ptr) { /* ç¢ºä¿å¤±æ */
+	if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
 		ECN_DBG_PUT_2("_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret));
 		goto lb_finally;
 	}
 
-	/* å¿ç­é»æè¨­å®						*/
+	/* 応答電文設定						*/
 	_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 ãããã°åºå */
-
-	/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å  */
+	f_put_fbs_eoj("_ecn_tsk_eoj_res", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
+
+	/* 応答電文用メモリにデータ追加 */
 	a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_ecn_hdp,
 			sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
@@ -1696,6 +1662,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) {
@@ -1704,8 +1669,8 @@
 	}
 
-	/* å¿ç­é»æç¨fbsè¨­å® */
+	/* 応答電文用fbs設定 */
 	_ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
 
-	/* ãã­ããã£å¤èª­ã¿è¾¼ã¿å®è¡ */
+	/* プロパティ値読み込み実行 */
 	a_ret = _ecn_tsk_eoj_res_main(svc, fa_fbs_id, a_fbs_res,
 		((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc, &a_sw_ok);
@@ -1717,20 +1682,20 @@
 	if (a_sw_ok) {
 		if (!fa_res_esv) {
-			/* å¿ç­ä¸è¦ã®å ´å */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(mrb, a_fbs_res);
 			goto lb_finally;
 		}
-		/* è¨­å®å¦çæå */
+		/* 設定処理成功 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
 	} else {
 		if (!fa_sna_esv) {
-			/* å¿ç­ä¸è¦ã®å ´å */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(mrb, a_fbs_res);
 			goto lb_finally;
 		}
-		/* è¨­å®å¦çå¤±æ */
+		/* 設定処理失敗 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
 	}
-	/* å¿ç­éä¿¡ */
+	/* 応答送信 */
 	a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_res, false);
 	if (a_ret != E_OK) {
@@ -1741,5 +1706,5 @@
 
 lb_except:
-	/* ãã¼ã¿éä¿¡å¤±æãããé åè§£æ¾ */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_res.ptr)
 		_ecn_fbs_del(mrb, a_fbs_res);
@@ -1757,9 +1722,9 @@
 	T_ECN_EDT_HDR	a_ecn_hdp;
 	ECN_FBS_ID		a_fbs_res	= { 0 };
-	int				a_rdprp_wrpos;	/*	ãã­ããã£èª­ã¿è¾¼ã¿ä»¶æ°æ¸ãè¾¼ã¿æã®ãããä½ç½®	*/
+	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;	/* å¦çãã­ããã£æ° */
+	int		a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;	/* 処理プロパティ数 */
 
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
@@ -1768,13 +1733,13 @@
 		fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3);
 
-	/* åæåå¾ãµã¤ãº */
+	/* 初期取得サイズ */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* å¿ç­é»æç¨ã¡ã¢ãªã®åå¾ */
+	/* 応答電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_res);
-	if (a_ret != E_OK || !a_fbs_res.ptr) /* ç¢ºä¿å¤±æ */
+	if (a_ret != E_OK || !a_fbs_res.ptr) /* 確保失敗 */
 		goto lb_finally;
 
-	/* å¿ç­é»æè¨­å® */
+	/* 応答電文設定 */
 	if(p_req_esv->edata.deoj.eojx3 != 0)
 		_ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
@@ -1783,7 +1748,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 ãããã°åºå */
-
-	/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å  */
+	f_put_fbs_eoj("_ecn_tsk_eoj_set_get", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
+
+	/* 応答電文用メモリにデータ追加 */
 	a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_ecn_hdp,
 				sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
@@ -1791,14 +1756,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;
 
-	/* å¿ç­é»æç¨fbsè¨­å® */
+	/* 応答電文用fbs設定 */
 	_ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿å®è¡ */
+	/* プロパティ値書き込み実行 */
 	a_ret = _ecn_tsk_eoj_set_main(svc, fp_obj, fa_eobjatr, fa_fromapp, false, fa_fbs_id, a_fbs_res,
 		fa_fbs_anno, a_count, &a_sw_ok);
@@ -1813,6 +1777,6 @@
 		(a_sw_ok ? "true" : "false"));
 
-	/* æ¬¡ã®ä»¶æ°ãèª­ã¿åã(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(mrb, fa_fbs_id, &i, 1, &a_rdlen);
@@ -1821,18 +1785,17 @@
 	a_count = *(uint8_t *)&i;
 
-	/* ãã­ããã£èª­ã¿è¾¼ã¿ä»¶æ°æ¸ãè¾¼ã¿æã®ãããæ
-å ±ãè¨é² */
+	/* プロパティ読み込み件数書き込み時のヘッド情報を記録 */
 	a_rdprp_wrpos = _ecn_fbs_get_datalen(a_fbs_res);
 
-	/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å  (OPCGet 1byte) */
+	/* 応答電文用メモリにデータ追加 (OPCGet 1byte) */
 	a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &i, 1);
 	if (a_ret)
 		goto lb_except;
 
-	/* ãã®æç¹ã§ã®å¿ç­é»æä¸­ãã­ããã£ä»¶æ°ãè¨é² */
+	/* この時点での応答電文中プロパティ件数を記録 */
 	i = ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc;
 	((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
 
-	/* ãã­ããã£å¤èª­ã¿è¾¼ã¿å®è¡ */
+	/* プロパティ値読み込み実行 */
 	a_ret = _ecn_tsk_eoj_get_main(svc, fp_obj, fa_eobjatr, false, EPC_RULE_GET, fa_fbs_id, a_fbs_res,
 		a_count, &a_sw_ok);
@@ -1847,20 +1810,19 @@
 		(a_sw_ok ? "true" : "false"));
 
-	/* ãã­ããã£èª­ã¿è¾¼ã¿ä»¶æ°æ¸ãè¾¼ã¿æã®ãããæ
-å ±ã§ãèª­ã¿åºãä»¶æ°ãè¨é² */
+	/* プロパティ読み込み件数書き込み時のヘッド情報で、読み出し件数を記録 */
 	_ecn_fbs_poke(mrb, a_fbs_res, a_rdprp_wrpos, ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc);
 
-	/* è¨é²ãã¦ããããã­ããã£ä»¶æ°ï¼æ¸ãè¾¼ã¿ä»¶æ°ï¼ãæ¸ãæ»ã */
+	/* 記録しておいたプロパティ件数（書き込み件数）を書き戻す */
 	((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = (uint8_t)i;
 
-	/* å¿ç­è¦ã®å ´å */
+	/* 応答要の場合 */
 	if (a_sw_ok) {
-		/* è¨­å®å¦çæå */
+		/* 設定処理成功 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
 	} else {
-		/* è¨­å®å¦çå¤±æ */
+		/* 設定処理失敗 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
 	}
-	/* å¿ç­éä¿¡ */
+	/* 応答送信 */
 	a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_res, false);
 	if (a_ret == E_OK)
@@ -1868,5 +1830,5 @@
 
 lb_except:
-	/* ãã¼ã¿éä¿¡å¤±æãããé åè§£æ¾ */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_res.ptr)
 		_ecn_fbs_del(mrb, a_fbs_res);
@@ -1886,5 +1848,5 @@
 	int		i, a_size, a_rdlen;
 	int		a_sw_ok = 1;
-	int		a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;	/* å¦çãã­ããã£æ° */
+	int		a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;	/* 処理プロパティ数 */
 
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
@@ -1893,23 +1855,22 @@
 		fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3);
 
-	/* åæåå¾ãµã¤ãº */
+	/* 初期取得サイズ */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* å¿ç­é»æç¨ã¡ã¢ãªï¼ããã¼ï¼ã®åå¾ */
+	/* 応答電文用メモリ（ダミー）の取得 */
 	a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_dmy);
-	if (a_ret != E_OK || !a_fbs_dmy.ptr) /* ç¢ºä¿å¤±æ */
+	if (a_ret != E_OK || !a_fbs_dmy.ptr) /* 確保失敗 */
 		goto lb_finally;
 
-	/* å¿ç­é»æè¨­å®						*/
+	/* 応答電文設定						*/
 	_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;
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿å¿ç­èª­ã¿é£ã°ãå®è¡ */
+	/* プロパティ値書き込み応答読み飛ばし実行 */
 	a_ret = _ecn_tsk_eoj_skip_main(svc, fp_obj, fa_fbs_id, a_count);
 	if (a_ret) {
@@ -1923,6 +1884,6 @@
 		(a_sw_ok ? "true" : "false"));
 
-	/* æ¬¡ã®ä»¶æ°ãèª­ã¿åã(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(mrb, fa_fbs_id, &i, 1, &a_rdlen);
@@ -1931,5 +1892,5 @@
 	a_count = *(uint8_t *)&i;
 
-	/* ãã­ããã£å¤èª­ã¿åºãå¿ç­ã®æ¸ãè¾¼ã¿å®è¡ */
+	/* プロパティ値読み出し応答の書き込み実行 */
 	a_ret = _ecn_tsk_eoj_set_main(svc, fp_obj, fa_eobjatr, fa_fromapp, true, fa_fbs_id, a_fbs_dmy,
 								  fa_fbs_anno, a_count, &a_sw_ok);
@@ -1947,5 +1908,5 @@
 
 lb_except:
-	/* ãã¼ã¿éä¿¡å¤±æãããé åè§£æ¾ */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_dmy.ptr)
 		_ecn_fbs_del(mrb, a_fbs_dmy);
@@ -1956,6 +1917,5 @@
 
 /*
- * å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿é»æä½æ
+ * 応答電文待ちの割り込み電文作成
  */
 ER _ecn_mk_brk_wai(ecnl_svc_task_t *svc, ECN_FBS_ID *pk_fbs_id, const void *p_dat, size_t fa_size)
@@ -1963,5 +1923,5 @@
 	mrb_state *mrb = svc->mrb;
 	ER				a_ret;
-	ECN_FBS_ID		a_fbs_id = { 0 };	/* è¦æ±é»æç¨ã¡ã¢ãª	*/
+	ECN_FBS_ID		a_fbs_id = { 0 };	/* 要求電文用メモリ	*/
 
 	if (!pk_fbs_id)
@@ -1969,16 +1929,16 @@
 	*pk_fbs_id = a_fbs_id;
 	if (sizeof(a_fbs_id.ptr->payload) <= fa_size)
-		return E_PAR; /* ä»éãã¼ã¿ãå¤§ãããã */
+		return E_PAR; /* 付随データが大きすぎる */
 	if (!p_dat && 0 < fa_size)
-		return E_PAR; /* ä»éãã¼ã¿ãµã¤ãºã1ä»¥ä¸ãªã®ã«ãã¼ã¿ãã¤ã³ã¿ãNULL */
-
-	/* è¦æ±é»æç¨ã¡ã¢ãªã®åå¾ */
+		return E_PAR; /* 付随データサイズが1以上なのにデータポインタがNULL */
+
+	/* 要求電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(mrb, (0 < fa_size ? fa_size : 1), &a_fbs_id);
-	if (a_ret != E_OK || !a_fbs_id.ptr) { /* ç¢ºä¿å¤±æ */
+	if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
 		ECN_DBG_PUT_3("_ecn_fbs_cre(%d) result = %d:%s", fa_size, a_ret, itron_strerror(a_ret));
 		return a_ret;
 	}
 
-	/* è¦æ±é»æè¨­å® */
+	/* 要求電文設定 */
 	a_fbs_id.ptr->hdr.type = ECN_MSG_USER_BREAK;
 	a_fbs_id.ptr->hdr.sender.id = ENOD_API_ID;
@@ -1987,5 +1947,5 @@
 
 	if (0 < fa_size && p_dat) {
-		/* ä»éãã¼ã¿è¿½å  */
+		/* 付随データ追加 */
 		a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_id, p_dat, fa_size);
 		if (a_ret) {
@@ -1999,9 +1959,9 @@
 	*pk_fbs_id = a_fbs_id;
 
-	/* æ­£å¸¸çµäº */
+	/* 正常終了 */
 	return a_ret;
 
 lb_except:
-	/* ãã¼ã¿ä½æå¤±æãããé åè§£æ¾ */
+	/* データ作成失敗したら領域解放 */
 	if (a_fbs_id.ptr)
 		_ecn_fbs_del(mrb, a_fbs_id);
@@ -2010,5 +1970,5 @@
 }
 
-/* å¿ç­é»æç¨fbsè¨­å®(sender/targetã®è¨­å®) */
+/* 応答電文用fbs設定(sender/targetの設定) */
 ER _ecn_tsk_cre_req_fbs(ecnl_svc_task_t *svc, T_ECN_FBS_QUEUE *sender, uint8_t cmd, ECN_FBS_ID *pk_req)
 {
@@ -2040,5 +2000,5 @@
 }
 
-/* å¿ç­é»æç¨fbsè¨­å®(sender/targetã®è¨­å®) */
+/* 応答電文用fbs設定(sender/targetの設定) */
 ER _ecn_tsk_cre_res_fbs(ecnl_svc_task_t *svc, ECN_FBS_ID req, uint8_t cmd, ECN_FBS_ID *pk_res)
 {
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_task.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_task.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_task.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,5 +37,5 @@
 
 /*
- *		ECHONET Lite ã¿ã¹ã¯
+ *		ECHONET Lite タスク
  */
 
@@ -69,13 +54,12 @@
 
 /*
- *  ECHONET Lite ã¿ã¹ã¯é¢é£ã®å®æ°ã®ããã©ã«ãå¤ã®å®ç¾©
+ *  ECHONET Lite タスク関連の定数のデフォルト値の定義
  */ 
 #ifndef ECHONET_TASK_PRIORITY
-#define ECHONET_TASK_PRIORITY	6		/* åæåªå
-åº¦ */
+#define ECHONET_TASK_PRIORITY	6		/* 初期優先度 */
 #endif /* ECHONET_TASK_PRIORITY */
 
 #ifndef ECHONET_TASK_STACK_SIZE
-#define ECHONET_TASK_STACK_SIZE	1024	/* ã¹ã¿ãã¯é åã®ãµã¤ãº */
+#define ECHONET_TASK_STACK_SIZE	1024	/* スタック領域のサイズ */
 #endif /* ECHONET_TASK_STACK_SIZE */
 
@@ -93,33 +77,33 @@
 	intptr_t exinf;
 	TMO api_timer;
-	/* ã¢ããªã±ã¼ã·ã§ã³ãè¦æ±ããé»æã®ã·ã¼ã±ã³ã¹çªå· */
+	/* アプリケーションが要求した電文のシーケンス番号 */
 	uint16_t api_tid;
-	/* åä¿¡ã¡ãã»ã¼ã¸ãéæ¾ãããå¦ã */
+	/* 受信メッセージを開放するか否か */
 	bool_t release_esv;
-	/* åä¿¡ã¡ãã»ã¼ã¸ãè»¢éãããå¦ã */
+	/* 受信メッセージを転送するか否か */
 	bool_t forward_esv;
-	/* ã³ã³ãã­ã¼ã©ã¼åã */
+	/* コントローラー向け */
 	ecn_agent_t agent;
-	/* ECHONET Lite ãªãã¸ã§ã¯ãIDã®æå¤§å¤ */
+	/* ECHONET Lite オブジェクトIDの最大値 */
 	ID tmax_eobjid;
-	/* ECHONET Lite ãªãã¸ã§ã¯ãåæåãã­ãã¯ã®ã¨ãªã¢ */
+	/* ECHONET Lite オブジェクト初期化ブロックのエリア */
 	const EOBJINIB **eobjinib_table;
-	/* ECHONET Liteãã¼ãç®¡çãã­ãã¯ã®æ° */
+	/* ECHONET Liteノード管理ブロックの数 */
 	int tnum_enodid;
-	/* ECHONET Lite ãªãã¸ã§ã¯ãç®¡çãã­ãã¯ã®ã¨ãªã¢ */
+	/* ECHONET Lite オブジェクト管理ブロックのエリア */
 	EOBJCB eobjcb_table[1];
-	/* ã¯ã©ã¹æ° */
+	/* クラス数 */
 	uint_t eclscnt;
-	/* ã¯ã©ã¹ãªã¹ã */
+	/* クラスリスト */
 	uint8_t *eclslst;
-	/* ã¡ã¼ã«ããã¯ã¹ */
+	/* メールボックス */
 	T_ECN_FBS_QUEUE api_mbxid;
 	T_ECN_FBS_QUEUE svc_mbxid;
 	T_ECN_FBS_QUEUE lcl_mbxid;
-	/* ã¢ã¸ã¥ã¼ã«åæåãã©ã° */
+	/* モジュール初期化フラグ */
 	uint8_t eobjlist_need_init;
-	/* ã·ã¼ã±ã³ã¹çªå· */
+	/* シーケンス番号 */
 	uint16_t current_tid;
-	/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ä½ç½® */
+	/* インスタンスリスト通知位置 */
 	int inst_list_pos;
 };
@@ -133,13 +117,13 @@
 ID echonet_svctask_get_eobjid(ecnl_svc_task_t *svc, const EOBJINIB *eobjinib);
 
-/* ECHONET Lite ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãã®1ã¢ãã¦ã³ã¹å½ããæå¤§ãã¼ãæ° */
+/* ECHONET Lite インスタンスリストの1アナウンス当たり最大ノード数 */
 #define ECN_IST_LST_EOJ_MAX_CT (84)
 
-/* ECHONET Liteãªãã¸ã§ã¯ãã³ã¼ã 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	/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ãã­ããã£ */
+	ECN_EPC_INL_BCS		=	0xD5	/* インスタンスリスト通知プロパティ */
 };
 
@@ -170,11 +154,11 @@
 } T_ECN_INTERNAL_MSG;
 
-/* ã¿ã¹ã¯åæå */
+/* タスク初期化 */
 void _ecn_tsk_int_startup(ecnl_svc_task_t *svc);
-/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®éä¿¡ */
+/* インスタンスリスト通知の送信 */
 ER _ecn_tsk_ntf_inl(ecnl_svc_task_t *svc);
 
 /*
- * è¦æ±é»æä½æ
+ * 要求電文作成
  */
 ER _ecn_tsk_mk_esv(ecnl_svc_task_t *svc, ECN_FBS_ID *fp_fbs_id, ID fa_seoj, ID fa_deoj,
@@ -184,6 +168,5 @@
 
 /*
- * å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿é»æä½æ
+ * 応答電文待ちの割り込み電文作成
  */
 ER _ecn_mk_brk_wai(ecnl_svc_task_t *svc, ECN_FBS_ID *pk_fbs_id, const void *p_dat, size_t fa_size);
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/mrb_ecnl.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/mrb_ecnl.c	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/mrb_ecnl.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
@@ -136,5 +121,5 @@
 	rprop = RARRAY_PTR(props);
 	icnt = RARRAY_LEN(props);
-	count = icnt + 3; /* ãã­ããã£ãããå */
+	count = icnt + 3; /* プロパティマップ分 */
 
 	for (i = 0; i < icnt; i++) {
@@ -148,5 +133,5 @@
 		prop = (T_MRB_ECNL_EPROPERTY *)DATA_PTR(rprop[i]);
 
-		/* ãã­ããã£ãããã®å ´åã¯æ¸ç® */
+		/* プロパティマップの場合は減算 */
 		switch (prop->inib.eprpcd) {
 		case 0x9D: case 0x9E: case 0x9F:
@@ -181,5 +166,5 @@
 		prop = (T_MRB_ECNL_EPROPERTY *)DATA_PTR(rprop[i]);
 
-		/* ãã­ããã£ãããã®å ´åã¯ç¡è¦ */
+		/* プロパティマップの場合は無視 */
 		switch (prop->inib.eprpcd) {
 		case 0x9D: case 0x9E: case 0x9F:
@@ -208,5 +193,5 @@
 	T_MRB_ECNL_EPROPERTY *prop;
 
-	/* æ©å¨ãªãã¸ã§ã¯ãã®è¨­å®ã¨ãã¦åãè¾¼ã¾ããå ´åã¯ç ´æ£ããªã */
+	/* 機器オブジェクトの設定として取り込まれた場合は破棄しない */
 	if (obj->base.svc != NULL)
 		return;
@@ -293,5 +278,5 @@
 	rprop = RARRAY_PTR(props);
 	icnt = RARRAY_LEN(props);
-	count = icnt + 8; /* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ããªã©ã®å */
+	count = icnt + 8; /* インスタンスリストなどの分 */
 
 	for (i = 0; i < icnt; i++) {
@@ -305,5 +290,5 @@
 		prop = (T_MRB_ECNL_EPROPERTY *)DATA_PTR(rprop[i]);
 
-		/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ããªã©ã®å ´åã¯æ¸ç® */
+		/* インスタンスリストなどの場合は減算 */
 		switch (prop->inib.eprpcd) {
 		case 0xD3: case 0xD4: case 0xD5: case 0xD6: case 0xD7:
@@ -315,5 +300,5 @@
 
 	nod = (ecn_node_t *)mrb_calloc(mrb, 1, sizeof(ecn_node_t) + count * sizeof(EPRPINIB *)
-		+ (sizeof(EPRPINIB) * 8)/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ããªã©ã®å */);
+		+ (sizeof(EPRPINIB) * 8)/* インスタンスリストなどの分 */);
 	DATA_TYPE(self) = &mrb_ecnl_enode_type;
 	DATA_PTR(self) = nod;
@@ -337,5 +322,5 @@
 		prop = (T_MRB_ECNL_EPROPERTY *)DATA_PTR(rprop[i]);
 
-		/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ããªã©ã®å ´åã¯ç¡è¦ */
+		/* インスタンスリストなどの場合は無視 */
 		switch (prop->inib.eprpcd) {
 		case 0xD3: case 0xD4: case 0xD5: case 0xD6: case 0xD7:
@@ -365,5 +350,5 @@
 	T_MRB_ECNL_EPROPERTY *prop;
 
-	/* ãã¼ãã®è¨­å®ã¨ãã¦åãè¾¼ã¾ããå ´åã¯ç ´æ£ããªã */
+	/* ノードの設定として取り込まれた場合は破棄しない */
 	if (nod->base.svc != NULL)
 		return;
@@ -476,5 +461,5 @@
 	int count = 0;
 
-	/* éç¥æ°ã®ä½ç½®ãç©ºãã¦ãã */
+	/* 通知数の位置を空けておく */
 	pos++;
 	for (int i = inst_list_pos; (i < eobjcnt) && (count < 84); i++) {
@@ -489,5 +474,5 @@
 
 	inst_list_pos += count;
-	/* æå¾ã¾ã§éä¿¡ãçµãã£ã¦ãããåããã */
+	/* 最後まで送信し終わっていたら初めから */
 	if (inst_list_pos >= eobjcnt)
 		inst_list_pos = 0;
@@ -509,5 +494,5 @@
 		*pos++ = eobjcnt;
 	else
-		*pos++ = 255; /*ãªã¼ãã¼ãã­ã¼*/
+		*pos++ = 255; /*オーバーフロー*/
 
 	for (int i = 0; (i < eobjcnt) && (i < 84); i++) {
@@ -530,5 +515,5 @@
 		*pos++ = eclscnt;
 	else
-		*pos++ = 255; /*ãªã¼ãã¼ãã­ã¼*/
+		*pos++ = 255; /*オーバーフロー*/
 
 	len = 2 * eclscnt;
@@ -617,5 +602,5 @@
 		eobj = (ecn_obj_t *)DATA_PTR(prop->eobj);
 
-		/* ãã­ããã£ã®è¨­å®ã¨ãã¦åãè¾¼ã¾ããå ´åã¯ç ´æ£ããªã */
+		/* プロパティの設定として取り込まれた場合は破棄しない */
 		if (eobj != NULL)
 			return;
@@ -625,5 +610,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã³ã¼ã */
+/* ECHONET Lite プロパティコード */
 static mrb_value mrb_ecnl_eproperty_get_pcd(mrb_state *mrb, mrb_value self)
 {
@@ -635,5 +620,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£å±æ§ */
+/* ECHONET Lite プロパティ属性 */
 static mrb_value mrb_ecnl_eproperty_get_atr(mrb_state *mrb, mrb_value self)
 {
@@ -645,5 +630,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã®ãµã¤ãº */
+/* ECHONET Lite プロパティのサイズ */
 static mrb_value mrb_ecnl_eproperty_get_sz(mrb_state *mrb, mrb_value self)
 {
@@ -655,6 +640,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã®æ¡å¼µæ
-å ± */
+/* ECHONET Lite プロパティの拡張情報 */
 static mrb_value mrb_ecnl_eproperty_get_exinf(mrb_state *mrb, mrb_value self)
 {
@@ -666,6 +650,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã®æ¡å¼µæ
-å ±è¨­å® */
+/* ECHONET Lite プロパティの拡張情報設定 */
 static mrb_value mrb_ecnl_eproperty_set_exinf(mrb_state *mrb, mrb_value self)
 {
@@ -682,5 +665,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã®è¨­å®é¢æ° */
+/* ECHONET Lite プロパティの設定関数 */
 static mrb_value mrb_ecnl_eproperty_get_setcb(mrb_state *mrb, mrb_value self)
 {
@@ -695,5 +678,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã®åå¾é¢æ° */
+/* ECHONET Lite プロパティの取得関数 */
 static mrb_value mrb_ecnl_eproperty_get_getcb(mrb_state *mrb, mrb_value self)
 {
@@ -708,5 +691,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã®éç¥æç¡ */
+/* ECHONET Lite プロパティの通知有無 */
 static mrb_value mrb_ecnl_eproperty_get_anno(mrb_state *mrb, mrb_value self)
 {
@@ -721,5 +704,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã®éç¥æç¡è¨­å® */
+/* ECHONET Lite プロパティの通知有無設定 */
 static mrb_value mrb_ecnl_eproperty_set_anno(mrb_state *mrb, mrb_value self)
 {
@@ -737,5 +720,5 @@
 
 /*
- * ãã¼ã¿è¨­å®é¢æ°
+ * データ設定関数
  */
 static int mrb_ecnl_prop_set(ecnl_svc_task_t *svc, const EPRPINIB *item, const void *src, int size, bool_t *anno)
@@ -771,5 +754,5 @@
 
 /*
- * ãã¼ã¿åå¾é¢æ°
+ * データ取得関数
  */
 static int mrb_ecnl_prop_get(ecnl_svc_task_t *svc, const EPRPINIB *item, void *dst, int size)
@@ -835,5 +818,5 @@
 }
 
-/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»ææãè¿ãæå® */
+/* プロパティ値書き込み・読み出し要求電文折り返し指定 */
 static mrb_value mrb_ecnl_trn_set_get(mrb_state *mrb, mrb_value self)
 {
@@ -851,5 +834,5 @@
 }
 
-/* è¦æ±é»æã¸ã®ãã­ããã£æå®è¿½å  */
+/* 要求電文へのプロパティ指定追加 */
 static mrb_value mrb_ecnl_add_epc(mrb_state *mrb, mrb_value self)
 {
@@ -870,5 +853,5 @@
 }
 
-/* è¦æ±é»æã¸ã®ãã­ããã£ãã¼ã¿è¿½å  */
+/* 要求電文へのプロパティデータ追加 */
 static mrb_value mrb_ecnl_add_edt(mrb_state *mrb, mrb_value self)
 {
@@ -919,5 +902,5 @@
 
 
-/* å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼åæå */
+/* 応答電文解析イテレーター初期化 */
 static mrb_value mrb_ecnl_itr_ini(mrb_state *mrb, mrb_value self)
 {
@@ -942,5 +925,5 @@
 }
 
-/* å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼ã¤ã³ã¯ãªã¡ã³ã */
+/* 応答電文解析イテレーターインクリメント */
 static mrb_value mrb_ecnl_itr_nxt(mrb_state *mrb, mrb_value self)
 {
@@ -1092,5 +1075,5 @@
 	svc = (ecnl_svc_task_t *)mrb_calloc(mrb, 1, sizeof(ecnl_svc_task_t)
 		+ (1 + eobjcnt) * sizeof(EOBJINIB *)
-		+ (2 * eobjcnt)/*ã¯ã©ã¹ãªã¹ãç¨*/);
+		+ (2 * eobjcnt)/*クラスリスト用*/);
 	DATA_TYPE(self) = &mrb_ecnl_svctask_type;
 	DATA_PTR(self) = svc;
@@ -1101,5 +1084,5 @@
 	svc->mrb = mrb;
 	svc->self = self;
-	svc->tnum_enodid = 1; /* ãã®çã§ã¯ã­ã¼ã«ã«ãã¼ãï¼ã¤ */
+	svc->tnum_enodid = 1; /* この版ではローカルノード１つ */
 	svc->tmax_eobjid = 1 + 1 + eobjcnt;
 	svc->eobjinib_table = (const EOBJINIB **)&svc[1];
@@ -1129,5 +1112,5 @@
 	}
 
-	/* ã¯ã©ã¹ãªã¹ãã®ä½æ */
+	/* クラスリストの作成 */
 	svc->eclslst = (uint8_t *)&svc->eobjinib_table[1 + eobjcnt];
 	uint8_t *pos = svc->eclslst;
@@ -1154,5 +1137,5 @@
 	svc->eclscnt = eclscnt;
 
-	/* ECHONETããã«ã¦ã§ã¢ãèµ·å */
+	/* ECHONETミドルウェアを起動 */
 	ret = ecn_sta_svc(svc);
 	if (ret != E_OK) {
@@ -1177,5 +1160,5 @@
 {
 	ecnl_svc_task_t *svc = (ecnl_svc_task_t *)ptr;
-#if 0 /* ã©ããã§è§£æ¾ãã¦ãããããï½¥ï½¥ï½¥ */
+#if 0 /* どこかで解放しているらしい･･･ */
 	const EOBJINIB **table = svc->eobjinib_table;
 	const EOBJINIB **end = &table[svc->tmax_eobjid];
@@ -1206,5 +1189,5 @@
 }
 
-/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼é»æä½æ */
+/* プロパティ値書き込み要求（応答不要）電文作成 */
 static mrb_value mrb_ecnl_esv_set_i(mrb_state *mrb, mrb_value self)
 {
@@ -1245,5 +1228,5 @@
 }
 
-/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼é»æä½æ */
+/* プロパティ値書き込み要求（応答要）電文作成 */
 static mrb_value mrb_ecnl_esv_set_c(mrb_state *mrb, mrb_value self)
 {
@@ -1285,5 +1268,5 @@
 }
 
-/* ãã­ããã£å¤èª­ã¿åºãè¦æ±é»æä½æ */
+/* プロパティ値読み出し要求電文作成 */
 static mrb_value mrb_ecnl_esv_get(mrb_state *mrb, mrb_value self)
 {
@@ -1323,5 +1306,5 @@
 }
 
-/* ãã­ããã£å¤éç¥è¦æ±é»æä½æ */
+/* プロパティ値通知要求電文作成 */
 static mrb_value mrb_ecnl_esv_inf_req(mrb_state *mrb, mrb_value self)
 {
@@ -1361,5 +1344,5 @@
 }
 
-/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æ */
+/* プロパティ値書き込み・読み出し要求電文作成 */
 static mrb_value mrb_ecnl_esv_set_get(mrb_state *mrb, mrb_value self)
 {
@@ -1400,5 +1383,5 @@
 }
 
-/* ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼é»æä½æ */
+/* プロパティ値通知（応答要）電文作成 */
 static mrb_value mrb_ecnl_esv_infc(mrb_state *mrb, mrb_value self)
 {
@@ -1448,5 +1431,5 @@
 }
 
-/* è¦æ±é»æã®éä¿¡ */
+/* 要求電文の送信 */
 static mrb_value mrb_ecnl_snd_esv(mrb_state *mrb, mrb_value self)
 {
@@ -1486,5 +1469,5 @@
 }
 
-/* é»æã®ç ´æ£ */
+/* 電文の破棄 */
 static mrb_value mrb_ecnl_rel_esv(mrb_state *mrb, mrb_value self)
 {
@@ -1524,5 +1507,5 @@
 	svc->mrb = mrb;
 
-	/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®éä¿¡ */
+	/* インスタンスリスト通知の送信 */
 	ret = _ecn_tsk_ntf_inl(svc);
 	if (ret != E_OK) {
@@ -1590,5 +1573,5 @@
 
 /*
- * Echoneté»æåä¿¡å¦ç
+ * Echonet電文受信処理
  */
 static void main_recv_esv(ecnl_svc_task_t *svc, T_EDATA *esv)
@@ -1603,6 +1586,5 @@
 
 /*
- * å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿å¦ç
+ * 応答電文待ちの割り込み処理
  */
 static void main_break_wait(ecnl_svc_task_t *svc, uint8_t *brkdat, int32_t len)
@@ -1623,10 +1605,10 @@
 	ER ret;
 
-	/* Echoneté»æåä¿¡ã®å ´å */
+	/* Echonet電文受信の場合 */
 	if ((p_msg)->hdr.type == ECN_MSG_ECHONET) {
-		/* Echoneté»æåä¿¡å¦ç */
+		/* Echonet電文受信処理 */
 		main_recv_esv(svc, (T_EDATA *)p_msg);
 
-		/* é åè§£æ¾ã¯GCã«ä»»ãã
+		/* 領域解放はGCに任せる
 		ret = ecn_rel_esv(mrb, (T_EDATA *)p_msg);
 		if (ret != E_OK) {
@@ -1635,9 +1617,7 @@
 		} */
 	}
-	/* å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿ã®å ´å */
+	/* 応答電文待ちの割り込みの場合 */
 	else if ((p_msg)->hdr.type == ECN_MSG_INTERNAL) {
-		/* å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿ãã¼ã¿åå¾ */
+		/* 応答電文待ちの割り込みデータ取得 */
 		ret = ecn_get_brk_dat(mrb, (T_EDATA *)p_msg, brkdat, sizeof(brkdat), &len);
 		if (ret != E_OK) {
@@ -1646,9 +1626,8 @@
 		}
 
-		/* å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿å¦ç */
+		/* 応答電文待ちの割り込み処理 */
 		main_break_wait(svc, brkdat, len);
 
-		/* é åè§£æ¾ */
+		/* 領域解放 */
 		ret = ecn_rel_esv(mrb, (T_EDATA *)p_msg);
 		if (ret != E_OK) {
@@ -1688,6 +1667,5 @@
 }
 
-/* éä¿¡ã¬ã¤ã¤ã¼ããã®å
-¥å */
+/* 通信レイヤーからの入力 */
 static mrb_value mrb_ecnl_svctask_recv_msg(mrb_state *mrb, mrb_value self)
 {
@@ -1879,60 +1857,59 @@
 	_module_ecnl = mrb_define_module(mrb, "ECNL");
 
-	/* æªè¨­å® */
+	/* 未設定 */
 	mrb_define_const(mrb, _module_ecnl, "EPC_NONE", mrb_fixnum_value(EPC_NONE));
-	/* ã¢ã¯ã»ã¹ã«ã¼ã« Set */
+	/* アクセスルール Set */
 	mrb_define_const(mrb, _module_ecnl, "EPC_RULE_SET", mrb_fixnum_value(EPC_RULE_SET));
-	/* ã¢ã¯ã»ã¹ã«ã¼ã« Get */
+	/* アクセスルール Get */
 	mrb_define_const(mrb, _module_ecnl, "EPC_RULE_GET", mrb_fixnum_value(EPC_RULE_GET));
-	/* ã¢ã¯ã»ã¹ã«ã¼ã« Anno */
+	/* アクセスルール Anno */
 	mrb_define_const(mrb, _module_ecnl, "EPC_RULE_ANNO", mrb_fixnum_value(EPC_RULE_ANNO));
-	/* ç¶æ
-å¤åæéç¥ */
+	/* 状態変化時通知 */
 	mrb_define_const(mrb, _module_ecnl, "EPC_ANNOUNCE", mrb_fixnum_value(EPC_ANNOUNCE));
-	/* å¯å¤é·ãã¼ã¿ */
+	/* 可変長データ */
 	mrb_define_const(mrb, _module_ecnl, "EPC_VARIABLE", mrb_fixnum_value(EPC_VARIABLE));
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼		*/
+	/* プロパティ値書き込み要求（応答不要）		*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_I", mrb_fixnum_value(ESV_SET_I));
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼		*/
+	/* プロパティ値書き込み要求（応答要）		*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_C", mrb_fixnum_value(ESV_SET_C));
-	/* ãã­ããã£å¤èª­ã¿åºãè¦æ±					*/
+	/* プロパティ値読み出し要求					*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_GET", mrb_fixnum_value(ESV_GET));
-	/* ãã­ããã£å¤éç¥è¦æ±						*/
+	/* プロパティ値通知要求						*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_INF_REQ", mrb_fixnum_value(ESV_INF_REQ));
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±		*/
+	/* プロパティ値書き込み・読み出し要求		*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_GET", mrb_fixnum_value(ESV_SET_GET));
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿å¿ç­					*/
+	/* プロパティ値書き込み応答					*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_RES", mrb_fixnum_value(ESV_SET_RES));
-	/* ãã­ããã£å¤èª­ã¿åºãå¿ç­					*/
+	/* プロパティ値読み出し応答					*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_GET_RES", mrb_fixnum_value(ESV_GET_RES));
-	/* ãã­ããã£å¤éç¥							*/
+	/* プロパティ値通知							*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_INF", mrb_fixnum_value(ESV_INF));
-	/* ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼				*/
+	/* プロパティ値通知（応答要）				*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_INFC", mrb_fixnum_value(ESV_INFC));
-	/* ãã­ããã£å¤éç¥å¿ç­						*/
+	/* プロパティ値通知応答						*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_INFC_RES", mrb_fixnum_value(ESV_INFC_RES));
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãå¿ç­		*/
+	/* プロパティ値書き込み・読み出し応答		*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_GET_RES", mrb_fixnum_value(ESV_SET_GET_RES));
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç­			*/
+	/* プロパティ値書き込み要求不可応答			*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_I_SNA", mrb_fixnum_value(ESV_SET_I_SNA));
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç­			*/
+	/* プロパティ値書き込み要求不可応答			*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_C_SNA", mrb_fixnum_value(ESV_SET_C_SNA));
-	/* ãã­ããã£å¤èª­ã¿åºãä¸å¯å¿ç­				*/
+	/* プロパティ値読み出し不可応答				*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_GET_SNA", mrb_fixnum_value(ESV_GET_SNA));
-	/* ãã­ããã£å¤éç¥ä¸å¯å¿ç­					*/
+	/* プロパティ値通知不可応答					*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_INF_SNA", mrb_fixnum_value(ESV_INF_SNA));
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãä¸å¯å¿ç­	*/
+	/* プロパティ値書き込み・読み出し不可応答	*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_GET_SNA", mrb_fixnum_value(ESV_SET_GET_SNA));
 
-	/* ã¢ãã¬ã¹IDç»é²ãªã */
+	/* アドレスID登録なし */
 	mrb_define_const(mrb, _module_ecnl, "ENOD_NOT_MATCH_ID", mrb_fixnum_value(ENOD_NOT_MATCH_ID));
-	/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ID */
+	/* マルチキャストアドレスID */
 	mrb_define_const(mrb, _module_ecnl, "ENOD_MULTICAST_ID", mrb_fixnum_value(ENOD_MULTICAST_ID));
-	/* èªãã¼ãã¢ãã¬ã¹ID */
+	/* 自ノードアドレスID */
 	mrb_define_const(mrb, _module_ecnl, "ENOD_LOCAL_ID", mrb_fixnum_value(ENOD_LOCAL_ID));
-	/* APIã¢ãã¬ã¹ID */
+	/* APIアドレスID */
 	mrb_define_const(mrb, _module_ecnl, "ENOD_API_ID", mrb_fixnum_value(ENOD_API_ID));
-	/* ä»ãã¼ãID */
+	/* 他ノードID */
 	mrb_define_const(mrb, _module_ecnl, "ENOD_REMOTE_ID", mrb_fixnum_value(ENOD_REMOTE_ID));
 
@@ -1941,8 +1918,8 @@
 	mrb_define_method(mrb, _class_object, "initialize", mrb_ecnl_eobject_initialize, MRB_ARGS_REQ(5));
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ */
+	/* プロパティ値書き込み */
 	mrb_define_method(mrb, _class_object, "data_prop_set", mrb_ecnl_eobject_data_prop_set, MRB_ARGS_REQ(4));
 
-	/* ãã­ããã£å¤èª­ã¿åºã */
+	/* プロパティ値読み出し */
 	mrb_define_method(mrb, _class_object, "data_prop_get", mrb_ecnl_eobject_data_prop_get, MRB_ARGS_REQ(3));
 
@@ -1951,8 +1928,8 @@
 	mrb_define_method(mrb, _class_node, "initialize", mrb_ecnl_enode_initialize, MRB_ARGS_REQ(2));
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ */
+	/* プロパティ値書き込み */
 	mrb_define_method(mrb, _class_node, "data_prop_set", mrb_ecnl_eobject_data_prop_set, MRB_ARGS_REQ(4));
 
-	/* ãã­ããã£å¤èª­ã¿åºã */
+	/* プロパティ値読み出し */
 	mrb_define_method(mrb, _class_node, "data_prop_get", mrb_ecnl_eobject_data_prop_get, MRB_ARGS_REQ(3));
 
@@ -1961,19 +1938,18 @@
 	mrb_define_method(mrb, _class_property, "initialize", mrb_ecnl_eproperty_initialize, MRB_ARGS_REQ(6));
 
-	/* ECHONET Lite ãã­ããã£ã³ã¼ã */
+	/* ECHONET Lite プロパティコード */
 	mrb_define_method(mrb, _class_property, "pcd", mrb_ecnl_eproperty_get_pcd, MRB_ARGS_NONE());
-	/* ECHONET Lite ãã­ããã£å±æ§ */
+	/* ECHONET Lite プロパティ属性 */
 	mrb_define_method(mrb, _class_property, "atr", mrb_ecnl_eproperty_get_atr, MRB_ARGS_NONE());
-	/* ECHONET Lite ãã­ããã£ã®ãµã¤ãº */
+	/* ECHONET Lite プロパティのサイズ */
 	mrb_define_method(mrb, _class_property, "sz", mrb_ecnl_eproperty_get_sz, MRB_ARGS_NONE());
-	/* ECHONET Lite ãã­ããã£ã®æ¡å¼µæ
-å ± */
+	/* ECHONET Lite プロパティの拡張情報 */
 	mrb_define_method(mrb, _class_property, "exinf", mrb_ecnl_eproperty_get_exinf, MRB_ARGS_NONE());
 	mrb_define_method(mrb, _class_property, "set_exinf", mrb_ecnl_eproperty_set_exinf, MRB_ARGS_REQ(1));
-	/* ECHONET Lite ãã­ããã£ã®è¨­å®é¢æ° */
+	/* ECHONET Lite プロパティの設定関数 */
 	mrb_define_method(mrb, _class_property, "setcb", mrb_ecnl_eproperty_get_setcb, MRB_ARGS_NONE());
-	/* ECHONET Lite ãã­ããã£ã®åå¾é¢æ° */
+	/* ECHONET Lite プロパティの取得関数 */
 	mrb_define_method(mrb, _class_property, "getcb", mrb_ecnl_eproperty_get_getcb, MRB_ARGS_NONE());
-	/* ECHONET Lite ãã­ããã£ã®éç¥æç¡ */
+	/* ECHONET Lite プロパティの通知有無 */
 	mrb_define_method(mrb, _class_property, "anno", mrb_ecnl_eproperty_get_anno, MRB_ARGS_NONE());
 	mrb_define_method(mrb, _class_property, "set_anno", mrb_ecnl_eproperty_set_anno, MRB_ARGS_REQ(1));
@@ -1983,17 +1959,17 @@
 	mrb_define_method(mrb, _class_data, "initialize", mrb_ecnl_edata_initialize, MRB_ARGS_NONE());
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»ææãè¿ãæå® */
+	/* プロパティ値書き込み・読み出し要求電文折り返し指定 */
 	mrb_define_method(mrb, _class_data, "trn_set_get", mrb_ecnl_trn_set_get, MRB_ARGS_NONE());
 
-	/* è¦æ±é»æã¸ã®ãã­ããã£æå®è¿½å  */
+	/* 要求電文へのプロパティ指定追加 */
 	mrb_define_method(mrb, _class_data, "add_epc", mrb_ecnl_add_epc, MRB_ARGS_REQ(1));
 
-	/* è¦æ±é»æã¸ã®ãã­ããã£ãã¼ã¿è¿½å  */
+	/* 要求電文へのプロパティデータ追加 */
 	mrb_define_method(mrb, _class_data, "add_edt", mrb_ecnl_add_edt, MRB_ARGS_REQ(2));
 
-	/* å¿ç­é»æãµã¼ãã¹ã³ã¼ãåå¾ */
+	/* 応答電文サービスコード取得 */
 	mrb_define_method(mrb, _class_data, "esv", mrb_ecnl_get_esv, MRB_ARGS_NONE());
 
-	/* å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼åæå */
+	/* 応答電文解析イテレーター初期化 */
 	mrb_define_method(mrb, _class_data, "itr_ini", mrb_ecnl_itr_ini, MRB_ARGS_NONE());
 
@@ -2002,5 +1978,5 @@
 	mrb_define_method(mrb, _class_iterator, "initialize", mrb_ecnl_eiterator_initialize, MRB_ARGS_NONE());
 
-	/* å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼ã¤ã³ã¯ãªã¡ã³ã */
+	/* 応答電文解析イテレーターインクリメント */
 	mrb_define_method(mrb, _class_iterator, "itr_nxt", mrb_ecnl_itr_nxt, MRB_ARGS_NONE());
 
@@ -2014,32 +1990,32 @@
 	mrb_define_method(mrb, _class_svctask, "initialize", mrb_ecnl_svctask_initialize, MRB_ARGS_NONE());
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼é»æä½æ */
+	/* プロパティ値書き込み要求（応答不要）電文作成 */
 	mrb_define_method(mrb, _class_svctask, "esv_set_i", mrb_ecnl_esv_set_i, MRB_ARGS_REQ(3));
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼é»æä½æ */
+	/* プロパティ値書き込み要求（応答要）電文作成 */
 	mrb_define_method(mrb, _class_svctask, "esv_set_c", mrb_ecnl_esv_set_c, MRB_ARGS_REQ(3));
 
-	/* ãã­ããã£å¤èª­ã¿åºãè¦æ±é»æä½æ */
+	/* プロパティ値読み出し要求電文作成 */
 	mrb_define_method(mrb, _class_svctask, "esv_get", mrb_ecnl_esv_get, MRB_ARGS_REQ(2));
 
-	/* ãã­ããã£å¤éç¥è¦æ±é»æä½æ */
+	/* プロパティ値通知要求電文作成 */
 	mrb_define_method(mrb, _class_svctask, "esv_inf_req", mrb_ecnl_esv_inf_req, MRB_ARGS_REQ(2));
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æ */
+	/* プロパティ値書き込み・読み出し要求電文作成 */
 	mrb_define_method(mrb, _class_svctask, "esv_set_get", mrb_ecnl_esv_set_get, MRB_ARGS_REQ(3));
 
-	/* ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼é»æä½æ */
+	/* プロパティ値通知（応答要）電文作成 */
 	mrb_define_method(mrb, _class_svctask, "esv_infc", mrb_ecnl_esv_infc, MRB_ARGS_REQ(3));
 
-	/* è¦æ±é»æã®éä¿¡ */
+	/* 要求電文の送信 */
 	mrb_define_method(mrb, _class_svctask, "snd_esv", mrb_ecnl_snd_esv, MRB_ARGS_REQ(1));
 
-	/* é»æã®ç ´æ£ */
+	/* 電文の破棄 */
 	mrb_define_method(mrb, _class_svctask, "rel_esv", mrb_ecnl_rel_esv, MRB_ARGS_REQ(1));
 
-	/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®éä¿¡ */
+	/* インスタンスリスト通知の送信 */
 	mrb_define_method(mrb, _class_svctask, "ntf_inl", mrb_ecnl_svctask_ntf_inl, MRB_ARGS_NONE());
 
-	/* ã¡ãã»ã¼ã¸å¦çã«ã¼ã */
+	/* メッセージ処理ループ */
 	mrb_define_method(mrb, _class_svctask, "set_timer", mrb_ecnl_svctask_set_timer, MRB_ARGS_REQ(1));
 	mrb_define_method(mrb, _class_svctask, "timer", mrb_ecnl_svctask_get_timer, MRB_ARGS_NONE());
@@ -2048,5 +2024,5 @@
 	mrb_define_method(mrb, _class_svctask, "call_timeout", mrb_ecnl_svctask_call_timeout, MRB_ARGS_NONE());
 
-	/* ãªã¢ã¼ãECHONETãã¼ãã®é©åç¢ºèª */
+	/* リモートECHONETノードの適合確認 */
 	mrb_define_method(mrb, _class_svctask, "is_match", mrb_ecnl_svctask_is_match, MRB_ARGS_REQ(3));
 }
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/mrb_ecnl.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/mrb_ecnl.h	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/mrb_ecnl.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
Index: EcnlProtoTool/trunk/mrbgems/mruby-onig-regexp/test/mruby_onig_regexp.rb
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-onig-regexp/test/mruby_onig_regexp.rb	(revision 279)
+++ EcnlProtoTool/trunk/mrbgems/mruby-onig-regexp/test/mruby_onig_regexp.rb	(revision 321)
@@ -149,5 +149,5 @@
 
 assert("OnigRegexp#match (none encoding)") do
-  assert_equal 2, /\x82/n =~ "ã"
+  assert_equal 2, /\x82/n =~ "あ"
 end
 
