Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/07/2011, 12:17
Avatar de santayita
santayita
 
Fecha de Ingreso: noviembre-2010
Mensajes: 88
Antigüedad: 13 años, 5 meses
Puntos: 1
Nuevo Proyecto Java (Puerto Paralelo)

Me estoy sumergiendo en un proyecto en el que por lo de ahora me supera bastante, pero tengo especial interés en conseguirlo, ya sea como reto, o por su utilidad al finalizar.
Se trata de conectar una pista del slot (scalextric de toda la vida) al PC a traves del puerto paralelo para implementar un cuentavueltas, control de tiempos, semaforo... etc
Hay programas ya creados para eso... pero los buenos son de pago, y los otros, pues si no consigo llevar a cabo el proyecto me resignare con uno de ellos.
Estos programas simplemente necesitan dos pin, uno de entrada y el 25. Y por el otro extremo hay diversos ingenios, desde un sensor de luz, hasta una botonera.. pero lo importante es que se active cada vez que el coche pasa.

Hay algunos ejemplos por internet, y practicas teoricamente faciles como la de gestionar el encendido y apagado de unos Leds conectados al puerto.. pero no consigo hacer funcionar,.

Estoy usando la libreria JavaComm, y no uso XP (según he ledio, Xp bloquea el puerto por seguridad o algo así). Lo unico que consigo es idenficiar el puerto, pero ni recibir ni enviar datos. El codigo que utilizo es el siguiente:

Código:
    public static void main(String args[]) {
        try {
        	Enumeration portList;
        	CommPortIdentifier portId;
        	List<String> listaPuertos=new ArrayList<String>();
        	
        	portList = CommPortIdentifier.getPortIdentifiers();
        	while (portList.hasMoreElements()) {
                portId = (CommPortIdentifier) portList.nextElement();
                if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
                	listaPuertos.add(portId.getName());
                }
        	}
        	

            iniciarPuerto(listaPuertos.get(0));
            System.out.println("Puerto iniciado ...");
            System.out.println("Preparandose para escribir en el puerto ...");
            salida.write(255);
            salida.close();
            System.out.println("Escritura sobre el puerto exitosa.");
        } catch (Exception e) {
            System.out.println(e.getMessage());
            System.exit(1);
        }

private static void iniciarPuerto(String nombrePuerto) throws Exception {
        try {
            idPort = CommPortIdentifier.getPortIdentifier(nombrePuerto);
            pPort = (ParallelPort) idPort.open("Control de Puertos en Java", 0x378);
            salida = pPort.getOutputStream();
        } catch (Exception e) {
            throw new Exception(e.getMessage() + "\n\nLa aplicación se cerrará.");
        }
    }
Y el error:
com.sun.comm.Win32SerialPort cannot be cast to javax.comm.ParallelPort

Lo dicho, esto supera con creces mis conocimientos... asi que si alguien me puede echar un cable, seria de gran ayuda. Muchas gracias de antemano.