/**
 * @file 2016/12/05
 */
package quiz;

import java.io.OutputStream;

import gnu.io.CommPort;
import gnu.io.SerialPort;

/**
 * シリアルデータ通信クラス
 *
 * @author Yuka Yoshikawa
 *
 */
public class SendSerialData implements OutPut {

	/** String型 COMポート番号 */
	private String commPort;
	/** String型 送信する正誤結果文字列データ */
	private String result;
	/** String型 送信する解答英単語文字列データ */
	private String answer;
	/** シリアルポート */
	private SerialPort port = null;
	/** ボーレート */
	private final int BAUDRATE = 9600;

	/**
	 * 使用するCOMポートを取得するメソッド
	 *
	 * @throws java.lang.Exception
	 *             発生する全例外 NoSuchPortException PortInUseException
	 *             UnsupportedCommOperationException
	 *
	 * @note 全ての例外をthrowsする
	 */
	@Override
	public void open() throws Exception {

		CommPort cm = PortIdentifierWrapper.getCommPort(commPort);
		port = (SerialPort) cm;
		port.setSerialPortParams(BAUDRATE, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
		port.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);

	}

	/**
	 * 文字列データを一文字づつシリアル送信する
	 *
	 * @throws java.lang.Exception
	 *             発生する全例外 IOException InterreptedException
	 *
	 * @note 全ての例外をthrowsする
	 */
	@Override
	public void stream() throws Exception {

		OutputStream out = port.getOutputStream();
		Thread.sleep(2000); // LCDパネル表示のための固定数値とする

		for (int i = 0; i < result.length(); i++) {
			out.write(result.charAt(i));
		}

		out.write(0x0a);

		for (int i = 0; i < answer.length(); i++) {
			out.write(answer.charAt(i));
		}

		out.write(0x00);

		out.close();
	}

	/**
	 * シリアルポートを閉じるメソッド
	 *
	 * @throws java.lang.Exception
	 *             発生する全例外
	 *
	 * @note 全ての例外をthrowsする
	 */
	@Override
	public void close() throws Exception {
		port.close();
	}

	/**
	 * COMポート番号のセッターメソッド
	 *
	 * @param commPort
	 *            String型 COMポート番号
	 */
	public void setCommPort(String commPort) {
		this.commPort = commPort;
	}

	/**
	 * 送信する正誤結果文字列データのセッターメソッド
	 *
	 * @param result
	 *            String型 正誤結果
	 */
	public void setResultMessage(String result) {
		this.result = result;
	}

	/**
	 * 送信する解答英単語文字列データのセッターメソッド
	 *
	 * @param message
	 *            String型 解答の英単語
	 */
	public void setAnswerWord(String answer) {
		this.answer = answer;
	}

}

@@ -1304,16 +1304,43 @@
 %E5%AE%9A%E6%95%B0%E5%80%A4%E3%81%A8%E3%81%99%E3%82%8B%0A%0A
+%09%09/* %E4%B8%80%E8%A1%8C%E7%9B%AE%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E7%AD%94%E3%81%88%E5%90%88%E3%82%8F%E3%81%9B%E7%B5%90%E6%9E%9C%E3%82%92%E9%80%81%E3%82%8B */%0A
 %09%09for (i
@@ -1420,25 +1420,92 @@
 %0A%0A%09%09
-out.write(0x0a);%0A
+/* Arduino%E5%81%B4%E3%81%A7%E6%94%B9%E8%A1%8C%E3%82%92%E8%AA%8D%E8%AD%98%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E6%94%B9%E8%A1%8C%E6%96%87%E5%AD%97%E3%81%AE %5Cn %E3%82%92%E9%80%81%E3%82%8B */%0A%09%09out.write(0x0a);%0A%0A%09%09/* %E4%BA%8C%E8%A1%8C%E7%9B%AE%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E7%AD%94%E3%81%88%E5%90%88%E3%82%8F%E3%81%9B%E7%B5%90%E6%9E%9C%E3%82%92%E9%80%81%E3%82%8B */
 %0A%09%09f
@@ -1584,16 +1584,59 @@
 );%0A%09%09%7D%0A%0A
+%09%09/* Arduino%E5%81%B4%E3%81%A7%E6%96%87%E5%AD%97%E5%88%97%E7%B5%82%E7%AB%AF%E3%82%92%E8%AA%8D%E8%AD%98%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E7%B5%82%E7%AB%AF%E6%96%87%E5%AD%97%E3%81%AE %5C0 %E3%82%92%E9%80%81%E3%82%8B */%0A
 %09%09out.wr

Fix comments