Ciao

Sono uno studente, e per una manifestazione scolastica dobbiamo fare un ptrogetto che simula il gioco dei luna park dove con un martello si colipsce una specie di altalena che in segiuto fa schizzare in alto un peso e fa suonare una campanello.

noi abbiamo relizzato la parte meccanica e anche quella elettrica, quest'ultima costituita da un aconveritore adc 0831, che da in uscita il segnale digitalizzato.

ora questo segnale deve essere preso in ingresso dalla porta parallela e il linguaggio che dobbiamo utilizzare è Java.

Navigando un po' ho trovato la Java Comm API, l'ho installata correttamente. Riesco a fare la ricerca delle porte senza problemi, quando cerco però di ottenere la CommPort (che poi in seguito dovrebbe essere castata in una ParallelPort), col metodo open mi da il seguente errore:

Codice:
Codice PHP:
Parport PPCLAIMBad file descriptor


Exception in thread 
"main" java.lang.RuntimeException
  
Error opening"/dev/parport0"
  
Permission denied
        at com
.sun.comm.LinuxDriver.getCommPort(LinuxDriver.java:66)
        
at javax.comm.CommPortIdentifier.open(CommPortIdentifier.java:369)
        
at portaparallela.Main.<init>(Main.java:50)
        
at portaparallela.Main.main(Main.java:60)
Java Result
questo è il codice della mia classe:

Codice PHP:
package portaparallela;

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Enumeration;
import javax.comm.*;
import javax.comm.UnsupportedCommOperationException;



/**
 *
 * @author luca
 */
public class Main{
    private 
ParallelPort portaparallela;
    private 
DataOutputStream out;
    private 
String tipo;
    private 
CommPortIdentifier[] porte=new CommPortIdentifier[5];
    private 
int i=0;
    private 
CommPort cp;
    private 
CommPortOwnershipListener cpol;
    private 
CommPortIdentifier c1;
    private 
InputStreamReader in;

    public 
Main() throws UnsupportedCommOperationExceptionPortInUseExceptionIOException
    
{
       

            
Enumeration c CommPortIdentifier.getPortIdentifiers();
            while (
c.hasMoreElements()) {
                
porte[i] = (CommPortIdentifierc.nextElement();
                
c1=porte[i];
                if (
c1.getPortType() == CommPortIdentifier.PORT_PARALLEL) {
                    
tipo "par";
                } else {
                    
tipo "ser";
                }
                
System.out.println(i+":"+c1.getName() + " owned=" c1.isCurrentlyOwned() +" by "+porte[i].getCurrentOwner()+ " tipo=" tipo);
                
i++;
            }
            
            
cp porte[2].open(this.toString(), 100);
            
            
ParallelPort pp=(ParallelPortcp;
            
out=new DataOutputStream(pp.getOutputStream());
            
in=new InputStreamReader(pp.getInputStream());
            
out.write(1);
            
System.out.println("Scrittura eseguita su "+cp.getName());
            
pp.close();
    }
    public static 
void main(String[] argsthrows UnsupportedCommOperationExceptionPortInUseExceptionIOException {
        new 
Main();
    }

    


scrivo direttamente porte[2], poichè so già che quella si riferisce alla porta parallela.

comunque, ho provato a fare la stessa cosa anche sulla porta seriale e li non mi da alun problema

v prego aiutatemi, devo presentare il progetto tra due settimane e mi manca solo questa parte per completare

Grazie sin da ora a chi riuscisse ad aiutarmi

Ciao
--
Luca