Newsgroup: it.comp.java
Titolo: Java pratica: utilizzo delle Communication API 2.0 in ambiente Windows

Premessa
----------
La questione esposta di seguito è relativa all'utilizzo delle Java
Communication API reperibili
al seguente URL:
http://java.sun.com/products/javacomm/
esistono diverse versioni, visto che io lavoro in ambiente Windows ho
scaricato quelle
relative alla voce:
Versione 2.0 for Windows
le FAQ si trovano al seguente URL:
http://java.sun.com/products/javacomm/CommAPI_FAQ.txt
ovviamente già completamente lette.
Descrizione del problema
--------------------------
Per il pilotaggio della seriale SUN mette a disposizione le Communication
API, liberamente scaricabili
all'indirizzo sopra riportato.
Io utilizzo JDK 1.4.1_02, ho installato queste API, seguendo il procedimento
illustrato dalla SUN, ma sotto Win2000 Professional nisba, la risposta è che
non viene trovata nessuna porta. Ho quindi due sospetti:
1) Win2000 richiede di lavorare a livello di Kernel per ciò che concerne il
pilotaggio delle perferiche
HW e non penso che le API lo permettano
2) sul sito della SUN non è scritto nulla in merito alla versione di JDK
supportata a parte la 1.2 (mi sembra), non potrebbero esserci dei problemi
con la release 1.4.1_02 oppure, come spero, viene
mantenuta la compatibilità all'indietro e quindi le API sono ancora valide?
La FAQ non accenna ad eventuali compatibilità verso JDK successivi, forse
per il fatto che è mantenuta questa compatibilità.
3) Se 1 e vero ed anche 2 allora (almeno in teoria) dovrebbero lavorare
correttamente almeno sotto Win98/Me.
Qualcuno ha notizie in proposito? Qualcuno ha già utilizzato queste classi
con il JDK 1.4.1_02? Ci sono stati problemi di sorta?
Non ho ancora provato sotto WinME, il SO che utilizzo attualmente, quindi mi
farebbe piacere poter avere qualche parere da chi le ha già usate, anche se
sotto Win98 va bene ugualmente i due SO sono "abbastanza" simili.
Spero che qualcuno mi possa aiutare ...
Ciao a tutti
Pow
--
----------------------------------------------------
Ama il tuo mestiere con passione
E' il significato della tua vita
Auguste Rodin (1840-1917)
 "Not everything that  counts can be
 counted, and not everything that can
be counted counts".
Albert Einstein
"Hunt for the Engineer and the Engineer will hunt you."
Hellraiser5 Pinhead

Per adesso mi rispondo da solo ... SIGH!
Ho installato le API sotto WinME seguendo la procedura descritta da SUN.
Compila tutto correttamente.
All'esecuzione il triste messaggio ... non trova nessuna porta COM.
Ciao


 
Ho installato proprio oggi javacomm su windows 2000 e non ho avuto 
nessun problema (piů o meno..)
Il problema iniziale č stato quello che hai descritto ossia nessuna 
porta seriale rilevata.
Il problema era che avevo messo "comm.jar" in una cartella e il 
"javax.comm.properties" nella directory lib dell'sdk di java e 
ovviamente non funzionava.
E' bastato spostare il fila "javax.comm..." nella directory dove ho 
messo il "comm.jar" che tutto si č messo a funzionare.
Forse puň anche contare il fatto che ho sparso il file "win32com.dll" 
sia in WINNT che in WINNT/system32 che nella bin del JDK.
Il jdk che uso č l'1.4.0_02
Spero di esserti stato utile.
Ciao
Gio

 sia in WINNT che in WINNT/system32 che nella bin del JDK.
quando hai copiato le varie DLL in giro per le cartelle di Windows, poi hai
riavviato il PC oppure il sistema ha funzionato senza riavvio?
Mi puoi scrivere il percorso completo dove hai messo la DLL?
Il mio è:
c:\j2sdk1.4.1_02\bin\win32com.dll
Infine se mi puoi mandare il programma di prova che hai utilizzato posso
fare gli stessi test che hai fatto tu, in questo modo dovremmo trovarci
nelle stesse condizioni.
Grazie


Ho anche seguito la procedura illustrata in questo sito:
http://web.haystack.mit.edu/SRT/win95dl.html
ma ottengo sempre lo stesso messaggio: nessuna porta trovata.
Porc....
Ciao


> ma ottengo sempre lo stesso messaggio: nessuna porta trovata.
Senti, prova a seguire la procedura che ho inserito come FAQ in jGuru
(
http://www.jguru.com/faq/view.jsp?EID=1048895
). Seguendo quelle
indicazioni, tramite la mia web application su Tomcat, riesco a parlare e
comunicare perfettamente con un modem gsm per la gestione degli sms...
    Regards
        Kazuma
