Ruby の serialport gem で Bluetooth SPP を使おうとすると Errno::EBUSY
Ruby の serialport gemで Bluetooth SPP を使おうとすると Errno::EBUSY がでてうまく通信できず、なんでだろう、となりました。接続先の Bluetooth モジュールは Microchip の RN42です。
結論からいうと sleep するしかなさそうです。
begin @port = SerialPort.new( "/dev/tty.RNBT-68BF-RNI-SPP", 115200, 8, 1, 0 ) rescue Errno::EBUSY sleep 1 retry end
今回のケース
- MCU と RN42 の TX/RX/GND を接続し、RN42 に 3.3V を供給 (接続はこれらのみ)
- この状態で Mac から RN42 をペアリングする。
- /dev/tty.RNBT-68BF-RNI-SPP みたいなファイルができる。
- Ruby のプログラムで serialport gem を使って通信する
したがって MCU と RN42 の間にはフローコントロールはありません。
関連エントリー
- ruby-serialport で任意のボーレートを設定するには (ただし Linux に限る) ruby serialport は、このあたりで設定できるボーレートを列挙していて、これら以外のボーレートを設定できないようです (unkn...
- 中華 NanoVNA の Bluetooth シリアル化を試す NanoVNA は USB-CDC による通信をサポートしていますが、ここが無線化すると(特にアンテナ調整の場合は)便利なので、コンセプトを...
- KX3 でシリアルポートから SWR を読み出す KX3 と PC だけで SWR グラフにできたら便利なのになー と思っていたけど、少し前に調べたところ SWR を直接読む方法がなく、諦め...
- Mac OS X でリグコントロール 基本 (YAESU FT-450D) いろいろ接続方法はあるけど、汎用・簡単なのは iBUFFALO USBシリアルケーブル (BSUSRC0610BS) とメスメス変換コネクタ...
- LPC1114 LPC1114FN28 / mbed 開発を platformio を使ってやる DIP で唯一実用になる(?) ARM Cortex-M0 マイコンです。SRAM が 4KB しかないのが心許ないですが、秋月で現在180...