web-dev-qa-db-ja.com

JavaScriptからのシリアル通信?

JavaScriptを介してマシンのシリアルポートを介して通信することは可能ですか?

GUIを備え、クロスプラットフォーム互換のシリアルポートを介してマイクロコントローラーにデータを送信する短いプログラムを作成する必要があり、JavaのSwingを使用したくありません。

15
Nick Heiner

JavaScript自体には、シリアルポートへのアクセスを可能にする機能が組み込まれていません。ただし、さまざまなJavaScriptエンジン(v8、rhinoなど)を使用すると、独自のカスタムネイティブオブジェクトを作成できます。

Node.jsをチェックしてください。これは、(Webブラウザークライアントコードではなく)サーバー側コードの記述に焦点を当てたv8のJavaScriptライブラリです。誰かがすでにそのためのシリアルポートパッケージを書いているようです:

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

22
Jason LeBrun

これは古い質問ですが、他の人に役立つ場合は、ChromeアプリはシリアルAPIにアクセスできます http://developer.chrome.com/apps/serial。 html -役立つかもしれません。

Chrome特定(明らかに..))ですが、Chromeはクロスプラットフォームで使用できるため、質問に答える可能性があります。

2
Mark

jUART と呼ばれるシリアルポート通信用のクロスプラットフォームプラグインがあります。

2
Bill

はい、ActiveXを使用して可能です(私がやりました)。 activeXを作成し、JavaScriptを使用してそれを呼び出すことができます。必要に応じて、.net dllを作成し、regasmを使用して登録できます。これを見てください link

VB6を使用してactiveXを作成し、登録することもできます。どちらも正常に動作します。 Ps .: ActiveXを使用している場合、JavaScriptコードはIEでのみ実行されます。

0
Vismari

できることは、シリアルポートを読み取るローカルコンピュータのJavaアプリケーションに接続するJavaアプレットを使用することです。次に、アプレットはデータをJavaScriptクラスまたは情報を保持できる何かに転送します。次に、追加のJavaScriptコードを使用してデータにアクセスできます。これは複雑なソリューションですが、機能するはずです。

もう1つの方法は、POJOサービスを作成することです。

0
Jubert

シリアルポートを介して通信できるDLLライブラリ(たとえば、ほとんどのWindows APIを含む)がある場合、Firefoxから呼び出すことができますchromeコード(または ctypes を使用して、universalxpconnect特権を持つコンテンツコード)。

0
CAFxX