последовательный порт двухсторонней связи Java - PullRequest
1 голос
/ 02 февраля 2009

Привет, я новичок в Java, в моем проекте регистратор данных подключен к com-порту, я должен отправить 15 целочисленных значений в порт, тогда другое устройство отправит обратно 15 в качестве ответа, теперь я пишу в outputtream, но Пожалуйста, помогите мне. (Я использую пакет javax.com)

спасибо за ответ

Ответы [ 2 ]

3 голосов
/ 02 февраля 2009

Вы также должны получить InputStream, вы не можете читать из OutputStream. Или я что-то упустил?

Кроме того, не забудьте выполнить OutputStream.flush () после записи вывода, в противном случае ваши данные могут быть помещены в буфер для последующей отправки - если респондент ожидает ваших данных, это, скорее всего, происходит неправильно.

Сказав это: пакет javax.comm действительно старый. В прошлый раз, когда я работал с ним, он почти казался устаревшим для Sun или, по крайней мере, не поддерживался каким-либо образом. Возможно, вы захотите взглянуть на другие решения (на ум приходит SerialIO ).

0 голосов
/ 31 июля 2013

Попробуйте следующий пример кода

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;}
   }
}

}

и вызовите метод init () с именем com-порта (например, COM15, COM11, COM12 и т. Д.), Проверьте com-порт устройства, к которому он подключен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...