2009-05-19 120 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。

相关问题