linux串口超时时间设置
2017-02-08 17:30
211 查看
comport[port].opt.c_cc[VTIME] = 0;
comport[port].opt.c_cc[VMIN] = 0;
那么可能需要关注的是VMIN和VTIME这两个选项。
VMIN 最少读取字符数
VTIME 超时时间 (100ms最小单位)
这两个参数只有当设置为阻塞模式时才有效,有以下几种可能值:
1 VMIN> 0 && VTIME> 0
VMIN为最少读取的字符数,当读取到一个字符后,会启动一个定时器,在定时器超时事前,如果已经读取到了VMIN个字符,则read返回VMIN个字符。如果在接收到VMIN个字符之前,定时器已经超时,则read返回已读取到的字符,注意这个定时器会在每次读取到一个字符后重新启用,即重新开始计时,而且是读取到第一个字节后才启用,也就是说超时的情况下,至少读取到一个字节数据。
2 VMIN > 0 && VTIME== 0
在只有读取到VMIN个字符时,read才返回,可能造成read被永久阻塞。
3 VMIN == 0 && VTIME> 0
和第一种情况稍有不同,在接收到一个字节时或者定时器超时时,read返回。如果是超时这种情况,read返回值是0。
4 VMIN == 0 && VTIME== 0
这种情况下read总是立即就返回,即不会被阻塞。
comport[port].opt.c_cc[VMIN] = 0;
那么可能需要关注的是VMIN和VTIME这两个选项。
VMIN 最少读取字符数
VTIME 超时时间 (100ms最小单位)
这两个参数只有当设置为阻塞模式时才有效,有以下几种可能值:
1 VMIN> 0 && VTIME> 0
VMIN为最少读取的字符数,当读取到一个字符后,会启动一个定时器,在定时器超时事前,如果已经读取到了VMIN个字符,则read返回VMIN个字符。如果在接收到VMIN个字符之前,定时器已经超时,则read返回已读取到的字符,注意这个定时器会在每次读取到一个字符后重新启用,即重新开始计时,而且是读取到第一个字节后才启用,也就是说超时的情况下,至少读取到一个字节数据。
2 VMIN > 0 && VTIME== 0
在只有读取到VMIN个字符时,read才返回,可能造成read被永久阻塞。
3 VMIN == 0 && VTIME> 0
和第一种情况稍有不同,在接收到一个字节时或者定时器超时时,read返回。如果是超时这种情况,read返回值是0。
4 VMIN == 0 && VTIME== 0
这种情况下read总是立即就返回,即不会被阻塞。
相关文章推荐
- linux串口超时时间设置
- windows&linux设置系统自动退出时间(无操作超时设置)
- 设置linux中tcp默认的20秒connect超时时间
- Linux串口中的超时设置
- Linux下CURL设置请求超时时间
- 设置linux中tcp默认的20秒connect超时时间(转)
- Linux操作系统下的时间设置方法介绍
- linux 设置串口[zt]
- JSP J2EE WebLogic设置session超时时间(转)
- Linux下面的时间设置
- 给XMLHttpRequest设置超时时间
- 为ServerXMLHTTP对象的HTTP请求设置超时时间
- 为ServerXMLHTTP对象的HTTP请求设置超时时间
- weblogic设置session超时时间
- linux下面的时间设置
- 如何设置socket的Connect超时(linux)
- 为ServerXMLHTTP对象的HTTP请求设置超时时间
- 如何设置socket的Connect超时(linux)?
- WebLogic如何设置session超时时间
- 设置session超时时间的两种方法