Envoyer une chaîne de Java à Arduino (exemple simple)

Il est résolu. J'ai mis un Thread.sleep(4000); après l'ouverture du port dans le code java et maintenant ça fonctionne. Le problème est que l'arduino est réinitialisé à chaque fois que le port est ouvert. Quand j'étais de l'envoi des données, l'arduino n'était pas prêt à écouter.

Je suis nouveau sur arduino et Java, mais j'ai fait un programme si simple que je ne comprends pas pourquoi on n'a pas de travail.

- Je envoyer une Chaîne de caractères sur le port série correspondant à arduino (COM5):

import java.io.*;
import java.util.*;
import gnu.io.*;

public class SimpleWrite {
static Enumeration portList;
static CommPortIdentifier portId;
static String messageString = "color FF00FFEND";
static SerialPort serialPort;
static OutputStream outputStream;

public static void main(String[] args) {
    portList = CommPortIdentifier.getPortIdentifiers();


    while (portList.hasMoreElements()) {

        portId = (CommPortIdentifier) portList.nextElement();
        if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {

             if (portId.getName().equals("COM5")) {

                try {
                    serialPort = (SerialPort)
                        portId.open("SimpleWriteApp", 2000);
                } catch (PortInUseException e) {System.out.println("err");}
                try {
                    outputStream = serialPort.getOutputStream();
                } catch (IOException e) {System.out.println("err1");}
                try {
                    serialPort.setSerialPortParams(9600,
                        SerialPort.DATABITS_8,
                        SerialPort.STOPBITS_1,
                        SerialPort.PARITY_NONE);
                } catch (UnsupportedCommOperationException e) {System.out.println("err2");}
                try {
                    outputStream.write(messageString.getBytes());
        System.out.println(messageString);

        outputStream.close();
        serialPort.close();

                } catch (IOException e) {System.out.println("err3");}
            }
        }
    }
}
}

et le code dans l'arduino pour obtenir cette chaîne:

char inputBuffer[10];   

void setup() {                
  Serial.begin(9600);  
}

void loop() {
    while (true) 
    {
      if (Serial.available() > 0) {
          Serial.readBytes(inputBuffer, Serial.available());
          delay(5000);
          Serial.print("I got this ->");
          Serial.print(inputBuffer);
          Serial.println("<-");
      }
    }
}

le while(true) est utilisé pour les tests. Je n'obtiens rien imprimé, et je ne sais pas où est le problème. J'ai vu tous les post sur arduino et java ici et je ne trouve rien qui permet de.
Merci pour l'aide et désolé si c'est une question stupide, je suis un débutant à ce

Im en utilisant RXTXcomm.jar. Version: RXTX-2.2-20081207

source d'informationauteur takluiper