2008-10-16 44 views
4

我有一個通過USB連接到PC的數據採集硬件設備,我想發送一些信息和設置,獲取一些數據,然後在客戶端檢索獲取的數據並將其發送到服務器。該計劃是使用Web門戶與連接到客戶端PC的設備進行通信。我正計劃編寫一個DLL來與設備交談。我的客戶端環境是使用Internet   Explorer作爲瀏覽器的Windows。服務器端是Windows或Linux。從Web瀏覽器客戶端到客戶端設備進行通信的最佳方式是什麼?什麼是Web瀏覽器與硬件設備通信的方式?

說明:第一個目標是允許客戶端PC將採集設置發送到設備。這些設置可以在客戶端手動輸入,也可以來自服務器。第二個目標是將獲取的數據傳送到服務器的數據庫。我不需要在客戶端顯示獲取的數據。

硬件設備有一個CPU,但內存非常有限。與設備通信的協議不確定,但我可以像USB驅動器那樣訪問設備。

+0

如何將硬件設備連接到PC?哪個總線USB,PCI,其他?你有什麼嵌入式設備的能力是它有它自己的CPU? – Ilya 2008-10-16 16:31:10

回答

2

這不是網絡瀏覽器與設備通信,它是網絡服務器。換句話說,編寫一個小型Web應用程序來代替(或者除了)從數據庫讀取數據,從設備讀取數據並以HTML的形式呈現給用戶。

實現此目的的另一種方法是編寫一個守護程序,該守護程序從設備輪詢並寫入數據庫,然後編寫一個前端以呈現存儲的數據。如果你想記錄過去講座的時間,這個方案會更好。第一種方法更適合使用瀏覽器作爲設備的簡單接口。

+0

我想我的問題不清楚,設備連接到客戶端,我想將原始採集數據返回到服務器。我需要幫助的問題是瀏覽器與客戶端硬件之間的通信。 – 2008-10-16 16:18:10

+0

我相信@Javier正確回答了您的問題和澄清。 Web服務器需要一種方法來與客戶的「服務器」或進程交談,或者作爲@Javier筆記,讓客戶端應用程序發佈到服務器上的數據庫或文件。 – kenny 2008-10-16 17:17:52

+0

它很可能(甚至很容易)使用一個小而輕的本地網絡服務器(綁定到127.0.0.1),以便您可以使用瀏覽器進行訪問。 – Javier 2008-10-16 19:13:09

0

您可以輕鬆地使用嵌入式Web服務器作爲服務來收集數據並像瀏覽器中的普通網站那樣訪問它。它需要客戶端啓動服務。

您也可以使用它作爲門戶的代理,在這種情況下,您不必處理多個域的安全限制。

2

編寫一個ActiveX插件來收集數據,但我不確定它是否會授予您所需的權限。如果您可以在其他瀏覽器上運行,您可以嘗試編寫Netscape插件。除了插件主機以外,我不知道任何限制。

0

通常,通過在客戶端計算機上安裝第三方軟件/驅動程序解決了此問題。 GEM智能卡讀卡器使用這種方法。但是,我們需要記住採取這種方法會使設計偏離瘦客戶端模式。更好的方法是在客戶機上創建一個服務。

3

您可以使用Java applet並通過串口與設備進行通信。

0

如果您使用USB接口連接您的硬件,我建議您使用USB CDC EEM類,該類旨在提供以太網其他USB模擬並完全用於此目的 - 在各種設計中公開嵌入式設備上的Web服務器,this one for example
另外你還需要在PC端實現CDC EEM類驅動程序,以使其工作。

2

我們有相同的需求,正在評估在監聽127.0.0.1:8080的客戶端上運行代理的選項。代理可以與設備通話,並且任何本地瀏覽器都可以通過向127.0.0發出請求與代理進行通信。1:8080在js中,然後將結果轉發到Web門戶。不知道它是否會起作用,因爲任何安全軟件都可能禁止瀏覽器向127.0.0.1發出請求並壓縮整個事情。

1

許多設備都可以按擊鍵形式發送輸入。當焦點位於輸入字段時,來自設備的數據將用文本填充。

如果您的數據具有固定長度或可預測模式,您甚至可以使用ajax或類似方法自動將數據提交給服務器。

該方法已成功應用於條形碼掃描儀。

相關問題