問題タブ [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.
ruby - ruby serialport フロー制御が機能しない
serialport
これまでのところ、私にとって良い仕事をしてきた宝石を使用しています。しかし今、flow_control が単に機能していないことに気付きました。最初は、USB rs232 アダプターの問題だと思っていましたが、そうではありませんでした。オンボードの rs232 インターフェイスで試してみましたが、やはり失敗しました。最新バージョンの debian と ruby 1.9.3 を使用しています。
次のようにシリアルポートを初期化しています:
エラーなしで初期化されましたが、データを送信しようとすると、応答が得られず、ハンドシェイクが行われません。私はsthをやっていますか?ブログ?
// コマンドを送信すると、デバイスは次のように応答します。
データビット、ストップビット、ボーレートは問題ありませんが、答えは私にいくつかの設定を変更するように「要求」しているようです?!
ruby - シリアルポートへの接続中に許可が拒否されましたか?
Ruby と serialport gem を使用して 3G モデムに接続したいと考えています。
私のRubyコード:
スクリプトを開始すると、次のエラーが表示されます。
IDE は管理者の下で実行され、COM ポートは Putty から利用でき、正常に動作します。(スクリプトを実行する前に Putty を閉じます。)
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
次の条件下での実行は機能します。
IRBを開いて実行
SerialPort.new('/dev/tty.usbmodem411', 115200)
し、IRBを開いたままにしておくと。ただし、IRB を閉じた瞬間に、実行してserialtest.rb
もピン 13 が点灯しなくなります。Arduinoのシリアルモニターを開いてそのままにしておくと. 閉じるとすぐに、再び、実行中にライト 13 が点灯しなくなります
serialtest.rb
。全体を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 のコンデンサを配置することでした。
ruby - ruby serialport を使ってシリアル回線で "ctrl+c" コマンドを送信する方法
serailport 経由でデバイスに「top」を送信し、top 情報を読み取ります。
その後、「top」を停止する方法がわかりません。