Серийное общение из JavaScript? - PullRequest
12 голосов
/ 13 апреля 2011

Возможно ли обмениваться данными через последовательный порт машины через JavaScript?

Мне нужно написать короткую программу, которая отправляет данные в микроконтроллер через последовательный порт с графическим интерфейсом и кросс-платформенной совместимостью, и я действительно не хочу использовать Java Swing.

Ответы [ 7 ]

22 голосов
/ 13 апреля 2011

Сам JavaScript не имеет встроенной функциональности, позволяющей вам получить доступ к последовательному порту. Однако различные механизмы JavaScript (v8, rhino и т. Д.) Позволяют вам писать свои собственные собственные нативные объекты.

Возможно, вы захотите проверить файл node.js, который представляет собой библиотеку JavaScript для версии 8 и ориентирован на написание кода на стороне сервера (а не кода клиента веб-браузера). Похоже, что кто-то уже написал пакет с последовательным портом для этого:

https://github.com/voodootikigod/node-serialport

2 голосов
/ 22 марта 2014

Существует кроссплатформенный плагин для связи через последовательный порт, который называется jUART .

2 голосов
/ 11 ноября 2013

Это старый вопрос, но в случае, если это поможет кому-то еще, у приложений Chrome есть доступ к последовательному API - http://developer.chrome.com/apps/serial.html - который может помочь.

Это специфично для Chrome (очевидно ..), но Chrome доступен кроссплатформенный, поэтому может ответить на вопрос.

0 голосов
/ 01 июня 2012

Что вы можете сделать, это использовать Java-апплет, который подключается к Java-приложению локального компьютера, которое читает последовательный порт. Затем апплет передает данные в класс JavaScript или что-то, что может содержать информацию. Затем для доступа к данным можно использовать дополнительный код JavaScript. Это сложное решение, но оно должно работать.

Другой способ - создать сервис POJO.

0 голосов
/ 13 апреля 2011

Если у вас есть библиотека DLL (к которой относится, например, большинство API-интерфейсов Windows), которая позволяет вам общаться через последовательный порт, вы можете вызвать ее из кода Chrome Firefox (или кода содержимого с привилегиями universalxpconnect), используя ctypes .

0 голосов
/ 13 апреля 2011

Да, возможно использование ActiveX (я так и сделал).Вы можете создать ActiveX и использовать JavaScript для его вызова.Если вы предпочитаете, вы можете создать .net dll и зарегистрировать его с помощью regasm.Взгляните на эту ссылку

. Вы также можете написать activeX с помощью VB6 и зарегистрировать его.Оба отлично работают.PS: если вы используете ActiveX, код JavaScript будет работать только в IE.

0 голосов
/ 13 апреля 2011

номер

Я бы порекомендовал wx-виджеты для этой задачи.

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