2010-01-13 3 views
1

RS232를 통해 연결된 저울에서 가중치를 읽고 웹 애플리케이션에 덤프 할 수 있는지 물어 보았습니다. 로컬 컴퓨터에서 저울의 무게를 읽는 것은 나쁘지 않습니다 (이 질문은 설명을 제공합니다 : RS232 question - how to read weight to PC). 그러나 ...웹 애플리케이션 내에서 페덱스 규모의 패키지 무게를 읽으십니까?

어떻게 웹 응용 프로그램의 상자에 붙여 넣을 데이터를 가져올 수 있습니까? ..? 아이디어?

페덱스와 UPS 라벨을 사용하는 것과 비슷하지만 반대 상황이 발생합니다. 웹 응용 프로그램 내에서 라벨 데이터를 가져올 수 있지만 원시 프린터 소켓을 통해 해당 데이터를 전송해야합니다 (예 : 파일> 인쇄만으로 로컬 프린터로 전송할 수 없음) ... 어떻게해야합니까?

답변

0

일반적으로 웹 응용 프로그램은 서버와 클라이언트간에 완전한 신뢰가 없으면 PC와 직접 통신 할 수 없습니다. 그럼에도 불구하고 웹 페이지는 수많은 보안상의 이유로 주변 장치와 통신 할 수있는 기능이 부족합니다. 이런 문제 때문에 PC에서 클라이언트/서비스 백그라운드 응용 프로그램을 실행해야합니다.

+0

그래, 그게 내가 생각했던거야. 문제는 다음 중 하나입니다. 그 앱을 작성하고 웹 앱과 대화 할 수있는 멋지고 깨끗한 방법이 있습니까? –

1

FedEx와 UPS는 현재 네트워크 연결이 가능한 Zebra 프린터를 어떻게 사용하고 있습니까? .NET 및 표준 Windows 스풀러를 통해 UNC 경로를 사용하면 프린터로 쉽게 인쇄 할 수 있습니다. 트릭은 프린터를 웹 응용 프로그램에 노출시키는 방법입니다. 웹 응용 프로그램이 프린터 (인트라넷)와 동일한 네트워크에 있으면 간단합니다. 웹 응용 프로그램 클라이언트의 서버 측 호출에서 웹 서버의 Windows 스풀러를 통해 프린터로 데이터를 보냅니다. 웹 응용 프로그램이 로컬 네트워크 외부에서 호스팅되는 경우 웹 서비스를 시작하고 웹 응용 프로그램에서 ZPL (Zebra Printer Language)을 받기위한 웹 서비스를 작성하십시오. 웹 서비스는 Windows 스풀러를 사용하여 동일한 네트워크의 프린터로 전송합니다.

0

웹 응용 프로그램 기능에서 인쇄 할 경우 QZ 트레이는 약간의 자바 응용 프로그램으로 무거운 짐을 덜어줍니다. 조용한 인쇄를 위해 사용자 정의 인증서를 지불하는 대신 인증서를 snakeoil 할 수도 있습니다.

+0

감사합니다. 위의 해결 방법을 확장했습니다. – tresf

0

RS232를 통해 연결된 저울에서 가중치를 읽고 웹 애플리케이션에 덤프 할 수 있는지 물어 보았습니다.

JavaScript를 통해 직접 수행 할 수는 없지만 사용자 지정 클라이언트 측 또는 서버 측 솔루션이 도움이 될 수 있습니다. 페이지가되었습니다 가정, 웹 페이지에이 기능을 노출 일부 서버 측 및 데스크톱 제품 (RS232 저울, USB 저울)

이들 QZ Tray approach 권장 Gordon '(QZ 트레이가 설치되어있는 PC를 가정에서 구체적으로 자세히 설명하기 위해이 있습니다 configured to use QZ Tray), Mettler Toledo 저울에 연결된 직렬 포트에서 작동하는 기술은 다음과 같습니다. 명령은 규모 공급 업체마다 다르므로 필요에 따라 수정하십시오.

면책 조항, 우리는 QZ 트레이의 저자입니다.

연결 COM1에, 나는 페덱스와 UPS 레이블 역 비슷한하지만-상황 실행 해요

// 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); 
}); 

분리 명령을 보냅니다. 웹 응용 프로그램 내에서 라벨 데이터를 가져올 수 있지만 원시 프린터 소켓을 통해 해당 데이터를 전송해야합니다 (예 : 파일> 인쇄만으로 로컬 프린터로 전송할 수 없음) ... 어떻게해야합니까?

복제본 https://stackoverflow.com/a/28783269/3196753.

관련 문제