web-dev-qa-db-fra.com

Communication série de JavaScript?

Est-il possible de communiquer sur le port série d'une machine via JavaScript?

Je dois écrire un bref programme qui envoie des données à un microcontrôleur via le port série qui a une interface graphique et une plate-forme inter-plate-forme compatible, et je ne veux vraiment pas utiliser la balançoire de Java.

15
Nick Heiner

JavaScript elle-même n'a pas de fonctionnalité intégrée pour vous permettre d'accéder au port série. Cependant, divers moteurs JavaScript (V8, Rhino, etc.) vous permettent d'écrire vos propres objets natifs personnalisés.

Vous voudrez peut-être consulter Node.js, qui est une bibliothèque JavaScript pour V8 qui est axée sur la rédaction de code côté serveur (plutôt que le code client du navigateur Web). Il semble que quelqu'un a déjà écrit un paquet Serialport pour cela:

https://github.com/vooooTikigod/node-Serialport

22
Jason LeBrun

Ceci est une ancienne question, mais si cela aide toute autre personne, Chrome applications ont accès à une API série - http://developer.chrome.com/apps/serial.html = - ce qui pourrait aider.

C'est Chrome spécifique (évidemment ..), mais Chrome est disponible une plate-forme multi-plate-forme afin de répondre à la question.

2
Mark

Il y a un plug-in cross plate-forme pour la communication de ports série appelée Juart .

2
Bill

Oui, Il est possible d'utiliser un ActiveX (je l'ai fait). Vous pouvez faire un ActiveX et utiliser JavaScript pour l'invoquer. Si vous préférez, vous pouvez créer une DLL .NET et l'enregistrer à l'aide de Regasm. Jetez un coup d'œil à cela link

Vous pouvez également écrire un ActiveX à l'aide de VB6 et l'enregistrer. Les deux fonctionne bien. PS.: Si vous utilisez ActiveX, le code JavaScript fonctionnera juste sur IE.

0
Vismari

Ce que vous pouvez faire est d'utiliser A Java Applet qui se connecte à l'ordinateur local Java Application lit le port série. L'applet transférerait ensuite les données à Une classe JavaScript ou quelque chose qui peut contenir les informations. Ensuite, un code JavaScript supplémentaire peut être utilisé pour accéder aux données. C'est une solution compliquée mais devrait fonctionner.

Une autre façon est de créer un service de pojo.

0
Jubert

Si vous avez un DLL Library (ceci inclut par exemple la plupart des API Windows) qui vous permet de communiquer via le port en série, vous pouvez l'invoquer à partir de Firefox chrome (ou Code de contenu avec les privilèges universelsLXPConnect) à l'aide de CTYPES .

0
CAFxX