2009-05-19 76 views
2

我正致力於從網站向Arduino板發送命令的方式。 Arduino板通過USB端口(COM端口)連接到計算機。ASP.NET網頁到設備連接到服務器的USB(COM)端口

我設法使用VB.NET程序連接和控制電路板。我還寫了一個VB.NET類,它可以實例化COM連接併發送和接收消息。

我的下一步是基本上創建一個程序,它將充當我的Web服務器(運行在Windows   Vista上的IIS 7)和Arduino板之間的代理。當用戶訪問我的ASP.NET頁面時,頁面將向代理髮送命令以打開COM連接。當連接打開並準備就緒時,我可以向代理髮送命令。反過來,代理將把這些命令發送到板上,並收聽從板上收到的響應。代理會將這些消息傳遞迴ASP.NET頁面。

我有幾個問題,我希望團隊可以幫助我解答......

  1. 我是在用這種方式向正確的方向?有沒有更容易或更有效的方法來做到這一點?

  2. 我看到的主要問題是如果第二個用戶打開網頁並嘗試打開COM端口,將會出現錯誤。這會導致第一次連接失敗嗎?我想我可以先檢查端口是否已被使用並給第二個用戶一條消息。

  3. 是否有任何其他潛在的挑戰我缺少或沒有看到?

+0

快速更新:我知道我現在可以直接從asp.net連接到串行端口。但是,我不希望在每次發佈頁面時打開和關閉連接。由於http是無狀態的,我不能直接通過http打開一個串行連接。我希望在用戶會話打開時或用戶註銷或發送關閉命令時打開連接。謝謝! – Andres 2009-05-19 00:41:27

+0

看來我已經找到了一個可能的解決方案..簡單地把我用來連接到我的主板的對象放在一個會話變量中,然後通過CTypeing引用會話變量,它似乎可以做到這一點!一個簡單的解決方案,我認爲會是一個複雜的問題。不需要代理應用程序......但是,我想聽聽專家們的想法還有哪些其他解決方案! – Andres 2009-05-19 02:37:21

回答

1

不是存儲在HttpSessionState連接對象相反,它存儲在HttpApplicationState所以它是所有用戶都可訪問。

你需要小心地同步訪問COM端口,以避免單個HTTP請求引發的串行通信混淆和混淆Arduino。

相關問題