2013-03-05 3 views
4

저는이 질문을 거의 한 달 동안보고 있습니다. 나는 모든 다른 방향으로 밀리고있는 것 같다. 나는 누군가가 나를 도와 줄 수 있기를 바랍니다. 나는 인쇄 할 인터넷을 통해 열 프린터에 도착하는 데 필요한 정보가있는 웹 서버가중간 서버가없는 웹 서버에서 열전 사 프린터로 인쇄

:

는 내가 무엇을 찾고 있어요에 대한 간단한 모델을 제공합니다. 나는 컴퓨터를 중개자가되고 싶지 않다. 이 문제를 해결하기 위해 필요한 프로그래밍을하는 데 문제가 없습니다. 내 문제는 내가 프로그래밍 할 수있는 장치를 찾는 것입니다. 내가 처음 접한 첫 번째 문제는 내 서버를 폴링하여 정보를 인쇄하도록 프로그래밍 할 수있는 내장 웹 서버가있는 영수증 프린터를 찾는 것이 었습니다. 현재이 용도로 사용할 수있는 프린터가 없습니다. Zebra, Epson, Brother 등과 이야기를 나눴습니다. 두 기기가 휴대 전화 프린터와 같은 네트워크에 있거나 프린터가 연결된 동일한 네트워크의 휴대 전화에 연결되어 있고 대부분의 SDK가 해. 웹 서버를 폴링 할 수 있도록 프린터가 필요합니다. 그래서 나는 대안을 찾으러 갔다. 프린터에 무선 USB 미니 웹 서버를 연결하여 최종 목표에 도달 할 수 있습니다. 나는 이것이 단순한 일이지만 그것이 아니라고 생각했다. stackoverflow.com에서 사용자에 대한 내 질문은 비슷한 문제로 건너오고 해결책을 아는 사람이 누구입니까? 다시 저는 다른 제조사들과 이야기를 나눴으며 그들 중 누구도 도움을 줄 수 없습니다. 나는 그들 중 대부분이 심지어 내가 말하는 것에 대해 이해할 수 없다고 생각한다. 나는 여기에서 프로그램하는 사람들이 내 문제를 이해하기를 바랍니다.

다음은 내가하려는 일에 대한 자체 개발 된 원형 해결 방법입니다.

http://proto-pic.co.uk/internet-connected-thermal-printer-kit/

다시 위의이 솔루션은 처음부터 그것을 만들기 위해 저를 필요로한다. 버그 클라우드는 또 다른 옵션이지만 웹 서버를 제어 할 수 없으며 모든 것이 웹 서버를 통과합니다. 이 문제에 대한 빠른 대답을 기대하지 않으므로 언제든지 질문하십시오. 비슷한 문제를 겪은 프로그래머가 있기를 바랍니다.

또한이 질문을 위해 선택한 태그를 참조하기 위해 아마도 웹 서버를 실행하는 웹 서버를 실행하는 열전 사 프린터에 장치 (웹 서버 마이크로 컨트롤러 설정)를 연결할 수 있다고 생각했습니다. USB를 프린터에 연결하십시오. 자바가 마이크로 컨트롤러에 비해 C보다 훨씬 나쁘다는 것을 알고 있습니다. 다른 대안을 듣고 싶어합니다.

답변

0

Zebra-LinkOS 지원 Zebra 프린터와 통신 할 수 있도록 mini websocket 서버를 만들었습니다.

내가 (리눅스에서 테스트) 작은 파이썬 유틸리티 https://github.com/elops/zebra-wifi-tool

설정 프린터가 무선 네트워크에 연결, 그리고 와이파이 네트워크를 통해하는 것이 도구는 웹 링크의 위치에 연결을 쓴 프린터를 구성합니다. weblink location은 웹 소켓 서버 URL의 얼룩말 이름입니다. websocket을 통해 쉽게 구성을 조정하고 인쇄 작업을 보낼 수 있습니다.

웹 소켓 서버의

파이썬 구현은 당신은 3 공동 루틴이 필요 여기 문서에서 C/P http://websockets.readthedocs.io/en/3.4/intro.html#both

