その3 Xport用 Javaアプレットソフト


とくに説明はしませんが、このJavaアプレットソフトウエアが現在の私の精一杯なところです。
(勉強不足!)
このアプレットを縦600、横800の幅で開くhtmlを作ってweb2cobでcobファイルを作り、Xportに転送して下さい。
Xoprtに関する最新の詳しい内容は、http://www.co-nss.co.jp/download/download-top.html#xport を参照してください。
また、CQ出版のトランジスタ技術のページを参照してください。ここでのXportに関する説明は、省かせていただきます。
 
◎ トランジスタ技術ホームページ ダウンロードサービス 「2003年10月号 シリアル-イーサネット変換器XPortの試用リポート(後編)」
現在、トランジスタ技術のダウンロードページには、当時の資料がもはや掲載されておりません。誠に残念です。下記リンクでPDFファイルをダウンロードして下さい。
xport-guidance-first.pdf  (トランジスタ技術 2003年9月号掲載 前編)
xport-guidance-latter.pdf  (トランジスタ技術 2003年10月号掲載 後編)
 
なお、このアプレットは、横軸一杯にプロットすると表示を一旦クリアして、初めから追加の温度をグラフ表示いたします。

TempLan28.java

import java.applet.*;
import java.awt.*;
import java.net.*;
import java.io.*;
import java.text.*;

public class TempLan28 extends Applet implements Runnable
{
        Thread timer;

    Graphics OffGC;
    Image OffScreenImage;
   
        InetAddress xport_ip = null;
        int port = 10001;
        int inum = 0 ;
        int grx = 50 ;
        int gry = 550 ;
        double num;
        Socket xport_socket;
        BufferedReader socketin;
   
        String buff;
   
    public void initOffGC()
    {
        OffGC.setColor(Color.black);
        OffGC.setFont(new Font("Serif",Font.BOLD,18));
        OffGC.drawLine( 45, 550, 750, 550);    // 時間軸
        OffGC.drawString("0",30,555);
        OffGC.drawLine( 50, 555, 50, 50);    // 温度軸

        OffGC.drawLine( 45, 500, 750, 500);    // 5度
        OffGC.drawString("5",30,505);

        OffGC.drawLine( 45, 450, 750, 450);    // 10度
        OffGC.drawString("10",20,455);

        OffGC.drawLine( 45, 400, 750, 400);    // 15度
        OffGC.drawString("15",20,405);

        OffGC.drawLine( 45, 350, 750, 350);    // 20度
        OffGC.drawString("20",20,355);

        OffGC.drawLine( 45, 300, 750, 300);    // 25度
        OffGC.drawString("25",20,305);

        OffGC.drawLine( 45, 250, 750, 250);    // 30度
        OffGC.drawString("30",20,255);

        OffGC.drawLine( 45, 200, 750, 200);    // 35度
        OffGC.drawString("35",20,205);

        OffGC.drawLine( 45, 150, 750, 150);    // 40度
        OffGC.drawString("40",20,155);

        OffGC.drawLine( 45, 100, 750, 100);    // 45度
        OffGC.drawString("45",20,105);

        OffGC.drawLine( 45, 50, 750, 50);    // 50度
        OffGC.drawString("50",20,55);
    }

    public void init()
    {
        OffScreenImage = createImage(800,600);
        OffGC = OffScreenImage.getGraphics();
        try
        {
            xport_ip = InetAddress.getByName(getCodeBase().getHost());
        }

        catch(UnknownHostException e){}
       
        try
        {
            xport_socket = new Socket(xport_ip, port);
            socketin = new BufferedReader(
                                        new InputStreamReader(xport_socket.getInputStream()));
        }
        catch(IOException e){}
        initOffGC();

    }
   
    public void start()
    {
        timer = new Thread(this);
        timer.start();
    }
   
    public void stop()
    {
        try
        {
            socketin.close();
            xport_socket.close();
        }
        catch(IOException e){}
       
        timer = null;
    }
   
    public void run()
    {
        Thread me = Thread.currentThread();
        while(timer == me)
        {
            try
            {
                Thread.currentThread().sleep(100);
            }
            catch(InterruptedException e){}
           
            try
            {
                                    buff = socketin.readLine();
                                    num = Double.parseDouble(buff);
                                    num = 10.0 * num;
                                    inum = (int)num;
            }
            catch(IOException e){}

                       Dimension d = getSize();
            String t = buff + "℃";
            if(grx > 750){
                              grx = 50 ;
                        OffGC.clearRect(0, 0, d.width, d.height);
                initOffGC();

            }

            gry = -inum + 550 ;
       
            Font CurrentFont = OffGC.getFont();
       
            Font font = new Font("MS 明朝" , Font.BOLD , 36);
            OffGC.setFont(font);
            FontMetrics metrics = getFontMetrics(font);

            OffGC.setColor(Color.black);
            OffGC.clearRect(0, 0, 400, 40);
            OffGC.drawString(t, 50, 35);

            OffGC.setColor(Color.blue);
            OffGC.fillOval(grx, gry, 2, 2);
                        grx = grx + 2 ;

            OffGC.setFont(CurrentFont);
           
                        repaint();
        }
    }
   
    public void paint(Graphics g)
    {
        g.drawImage(OffScreenImage,0,0,this);
    }
   
    public void update(Graphics g)
    {
        paint(g);
    }

    public void destroy()
    {
        OffGC.dispose();
    }
}

注意事項
General disclaimer


トッ プページへ
なお、当ホームページで公開しているデーター(写真、音声)等を個人の枠を超えて複製・転用する事はご遠慮下さいませ。
ご意見/苦情/ご感想はこちらまで