Communication en série de JavaScript?

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

Je dois écrire un programme court qui envoie des données à un microcontrôleur sur le port série doté d'une interface graphique et est compatible avec toutes les plates-formes, et je ne veux vraiment pas utiliser Java Swing.

JavaScript lui-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 vérifier node.js, qui est une bibliothèque JavaScript pour v8 axée sur l'écriture du code côté serveur (plutôt que sur le code client du navigateur Web). Il semble que quelqu'un ait déjà écrit un paquet de série pour cela:

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

Il existe un plugin multiplate-forme pour la communication de port série appelé jUART .

Il s'agit d'une ancienne question, mais au cas où cela aiderait quelqu'un d'autre, les applications Chrome ont accès à une API série – http://developer.chrome.com/apps/serial.html – qui pourrait vous aider.

C'est précisément Chrome (évidemment …), mais Chrome est disponible en plate-forme croisée afin de répondre à la question.

Oui, il est possible d'utiliser un ActiveX (je l'ai fait). Vous pouvez créer un ActiveX et utiliser JavaScript pour l'appeler. Si vous préférez, vous pouvez créer une dll .net et l'enregistrer en utilisant le regasm. Jetez un oeil à ce lien

Vous pouvez également écrire un ActiveX en utilisant VB6 et l'enregistrer. Les deux fonctionnent bien. Ps .: si vous utilisez ActiveX, le code JavaScript fonctionnera uniquement sur IE.

Si vous disposez d'une bibliothèque DLL (ceci inclut, par exemple, la plupart des API Windows) qui vous permet de communiquer sur un port série, vous pouvez l'appeler à partir du code Chrome de Firefox (ou du code de contenu avec les privilèges universalxpconnect) en utilisant des codes .

Ce que vous pouvez faire, c'est utiliser une applet Java qui se connecte à l'application Java de l'ordinateur local qui lit le port série. L'applet transmettra 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 POJO.

Non.

Je recommanderais wx-widgets pour la tâche.