기본적으로 파이썬 3.5 asynciowebsockets

핵심 기능을 사용하여 코딩 된 :

  • 1x 연결 처리기
  • 1x 생산자
  • 1X 소비자

연결 처리기 : 이 공동 루틴은 당신의 웹 소켓에서 먼저 일어나는 듣기에 대한 책임, 그것은 데이터를 수신하거나 데이터를 전송합니다. 둘 중 어느 것이 먼저 발생하면 다른 하나가 취소되고 루프가 반복됩니다.

생산자 : 이 공동 루틴은 활성 websocket을 통해 IoT 장치로 데이터를 푸시하는 데 사용됩니다.

소비자 : 이 공동 루틴에는 IoT 장치가 websocket을 통해 서버로 보내는 데이터가 입력됩니다. 이 start_server = websockets.serve(handler, 'localhost', 6000, subprotocols=['v1.weblink.zebra.com'], extra_headers={'Content-Length': '0'})

모든 것은 매력처럼 작동처럼

웹 소켓 핸드 쉐이크 보이는, 매우 안정적이고 높은 구성과 당신이 어딘가에 인터넷에 연결된 프린터에 웹 응용 프로그램에서 인쇄 할 필요가 다양한 시나리오에 대한 다양한 솔루션 기능 . ZD420 프린터와 바코드 스캐너를 연결했습니다. 스캔 된 데이터는 동일한 웹 소켓 프린터 사용을 통해 websocket 서버로 쉽게 전송되어 인쇄 할 수 있으므로 웹상의 POS 환경을위한 강력한 솔루션을 만들 수 있습니다.

1

Zebra는 웹 소켓을 통해 통신 할 수있는 프린터를 제공합니다. 웹 서버를 공개적으로 사용할 수있는 경우 (즉, '인터넷'에서 사용할 수있는 경우), 프린터와 서버 사이에 웹 소켓 연결을 열어 서빙 할 새로운 정보가있을 때마다 데이터를 간단히 전송할 수 있습니다. 프린터가 대화를 시작하는 데 필요한 것처럼 들리지만, 항상 열려있는 websocket 연결을 사용하면 사용자의 요구 사항을 달성하는 데 도움이됩니다. 따라서 중간 컴퓨터가 필요 없으며 대신 프린터가 직접 서버와 통신합니다.

얼룩말 웹 소켓 프린터 : http://www.zebra.com/us/en/products-services/software/link-os/cloud-connect.html

얼룩말 (자바) SDK : 당신이 지원하는 열 영수증 프린터가 필요한 경우 http://www.zebra.com/us/en/products-services/software/link-os/link-os-sdk.html

에서, IMZ 모델은 충분합니다.

+0

Jason !!! 너는 남자 야! 얼룩말로 전화로 2 시간을 보냈다. 내가 말한 것에 대해서는 전혀 알지 못했다. PC없이 포인트 A에서 포인트 B까지 정보를 얻을 수있는 솔루션에는 아무런 문제가 없습니다. 나는이 중 하나를 최대한 빨리 구입할 것입니다. 웹 소켓에 대한 모든 문서를 알고 계십니까? 나의 짧은 수색에서 나는 그것이 아직 표준화되지 않았다는 것을 안다. 내 서버 끝에서 PHP를 사용하고 싶습니다. LinkOS에서 websocket을 통해 내 서버와 통신하도록 앱을 프로그래밍하는 것처럼 보입니다. 제공 할 수있는 추가 정보는 분명히 매우 중요합니다. – Mark

+0

웹 소켓이 HTML5 우산 아래에 포함 된 것으로 간주됩니다. Zebra 프린터를 사용하면 모든 웹 소켓 연결이 TLS를 통해 안전하게 처리되므로 최종 보안 문제가 쉽게 해결됩니다. Zebra SDK는 웹 소켓 설정을 모두 추상화 한 이후 Websocket 자습서를 솔직하게 요구하지 않습니다. Zebra SDK를 사용하는 웹 응용 프로그램을 가리 키도록 프린터를 구성하기 만하면됩니다. SDK는 Java로 작성되었으며, PHP와 통합하는 방법을 알지 못합니다. 나는 아파치 톰캣과 자바 웹 앱을 가지고 SDK를 사용했다. –

