Visualizzazione dei risultati da 1 a 9 su 9

Discussione: javax.comm

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    23

    javax.comm

    Ciao a tutti, volevo sapere se qualcuno ha incontrato difficoltà nel lavorare con la parallela (lpt1) usando javax.comm.
    Io riesco solo a crivere nella porta, ma non a leggere per es. il metodo isPrinterBusy() mi restituisce sempre false a prescindere dalla presenza di un livello di tensione alto o basso sul pin BUSY del connettore della porta. Siccome uso windows xp mi è stato detto che può essere questa la causa. Qualcuno mi può dare conferma di ciò ed eventualmente esiste una soluzione?
    Siccome sto diventando matto per risolvere questo problema spero che qualcuno mi possa aiutare.
    Ciao e grazie.

  2. #2
    ciao
    io ho provato qualche mese fà ma non ci sono riuscito!!
    mi potresti spiegare ( magari con un codice di esempio ) come fai a scrivere sulla parallela???

    grazie mille

    ciao
    ....ma i computer non sono tanto macchine quanto strumenti di ampliamento della mente ed un diverso tipo di mezzo espressivo.
    -- Chi si accontenta non gode si illude --

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    23
    import java.io.*;

    public class Port {


    /** Creates a new instance of Port */
    public Port() {
    try{
    FileOutputStream porta = new FileOutputStream("LPT1");
    porta.write(0xf1);
    }
    catch(Exception e){}
    }
    }
    public static void main(String args[]){
    Port p = new Port();
    }

    Questo è il codice più semplice per scrivere nella parallela, ricorda però che i pin busy,paper empty,devono essere ad un livello di tensione basso (sono TTL) li devi collegare a massa.
    L'analogo programma per leggere il registro di stato non funziona sotto XP, 2000, NT.
    Per leggere l'unico modo di realizzare una libreria col c++ e nel caso di XP,2000,NT a causa della protezione del S.O. si devono usare le API di windows.
    con le api di java si può solo scrivere nella porta, ma non leggere perchè pur essendo presenti i metodi per la lettura non funzionano, non sono implementati. Sono diventato scemo per capirlo!!!!
    L'ho trovato nel forum della sun.

    Per scrivere con javax.comm usa questo codice
    import javax.comm.*;
    import java.io.*;

    // Questa classe permette di scrivere sulla porta parallela
    // il cui nome è specificato nel costruttore della stessa.


    public class ScriviSuParallela {



    // Crea un oggetto che scrive il valore della stringa
    // message sulla porta parallela port

    public ScriviSuParallela(String port, String message){
    try{
    //Prendiamo il descrittore della porta scelta.
    // Nel caso in cui la porta non esista verrà sollevata
    // una eccezione
    // di tipo NoSuchPortException

    CommPortIdentifier id_porta;
    id_porta= CommPortIdentifier.getPortIdentifier(port);

    // Proviamo a prendere l'ownership della porta data.
    // Nel caso in cui la porta sia già occupata verrà
    // sollevata una eccezione di tipo PortInUseException


    CommPort porta=id_porta.open("ScriviSuParallela",200);
    // Otteniamo un riferimento all'OutputStream della porta

    OutputStream out=porta.getOutputStream();
    // Impostiamo il modo di comunicazione in LPT_MODE_ECP
    // ovvero
    // Enhanced capabilities port
    // Nel caso in cui i valori impostati non siano supportati
    // verrà sollevata una eccezione di tipo
    // UnsupportedCommOperationException


    ParallelPort porta_parallela=(ParallelPort)porta;
    porta_parallela.setMode(ParallelPort.LPT_MODE_SPP) ;

    // Procediamo, quindi, alla scrittura del messaggio
    // sulla porta
    PrintStream ps= new PrintStream(out);
    ps.print(message);

    // Chiudiamo la porta
    ps.close();
    porta.close();
    System.out.println("Porta chiusa");
    }
    catch(NoSuchPortException ne){
    System.out.println("La porta "+port+" non e' presente");
    }

    catch(PortInUseException pe){
    System.out.println("La porta "+port+" e' occupata da "+
    pe.currentOwner);
    }

    catch(UnsupportedCommOperationException ue){
    System.out.println("La porta non supporta le proprietà
    impostate");
    }

    catch(IOException ioe){
    System.out.println("Errore di IO");
    }// fine try/catch

    }// fine



    public static void main(String[] args){
    if(args.length<2)
    System.out.println("Usage java ScriviSuParallela <port name>
    <message>");
    else{
    ScriviSuParallela scrivi= new ScriviSuParallela(args[0],args[1]);
    }// fine else
    }// fine


    }// fine classe

    Ricordati di mettere al posto giusto i file javax.comm javax.propretis e win32comm.dll
    Se ti serve altro scrivi pure ciao.

  4. #4
    dove li devo mettere questi files ??
    javax.comm javax.propretis e win32comm.dll

    se ti puo interessare sul sito www.mokabyte.it ho trovato del materiale, comprese delle classi per scrivere e leggere sulla parallela e sulla seriale ( probabilmente non sono riuscito ad utilizzarle perche non mettevo in stato basso quei pin )

    altro sito interessante è questo:
    www.giobe2000.it
    ti spiega nei particolari il funzionamento della porta parallela ecc

    grazie
    ciao
    ....ma i computer non sono tanto macchine quanto strumenti di ampliamento della mente ed un diverso tipo di mezzo espressivo.
    -- Chi si accontenta non gode si illude --

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    23
    I file in questione devono essere posti come qui di seguito scritto,(è il file jdk1.2.html che hai scaricato quando hai scaricato il file javacomm20-win32.zip.):

    Installing the Java Communications API on JDK 1.2 (RC1)
    <jdk> refers to the root directory of your JDK installation. If you installed JDK in c:\jdk1.2 then replace all reference to <jdk> with c:\jdk1.2.


    Windows: place the win32com.dll in <jdk>\jre\bin directory.

    Place the comm.jar in <jdk>\jre\lib\ext.

    Place the javax.comm.properties in <jdk>\jre\lib .

    Do not alter the CLASSPATH.

    Nella directory jdk1.x.x è presente la dir ext, ad esempio se hai il jdk1.4.1 il file comm.jar lo devi mettere in jdk1.4.1\jre\lib\ext

    Scusa se non ti ho risposto prima ma ero via ciao.

  6. #6
    grazie per la risposta provo e ti faccio sapere.
    per curiosità, quale applicazione stai sviluppando che utilizza lpt??
    probabilmente è la stessa cosa che vorrei fare io

    ciao
    ....ma i computer non sono tanto macchine quanto strumenti di ampliamento della mente ed un diverso tipo di mezzo espressivo.
    -- Chi si accontenta non gode si illude --

  7. #7
    riesco a compilarla ma non ad eseguirla

    cosi la lancio:

    C:\Documents and Settings\Administrator\Desktop\provejava>java ScriviSuParallela

    questo l'errore:

    Exception in thread "main" java.lang.NoClassDefFoundError: javax/comm/Unsupporte
    dCommOperationException

    ho provato anche ad aggiungere la porta e il messaggio ma ricevo lo stesso errore
    ....ma i computer non sono tanto macchine quanto strumenti di ampliamento della mente ed un diverso tipo di mezzo espressivo.
    -- Chi si accontenta non gode si illude --

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    23
    Prova ad eliminare con un commento la seguente istruzione:
    porta_parallela.setMode(ParallelPort.LPT_MODE_SPP) ;
    è la responsabile dell'eccezione in questione
    ed elimina il relativo blocco catch, tanto comunque col javax.comm non si può impostare altro modo che non l'SPP!

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    23
    Ti funziona il javax.comm?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.