2014-07-25 15 views
0

我還是不明白如何只捕獲每個數據文件中的一個脈衝如何修改此代碼以發送每個脈衝的唯一數據文件?

我的教授,我試圖修改下面的代碼,我們從收到的每個脈衝後發送一個唯一命名的.txt文件我們的Arduino.So迄今爲止,我們的努力沒有結果。現在它向我們發送一段時間後收到的所有數據,並將所有脈衝數據編譯成一個文件。由於文件名不變,保存在文件中的數據只是暫時的。

Arduino的素描被稱爲Girino,可以發現here。我們要修改的代碼被稱爲readgirino.py那人根據步驟#23中附帶的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 -Creating唯一的文件名與解決:

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

雖然我還是不明白如何只捕獲每個數據文件中的一個脈衝。


的Girino代碼隻字不提EVENTDATA的,但我認爲它的意思後,我運行readgirino.py代碼出現在我的終端窗口中的數組: Girino告訴我,這是準備 緩衝區大小: 1280

波特率:115200

等待持續時間:1248

分頻器:128

觸發事件:3

閾值:127

設定預分頻器:128

設置閾值,以:50

緩衝器大小:1280

波特率:115200

等待時間:1248

預分頻器:128

觸發事件:3

閾值:50

[陣列([0,0,0,...,0,0,0])] [陣列([ 0,0,0,...,0,0,0]),陣列([0,0,0,...,0,0,0])] [陣列([0,0,0, ...,0,0,0]),陣列([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]),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]),數組([0,0,0,...,0,0,0]),數組([0,0,0,...,0,0,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) 
+0

改變它的東西,如:.... np.savetxt( 「data」+ str(int(time.time()))+「.txt」,eventData [4])......? – TheNoviceResearcher

+0

你也可以使用當前時間,是的。任何改變每個脈衝的東西。 – amo

+0

酷它的工作,我使用:\t stream.write( 'S') stream.flushInput() N = N + 1個 \t np.savetxt( 「數據」 + STR(N)+ 「.TXT」 ,eventData [4]) – TheNoviceResearcher

相關問題