--
I've got nothing against God. It's his fan club I can't stand.
Alex "Kazuma" Garbagnati, 
http://www.kazuma.net
EJB & Tomcat jGuru FAQ Manager, 
http://www.jGuru.com
Tutor "Progetto Scuole", 
http://www.JIA.it
Java Italian Association - SUN - MIUR


copy file comm.jar in <JAVA_HOME>\jre\lib\ext
copy file javax.comm.properties in <JAVA_HOME>\jre\lib\
copy file win32comm.dll in <JAVA_HOME>\lib
in cui per me <JAVA_HOME>=C:\j2sdk1.4.1_02
Fatto, ottengo sempre lo stesso desolante messaggio: nessuna porta trovata!
Tu che JDK utilizzi?
Ho come il sospetto che JDK 1.4.1_02 abbia qualche baco.
Le stesse procedure fatte su WinME e Win2000Pro danno gli stessi risultati,
nessuna porta
trovata eppure le porte ci sono eccome!
Ho letto decine di post su Internet, sono andato su forum in germania
(de.comp.lang.java) e sul forum della SUN, tutti hanno procedure simili, ma
nessuna sembra avere successo.
Non so più cosa fare, forse dovrei disinstallare JDK 1.4.1_02 ed installare
1.4.1_03, cosa pensi?
Grazie ancora


copy file win32comm.dll in <JAVA_HOME>\lib
Quell'applicazione gira sotto JDK1.3.1...
Sono andato a guardare sul sito da cui avevo preso la prima versione
delle librerie SMS che uso, dove avevo letto di incompatibilità tra le
versioni precedente alla 1.4.1 e le Java Comm API.
Pare che i problemi siano risolti, ma nel sito non esiste una
procedura di inatsllazione step-by-step... si dice solo che è
"tricky".
Siccome dovrò fare a breve il porting del mio lavoro su una macchina
con 1.4, mi sa che dovrò mettermi a capire anche io come fare... Se
scopro qualcosa ve lo farò sapere...
	Regards,
		Kazuma
---



[CUT]
Vedi il mio post successivo del 14/06/03 in cui descrivo come fare, in ogni
caso ti riporto la procedura:
il file win32com.dll va copiato in:
C:\Programmi\Java\j2re1.4.1_02\bin
C:\j2sdk1.4.1_02\jre\bin
il file javax.comm.properties va copiato in:
C:\Programmi\java\j2re1.4.1_02\lib
C:\j2sdk1.4.1_02\jre\lib
il file comm.jar va copiato in:
C:\j2sdk1.4.1_02\jre\lib\ext
3) A questo punto aprite con il notepad il file autoexec.bat e scrivete:
SET PATH=%PATH%;c:\j2sdk1.4.1_02\bin
SET CLASSPATH=.;C:\j2sdk1.4.1_02\jre\lib\ext\comm.jar
Ciao


Allora....
Ho installato l'ultima versione J2SE (1.4.1_03).
(questo l'ho fatto sia per aggiornare il sistema, e poi perchè se
funge puoi dare la colpa al 1.4.1_02... hehehe).
Ho copiato:
	comm.jar --> %JAVA_HOME%\jre\lib\
	javax.comm.properties --> %JAVA_HOME%\jre\lib\
	win32com.dll --> %JAVA_HOME%\jre\bin\
Poi ho scritto qualche righetta di codice di test:
--- code starts here ---
import java.io.*;
import java.util.*;
import javax.comm.*;
public class Test {
	public static void main(String[] args) {
		for (Enumeration portList =
CommPortIdentifier.getPortIdentifiers(); portList.hasMoreElements(); )
{
			CommPortIdentifier portId =
(CommPortIdentifier)portList.nextElement();
			System.out.println("PORTA " +
portId.getName());
		}
	}
}
--- code ends here ---
Ed il risultato è stato
	PORTA COM3
	PORTA LPT1
	PORTA LPT2
... prova e fammi sapere...
	regards,
		Kazuma
---



Mah ... 1.4.1_02 funziona, se hai letto la procedura che ti ho riportato
sono riuscito finalmente
ad attivare BlackBox, le porte le trova e tutto funziona a dovere.
Solo un'informazione, al percorso C:\Programmi\Java\j2re1.4.1_02\bin etc...
hai messo qualche file?
perchč č proprio questo che ha risolto tutti i miei problemi.
Con la mia procedura anche un'altro intrepido ;-) ha installato le comm
sotto WinXP e jre 1.4.1_01.
Ho provato il tuo codice di test, beccati il mio output ;-))
PORTA COM1
PORTA COM2
PORTA COM3
PORTA COM4
PORTA LPT1
PORTA LPT2
quando si dice fare lo sborone ;-)))))
Ciao


quando si dice fare lo sborone ;-)))))
Il mio è un portatile... hehehe
La COM3 non è altro che una porta fittizia del mio "USB-2-Serial"...


newsgroup.
[CUT]
Ciao e grazie ancora per la collaborazione, a presto.
