[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 メーリングリストの案内