2008-10-16 69 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或类似方法自动将数据提交给服务器。

该方法已成功应用于条形码扫描仪。

相关问题