+0

Zebra 프린터는 아웃 바운드 통신을 위해 프린터 자체를 프로그래밍하는 기능을 포함하여 많은 기술을 제공합니다 (리셀러에게 ZBI에 대해 문의하십시오). ZBI가 웹 소켓을 통해 통신 할 수 있는지 여부는 알 수 없습니다. ZBI가 웹 소켓 통신을 지원하지 않는 경우, 프린터는 실제로 말하는 것만을 수행하는 '슬레이브'프린터가됩니다. 서버에 아무 것도 요청할 수 없습니다. 오히려 서버는 정보를 프린터로 보내야합니다. websockets로, 이것은 사소한 일입니다. 그러나 ZBI가 없으면 프린터는 데이터를 요청하기 위해 '프로그래밍'할 수 없습니다. –

3

이 시점에서 Zebra websocket 솔루션을 다시 고려해보십시오.

최상의 솔루션은 여전히 ​​미니 웹 서버 솔루션 일 수 있습니다.얼룩말의 웹 소켓 솔루션

내 경험 : 배경 :

내가 처음에 Node.js를 솔루션을 만드는 시도 (나는 어떤 서버가 행할 여러 곳에서 읽을 수 있었다). 그러나 Zebra 서명 인증서를받은 후에도 몇 번의 연결 시도가 실패하고 프린터/서버가 성공적인 핸드 셰이크 프로세스를 거친 후에도 여전히 이상한 오류로 실패했습니다. Tomcat 버전/서버가 사용 중입니다 !!! ???

.Net 솔루션을 개발중인 Zebra 개발자로부터 응답을 얻었지만 솔루션을 완성하기 전에 Zebra '엔지니어'의 추가 정보를 기다리는 중입니다. 그들은 정보를 가지고있을 때 정보를 전달할 것이고 1 주일 이내에 그것을 얻기를 희망한다고 말했습니다.

그래서 저는 Zebra가 작동하는 유일한 예인 Tomcat 서버를 결합하기로 결정했습니다. 예제 서블릿이 실행 중이지만 새로운 cert 문제가 발생하기 시작했습니다 (서버/도메인 등을 변경했을 때) This has got 내게 모든 clunky 프로세스에 대해 생각하고 - 1 거래 차단기를 인정 - 매우 제한적인 SSL 인증 및 서명 과정은 너무 위험합니다.

예. 100 개 이상의 고객이이 솔루션을 사용하고 있다고 가정 해 보겠습니다. 인증서에 문제가있는 경우 (예 : 도메인 이름 변경, 서버 설정 변경 또는 인증서 무효화/만료) - 100 명이 넘는 모든 고객은 프린터를 사용하지 않습니다. 하지만 스스로 해결할 수는 없습니다 - 새 인증서를 수정/생성하려면 다시 서명하는 프로세스가 느리고 외부 리소스에 의존적입니다! (이것은 수동 Zebra 프로세스 btw입니다. 전자 메일을 통해 보내면 Zebra 직원이 서명 된 인증서로 응답하기 전에 상당한 시간을 기다려야합니다.)

이것은 100 명이 넘는 모든 고객이 상당한 시간 동안 프린터 서비스를받지 못했지만 옵션은 없지만 Zebra가 인증서에 서명하도록한다는 것을 의미합니다. 나에게 이것은 용인 할 수없는 위험입니다. (웹 소켓 솔루션은 지브라 서명 인증서에 의존해서는 안됩니다.) - 클라이언트 (또는 클라이언트) 프린터를 모두 설치 한 후 정확한 도메인 이름/주소를 지정하도록 프린터를 구성한 후에 연결).

미니 서버 솔루션 (클라이언트에 문제가있는 경우)은 단일 고객에게만 영향을주고 외부 회사에 의존하여 문제를 해결하기 위해 인증서에 서명하지 않습니다.

