我想寫一些python代碼來從我們的壓力傳感器下載數據,一個Vaisala PTU300。這個傳感器連接到我們的路由器,可以通過telnet會話聯繫,簡單的命令根據請求吐出數據,或者它可以吐出連續的數據流。本手冊的第94頁列出了您可以發送到儀器的命令。我對python很陌生,但是在Fortran中有一定的編程經驗,所以瞭解一些編程語言的結構。用Python telnet下載儀器數據
我希望有人能幫我一些關於我應該實現的模塊的一些想法。我對這個主題做了一些研究,發現了一些與以前相關的問題(How can I use python's telnetlib to fetch data from a device for a fixed period of time?,How to save the output of a telnet command by using python for an infinite time [closed])。
我已經開始嘗試使用telnetlib用下面的命令連接到儀器
進口SYS
進口telnetlib
主機=「xxx.xxx.xxx.xxx」玩
TN = telnetlib.Telnet(主機)
tn.open
tn.write( 'R')
tn.read_very_eager()
這導致數據的一行被讀
例如
2000年1月6日23時43分04秒P = 980.0 T = -4.3「C \ r \ N>ř
然而後續tn.read_very_eager()不返回任何東西。
我在這個讀取命令上嘗試了不同的[變化] [4],例如,
tn.read_until( 'C')
但任何後續讀取不會返回任何東西。我相信一些「阻塞」可能正在發生?不是我真的知道那是什麼。
我也曾嘗試使用請求
tn.write( '發送')
tn.read_until( 'C')
只是一個閱讀但這將只返回一個閱讀和後續讀取將不會返回。
[One] [5]過去使用[asynchat] [6]或[socket] [7]模塊進行這種操作的stackoverflow問題。我還沒有嘗試過使用它們。人們認爲這是一個更好的攻擊線嗎?該儀器不需要用戶名或密碼即可連接。
所以我的問題是,我怎樣才能最好地連接到這臺儀器(哪些包,telnetlib,asynchat,套接字)?
如何避免telnet連接被阻止? (即只能夠檢索一行數據)?
任何意見將不勝感激,我appologise,如果這個問題已被回答。
問候
阿曼
PS,對不起它不會讓我附上我的所有鏈接
我知道我有點話題,但你有沒有試過(py)期望?在處理終端時,我發現它更容易使用 –