//  
//  java1901.java
//  Copyright (c) 1999, Agustin Froufe
//  Todos los derechos reservados.
//  
//  No se asume ninguna  responsabilidad por el  uso o  alteracion  de este
//  software.  Este software se proporciona COMO ES, sin garantia de ningun
//  tipo de su funcionamiento y en ningun caso sera el autor responsable de
//  daños o perjuicios que se deriven del mal uso del software,  aun cuando
//  este haya sido notificado de la posibilidad de dicho daño.
// 
//   Compilador: javac 1.2
//        Autor: Agustin Froufe
//     Creacion: 17-Feb-1999  05:53:12
// 
//--------------------------------------------------------------------------
//  Esta informacion no es necesariamente definitiva y esta sujeta a cambios
//  que pueden ser incorporados en cualquier momento, sin avisar.
//--------------------------------------------------------------------------

/**
 * Este es un ejemplo de uso del API de Comunicaciones Java que permite la
 * escritura de un mensaje de texto a través de uno de los puertos serie de
 * la máquina en que se ejecuta.
 * El ejemplo se ha probado en Windows y Solaris, utilizando la línea
 * de código que identifica el puerto a utilizar correspondiente
 */
import java.io.*;
import java.util.*;
import javax.comm.*;

public class java1901 {
  static Enumeration listaPuertos;
  static CommPortIdentifier idPuerto;
  static String mensaje = "Tutorial de Java, Comunicaciones Serie\n";
  static SerialPort puertoSerie;
  static OutputStream salida;

  public static void main( String[] args ) {
    listaPuertos = CommPortIdentifier.getPortIdentifiers();

    while( listaPuertos.hasMoreElements() ) {
      idPuerto = (CommPortIdentifier)listaPuertos.nextElement();
      if( idPuerto.getPortType() == CommPortIdentifier.PORT_SERIAL ) {
//        if( idPuerto.getName().equals("/dev/term/a") ) {
        if( idPuerto.getName().equals("COM1") ) {
          // Si el puerto no está en uso, se intenta abrir
          try {
            puertoSerie = ( SerialPort )idPuerto.open("AplEscritura",2000);
          } catch( PortInUseException e ) {}

          // Se obtiene un canal de salida
          try {
            salida = puertoSerie.getOutputStream();
          } catch( IOException e ) {}

          // Se fijan los parámetros de comunicación del puerto
          try {
            puertoSerie.setSerialPortParams( 9600,
              SerialPort.DATABITS_8,
              SerialPort.STOPBITS_1,
              SerialPort.PARITY_NONE );
          } catch( UnsupportedCommOperationException e ) {}
          
          // Se envía el mensaje
          try {
            salida.write( mensaje.getBytes() );
          } catch( IOException e ) {}
        }
      }
    }
  }
}
  
//------------------------------------------ Final del fichero java1901.java  