1

RS232 経由で接続されたはかりから重量を読み取り、それを Web アプリケーションにダンプできるかどうか尋ねられました。ローカル マシンからスケールの重量を読み取ることは悪くありません (この SO の質問で説明が得られます: RS232 の質問 - 重量を PC に読み取る方法)。

そのデータを Web アプリケーションのボックスに貼り付けるにはどうすればよいですか? アイデア?

Fedex と UPS のラベルで、似ているが逆の状況に陥っています。Web アプリケーション内でラベル データを取得できますが、生のプリンター ソケット (つまり、[ファイル] > [印刷] だけではできません) を介してそのデータをローカル プリンターに送信する必要があります...どのように?

4

4 に答える 4

1

FedEx と UPS は現在、ネットワークに接続できる Zebra プリンターを使用しています。それらへの印刷は、プリンターへの UNC パスを使用して、.NET および標準の Windows スプーラーを介して簡単に行うことができます。秘訣は、プリンターを Web アプリケーションに公開する方法です。Web アプリケーションがプリンターと同じネットワーク (イントラネット) にある場合、答えは簡単です。Web アプリ クライアントからのサーバー側呼び出しで、Web サーバーから Windows スプーラーを介してプリンターにデータを送信します。Web アプリケーションがローカル ネットワークの外部でホストされている場合は、Web サービスを立ち上げ、Web サービスを記述して、Web アプリから ZPL (Zebra Printer Language) を受け取ります。Web サービスは、Windows スプーラーも使用して、同じネットワーク上のプリンターに送信します。

于 2011-04-30T00:54:40.553 に答える
0

Web アプリ機能から印刷する場合、QZ Tray は面倒な作業を行う小さな Java アプリです。サイレント印刷のためにカスタム証明書を支払う代わりに、証明書をスネークオイルすることもできます.

于 2016-04-07T18:36:02.493 に答える
0

通常、サーバーとクライアントの間に完全な信頼がない限り、Web アプリケーションは PC と直接通信できません。それでも、無数のセキュリティ上の理由から、Web ページには周辺機器と通信する機能がありません。このような問題の場合、PC 上でなんらかのクライアント/サービス バックグラウンド アプリケーションを実行する必要があります。

于 2010-01-13T11:51:42.757 に答える
0

RS232 経由で接続されたはかりから重量を読み取り、それを Web アプリケーションにダンプできるかどうか尋ねられました。

これは JavaScript を介して直接行うことはできませんが、カスタムのクライアント側またはサーバー側のソリューションが役立ちます。この機能を Web ページに公開するサーバー側およびデスクトップ製品がいくつかあります (RS232 スケール、USB スケール)。

Gordonの推奨するQZ Tray アプローチ(PC に QZ Tray がインストールされていると仮定し、ページが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の複製。

于 2016-08-31T20:49:22.837 に答える