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:
questo è il codice della mia classe:Codice PHP:Parport PPCLAIM: Bad 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: 1
scrivo direttamente porte[2], poichè so già che quella si riferisce alla porta parallela.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 UnsupportedCommOperationException, PortInUseException, IOException
{
Enumeration c = CommPortIdentifier.getPortIdentifiers();
while (c.hasMoreElements()) {
porte[i] = (CommPortIdentifier) c.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=(ParallelPort) cp;
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[] args) throws UnsupportedCommOperationException, PortInUseException, IOException {
new Main();
}
}
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

Rispondi quotando
