2012-02-17 64 views
1

我們正在開發一個項目,要求我們與一組特定的硬件進行接口;一組可以很容易地使用C#控制,另一組使用Python本地編程。部分項目涉及讓運行在Python上的硬件與通過C#運行的硬件進行通信,不幸的是,由於時間限制,我們無法創建一組C#或Python軟件來控制另一組硬件。在同一臺機器上託管的C#和Python應用程序之間的通信

在Python上運行的一組硬件完全基於事件,因爲我們可以編程在硬件滿足某些條件時調用的函數。我們的想法是修改控制另一組硬件的C#應用​​程序來承載Python應用程序(使用類似Application.Run()的東西),然後編程Python函數,以便在硬件發生事件時將相關數據傳播到C#應用程序。

我們正在考慮使用套接字連接來處理兩者之間的通信,因爲C#和Python都很容易以這種方式工作(或者我們的Python傢伙聲稱)。我們最擔心的是如果兩個程序都將託管在同一臺機器上,那麼是否會有任何問題。如果這不會是一個問題,我們可能會最終使用的共享庫如0MQ

我們也做了一些研究分爲以下幾個方面:

  • 管道/命名管道
  • 消息隊列
  • 共享內存

基本上,我們想知道這些(或任何其他人)的方法是最容易與這些語言來實現,並會給我們最好的表現。我們只關心速度準確性的數據(即,如果使用網絡數據包,一個會降低最少)。安全不是一個問題。

理想情況下,應該有一個數據流從Python應用程序轉到C#應用程序,以及兩個數據流從C#應用程序轉到Python應用程序。主機將運行Windows 7.我可以根據需要提供其他信息。

回答

1

一個選項是嘗試IronPython。由於IronPython是一種.NET語言,因此與C#代碼進行通信應該很容易。

看起來有必要研究如何讓您的現有Python代碼在IronPython上運行。

相關問題