2014-10-11 18 views
1

我正在研究開發可以與各種語言(Python,C,C#,LabVIEW)接口的解決方案,我可以在解決方案中發送數據。 它與FlexRIO系統接口,大量的數據將盡可能快地用FPGA處理。 解決方案本身可能用C或LabVIEW編寫(我的限制是我有軟件明智地與FlexRIO驅動程序接口的選項)。在同一臺計算機上使用不同編程語言的不同程序之間發送數據的最佳方式是什麼?

該軟件將接受,將被預定義(例如RESET:ALL)的命令,但該數據的大小可以是非常大的(例如1000個字符陣列)。

因此,例如,我可以用Python編寫代碼來發送命令到該軟件並同時獲得信息反饋。

當談到如何發送這些數據時,我有哪些選擇? 我在想TCP/IP,但我不知道我可能有的速度和內存限制。 這兩個軟件也將在同一臺計算機上。

+0

您可以使用消息隊列。看看RabbitMQ。 – brz 2014-10-11 18:30:34

+0

爲什麼不使用文件系統? – ariscris 2014-10-11 18:33:09

回答

2

我工作過類似的問題。一,你可以使用的解決方案是:

  • 連載數據(protobuf的,JSON,BSON,XML)
  • 壓縮數據(gzip的,活潑的,LZ4)。的貿易是在算法的速度到輸出
  • 發送斑點的大小,以其他應用程序中使用進程間通信

另一側的確在反向相同。

我使用protobuf,lz4WCF pipes,這對頻繁的小型ISH消息很有效,但是用您的數據進行測試。

在你的情況下寫入文件和從文件讀取可能會更快。

1

管道的一種方式,他們都支持所有語言你提及。它是一段共享內存,但API意味着它可以像文件或流一樣工作,具體取決於語言。

一個程序寫入並從中讀取另一個,因此喜歡的TCP/IP連接,但開銷更少。

如果你聰明這件事,大部分代碼都不會知道它使用什麼類型的流。那麼如果你需要改變這個機制,你的代碼很少會受到影響。

0

您可以使用任何的數據交換格式,採取以應用

  1. XML
  2. JSON

這樣你就可以在沒有任何阻溝通

相關問題