2010-10-04 23 views
1

我目前已將傳感器數據轉儲到數據庫中。這是原始數據,需要應用一個公式才能使其對最終用戶有意義。我遇到的問題是,我還不知道大多數公式,並且還希望程序足夠靈活,以便在將新傳感器添加到系統中時,用戶將能夠輸入校準公式將能夠將原始數據轉換爲有用的東西。允許用戶輸入用於評估遙測數據的公式

我從來沒有讓用戶輸入方程來操作數據。我將不勝感激任何可能的幫助。 我應該看什麼方向,我應該試試lambda表達式樹,評估方程並使用CodeDom編譯它,或者尋找另一個方向?我從來沒有在lambda表達式樹或CodeDom方面做過很多工作,並且像往常一樣在相當緊張的時間表上工作,所以學習曲線確實不重要。我將有機會回過頭來讓它在以後更好,他們現在只需要它並運行。

感謝您的任何意見。

+0

如果你想讓你的用戶輸入公式,那麼也許你應該建立在Matlab或Mathematica或其他計算引擎之上。如果公式很簡單(即+, - abs等),我會親自操縱鐵蟒來做到這一點。您可以要求DLR在運行時在您的數據上執行它。如果您擔心消毒用戶輸入,那麼我不知道該怎麼做。祝你好運。 – Gleno 2010-10-04 20:56:54

回答

1

我強烈建議FLEE進行表達式解析/評估。它有一個自定義IL編譯器,可以發出快速IL,而不會產生CodeDOM所具有的內存問題。

它也具有易於編碼和擴展的理想屬性。

1

我認爲你需要看看什麼適合你。我也想到了這兩個,只是發現你提到了他們。我認爲另一種選擇是允許存儲幾個主要公式的參數(即三次,二次,指數,日誌等),並選擇一個作爲要使用的參數。

我會親自使用表達樹,因爲它是最乾淨的。 CodeDom的一個問題是由編譯代碼引起的內存泄漏,特別是如果用戶更改代碼並多次構建公式。一種解決方案是將編譯後的代碼加載到單獨的AppDomain中,然後卸載整個AppDomain。

+0

感謝您在表達式樹上輸入CodeDom,但FLEE看起來像票證。 – Deke 2010-10-04 23:41:53