【问题标题】:Read weight of package from a Fedex scale within web application?从 Web 应用程序中的 Fedex 秤读取包裹重量?
【发布时间】:2010-01-13 11:46:44
【问题描述】:

有人问我是否可以通过 RS232 连接的秤读取重量,并将其转储到 Web 应用程序中。从本地机器读取秤的重量还不错​​(这个SO问题给出了解释:RS232 question - how to read weight to PC),但是......

然后如何将这些数据粘贴到我的 Web 应用程序的框中...?想法?

我在使用 Fedex 和 UPS 标签时遇到了类似但相反的情况。我可以在 Web 应用程序中获取标签数据,但我需要通过原始打印机套接字(即我不能只是文件 > 打印)将该数据发送到本地打印机......如何?

【问题讨论】:

    标签: serial-port fedex ups


    【解决方案1】:

    FedEx 和 UPS 现在如何将 Zebra 打印机连接到网络。通过 .NET 和标准的 Windows Spooler 使用打印机的 UNC 路径打印到它们很容易。诀窍是如何将打印机暴露给您的 Web 应用程序。如果您的 Web 应用程序与您的打印机(内联网)在同一个网络上,那么答案很简单。在来自 Web 应用程序客户端的服务器端调用中,通过 Windows Spooler 从 Web 服务器将数据发送到打印机。如果您的 Web 应用程序托管在本地网络之外,请建立一个 Web 服务并编写一个 Web 服务以从您的 Web 应用程序接收 ZPL(Zebra 打印机语言)。 Web 服务还将使用 windows spooler 发送到同一网络上的打印机。

    【讨论】:

      【解决方案2】:

      除非服务器和客户端之间完全信任,否则 Web 应用程序通常无法直接与 PC 通信。即便如此,出于无​​数安全原因,网页仍无法与外围设备通信。对于这样的问题,您几乎必须在 PC 上运行某种客户端/服务后台应用程序。

      【讨论】:

        【解决方案3】:

        对于从 Web 应用程序打印的功能,QZ Tray 是一个小型 Java 应用程序,可为您完成繁重的工作。您也可以对证书进行蛇油处理,而不是为他们的无声打印支付他们的自定义证书。

        【讨论】:

          【解决方案4】:

          有人问我是否可以通过 RS232 连接的秤读取重量,并将其转储到 Web 应用程序中。

          虽然这不能直接通过 JavaScript 完成,但自定义客户端或服务器端解决方案可以提供帮助。有一些服务器端和桌面产品会将此功能暴露给网页(RS232 秤、USB 秤)

          为了详细说明Gordon 推荐的QZ Tray approach(假设PC 安装了QZ 托盘;假设页面为configured to use QZ Tray),这里有一种技术适用于连接到梅特勒-托利多的串行端口规模。命令因规模供应商而异,因此请根据需要进行调整。

          免责声明,我们是 QZ Tray 的作者。

          连接COM1,发送命令,断开连接

          // MT = Mettler Toledo.  Change as needed.
          
          var port = 'COM1'; // <--  COM1, '/dev/ttyUSB0', etc
          
          var cmd = 'W\n';   // <--- MT Weight command
          
          var baud = {
             baudRate: 9600,
             dataBits: 7,     // <--- MT Changed from 8
             stopBits: 1,
             parity: 'EVEN',  // <--- MT Changed from NONE
             flowControl: 'NONE'
          };
          
          var delims = {
             begin: '\x02',  // <--- MT start of message
             end: '\x0D',    // <--- MT end of message
             width: null     // <--- MT doesn't use width
          };
          
          qz.serial.openPort(port, delims).then(function() {
             return qz.serial.sendData(port, cmd, baud);
          }).catch(function(err) { console.error(err); } );
          
          qz.serial.setSerialCallbacks(function(evt) {
             if (evt.type !== 'ERROR') {
                console.log('Serial', evt.portName, 'received output', evt.output);
             } else {
                console.error(evt.exception);
             }
          
             // Close port
             return qz.serial.closePort(evt.portName);
          });
          

          我在使用 Fedex 和 UPS 标签时遇到了类似但相反的情况。我可以在 Web 应用程序中获取标签数据,但我需要通过原始打印机套接字(即我不能只是文件 > 打印)将该数据发送到本地打印机......如何?

          https://stackoverflow.com/a/28783269/3196753 的重复。

          【讨论】:

            猜你喜欢
            • 2018-09-21
            • 1970-01-01
            • 2012-03-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-01-23
            • 1970-01-01
            相关资源
            最近更新 更多