2009-02-02 9 views
1

Salut, je suis begginer dans java, dans mon projet datalogger est connecté au port COM, je dois envoyer 15 valeur entière au port, puis l'autre appareil va renvoyer 15 en réponse, maintenant j'écris à fluxSortie mais je ne reçois pas response.how pour résoudre ce problème plz me aider. (j'utilise package javax.com)communication série twoway communication java

merci pour la réponse

Répondre

3

vous devez obtenir un InputStream aussi bien, vous ne peut pas lire à partir du OutputStream. Ou est-ce que je manque quelque chose? En outre, n'oubliez pas de faire OutputStream.flush() après avoir écrit votre sortie, sinon vos données pourraient être tamponnées pour être envoyées plus tard - si le répondeur attend vos données, c'est probablement là où les choses vont mal. Cela dit, le paquetage javax.comm est vraiment vieux. La dernière fois que j'ai travaillé avec, il semblait presque déconseillé par Sun, ou du moins pas maintenu d'aucune façon. Vous pourriez vouloir regarder d'autres solutions (SerialIO vient à l'esprit).

0

Essayez exemple de code

public static void init(String port) { 
portList = CommPortIdentifier.getPortIdentifiers(); 
while (portList.hasMoreElements()) { 
portId = (CommPortIdentifier) portList.nextElement(); 
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL){ 
System.out.println(portId.getName()); 
    if (portId.getName().equals(port)) { 



try {sPort = (SerialPort) portId.open("PORT_NAME", 2000); 
      reader = new sms(); 
      break; 
      } 
     catch (Exception e) { System.out.println(e);continue;} 
    } 
} 

}

et init appel() méthode avec le nom du port com (comme COM15, COM11, COM12 etc ..) vérifier votre port de communication périphérique auquel c'est connecté.