如何修改此代码以便每个脉冲发送一个唯一的数据文件?

时间:2014-07-25 16:04:13

标签: python arduino-ide arduino-uno

我仍然不明白如何只为每个数据文件捕获一个脉冲

我的教授和我正在尝试修改下面的代码,在我们从Arduino收到的每一个脉冲之后发送一个唯一命名的.txt文件。到目前为止,我们的努力没有结果。现在它向我们发送一段时间后收到的所有数据,并将所有脉冲数据编译成一个文件。由于文件名不会更改,因此存储在文件中的数据只是临时的。

Arduino Sketch被称为Girino,可以找到here。我们希望修改的代码是在步骤#23下找到的名为readgirino.py的python代码。 我想我们必须修改这个循环;

for i in range(5):
    stream.write('s')
    eventString = stream.read(1280)
    eventData.append(np.array(unpack( '1280B', eventString )))
    print eventData
    stream.write('S')
    stream.flushInput()

np.savetxt( "data.txt", eventData[4] )

有什么建议吗?

谢谢!

UPDATE - 使用以下方法解决了一个唯一的文件名:

  stream.write('S')
    stream.flushInput()
    n = n + 1
np.savetxt( "data" +str( n) + ".txt", eventData[4] ) 

虽然我仍然不明白如何只为每个数据文件捕获一个脉冲。


Girino代码没有提到eventData,但我认为它意味着我在运行readgirino.py代码后出现在终端窗口中的数组: 吉里诺告诉我它已经准备好了 缓冲区大小:1280

波特率:115200

等待时间:1248

预分频器:128

触发事件:3

阈值:127

将预分频器设置为:128

将阈值设置为:50

缓冲区大小:1280

波特率:115200

等待时间:1248

预分频器:128

触发事件:3

阈值:50

[array([0,0,0,...,0,0,0])] [array([0,0,0,...,0,0,0]),array([0,0,0,...,0,0,0])] [array([0,0,0,...,0,0,0]),array([0,0,0,...,0,0,0]),array([0,0, 0,...,0,0,0])] [array([0,0,0,...,0,0,0]),array([0,0,0,...,0,0,0]),array([0,0, 0,...,0,0,0]),数组([0,0,0,...,0,0,0])] [array([0,0,0,...,0,0,0]),array([0,0,0,...,0,0,0]),array([0,0, 0,...,0,0,0]),数组([0,0,0,...,0,0,0]),数组([0,0,0,...,0, 0,0])]

1 个答案:

答案 0 :(得分:0)

更改" data.txt"在

np.savetxt( "data.txt", eventData[4] )

改变每个脉冲的东西。例如,您可以增加一个数字(data1.txt,data2.txt)。

namestr = "data" + str(n) + ".txt"
n = n + 1

如果要将eventData中的组成数组保存到不同的文件中,则需要额外的for循环:

for event in eventData:
    n = n + 1
    np.savetxt( "data" + str(n) + ".txt", event )