2015-09-07 53 views
0

我如何寫一個草圖Bridge Process啓動的Arduino Yun Linux進程的stdin?如何寫入一個Yun進程的stdin()?

背景:我有一個控制和日誌記錄應用程序,需要通過Temboo.com登錄到Google Drive電子表格。我使用Temboo示例中提供的Arduino草圖進行工作。但是我的素描太大,不適合可用的AVR存儲器,所以我想分解它:AVR端的控制和數據採集,以及Linux端的Python-Temboo。

我開始用這個簡單的Python腳本stdinFile.py測試:

import sys 
# Read the string from stdin 
rowData = sys.stdin.readline() 
f = open("blah.txt","w") 
f.write(rowData) 
f.close 
sys.exit(0) 

我從一個SSH會話調用它,並輸入一串字符。它的工作原理:stdin被寫入文件!

[email protected]:~# python /root/stdinFile.py 
adsfsadfdsaf 
[email protected]:~# cat blah.txt 
adsfsadfdsaf 

但是我該如何從Arduino草圖中做到這一點?該Process.run()方法阻止所以這沒有工作 - 進程受阻之前寫的草圖:

Process p; // Create a process and call it "p" 
p.begin("python"); // Process to launch the "Python" command 
p.addParameter("/root/stdinFile.py"); // Add the script name to "python" 
p.run(); // this is blocking! Script stalls here waiting for stdin 

char record[]="2015-09-06,21:20:00,F,T,F,F,18.3,18.4,19.3,19.4,30.6,28.6"; 
for(char * src = record; *src != '\0'; src++) { 
    p.write(*src); 
} 
p.flush(); 

我也試過p.run()之前做的寫操作,換句話說,餡標準輸入在腳本運行之前流,但是也沒有給出任何結果。

謝謝!

回答

相關問題