Чтение Arduino с помощью последовательного монитора и Java одновременно

Я написал код на java для связи с моей платой Arduino. Это работает хорошо. Также я могу использовать последовательный монитор для связи с платой Arduino.

Но когда я пытаюсь открыть монитор последовательного порта во время работы java-программы (прослушивая порт, подключенный к вашей плате, PORT 32), он не сообщает:

Serial port 'COM 32' already in use. Try quitting any programs that may be using it.

Это полное сообщение (просто для полноты)

Binary sketch size: 3,994 bytes (of a 258,048 byte maximum)
processing.app.SerialException: Serial port 'COM32' already in use. Try quiting any programs that may be using it.
    at processing.app.Serial.<init>(Serial.java:171)
    at processing.app.Serial.<init>(Serial.java:92)
    at processing.app.SerialMonitor.openSerialPort(SerialMonitor.java:207)
    at processing.app.Editor.handleSerial(Editor.java:2447)
    at processing.app.EditorToolbar.mousePressed(EditorToolbar.java:353)
    at java.awt.Component.processMouseEvent(Component.java:6260)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6028)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4630)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4235)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2475)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Да, я знаю, это моя Java-программа, которая использует этот порт. Но означает ли это, что я не могу использовать обе программы одновременно для доступа к PORT32?

Надеюсь, кто-нибудь покажет мне способ обойти это. Любая помощь приветствуется. Спасибо!


person Sumudu    schedule 14.08.2012    source источник


Ответы (1)


Ваше наблюдение верно, последовательные порты могут быть открыты только одним приложением за раз. Существуют программные решения для разделения последовательных портов или их мониторинга, но у меня недостаточно опыта с ними, чтобы давать какие-либо рекомендации.

person WouterH    schedule 14.08.2012
comment
Вы сказали то, что я боялся принять. Но что, если это правда :(. Тогда я думаю, это больше не проблема Java или Arduino. Что ж ... Я скоро отвечу. (Возможно, у меня появятся другие идеи) - person Sumudu; 14.08.2012