package serial;

import java.io.*;
import Serialio.*;

public class ReadStream {
	static String banner = "Copyright (c) 1997,1998 Solutions Consulting, All Rights Reserved.";
	static String ver = "ReadStream Ver 1.1";

	public static void main(String args[])
	throws IOException, NumberFormatException
	{
	SerialPortLocal sp;
	String devName = "";

	if (args.length == 0){
		PrintUsage();
		System.exit(1);
	}
	else {
		devName = args[0];
	}

	try {
    	SerialConfig serCfg = new SerialConfig(devName);
		sp = new SerialPortLocal(serCfg);
		sp.setTimeoutRx(1000);
		int verLib = sp.getLibVer();
		short vMajor = (short)(verLib >> 16);
		short vMinor = (short)(verLib & 0xffff);
		System.out.println("DLL version: "+vMajor+"."+vMinor);
        InputStream si = (InputStream) new SerInputStream(sp);
		System.out.println("Reading object from serial port");
		ObjectInputStream soi = new ObjectInputStream(si);
		SerDemoObject sObj = (SerDemoObject)soi.readObject();
		System.out.println("\nGot Object.");
		System.out.println("Invoking the object show method...");
		sObj.show();
	}
	catch (Exception ioe) {
		System.out.println(ioe);
		System.exit(1);
		}
  	}

	static int PrintUsage() {
		System.out.println(ver);
		System.out.println(banner+"\n");
		System.out.println("Reads an Object from the serial port via SerInputStream.");
		System.out.println("The parameters are 9600 bps, No Parity, 8 data bits, 1 stop bit.");
		System.out.println("Run this application first, then run SendStream from the sending port");
		System.out.println("\nEnter the serial device name as the first parameter.");
		System.out.println("To use COM2, enter this command: java ReadStream COM2");
		return 0;
	}
}

