Newsgroup: it.comp.java
Titolo: porta seriale e/o parallella help! help! help!

Ciao a tutti,
sono interessato a gestire la porta seriale e/o parallela del mio pc.
Il mio fine è quello di poter avere dietro l'esecuzione di un programma una
tensione su un qualunque pin di una porta. per un tempo arbitrario.
Dopo non poche difficoltà sono riuscito ad 'istallare' le comm.jar.
vorrei avere alcune delucidazioni :
1- è possibile mettere a +5Volt (o 12V) un pin della porta seriale  ?
2- dal sito della sun ho scaricato la BlackBox,  mi fà intendere che sulla
seriale posso andare a scrivere una sringa di caratteri ...
    ma per mettere una pina a +5 V che devo fare ?
3-dal sito della sun, ci sono degli esempi di lettura e scrittura su
seriale, ma non avendo ancora i mezzi per testarli non sò se soddisfano le
mie esigenze, qualcuno di voi li ha provati?
4- facendo delle ricerche in rete ho trovato 
www.nutchip.it
 qualcuno di voi
ha testato questo processore ?( potrebbe dire se fà al caso mio ) oppure mi
consigliate qualche altra cosa ?
5-visto che sono alle prime armi con questo tipo di problema, potreste
indicarmi qualche link che spieghi passo passo che cosa devo fare per
avvicinarmi il prima possibile alla soluzione del mio problema?
insomma ragazzi sono nelle vostre mani ...
vi ringrazio anticipatamente Rob

Ciao,
secondo me mettere a 5/12 volt un pin equivale a mandargli un "1"
binario.
Dovresti leggere le info sulla porta e vedere quale bit mettere a 1.
Successivamente scrivi sulla porta una parola binaria (insieme di bit)
che pone a 1
o a 0 i vari pin della porta, secondo la configurazione che ti serve.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 o a 0 i vari pin della porta, secondo la configurazione che ti serve.
Scusami se mi permetto ... tu hai mai provato a fare questo ?
che vorrei entrare un pò più nel dettaglio
salutoni Rob
P.S. non mi abbandonare ... sei l'unico che mi ha risposto e mi 'potrebbe'
aiutare!!!  :->
se hai qulche link da postarmi dove reperire informazioni te ne sarei molto
grato.

Ho lavorato a qualcosa di analogo. Vedi se questi ti possono servire:
http://www.rgagnon.com/javadetails/java-0062.html
http://www.javaworld.com/javaworld/jw-05-1998/jw-05-javadev.html
che ti servono per leggere dalla porta o scrivere in essa.
Naturalmente dovresti informati sul tipo di porta che vuoi utilizzare
(di solito
RS232) per capire quali pin impostare a 1 e quali a 0. 
ESEMPIO:
supponiamo di avere una porta in cui hai a disposizione 8 pin e che devi
impostare a 1 il 1° pin della porta
impostare a 0 il 2° primo pin della porta
impostare a 0 il 3° primo pin della porta
impostare a 0 il 4° primo pin della porta
impostare a 1 il 5° primo pin della porta
impostare a 0 il 6° primo pin della porta
impostare a 0 il 7° primo pin della porta
impostare a 1 il 8° primo pin della porta
Quindi, se il 1° bit è il meno significativo sulla porta devi scrivere
10010001. Se invece il 1° bit è il più significativo sulla porta devi
scrivere 10001001.
A livello di codice quello che dovrai fare sarà del tipo
myPort.write(mySequence)
dove mySequence è il byte "10010001" o "10001001", cioè l'esadecimale
91 o l'esadecimale 19.


 wrote in message
68234c84264ff228f35...@mygate.mailgate.org...


o a 0 i vari pin della porta, secondo la configurazione che ti serve.
Non sono daccordo,
dipende che pin vuole alzare
tu dai per scontato che voglia alzare il pin di dati (sulla seriale è
solo 1)
Secondo me l'unica soluzione è un metodo nativo che esegua una 
out(3fx, 1);
dove in 3fx c'è l'indirizzo del registro che si mappa sul pin di
uscita.
sono passati un po' di anni dall'ultima volta che ho gestito una
seriale, ma da quanto ne sò, in java non è possibile andare a scrivere
direttamente su una porta di out.
Per il mapping dei registri della porta seriale sugli indirizzi hex su
cui scrivere, conviene fare riferimento a documentazione specifica
dell'UART.
Assembly Rules

mi potresti postare cortesemente qualche link da cui potrei documentarmi ?
provo a farti qualche domanda (per cortesia aiutami .....:-)
io ho provato ad eseguire questo codice ...
secondo te questo codice potrebbe essere utilizzato per settare ad 1 il pin
dei dati ?
se si per quanto tempo ?
che cosa devo scrivere al posto dei ????? per mettere ad 1 il pin ?
forse (o probabilmente) ti ho scritto un pò di cretinate ......
... purtroppo non riesco a trovare una documentazione che mi faciliti la
cosa ?
sul sito della sun ci sono due esempi di SimpleRead e SimpleWrite ma ancora
non ho il tester e non sò se soddisfano le mie richieste ...
poi c'è anche una BlackBox sai a che serve (che non ho capito niente..)?
ti ringrazio e mi scuso per tutte queste domande (... un pò strane ..) ?
saluti rob
codice:
 try {
                        serialPort = (SerialPort)
                            portId.open("SimpleWriteApp", 2000);
                    } catch (PortInUseException e) {}
                    try {
                        outputStream = serialPort.getOutputStream();
                    } catch (IOException e) {}
                    try {
                        serialPort.setSerialPortParams(9600,
                            SerialPort.DATABITS_8,
                            SerialPort.STOPBITS_1,
                            SerialPort.PARITY_NONE);
                            PrintStream ps = new PrintStream(outputStream);
                            ps.write( ??????? );
                            } catch (UnsupportedCommOperationException e) {}
                    try {


ho ricercato sulla documentazione ma non esiste nessun metodo che assomiglia
a questo,
non vorrei sbagliare ma per scrivere sulla porta ho bisogno di oggetti
OutPutStream e PrintStream associati :
 outputStream = serialPort.getOutputStream();
 PrintStream ps = new PrintStream(outputStream);
gli unici metodi che ammette sono :
   ps.write(int);
   ps.write(byte[],int,int);
non ne parla da nessuna parte di esadecimali ....
sicuramente sto sbagliando ......
ti chiedo scusa se ti ho scritto cretinate , ti chiedo solo un ò di
comprensione ....:->
ti ringrazio anticipatamente
saluti rob