2016-09-22 2 views
2

J'essaie d'envoyer des données sur le port série d'un périphérique que j'ai et de connecter le périphérique série à mon PC. Dans mon PC, j'essaie de recevoir les données via une application de terminal. L'appareil utilise J2ME, le code que j'utilise pour me connecter au port COM est indiqué ci-dessous.Envoi de données par port série

public boolean connect() { 
    if (bConnected) { 
     return true; 
    } else { 
     try { 
      StringBuffer strCom = new StringBuffer(80); 
      strCom.append("comm:" + strCOMPort 
        + ";blocking=on;autocts=off;autorts=off;stopbits="); 
      //autocts=on;autorts=on; 
      strCom.append(stopbits); 
      strCom.append(";bitsperchar="); 
      strCom.append(bitsperchar); 
      //strCom.append(";parity="); 
      //strCom.append(parity); 
      strCom.append(";baudrate="); 
      strCom.append(baudrate); 

      commConn = (CommConnection) Connector.open(strCom.toString()); 
      writeStatusToFile(
        "CommConnection(" + strCom.toString() 
          + ") with device opened."); 
      strCom = null; 
      inStream = commConn.openDataInputStream(); 
      outStream = commConn.openOutputStream(); 
      inStream.skip(inStream.available()); 
      bConnected = true; 
      return true; 
     } catch (Exception IOe) { 
      writeStatusToFile(
          "Opening COM0 IOException :" + IOe.getMessage()); 
      return false; 
     } 
    } 
} 

Le code que j'utilise pour écrire des données dans le port série est indiqué ci-dessous.

public void sendData(short[] message){ 
    String bytedata = ""; 
    try 
    { 
     System.out.println("Length of message array: " + message.length); 
     for(int i = 0; i<message.length; i++){ 
      System.out.println("Data: " +message[i]); 
      bytedata += message[i]; 
      outStream.write(message[i]); 
      System.out.println("Done"); 
     } 
    //outStream.write(message); 
    outStream.flush(); 
    } 
    catch(Exception ex) 
    { 
     System.out.println("Exception during sending bytes--->" + ex.toString()); 
     ex.printStackTrace(); 
    } 
      System.out.println(
      "Data flushed to output stream: " + bytedata); 
} 

Les paramètres COM pour le dispositif est COM0, la vitesse de transmission est de 4800, la parité est zéro, les bits par caractère et 8 bits d'arrêt est égal à 1 (ces valeurs sont initialisées globaly). Je définis la même chose dans l'application de terminal que je reçois les données du port COM.

Le problème auquel je fais face est que je ne reçois rien sur mon PC lorsque je me connecte au port série. Je veux savoir si j'ai fait des erreurs dans la logique du code. Toutes les suggestions qui m'aideront à analyser le problème sont les bienvenues. S'il vous plaît dites-le si d'autres informations sont nécessaires.

Répondre

0

Ce problème était lié au fait que le port série auquel mon application essayait d'accéder était de type RS232 et ce type de port série permet uniquement au thread d'accéder au port et là je ne pouvais pas voir les journaux ainsi que sur l'affichage. S'il vous plaît noter que ce n'est pas une solution, c'est une raison