【问题标题】:serial/parallel communication with weighing scale from within browser从浏览器中与称重秤进行串行/并行通信
【发布时间】:2013-11-08 18:49:03
【问题描述】:

我目前正在开发一个 ASP.Net MVC4 应用程序来自动化生产工作流程。 我的客户希望解决方案是“零占用空间”,因此完全在浏览器中运行。

我无法想象如何处理的问题之一是从页面内连接到客户端串行/并行端口的称重秤获取数据。 (显然这不能从 Web 后端完成......)

我一直在挖掘,假设这可以通过 javascript/jquery 实现,但由于这是在浏览器中以沙盒方式运行,我假设这样会卡住......

我考虑的一种方法是编写一个自托管的 WCF Web 服务,以在附加了刻度(由 Windows 服务或控制台应用程序等托管)的客户端上运行,该客户端公开刻度读数。从理论上讲,这将允许我在我的 MVC C# 代码中使用 IIS 后端中的 Web 服务并将其返回给客户端。

这种方法的唯一问题是这将要求应用程序在本地托管,而我们希望它由外部提供商托管。

有没有办法在客户端专门处理这个问题? 我无法想象我是第一个遇到这个问题的人,但我似乎无法通过在网络上四处挖掘来找到我正在寻找的东西......

有什么想法吗?

提前致谢!比利时斯蒂恩

【问题讨论】:

  • 您无法通过纯客户端代码与自定义硬件进行交互。浏览器扩展可能会有所帮助。

标签: c# javascript asp.net asp.net-mvc-4


【解决方案1】:

您绝对必须在系统上运行一个可以访问硬件的进程,以支持从任何硬件接口进行读取。你有很多选择——它可能是一个正在运行的本地服务,它可以读取串行端口并向浏览器公开一个简单的 HTTP 端点。您还可以为 IE 或 Chrome 浏览器扩展做 ActiveX 样式的控件:

http://developer.chrome.com/apps/app_usb.html

【讨论】:

  • 嗨戴夫,所以我创建一个 WCF 服务以在客户端上运行并公开一个 http 端点的方法不是一个坏主意吗?他们唯一让我很难看到的是如何从浏览器中使用它......如何实现这一目标?通过 jquery.ajax() 指向该端点并在回调上进行部分页面刷新?
  • 我会设计一个安装程序来寻找一个开放的 HTTP 端口并将其指定为您的应用程序的保留端口。您可以将 Katana 作为不需要 IIS 的轻型服务器的一个选项:msdn.microsoft.com/en-us/magazine/dn451439.aspx
【解决方案2】:

作为后续:

我最终创建了一个用户控件,它通过 CreateFile 的 PInvoke 读取 COM 端口以打开 COM 端口 ...

效果很好,在客户端等上运行外部进程没有任何麻烦......

确实需要完全信任浏览器,但这是可以接受的,因为它将在我们控制的客户端上运行...

grtz, 斯蒂金

【讨论】:

  • 嗨,很高兴您找到了解决方案,我似乎遇到了同样的问题,想知道您是否可以提供有关您的解决方案的更多详细信息,特别是您所说的“用户控制” .也许您可以指出您用于解决方案的任何资源?谢谢。
猜你喜欢
  • 1970-01-01
  • 2015-07-18
  • 1970-01-01
  • 2018-10-09
  • 2023-03-13
  • 1970-01-01
  • 2012-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多