[Armadillo:08480] Re: シリアル通信のタイムアウトについて
nakayama junichi
email@hidden
2012年 12月 20日 (木) 17:19:59 JST
永池様
ONICOSの中山です。
> シリアル通信のタイムアウトについて
> 通常、非カノニカル読み込みのタイムアウト時間は1/10秒単位ですが、
> 1/100秒単位、1/1000秒単位にするにはどうすればよいでしょうか?
> ご教授願います。
read()ではタイムアウト時間を設定できないため、
read()する前に、select()を使用するのがいいのではないでしょうか?
以下のようなイメージです。
struct timeval tm_val;
fd_set read_fds;
int select_ret;
tm_val.tv_sec = 0;
tm_val.tv_usec= 1000;
FD_ZERO( &read_fds ) ;
FD_SET( fd, &read_fds ) ;
select_ret = select( fd+1, &read_fds, NULL, NULL, &tm_val);
if(select_ret > 0)
{
...(このあたりにread処理がくる)
timeval構造体にマイクロ秒でタイムアウト時間を設定可能です。
実際にマイクロ秒レベルの精度があるとも思えませんが、
ミリ秒レベルの精度はあると思います。
-----------------------------------
中山 純一(Nakayama Junichi)
オニコス株式会社
TEL:03-5850-4345
FAX:03-3801-3051
e-mail:email@hidden
-----------------------------------
--------------------------------------------------
From: "理研CE 永池" <email@hidden>
Sent: Thursday, December 20, 2012 5:01 PM
To: <email@hidden>
Subject: [Armadillo:08479]シリアル通信のタイムアウトについて
> シリアル通信のタイムアウトについて
>
> 通常、非カノニカル読み込みのタイムアウト時間は1/10秒単位ですが、
> 1/100秒単位、1/1000秒単位にするにはどうすればよいでしょうか?
> ご教授願います。
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
armadillo メーリングリストの案内