Последовательное чтение Java Arduino

#java #serial-port #arduino #midi

#java #последовательный порт #arduino #midi

Вопрос:

Я создаю интерфейс Serial to MIDI на Java, при этом последовательные данные поступают с Arduino и обрабатываются через библиотеку RXTX. К сожалению, используя предложенный код с ссылки на веб-сайт Arduino, я не могу получить последовательные данные. В коде примера используются Serial.println на стороне Arduino и BufferedReader.readLine() на стороне Java. В моем коде я пишу не строку через Serial.println, а MIDI-сообщение.

Arduino:

 void MIDI_TX(unsigned char MESSAGE, unsigned char PITCH, unsigned char VELOCITY) 
{
  status = MESSAGE   midichannel;
  Serial.write(status);
  Serial.write(PITCH);
  Serial.write(VELOCITY);
}
  

Я попытался прочитать последовательные данные в буфере символов:

Java

 char buf[] = new char[3];
reader.read(buf);
int channel = (int)buf[0] ;
int key = (int)buf[1] ;
int vel = (int)buf[2] ;
  

но я получаю странные данные…

Ответ №1:

РЕШЕНО: Это была просто ошибка в port.setSerialPortParams , я записывал со скоростью 115200, но читал со скоростью 9600.

Комментарии:

1. Можете ли вы пометить этот ответ как принятый, чтобы он не отображался в списке вопросов без ответов? Спасибо.

2. NP, спасибо, что сделали Stack Overflow лучшим местом!