여기에는 확인 된 문제와 그와 관련된 위험이 있습니다.

문제 1) 매우 저조한 구현 - 나는 아주 특정한 Tomcat 설치 이외의 표준 서버에 연결할 수 없습니다! 위험 수준 : 낮음 - 즉 초기 비용과 시간 부담 - 그러나 일단 문제가 계속되면이 문제로 인해 추가 문제가 발생할 위험이 최소화됩니다. 위험도 : a) 개발을 매우 특정한 서버 및 기술로 제한합니다. b) 초기 개발/테스트에 소요되는 시간과 비용이 증가했습니다.

문제 2) 문서가 잘못됨 - 필자는 문서에서 몇 가지 실수를 확인했습니다. 또한 문서는 나머지 문서와는 별도로 readme.txt 파일을 찾기 어려운 중요한 정보와 함께 흩어져 있습니다. 위험 수준 : 낮음 - 즉 초기 비용과 시간 부담 - 그러나 일단 문제가 계속되면이 문제로 인해 추가 문제가 발생할 위험이 최소화됩니다. 위험도 : a) 초기 개발 속도가 느립니다. b) 초기 설정/개발에 소요되는 시간과 비용이 증가합니다.

문제 3) 프린터 보안/SSL 인증이 제대로 계획 및 구현되지 않았습니다. 여기에는 여러 단계가 포함되어 있습니다. 매우 제한적이며 지속적인 위험을 야기하는 느린 얼룩말 서명 프로세스가 필요합니다. 위험 수준 : 높음 - 이것이 우리가이 솔루션을 사용할 수없는 이유입니다. 위험도 : a) 개발을 매우 특정한 서버 및 기술로 제한합니다. b) 초기 개발 속도를 늦 춥니 다. c) 초기 설정/개발에 소요되는 시간과 비용이 증가했습니다. d) 다음과 같이 프로젝트에 지속적으로 높은 수준의 위험이 발생합니다. ---> 아이디어는 회사가이 프린터 연결 솔루션에 의존한다는 것입니다. 따라서 잠재적 인 다운 타임으로 인해 주요 비즈니스가 중단 될 수 있습니다. ---> 다음 시나리오 중 하나는 새로운 Zebra 서명 인증서가 구성되어있는 동안 며칠 동안이 websocket 솔루션을 사용하는 모든 고객이 프린터 서비스를받지 않는다는 것을 의미합니다. ---> 1) 인증서 만료, 2) Cert가 무효화 됨 , 3) 서버 이동, 4) 도메인 세부 정보 변경, 5) 프린터가 특정 Tomcat/서버 설정을 확인하는 방법으로 인해 Tomcat 서버 설정이 수정 됨 ---> 또한 위의 5 가지 시나리오는 지금까지의 나의 테스트 - 내가 아직 만나지 않은 cert 실패를 의미 할 수있는 다른 가능한 제한이있을 수있다.

요약 : IMO 문제 3은 용납 할 수없는 위험이 따르며 Zebra 웹 소켓을 다시 고려하기 전에 다음 두 가지 사항이 필요합니다. 1) 웹 소켓이 서버에 어떻게 연결되어 있는지, 그리고 Zebra 직원이 현재 어둠에 노출되어 있기 때문에 서버에 연결하는 방법에 대한 적절한 문서가 필요합니다. 2) 인증 제한 사항 중 일부를 제거해야하므로 시간이 많이 걸리는 Zebra 상호 작용없이 문제를 해결할 수 있습니다.

+0

ZD-420 링크 프린터를 구입했으며 일주일 만에 프린터가 연결되는 PoC 웹 소켓 서버를 Python으로 설정하고 서버를 연결하면 ZPL에서 인쇄 작업을 푸시 백합니다. 설명서가 도움이되었지만, 내가 원했던 모든 것이 아니었지만 일단 철저히 처리하고 코드를 공개하면 얼룩말로 솔루션을 만드는 것이 훨씬 쉬워 질 것으로 믿습니다. –