Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Problema comunicazione porta parallela

    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
    LittleChe

  2. #2
    ho dimenticato di aggiungere che come sistema operativo uso Linux Ubuntu, e se vi fosse una soluzione compatibile solo con Windows andrebbe bene comunque
    LittleChe

  3. #3
    purtroppo nessuno è stato in grado di aiutarmi. ma sono riuscito comunque a cavarmela anche senza il vostro aiuto.
    LittleChe

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    3
    Ciao LittleChe90,
    anch'io sono uno studente e, come te, ho il tuo stesso problema, solo che uso WinXpSP3.
    A me serve pilotare la parallela per avere semplicemente in uscita il valore in binario di un numero decimale, il quale determinerà la velocità di un motore elettrico.
    Mi potresti spiegare come hai risolto il problema ed, eventualmente, anche scrivermi il codice funzionante. Io ho usato il codice che hai postato in precendenza ma, sul out.write(1) il programma si "inchioda" e non va nè avanti nè indietro. Nella enumeration mi compaiono 3 porte:
    0. COM3 seriale
    1. LPT1 parallela (quella che uso e che si blocca)
    2. LPT2 parallela (che invece mi solleva eccezioni)

    La parte riguardante l'InputReader l'ho eliminata perchè
    Codice PHP:
    Exception in thread "main" java.io.IOExceptionUnsupported operationOutput only mode         at com.sun.comm.Win32ParallelPort.getInputStream(Win32ParallelPort.java:102)         at Main.<init>(Main.java:45)         at Main.main(Main.java:57
    Grazie mille per l'aiuto

    Cristian

  5. #5

    problemi "in uscita"

    Ciao,
    ho appena installato un gestore della porta parallela..non è proprio comm api, ma è molto simile.. visto che avete un po' piu esperienza di me vorrei sapere se potete aiutarmi:
    per iniziare ad usare la porta parallela voglio mandare in stampa una stringa di prova.
    Dichiaro un
    PrintStream OutStream=new PrintStream(port.getOutputStream(), true);
    dove port è la mia porta parallela.lancio il messaggio in uscita:
    OutStream.println("TEST");
    il programma gira, si apre la finestra tipica della stampante, ma la stampante non stampa nessun messaggio...
    Voi come lanciate l'output?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    3
    Ciao,
    mi dispiace darti brutte notizie ma ho provato in mille modi a far funzionare la porta parallela ma non ci son riuscito, così ho programmato la porta seriale...

  7. #7
    Non so se avete letto il post precedente comunque sono riuscito a far funzionare la porta parallela.
    Ciò che ho utilizzato è jnpout32. Molto buona come soluzione. Sono riuscito ad ottenere ottimi risultati, se riesco a trovarli vi mando le librerie che ho utilizzato e le classi che ho scritto
    LittleChe

  8. #8
    Ciao a tutti ..

    Una domanda per littleChe90 :
    hai usato quella libreria per gestire la porta parallela? Non per farmi i fatti tuoi, ma puoi darmi un'idea di come funzionava il tuo programmino?

    Una domanda per Cingu:
    te invece sei passato direttamente alla seriale per gestire I/O...che libreria hai usato? è molto diverso dall'usare la porta parallela??

    grazie in anticipo a chi risponde..
    a presto..

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    3
    Ho usato la libreria comm api, non integrata però nella jdk base; va scaricata. Non scaricare però quella che si trova sul sito della sun se hai windows perchè funziona solo con solaris (così mi è capitato). Cerca con google il file javacomm20-win32.zip per la libreria funzionante in windows e anche come installarla ("how to install java comm api for windows" o simile).
    Programmare la seriale è molto simile a come si programma la porta parallela, in rete si trovano una marea di esempi su come si fa. Il file zip che ti ho indicato contiene una cartella con molti esempi ben funzionanti (quelli per la porta seriale...).

    Spero di esserti stato utile
    Buona programmazione

    Cingu

  10. #10
    Ti ringrazio molto..
    Ci stavo perdendo un casino di tempo con queste porte...

    ciao alla prossima

    Federico

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.