【问题标题】:What is a way for a web browser to communicate with a hardware device? [closed]Web 浏览器与硬件设备通信的方式是什么? [关闭]
【发布时间】:2008-10-16 15:58:04
【问题描述】:

我有一个通过 USB 连接到 PC 的数据采集硬件设备,我想发送一些信息和设置,获取一些数据,然后在客户端检索获取的数据并将其发送到服务器。该计划是使用 Web 门户与连接到客户端 PC 的设备进行通信。我正计划编写一个 DLL 来与设备通信。我在客户端上的环境是使用 Internet Explorer 作为浏览器的 Windows。服务器端是 Windows 或 Linux。从 Web 浏览器客户端与客户端设备进行通信的最佳方式是什么?

澄清:第一个目标是允许客户端 PC 将采集设置发送到设备。这些设置可以在客户端手动输入,也可以来自服务器。第二个目标是将获取的数据获取到服务器的数据库中。我不需要在客户端显示获取的数据。

硬件设备有一个 CPU,但内存非常有限。与设备通信的协议未确定,但我可以像访问 USB 驱动器一样访问设备。

【问题讨论】:

  • 你的硬件设备是如何连接到电脑的? USB,PCI,其他哪个总线?你的嵌入式设备有什么能力,它有自己的 cpu 吗?

标签: embedded device


【解决方案1】:

您可以使用 Java 小程序并通过串行端口与设备通信。

【讨论】:

    【解决方案2】:

    编写一个 ActiveX 插件来收集数据,但我不确定它是否会授予您所需的权限。如果您可以在其他浏览器上运行,您也可以尝试编写 Netscape 插件。除了对插件主机施加的限制之外,我不知道有任何限制。

    【讨论】:

      【解决方案3】:

      我们有同样的需求,并且正在评估在侦听 127.0.0.1:8080 的客户端上运行代理的选项。代理可以与设备对话,任何本地浏览器都可以通过 js 向 127.0.0.1:8080 发出请求,然后将结果转发到 Web 门户来与代理对话。不知道它是否会起作用,因为任何安全软件都可能禁止浏览器向 127.0.0.1 发出请求并压缩整个内容。

      【讨论】:

      • 我也是这么想的。还没试过,但我不明白为什么它不起作用。
      【解决方案4】:

      与设备通信的不是网络浏览器,而是网络服务器。换句话说,编写一个小型 Web 应用程序,而不是(或除此之外)从数据库中读取数据,而是从设备中读取数据,并以 HTML 的形式呈现给用户。

      实现相同目的的另一种方法是编写一个从设备轮询并写入数据库的守护程序,然后编写一个前端来呈现存储的数据。如果您想按时间呈现过去讲座的记录,则此方案更好。第一种方法最好将浏览器用作设备的简单接口。

      【讨论】:

      • 我想我的问题并不清楚,设备连接到客户端,我想将原始采集数据返回服务器。我需要帮助的问题是浏览器和客户端硬件之间的通信。
      • 我相信@Javier 正确回答了您的问题和澄清。 Web 服务器需要一种与客户端“服务器”或进程对话的方法,或者正如 @Javier 所说,让客户端应用程序发布到服务器上的数据库或文件。
      • 很可能(甚至很容易)使用小型轻量级本地网络服务器(绑定到 127.0.0.1),这样您就可以使用浏览器访问。
      【解决方案5】:

      许多设备可以以击键的形式发送输入。当焦点在输入字段上时,来自设备的数据将用文本填充它。

      如果您的数据具有固定长度或可预测的模式,您甚至可以使用 ajax 或类似方法将数据自动提交到服务器。

      这种方法已成功用于条码扫描仪。

      【讨论】:

        【解决方案6】:

        您可以采取简单的方法,使用嵌入式 Web 服务器作为服务来收集数据并像从浏览器中访问普通网站一样访问它。但它需要客户端启动服务。

        您也可以将其用作门户的代理,在这种情况下,您不必处理多个域的安全限制。

        【讨论】:

        • 嵌入式网络服务器会在设备上吗?鉴于我们的内存限制,这是不可能的。我不明白你说的代理是什么,请解释一下。
        【解决方案7】:

        通常通过在客户端计算机上安装第三方软件/驱动程序来解决此问题。 GEM 智能卡读卡器采用这种方法。但是,我们需要记住,采用这种方法会使设计偏离瘦客户端模型。更好的方法是在客户端计算机上创建服务。

        【讨论】:

          【解决方案8】:

          如果您使用 USB 接口连接您的硬件,我建议您使用 USB CDC EEM 类,该类旨在提供以太网其他 USB 模拟并专门用于此目的 - 在嵌入式设备上公开 Web 服务器 this one for example,以各种设计.
          另外,您还需要在 PC 端实现 CDC EEM 类驱动程序才能使其正常工作。

          【讨论】:

            猜你喜欢
            • 2012-03-31
            • 2021-05-27
            • 1970-01-01
            • 2012-01-15
            • 2010-10-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-09-21
            相关资源
            最近更新 更多