« 自作ガイガーカウンタ測定値のWEB公開システムプロト(1) | トップページ | 自作ガイガーカウンタ2号機タイプ1(Rev.2)の製作 »

2011.06.19

自作ガイガーカウンタ測定値のWEB公開システムプロト(2)

この記事は前回の記事のシステムが生成するCSVファイルを、Web経由で取得して、インターネットブラウザに折れ線グラフで表示させるJavaアプレットに製作に関するものです。下画像は、実行結果でだが、グラフとして表示されている内容はテストデータで意味はないものなので、ご注意下さい。

11061904_2
あくまでも、試作なので、装飾的な機能は、全くありません。Javaのソースコーソは、下記。


// ファイル名「test.class」として保存しないと、javacはエラーになる。
//
import java.awt.*;
import java.util.*;
import java.io.*;
import java.net.*;
import java.applet.Applet; 

public class test extends Applet 
{
	int sx=2;
	int sy=3;
	int wx=320;
	int wy=240;

	public void init() {
		this.setBackground(Color.white);
	}

	public void paint(Graphics g) {
		Date dt = new Date();
		Calendar cal = Calendar.getInstance();

		int myYear = cal.get(Calendar.YEAR);
		int myMon = cal.get(Calendar.MONTH) + 1;
		int myDay = cal.get(Calendar.DATE);
		String myDate;

// 以下、URLの生成は、使用者がカスタマイズする
//
	myDate = "/demo/gmdata_"  + myYear;
	if (myMon < 10) {
		myDate = myDate + "0" ;
	}
	myDate = myDate + myMon;
	if (myDay < 10) {
		myDate = myDate + "0" ;
	}
	myDate = myDate + myDay + ".csv";

 	String url;    String host = "XXX.XX";  // ホスト名
	int port = 80;  // ポート名
	Socket sock;
	BufferedReader sockin;
	BufferedWriter sockout;
	String str;
	 int x=30,y=30,h=40,n=3;
	 int i=0;
	 int j=0;
	 int px_cur=0, py_cur=0;
 	 int px_prv=0, py_prv=0;

//	url = "http://" + host + ":" + port + myDate;
	url = "http://" + host + myDate;

	System.out.println( url );

 	try {

		wx = sx * 24 * 6;
      		g.drawLine(0,wy-1,wx,wy-1 ); // X
      		g.drawLine(0,wy-10*sy,wx,wy-10*sy ); // X

	 	 for (i=0; i<8; i++ ) {
			  g.drawLine(0,10*i*sy,wx,10*i*sy); // X
	 	 }
	 	 for (i=0; i<(6*24); i+=12 ) {
			  g.drawLine(sx*i,0,sx*i,wy); // Y
		 }
	 	 g.drawLine(sx*i,0,sx*i,wy); // Y

		sock = new Socket ( host, port );
		sockin = new BufferedReader(
		new InputStreamReader(sock.getInputStream()));
		sockout = new BufferedWriter(
		new OutputStreamWriter(sock.getOutputStream()));

		sockout.write("GET " + url +" HTTP/1.1\r\n");
		sockout.write("Host: " + host + "\r\n");
		sockout.write("Connection: close\r\n");
		sockout.write("\r\n");
		sockout.flush();

		str = sockin.readLine();
		System.out.println(str);
		str = sockin.readLine();
		System.out.println(str);
		str = sockin.readLine();
		System.out.println(str);
		str = sockin.readLine();
		System.out.println(str);
		str = sockin.readLine();
		System.out.println(str);
		str = sockin.readLine();
		System.out.println(str);
		str = sockin.readLine();
		System.out.println(str);
		str = sockin.readLine();
		System.out.println(str);
		str = sockin.readLine();
		System.out.println(str);
		str = sockin.readLine();
		System.out.println(str);
		str = sockin.readLine();
		System.out.println(str);

		g.setColor( Color.RED );
		while ((str = sockin.readLine()) != null) {
			System.out.println(str);

			px_cur = j * 1;

			StringTokenizer st = new StringTokenizer(str, ",");
			st.nextToken();
			st.hasMoreTokens();
			py_cur = Integer.valueOf(st.nextToken().replaceAll(" ", "" ))*sy;
			g.drawLine( px_prv*sx, wy-py_prv, px_cur*sx, wy-py_cur );

			 j++;
			px_prv = px_cur;
			py_prv = py_cur;
		}
		sockout.close();
		sockin.close();
		sock.close();
	 } catch (Exception ex) {
		ex.printStackTrace();
	}
}

こんな感じ。チョッチ疲れた。しかし、iPadでもJavaアプレットが動くものと誤解してたが、動かなかったのかと、更に疲れた(*´д`*)〜з あと、本記事は、製作物の品質や信頼性/安全性を保証するものではないことを、ご注意下さい。

|

« 自作ガイガーカウンタ測定値のWEB公開システムプロト(1) | トップページ | 自作ガイガーカウンタ2号機タイプ1(Rev.2)の製作 »

趣味」カテゴリの記事

自作ーガイガーカウンタ」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 自作ガイガーカウンタ測定値のWEB公開システムプロト(2):

» 自作ガイガーカウンタ測定値のWEB公開システムプロト(3) [Open ECO and IT]
何とも、iPad/iPhone/iPod Touchでは、Javaアプレットが動 [続きを読む]

受信: 2011.06.23 21:09

« 自作ガイガーカウンタ測定値のWEB公開システムプロト(1) | トップページ | 自作ガイガーカウンタ2号機タイプ1(Rev.2)の製作 »