問題タブ [ruby-serialport]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
414 参照

ruby - ruby serialport フロー制御が機能しない

serialportこれまでのところ、私にとって良い仕事をしてきた宝石を使用しています。しかし今、flow_control が単に機能していないことに気付きました。最初は、USB rs232 アダプターの問題だと思っていましたが、そうではありませんでした。オンボードの rs232 インターフェイスで試してみましたが、やはり失敗しました。最新バージョンの debian と ruby​​ 1.9.3 を使用しています。

次のようにシリアルポートを初期化しています:

エラーなしで初期化されましたが、データを送信しようとすると、応答が得られず、ハンドシェイクが行われません。私はsthをやっていますか?ブログ?

// コマンドを送信すると、デバイスは次のように応答します。

データビット、ストップビット、ボーレートは問題ありませんが、答えは私にいくつかの設定を変更するように「要求」しているようです?!

0 投票する
1 に答える
1310 参照

ruby - シリアルポートへの接続中に許可が拒否されましたか?

Ruby と serialport gem を使用して 3G モデムに接続したいと考えています。

私のRubyコード:

スクリプトを開始すると、次のエラーが表示されます。

IDE は管理者の下で実行され、COM ポートは Putty から利用でき、正常に動作します。(スクリプトを実行する前に Putty を閉じます。)

0 投票する
1 に答える
762 参照

ruby - ruby-serialport は、シリアル モニターが開いている場合、または IRB が開いている場合にのみデータを送信します。

私は非常に奇妙な問題と思われるものに直面しています。問題を切り分けるために、スケッチと Ruby コードを非常に単純化しました。

Ruby のバージョンは 2.0.0、ruby-serialport のバージョンは 2.3.0 です。Mac OS X 10.9 (マーベリックス) を使用しています。

これが私のスケッチです。ご覧のとおり、シリアル データを受信すると、ピン 13 が 500 ミリ秒間点灯します。

serialtest.ino

これが私の Ruby コードです。

serialtest.rb

このコードは、単独で実行すると機能しません。例外や警告は表示されませんが、ピン 13 の LED は点灯しません (Arduino の RX ライトは短時間点滅しますが)。ただし、serialtest.rb次の条件下での実行は機能します。

  1. IRBを開いて実行SerialPort.new('/dev/tty.usbmodem411', 115200)し、IRBを開いたままにしておくと。ただし、IRB を閉じた瞬間に、実行してserialtest.rbもピン 13 が点灯しなくなります。

  2. Arduinoのシリアルモニターを開いてそのままにしておくと. 閉じるとすぐに、再び、実行中にライト 13 が点灯しなくなりますserialtest.rb

  3. 全体をIRBに入力すると。しかし、それは行ごとでなければなりません。コピーして貼り付けると、13番ピンが点灯しません(この場合、実行する必要はありませんserialtest.rb)。

とても奇妙です。この質問で問題は解決すると思いましたが、そうではありませんでした (ご覧sp.flushのとおり、ファイルの最後に配置しました。また、ファイルの最初とその間のすべての場所に配置しようとしました。また、接続を開いた直後に設定しようsp.sync = trueとしましたが、それも機能しません)。sp.syswriteバッファリングされていないはずの の呼び出しも行いません。動作する唯一のことは、別のプロセスでシリアル接続を開くことです。

serialport は実際にはファイル内から接続を確立できず、外部で接続する必要があるようです (SerialPort.new(...)コードを内部にコピーしてThread.newも機能しませんでした)。

どんな助けでも大歓迎です。

編集: この問題は、Ruby がシリアル接続を確立しようとするたびに Arduino がリセットされたことが原因のようです (一方、IRB とシリアル モニターは接続を開いたままにし、SerialPort.new呼び出しserialtest.rbが無視されるようにしました)。最終的に、私の解決策は、Arduino の RESET と GND の間に 10uF のコンデンサを配置することでした。

0 投票する
1 に答える
445 参照

ruby - ruby serialport を使ってシリアル回線で "ctrl+c" コマンドを送信する方法

serailport 経由でデバイスに「top」を送信し、top 情報を読み取ります。
その後、「top」を停止する方法がわかりません。