小编Mad*_*ern的帖子

pyserial中的inter_byte_timeout(interCharTimeout)是什么?

以前interCharTimeout,从3.0版开始inter_byte_timeout.

API:http://pyserial.readthedocs.org/en/latest/pyserial_api.html#serial.Serial.inter_byte_timeout

我怀疑以下是常规timeoutinter_byte_timeout以下之间的区别:

  • timeout:调用read函数时开始倒计时.即使字节不断出现,当从调用读取函数开始经过指定的时间后,它将停止读取/抛出异常.
  • inter_byte_timeout:每次接收到一个字节时,开始倒计时.如果字符在字节之间连续流为fx 1ms,则如果inter_byte_timeout仅大于1ms,则它可以永远继续.

我这是对的吗?

我怀疑没有,因为我只是无法使功能超时.我试过下面的例子.我期待inter_byte_timeout能够读取并打印一个"字符串",因为它们是由arduino写的,每秒一个.相反,它每三秒超时一次,然后打印那段时间内的内容.

写入序列的Arduino草图:

void setup() {
  Serial.begin(9600);
  while(!Serial); //wait for connection
  for (int i=0;true;i++){
    Serial.printf("=== iteration %d ===\n", i);
    delay(1000); //ms
  }
}

void loop() {
}
Run Code Online (Sandbox Code Playgroud)

Python脚本:

import serial
ser=serial.Serial(port='/dev/ttyACM0', timeout=3,inter_byte_timeout=0.01)
for i in range(100):
    a = ser.read(10000)
    print i, len(a), repr(a)
Run Code Online (Sandbox Code Playgroud)

命令行输出:

~$ python test.py
0 60 '=== iteration 0 ===\n=== iteration 1 ===\n=== iteration 2 ===\n'
1 60 …
Run Code Online (Sandbox Code Playgroud)

python pyserial

5
推荐指数
1
解决办法
3490
查看次数

Python - 如何捕捉破损的管道

我刚刚了解了 SIGPIPE,然后阅读了如何在 Python 中处理这些。

在其他来源中,我读过:如何在 python 中处理损坏的管道 (SIGPIPE)?

假设管道读取脚本退出,那么所有答案都表明写入脚本将其写入调用包装在 try 子句中。

但是,我无法完成这项工作。这是我的代码:

# printer.py
import time
try:
    for i in range(10):
        time.sleep(1)
        print i
except:
    print 'We caught the problem'
Run Code Online (Sandbox Code Playgroud)

#nonreader.py
#read nothing, but stay alive for 5 sec
import time, sys
time.sleep(5)
sys.exit(0)
Run Code Online (Sandbox Code Playgroud)

在外壳中:

$ python printer.py | python nonreader.py 
close failed in file object destructor:
Error in sys.excepthook:

Original exception was:
Run Code Online (Sandbox Code Playgroud)

很明显,什么都没抓到。此外,当它打印“原始异常是:”时,它看起来真的错了,然后就没有了。

有什么问题/我误解了什么?

托马斯

python pipe sigpipe

4
推荐指数
1
解决办法
4271
查看次数

FLOT中的主要和次要刻度

一些图表/绘图库,例如Python的matplotlib,具有主要和次要刻度的概念(具有相应的主要和次要网格线).我一直在四处寻找,我认为这在FLOT中不存在.似乎只有一类蜱.

是不是可以制作类似下面的东西,如果是,那怎么样?

例如,如下图所示,每1.0的主要滴答,每0.2的次要滴答.

在此输入图像描述

javascript plot flot

4
推荐指数
1
解决办法
568
查看次数

扩展 UserCreationForm 时排除密码

我想创建一个视图,用户可以在其中更改其用户对象的属性:名字、姓氏和电子邮件地址。Django 有一个内置的 UserCreationForm 用于创建用户。我已经有一个扩展版本,其中还包括电子邮件、名字和姓氏。现在我试图扩展那个包括密码和用户名。

from django.contrib.auth.forms import UserCreationForm
class ExtendedUserCreationForm(UserCreationForm):
    class Meta:
        model = User
        fields = ('username', 'password1', 'password2', 
                  'email', "first_name", 'last_name' )

class UserEditForm(ExtendedUserCreationForm):
    class Meta:
        model = User
        exclude = ('username', 'password1', 'password2')
Run Code Online (Sandbox Code Playgroud)

我正在寻找的 UserEditForm 当然不能创建新实例,但它只能用于编辑现有实例:

form = UserEditForm(instance=request.user)
Run Code Online (Sandbox Code Playgroud)

但是,用户名字段和密码字段仍会显示。我怎样才能排除这些?

django

2
推荐指数
1
解决办法
2936
查看次数

两对方位角和高度之间的角度?

我有一个太阳能电池板指向(它是正常的矢量)在某个方向.我想计算它与太阳当前位置之间的角度.我正在使用pyephem,我有两对方位角和高度信息.

panel_az = ephem.degrees('180')
panel_alt = ephem.degrees('45')
sun_az = ephem.degrees('245')
sun_alt = ephem.degrees('22')
Run Code Online (Sandbox Code Playgroud)

找到面板法线向量和指向太阳的向量之间的角度最简单的方法是什么?

python astronomy pyephem

2
推荐指数
1
解决办法
1979
查看次数

标签 统计

python ×3

astronomy ×1

django ×1

flot ×1

javascript ×1

pipe ×1

plot ×1

pyephem ×1

pyserial ×1

sigpipe ×1