小编use*_*953的帖子

如何使用Python在表单中选择选项?

我想知道如何在格式为的表单中选择选项

  <td align="left">
                  <select name="FORM1" id="FORM1" multiple="multiple" size="5">
                      <option value="Value1">Value1</option>
                      <option value="Value2">Value2</option>
                  </select>
  </td>
Run Code Online (Sandbox Code Playgroud)

现在,我正在使用mechanize连接到网站并遍历到所需的页面.此页面有多种形式,如FORM1,FORM2,FORM3等,带有选项.我想选择(启用)Value1然后告诉mechanize实例点击提交按钮.哪个是基于表单名称启用选项的快速方法?

python mechanize

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

如何在使用Cython distutils时删除doc字符串?

如果我手动调用cython,我可以删除文档字符串,例如:

cython -D mmod.py
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用设置实用程序时,我无法传递-D参数.

setup.py

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

ext_modules = [Extension("mmod", ["mmod.py"])]

setup(
  cmdclass = {'build_ext': build_ext},
  ext_modules = ext_modules
)
Run Code Online (Sandbox Code Playgroud)

与使用-D运行时相比,这会生成一个包含所有可用文档字符串的库.

python cython

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

pySerial inWaiting 返回错误的字节数

我有一个简单的程序来测试串行功能。我的串行设备对两个输入做出反应。如果用户输入“a”,它会以“fg”响应。如果用户输入任何其他字符/字节,它会以“z”响应。如果我将“b”发送到串行设备,它会返回“z”就好了。当我发送 'a' 时,它应该返回 'f' 和 'g',所以是两个字节而不是一个字节。

请参阅下面的代码。

#!/usr/bin/env python

import serial

ser = serial.Serial(
    port = '/dev/ttyUSB0',
    baudrate = 9600,
    parity = serial.PARITY_NONE,
    stopbits = serial.STOPBITS_ONE,
    bytesize = serial.EIGHTBITS
    )

ser.write('a')
byteData = ser.read(1) # read one, blocking
moreBytes = ser.inWaiting()

if moreBytes:
    byteData = byteData + ser.read(moreBytes)
    print byteData

print byteData


ser.close()
Run Code Online (Sandbox Code Playgroud)

输出是:

user@ubuntu:~/code/native$ ./serialTesting.py 
f
Run Code Online (Sandbox Code Playgroud)

inWaiting() 的值为 0,因此它永远不会读取第二个字节。如果我对代码做一个小的改动,并手动读取两个预期的字节,它就可以正常工作。

#!/usr/bin/env python

import serial

ser = serial.Serial(
    port = '/dev/ttyUSB0',
    baudrate = 9600,
    parity = serial.PARITY_NONE,
    stopbits = serial.STOPBITS_ONE,
    bytesize …
Run Code Online (Sandbox Code Playgroud)

python pyserial

3
推荐指数
2
解决办法
4万
查看次数

当我增加UART波特率时,字节之间的延迟为什么会增加?

需要注意的一些有趣的事情,我尚未完全理解。我的UART初始化为9600波特。我已经通过逻辑分析仪查看了线路上的TX,并且我发送的字节具有最小的延迟。预期为每字节36µs。

现在,如果我使用不同的波特率(例如115,200)初始化该UART,则发送的每个字节之间的延迟将大大增加。它跳至每字节125µs。

这引起了一个问题,因为我必须在某个时候提高波特率,但是响应时间有限。

延迟是否应该在字节之间减少,因为它应该以相同的频率发送更多的比特?

此阻塞方法用于写入UART。

static inline void uart2_putchar(uint8_t data)
{
    // Disable interrupts to get exclusive access to ring_buffer_out.
    cli();
    if (ring_buffer_is_empty(&ring_buffer_out2)) {
        // First data in buffer, enable data ready interrupt
        UCSR2B |=  (1 << UDRIE2);
    }
    // Put data in buffer
    ring_buffer_put(&ring_buffer_out2, data);

    // Re-enable interrupts
    sei();
}
Run Code Online (Sandbox Code Playgroud)

这是基于中断触发的。

ISR(USART2_UDRE_vect)
{
    // if there is data in the ring buffer, fetch it and send it
    if (!ring_buffer_is_empty(&ring_buffer_out2)) {
        UDR2 = ring_buffer_get(&ring_buffer_out2);
    }
    else {
        // …
Run Code Online (Sandbox Code Playgroud)

c embedded avr serial-port uart

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

为什么带有对指针引用的输入的函数不能编译?

我在我的Linux机箱上测试了这个,它有gcc,编译得很好.

void myFunc(int* &input);
Run Code Online (Sandbox Code Playgroud)

编译没有错误.

在我的avr上,声明相同的功能:

void myFunc(int* &input);
Run Code Online (Sandbox Code Playgroud)

导致编译错误:

expected ';', ',' or ')' before '&' token
Run Code Online (Sandbox Code Playgroud)

linux上的gcc版本是4.6.3

avr(avr-gcc)的gcc版本是3.4.2

c c++ avr

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

标签 统计

python ×3

avr ×2

c ×2

c++ ×1

cython ×1

embedded ×1

mechanize ×1

pyserial ×1

serial-port ×1

uart ×1