お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2014-05-13 00:26:18

T.O
メンバ
登録日: 2008-06-09

シリアル通信(RS-232C)時のRTS信号制御について

こんばんわ
いつもお世話になります。

さて
今232⇔485変換を作成する必要にかられ
いろいろ調べると232側のRTS信号を使えば
出来ることまでわかりました。

ただ
Ubuntuの通信ソフト(アプリ)にRTS信号をコントロール出来るものがないようで
(正確には「見つけることが」出来ていない)
だったら自分でプログラミング、といきたいところですが
シリアル通信のプログラミングは意外と資料が見つからず
行き詰まっております。

そこで:

・既存のソフト(アプリ)でRTS信号をコントロール出来るモノがあれば紹介下さい
・プログラミングでRTS信号を制御出来るのであればアドバイスが欲しいです

※今どきのUbuntuはソースコードを(/usr/src/〜以下)に置かなくなったのでしょうか?

以上、よろしくお願い致しますm(__)m

オフライン

 

#2 2014-05-13 21:05:09

taka.zoo.n
メンバ
登録日: 2013-05-30

Re: シリアル通信(RS-232C)時のRTS信号制御について

私には ubuntu で modem control のプログラミングの経験はありませんし、他の unix 系 OS でもここ 10 年やっていませんので、間違っているかもしれませんが:

flow control を CTS/RTS を使って行わせるというのであれば termios の c_cflag に CRTSCTS を立てます。詳しくは man termios の CRTSCTS を参照してください。

そうではなく RTS を直接制御したいのであれば ioctl のTIOCMGET, TIOCMSET で TIOCM_RTS を取得・設定します。詳しくは man tty_ioctl の Modem control の項を参照してください。Example の項目に DTR を取得するサンプルプログラムがありますので合わせて参照してください。(このサンプルプログラムは ioctl の戻り値をチェックしていませんが、実際に使うときはエラー処理は欠かせません。)

オフライン

 

Board footer

Powered by FluxBB