이 목적을 달성하기 위해서, 본 발명에 따른 인쇄 장치는, 호스트 장치로부터 송신된 데이터를 수신 버퍼에 저장하고 수신 버퍼 내의 데이터에 근거하여 처리를 실행하는 정규 처리 모드와, 수신 버퍼 내의 데이터를 제거하는 삭제 처리 모드를 구비하는 인쇄 장치에 있어서, 정규 처리 모드 중 인쇄 장치 에러가 검출되면, 수신 버퍼 및 인쇄 버퍼에 데이터를 보존하고, 삭제 처리 모드로 전환하지 않는 제 1 처리 모드와, 정규 처리 모드 중 인쇄 장치 에러가 검출되면, 수신 버퍼 및 인쇄 버퍼 내의 모든 데이터를 제거하고, 삭제 처리 모드로 전환하는 제 2 처리 모드와, 정규 처리 모드 중 인쇄 장치 에러가 검출되면, 인쇄 버퍼 내의 데이터를 제거하고, 수신 버퍼 내의 데이터를 보존하며, 삭제 처리 모드로 전환하는 제 3 처리 모드중 하나를 선택하는 처리 모드 선택 수단을 구비한다.
이 구성은 애플리케이션 종류과 사용자의 윈하는 인쇄 결과에 따라 적절한 처리 모드를 선택할 수 있다. 예를 들어, 제 1 처리 모드가 선택되면, 인쇄 장치 에러가 발생했을 때 용지가 절단(분할)되지 않기 때문에, 연속적인 인쇄가 가능하다. 따라서, 데이터를 재송신할 필요가 없고, 용지를 허비하지 않는다.
또한, 제 2 처리 모드가 선택되면, 삭제 처리 모드가 활성화될 때 수신 버퍼 내의 데이터가 삭제되고, 삭제 처리 모드에서 데이터 삭제에 요구되는 시간이 단축될 수 있다. 또한, 인쇄 장치 상태를 감시하는 애플리케이션이 사용되고 있는 경우, 데이터를 처리하면서 애플리케이션이 인쇄 장치 상태를 감시하기 때문에, 파기되는 데이터에 인쇄 재개 커맨드(resume_printing command)가 포함되지 않도록 제어할 수 있다.
또한, 제 3 처리 모드를 선택하면, 수신 버퍼 내의 데이터를 저장한 채로, 삭제 처리 모드가 활성화된다. 따라서, 호스트 장치의 데이터 송신 중단 처리에 의해서 중단되지 않았던 데이터 또는 이미 송신중인 데이터에 인쇄 재개 커맨드가 포함되어 있는 경우에, 인쇄 재개 커맨드에 의해서 정규 처리 모드로 변경할 수 있다. 따라서, 수신 버퍼 내에 대량의 데이터가 남아 있는 경우에는, 삭제 처리 모드에서 수신 버퍼 내의 데이터 삭제 처리에 보다 많은 시간이 걸리는 반면, 인쇄 장치의 상태를 감시하지 않는 애플리케이션에 의한 데이터 처리가 중단없이 계속될 수 있다. 또한, 각 페이지에 포함된 인쇄 재개 커맨드를 갖는 인쇄 데이터에 따라 데이터가 인쇄될 경우, 에러가 발생한 때 인쇄중이던 페이지의 다음 페이지로부터 인쇄가 재개될 수 있다.
삭제 처리 모드에서는 특정한 커맨드를 제외하고는 호스트 장치로부터 송신된 모든 데이터를 폐기하는 것이 바람직하다.
이와 같이, 삭제 처리 모드에서, 특정한 커맨드를 제외하고 호스트 장치로부터 송신된 모든 데이터를 삭제함으로써, 불필요한 데이터, 즉, 호스트 장치가 삭제를 원하는 데이터를 확실히 삭제할 수가 있다. 또, 이들 특정한 커맨드는, 인쇄 재개 커맨드, 처리 모드(정규 처리 모드 또는 삭제 처리 모드) 확인 커맨드, 인쇄 장치 상태 요청 커맨드, 용지 잼(jam)과 같은 에러로부터 복구하는 에러 복구 커맨드인 것인 바람직하다.
정규 처리 모드 중에 인쇄 재개 커맨드가 수신되면, 인쇄 재개 커맨드는 폐 기되는 것이 바람직하다.
인쇄 장치 상태를 감시하지 않는 애플리케이션을 이용한 경우, 데이터의 속에 인쇄 재개 커맨드를 포함시키는(삽입하는) 것이 바람직하다. 그래도, 정규 처리 모드에서는 인쇄 재개 커맨드가 삭제되기 때문에 정규 인쇄가 계속될 수 있다.
또한, 삭제 처리 모드로부터 정규 처리 모드로 천이 시에 에러가 해소되지 않았으면, 동작은 삭제 처리 모드로 복귀되는 것이 바람직하다.
이 경우, 호스트 장치로부터의 인쇄 재개 커맨드가 수신되므로 정규 처리 모드가 선택되더라도, 삭제 처리 모드가 다시 재개되기 때문에 확실한 에러 해소가 보증된다.
또한, 인쇄 장치는, 정규 처리 모드로부터 개시할 지 또는 삭제 처리 모드로부터 개시할 지를 선택하는 시동 모드 선택 수단도 구비하는 것이 바람직하다.
따라서, 삭제 처리 모드로부터 시동함으로써, 인쇄 데이터가 송신중일지라도 운영자 에러로 인해 인쇄 장치가 재시동될 때, 및 불필요한 데이터가 호스트 OS의 플러그 앤 플레이 초기화 처리에 의해서 생성될 때를 포함해서, 불필요한, 관계없는 데이터를 메모리로부터 확실히 제거할 수 있다. 또한, 정규 처리 모드도 시동 모드로서 선택될 수 있기 때문에, 삭제 처리 모드와 양립될 수 없는 호스트 장치와 양립성을 유지할 수 있다.
또한, 이 인쇄 장치는, 정규 처리 모드로부터 삭제 처리 모드로의 천이 시, 호스트 장치로 삭제 처리 개시(start_deletion_process) 응답을 송신하는 삭제 처리 개시 응답 송신 수단과, 삭제 처리 모드로부터 정규 처리 모드로의 천이 시, 호 스트 장치로 삭제 처리 종료(end_deletion_process) 응답을 송신하는 삭제 처리 종료 응답 송신 수단을 더 포함하는 것이 바람직하다.
따라서, 인쇄 장치가 호스트 장치로 삭제 처리 개시 응답 및 삭제 처리 종료 응답을 송신할 수 있기 때문에, 호스트 장치(애플리케이션)는 인쇄 장치의 처리 모드를 파악할 수 있다. 또한, 호스트 장치는 삭제 처리 종료 응답으로부터 인쇄 재개 커맨드가 정상적으로 처리된 것도 알 수 있다.
또한, 인쇄 장치는 호스트 장치로 삭제 처리 개시 응답을 송신할 지 또는 삭제 처리 종료 응답을 송신할 지를 선택하는 모드 전환(mode_change) 응답 선택 수단을 더 구비하는 것이 바람직하다.
인쇄 장치가 호스트 장치로 어느 쪽 응답도 송신하지 않도록 설정함으로써, 이 구성은 인쇄 장치 상태를 감시하지 않는 애플리케이션과의 양립성을 제공한다.
또한, 인쇄 장치는 삭제 처리 개시 응답과 삭제 처리 종료 응답을 저장하는 송신 버퍼를 더 구비하는 것이 바람직하다. 과거의 삭제 처리 개시 응답과 삭제 처리 종료 응답이 송신되지 않고 버퍼링되어 있는 경우, 삭제 처리 모드가 재개되면, 삭제 처리 개시 응답 송신 수단은 송신 버퍼로부터 과거의 응답을 삭제하고, 가장 최근의 삭제 처리 개시 응답만 송신한다.
과거의 삭제 처리 개시 응답 및 삭제 처리 종료 응답이 송신 버퍼에 축적되어 있는 경우, 이 구성은 양 응답을 연달아 호스트 장치로 전송하는 것을 방지한다. 이것은 큰 간격으로 인쇄 장치의 상태를 감시하는 애플리케이션을 이용할 때, 복수의 응답이 연달아 전송됨으로써 제어기(CPU)에 과부하가 걸리는 것을 방지한 다.
본 발명의 인쇄 시스템은, 상술한 인쇄 장치 중 어느 하나와 호스트 장치를 포함하며, 인쇄 데이터의 선두에 인쇄 재개 커맨드를 부가하는 것을 특징으로 한다.
인쇄 장치 상태를 감시하지 않는 애플리케이션을 이용한 경우, 인쇄 데이터의 선두에 인쇄 재개 커맨드를 부가함으로써, 인쇄 장치에 에러가 발생하면, 에러 발생시 처리중이던 인쇄 데이터 다음의 데이터로부터 인쇄를 재개할 수가 있다.
또, 데이터가 인쇄 재개 커맨드가 부가된 후 인쇄 장치로 전송되도록, 애플리케이션이 인쇄 재개 커맨드를 부가한 데이터를 생성하거나, 또는 호스트 장치의 인쇄 드라이버가, 예를 들어, 애플리케이션으로부터 취득한 인쇄 데이터의 선두에 인쇄 재개 커맨드를 부가하도록 구성함으로써, 인쇄 재개 커맨드를 인쇄 데이터에 부가할 수 있다.
또한, 인쇄 장치가 인쇄 미디어로서 슬립(slips)에 인쇄할 때, 호스트 장치는 각 슬립에 대해 인쇄 데이터의 선두에, 또는 슬립 삽입을 지시하는 커맨드 직전에 인쇄 재개 커맨드를 부가하는 것이 바람직하다.
따라서, 인쇄 장치 상태를 감시하지 않는 애플리케이션을 이용한 경우, 각 슬립에 대한 인쇄 데이터의 선두 또는 슬립의 삽입을 지시하는 커맨드의 직전에 인쇄 재개 커맨드를 부가함으로써, 에러 발생 시에 처리중이던 페이지의 다음 페이지로부터 인쇄를 재개할 수가 있다.
또한, 인쇄 장치가 인쇄 미디어로서 슬립에 인쇄할 때, 호스트 장치는 슬립 배출을 지시하는 커맨드 직전에 인쇄 재개 커맨드를 부가하고, 인쇄 미디어가 연속 용지이면, 호스트 장치는 연속 용지의 절단을 지시하는 커맨드 직전에 인쇄 재개 커맨드를 부가하는 것이 바람직하다.
슬립 배출을 지시하는 커맨드 직전 또는 연속 용지의 절단을 지시하는 커맨드 직전에 인쇄 재개 커맨드를 부가함으로써, 이들 처리가 실패없이 확실히 실행될 수 있다.
본 발명에 따른 다른 인쇄 시스템은, 상술한 바와 같은 인쇄 장치와, 호스트 장치를 포함한다. 호스트 장치는, 삭제 처리 개시 응답을 수신하면, 인쇄 장치로 데이터 송신을 중단하고 미 송신 데이터를 삭제하는 데이터 삭제 수단과, 인쇄 장치에 의해서 에러 복구를 확인한 후 인쇄 장치로 인쇄 재개 커맨드를 송신하는 인쇄 재개 커맨드 송신 수단을 포함한다.
이 인쇄 시스템의 호스트 장치는, 인쇄 재개 커맨드가 송신되는 타이밍을 제어할 수 있다. 그 결과, 인쇄 장치 상태를 감시하는 애플리케이션을 이용한 경우, 인쇄가 완료되지 않은 데이터(즉, 호스트 장치가 삭제되기 원하는 데이터)가 확실히 삭제될 수 있고, 원하지 않는 데이터를 인쇄하는 것을 방지할 수 있다.
호스트 장치는, 인쇄 장치의 처리 모드를 확인하도록 처리 모드 확인 커맨드를 송신하는 처리 모드 확인 커맨드 송신 수단을 포함하고, 인쇄 장치는, 처리 모드 확인 커맨드를 수신하면, 삭제 처리 모드 중에 있는 경우 삭제 처리 개시 응답을 송신하고, 정규 처리 모드 중에 있는 경우 삭제 처리 종료 응답을 송신한다.
데이터를 송신하기 전에 처리 모드 확인 커맨드를 송신함으로써, 호스트는 인쇄 장치의 처리 모드에 대응하는 데이터를 송신할 수 있다. 따라서, 인쇄 장치가 삭제 처리 모드로 설정됨으로써, 인쇄 장치로 전송되는 데이터의 삭제가 방지될 수 있다. 또한, 인쇄 장치는 삭제 처리 모드에서 삭제 처리 개시 응답을 회복하고, 정규 처리 모드에서 삭제 처리 종료 응답을 송신하기 때문에, 호스트 장치는 처리 모드에 따른 일반 업무와 제어와 관련하여 운영할 수 있다.
본 발명은 상술한 바와 동일한 동작 및 효과가 있는 인쇄 장치용 제어 방법으로서 표현될 수도 있다.
본 발명의 충분한 이해와 함께 다른 목적 및 기능은 첨부된 도면과 관련하여 다음 상세한 설명 및 청구범위를 참조함으로써, 보다 명확해질 것이다.
이하, 본 발명의 바람직한 실시예를 첨부 도면을 참조하면서 상세히 설명한다.
인쇄 장치 등의 호스트 장치와 접속되어 사용되는 단말 장치가 에러나 장치가 오프라인으로 되는 것과 같은 단말측 상의 문제를 검출한 경우, 본 발명은 단말 장치가 삭제 처리 모드로 진행하도록 할 수 있다. 이 삭제 처리 모드에서는 인쇄 데이터 및 특정한 커맨드를 제외한 커맨드를 포함하는 데이터가 삭제된다. 그 결과, 호스트의 데이터 송신 중단 처리를 멈추기에는 너무 늦은 소정 데이터가 있거나, 에러가 발생했거나 단말 장치가 오프라인으로 되었을 때 호스트로부터 이미 송신된 데이터가 있는 경우, 인쇄 처리와 같은 불필요한 처리는 그와 같은 데이터에 대해 행해지지 않는다.
삭제 처리 모드는 호스트로부터의 처리 재개 커맨드(예를 들어, 인쇄 재개 커맨드)를 송신함으로써 종결된다. 한편, 호스트 장치는 정규 처리 모드를 재개하는 제어를 행할 수 있기 때문에, 완전하게 처리되지 않은 미처리 데이터(호스트 장치가 삭제하고자 하는 데이터)를 확실히 삭제할 수 있다.
이하, POS 시스템에 사용되는 호스트 장치(금전 등록 단말) 및 인쇄 장치(영수증 인쇄 장치)를 예로 들어, 본 발명에 따른 인쇄 장치 및 인쇄 시스템을 설명한다. 본 발명에 따른 프로그램은, 본 발명에 따른 호스트 장치 및 인쇄 장치를 첨부된 청구범위의 기재와 같이 동작시킬 수 있으며, 이 프로그램의 상세한 설명은 하기에서는 생략한다. 또한, 본 발명에 따른 인쇄 제어 방법은 하기의 인쇄 장치의 설명 부분에서 설명하므로, 인쇄 장치 제어 방법에 대한 별도의 설명은 생략한다.
도 l은 본 발명의 바람직한 실시예에 따른 인쇄 시스템(1) (POS 시스템)의 구성을 나타내는 도면이다. 이 도면에 도시된 바와 같이, 본 발명의 본 실시예에 따른 인쇄 시스템(1)은, 적어도 하나의 호스트 장치(10), 인쇄 장치(20), 및 POS 서버(30)를 포함한다. 호스트 장치(10)는, 예를 들어, 운영자에 의한 상품 정보의 입력에 따라서 회계 처리를 하고, 판매 영수증, 일지, 및 비준 슬립을 인쇄하는데 이용되는 인쇄 데이터를 생성한다. 인쇄 장치(20)는 호스트(10)로부터 송신된 인쇄 데이터 및 제어 데이터에 따라서 인쇄한다. 도 1에는 단 하나만 도시되어 있는 복수의 호스트(10)(본 실시예에서 POS 단말)는 호스트(10)를 지원하고 제어하는 POS 서버(30)에 접속된다. 호스트(10)와 인쇄 장치(20)는 함께 하나의 POS 단말로 형성되어 한명의 운영자에 의해서 운영된다.
호스트(10)는, 케이스(18)의 앞 부분 표면에 운영자가 상품 정보를 입력하는 데 사용하는 키보드(14)와, 운영자가 입력된 정보를 확인할 수 있는 케이스(18)의 오른쪽 뒷부분의 운영자 표시부(17a)와, 케이스(18) 내측의 캐시 드로워(18a)를 구비한다. 제품 상의 바코드를 판독하기 위한 바코드 스캐너(16)가 케이스(18)의 우측에 연결되고, 고객 신용 카드를 판독하기 위한 슬롯을 구비한 카드 판독기(15)는, 예컨대 본 시스템에서 키보드(14)의 우측에 배치된다. 또한, 고객이 입력된 제품 정보를 확인할 수 있는 고객 표시부(17b)는 케이스(18)의 후방에 배치된다.
또한, 호스트(10)는, 키보드(14)나 바코드 스캐너(16)로부터 입력된 상품 정보에 근거하여 인쇄 데이터를 생성하여, POS 서버(30)를 거쳐서 인쇄 장치(20)로 송신한다. 또한, 호스트(10)는, 인쇄 장치(20)로부터의 상태 보고나 응답을 수신하여, 에러 발생의 유무나 처리 모드(정규 처리 모드 또는 삭제 처리 모드, 후술함)의 확인 등을 포함하는 인쇄 장치(20)의 상태를 감시해서, 인쇄 장치(20)를 제어하기 위한 제어 데이터 및 코맨드를 송신한다.
인쇄 장치(20)는, 앞 부분이 열린 케이스(21)와, 앞쪽 개구를 개폐하기 위한 커버(22)를 갖는다. 커버(22)를 열면, 연속 용지 P의 적재, 인쇄 장치 내부의 유지 보수 및 점검이 가능하다. 일반적으로 연속 용지 P는 록이며, 인쇄 장치 내긍의 용지 수용부(25)에 수용된다. 롤 용지(P)의 끝이 커버(22)에 형성된 용지 배출구(24)를 거쳐서 용지 수용부(25)로부터 케이스(21) 외부로 운반된다. 용지 절단 메카니즘(도시 생략)도 용지 배출구(24)의 내측에 배치된다.
인쇄 장치(20)는 케이블 및 커넥터를 거쳐서 호스트(10)에 연결되어, 예컨 대, 호스트(10)로부터의 인쇄 커맨드에 따라 인쇄(인쇄 처리)를 제어한다. 즉, 호스트(10)는 호스트(10)로부터의 커맨드에 따라 인쇄 헤드(122)(잉크젯 헤드)와 잉크 공급부(125)를 제어하여, 문자(예를 들어, 글자 및 기호) 및 이미지(예를 들어, 로고)를 인쇄하여, 용지 이송 모터(124)를 구동하여 롤 용지 P를 용지 배출구(24)(도 4 참조)쪽으로 반송한다.
인쇄를 완료하면, 인쇄된 부분의 후단이 용지 절단기의 절단 위치에 도달할 때까지 롤 용지 P를 이송한다. 이어서, 용지 절단기(132)(도 4 참조)에 의해서 용지가 절단되도록 용지 절단 모터(131)가 구동되어, 인쇄 용지가 용지 배출구(24)로부터 옮겨져, 고객에게 제공될 수 있다.
복수의 LED(23)가 케이스(21)의 전면(前面)에 배치되어 인쇄 장치(20) 내의 특정 문제의 원인을 나타낸다. LED(23)가 구동되어, 용지 수용부(25)에 용지가 없을 때, 잉크 공급이 고갈되었을 때, 용지 잼이 발생했을 때, 또는 인쇄를 계속하기 어려운 기타 에러가 발생했을 때를 포함하는 특정 문제 또는 에러에 따라 등을 점등 또는 점멸한다.
다음에, 도 2 내지 도 4를 참조하여, 호스트(10) 및 인쇄 장치(20)의 제어 구성에 관해서 설명한다. 도 2는 호스트(10)의 기능 블록도, 도 3은 인쇄 장치(20)의 기능 블록도, 도 4는 인쇄 장치(20)의 제어 블록도이다. 우선 도 2를 참조하여 호스트(10)의 제어 구성을 설명한다.
도 2에 도시된 바와 같이, 호스트(10)는, 인쇄 장치(20)와 데이터 통신하는 인터페이스(31)와, 인쇄 장치(20)로부터의 상태 보고, 응답 및 기타 데이터를 저장 하는 수신 버퍼로서 기능하는 데이터 수신부(32)와, 인쇄 장치(20)의 에러 발생시 및 시동시에 정규 처리 모드 또는 삭제 처리 모드를 운영 모드로서 설정하기 위한 커맨드의 생성을 포함하여, 모드 선택 처리를 실행하는 모드 설정부(33)와, 인쇄 장치(20)로부터의 상태 데이터 및 응답에 근거하여, 인쇄 장치(20)의 상태를 감시하는 인쇄 장치 상태 감시부(34)와, 롤 용지 P에 인쇄하기 위한 인쇄 데이터를 생성하는 인쇄 데이터 생성부(35)와, 인쇄 장치(20)에서의 삭제 처리 모드를 종료시키기 위한 인쇄 재개 커맨드를 생성하는 인쇄 재개 커맨드 생성부(36)와, 호스트(10) 동작을 제어하는 제어부(37)와, 애플리케이션이 관리하는 데이터 버퍼, 및 OS가 관리하는 송신 버퍼로서도 기능하며, 커맨드 및 인쇄 데이터를 송신하는 데이터 송신부(38)를 구비한다.
인쇄 장치 상태 감시부(34)는 인쇄 장치(20)로부터 ASB(Automatic Status Back) 보고를 수신함으로써, 용지나 잉크 공급이 고갈되는 등의 인쇄 장치(20)의 상태를 감시한다. 또한, 처리 ID 응답, 삭제 처리 개시 응답, 삭제 처리 종료 응답, 전원 온 보고 등을 이용하여, 인쇄 장치(20)의 데이터 처리의 진행을 감시한다.
ASB 기능은 특정 인쇄 장치(20)의 상태 정보에 변경이 있을 때, 자동으로 호스트(10)에 보고한다.
또, 처리 ID 응답은, 호스트(10)에 의해서 제어 커맨드나 인쇄 데이터에 선택적으로 삽입되어 인쇄 장치(20)로 송신된 처리 ID에 따라 송신되는 응답이며, 제어 커맨드나 인쇄 데이터가 인쇄 장치(20)에 의해서 처리된 것을 나타내는 것이다. 이것은 호스트(10)가 인쇄 장치(20)의 내부 상태와 동기를 취하면서 데이터를 송신할 수 있게 한다.
또한, 삭제 처리 개시 응답 및 삭제 처리 종료 응답은, 각기, 인쇄 장치(20)에서의 삭제 처리 모드의 시작과 종료를 나타내는 응답이다. 따라서, 삭제 처리 종료 응답은 정규 처리 모드가 재개된 것도 나타낸다. 이들 응답은 호스트(10)가 인쇄 장치(20)의 현재 처리 모드를 파악할 수 있게 한다. 또, 인쇄 장치(20)의 처리 모드 및 이들 응답은 나중에 보다 상세히 설명한다.
전원 온 보고는, 인쇄 장치(20)의 전원이 턴온되어 인쇄 장치의 시동이 안료되었을 때 초기화 처리가 실행되는 것을 나타내며, 그 결과 호스트(10)는 인쇄 장치(20)의 상태를 확인할 수가 있다.
인쇄 장치(20)가 정규 처리 모드로 설정되면, 제어부(37)는 정규 운영 처리(인쇄 데이터 및 제어 커맨드의 송신)를 실행한다. 인쇄 장치 상태 감시부(34)에 의해 인쇄 장치(20)가 삭제 처리 모드로 이행한 것을 검출하면(즉, 삭제 처리 개시 응답을 검출하면), 현재 실행중인 데이터 송신 처리를 모두 정지한다. 또한, 인쇄 장치(20)로부터 에러 복구 상태 보고를 수신하면, 인쇄 재개 커맨드 생성부(36)를 거쳐 처리하여 인쇄 재개 커맨드를 출력한다. 그 후, 인쇄 장치 상태 감시부(34)에 의해 인쇄 장치(20)가 정규 처리 모드를 재개한 것을 검출하여(즉, 삭제 처리 종료 응답을 검출하여), 인쇄 데이터의 송신 처리를 재개한다.
다음에, 도 3을 참조하여 인쇄 장치(20)의 제어 구성에 관해서 설명한다. 도 3에 도시된 바와 같이, 인쇄 장치(20)는, 호스트(10)와 데이터 통신하는 인터페 이스(41)와, 수신한 인쇄 데이터나 즉시 실행되지 않는 제어 커맨드를 저장하는 수신 버퍼로서 기능하는 데이터 수신부(42)와, 호스트(10)로부터 수신한 인쇄 재개 커맨드나 인쇄 장치(20)의 에러 검출에 근거해서 처리 모드를 판정하여, 식별된 처리 모드에 따라 정규 처리 모드 제어기(44) 또는 삭제 처리 모드 제어기(45)(후술함)에 제어를 넘기는 처리 모드 판정부(43)와, 처리 모드 판정부(43)에 의해 정규 처리 모드라고 판정된 경우에 인쇄 장치를 제어하는 정규 처리 모드 제어부(44)와, 처리 모드 판정부(43)에 의해 삭제 처리 모드라고 판정된 경우에 인쇄 장치를 제어하는 삭제 처리 모드 제어부(45)와, 에러 발생시 및 인쇄 장치의 시동시에 실행되는 처리 모드를 결정하기 위한 호스트(10)로부터의 설정(커맨드)을 저장하는 선택 모드 메모리(46)와, 커버 센서(142), 용지 센서(143) 및 잉크 잔량 센서(144)(도 4에 도시됨)의 상태를 검출하여, 인쇄 장치(20)의 에러 유무를 검출하고, 인쇄 장치(20)의 인쇄 속행 가능 여부를 감시하는 에러 검출부(47a)를 갖는 인쇄 장치 상태 감시부(47)와, 호스트(10)로부터 송신된 인쇄 데이터에 근거한 영상 데이터를 저장하는 인쇄 버퍼로서 기능하고, 인쇄를 제어하는 인쇄 제어기(48)와, 호스트(10)로 송신하는 상태 및 응답을 생성하는 상태/응답 생성기(49)와, 상태/응답 생성기(49)에 의해 생성된 상태 및 응답 데이터를 포함하는, 호스트(10)로 송신될 데이터를 저장하는 송신 버퍼로서 기능하는 데이터 송신부(50)를 갖는다.
정규 처리 모드 제어기(44)는, 호스트(10)로부터 수신한 인쇄 데이터 및 커맨드를 처리하고, 인쇄 장치(20)에 에러가 발생한 경우에는, 삭제 처리 모드 제어기(45)로 제어를 넘긴다. 또한, 정규 처리 모드 제어 중에 인쇄 재개 커맨드를 수 신한 경우에는, 정규 처리 모드 제어기(44)는 인쇄 재개 커맨드를 삭제한다.
동작이 삭제 처리 모드로 이행된 경우 삭제 처리 모드 제어기(45)는 호스트(10)로 삭제 처리 개시 응답을 송신하고, 호스트(10)로부터 인쇄 재개 커맨드를 수신한 경우 삭제 처리 모드 제어기(45)는 삭제 처리 종료 응답을 송신하고, 정규 처리 모드 제어기(44)로 제어를 되넘긴다. 삭제 처리 모드 제어기(45)는, 삭제 처리 모드의 처리 대상으로 되어있는 특정한 커맨드만을 실행하고, 기타 커맨드 또는 수신된 인쇄 데이터는 삭제한다. 삭제 처리 모드 제어기(45)에 의해서 실행되는 특정 커맨드에는 인쇄 재개 커맨드, 처리 모드(정규 처리 모드 또는 삭제 처리 모드가 선택됨) 확인 커맨드, 인쇄 장치의 상태 요청 커맨드, 용지 잼이나 기타 에러로부터 복구하기 위한 에러 복구 커맨드가 포함된다.
상태/응답 생성기(49)는 상태 감시부(47)에 의해서 검출된 인쇄 장치(20)의 상태를 보고하기 위한 ASB 상태 보고, 및 데이터 처리 상태를 보고하는 다양한 응답을 생성한다. 이들 응답에는 처리 ID 응답, 삭제 처리 개시 응답, 삭제 처리 종료 응답, 및 전원 온 보고가 포함된다.
다음에, 도 4에 나타내는 인쇄 장치(20)의 제어 블록도에 관해서 설명한다. 도 4에 도시된 바와 같이, 인쇄 장치(20)는, 인쇄 장치(20)의 에러를 나타내기 위한 LED(23)를 포함하는 표시부(110), 인쇄부(120), 용지 절단부(130), 검출부(140), 구동부(150)을 구비하고, 제어부(200)는 이들 부분에 연결되어, 인쇄 장치(20)를 제어한다.
인쇄부(120)는 롤 용지 P를 수용하는 용지 수용부(25)와, 인쇄 헤드(본 실시 예에서는 잉크젯 헤드)(122)와, 용지 이송 모터(124)에 의해 롤 용지 P를 운반하는 용지 이송부(123)와, 잉크 카트리지(126)로부터 잉크를 공급하는 잉크 공급부(125)를 갖고, 호스트(10)로부터 송신된 인쇄 데이터에 따라서 인쇄한다.
용지 절단부(130)는 용지 절단기(132)와 용지 절단기(132)를 구동하는 용지 절단기 모터(131)를 갖고, 인쇄된 부분이 지나가는 지점에서 롤 용지 P를 절단한다.
검출부(140)는 커버(22)의 개폐를 검출하는 커버 센서(142)와, 용지 센서(143), 및 인크 잔량 센서(144)를 포함한다. 용지 센서(143)는 용지 수용부(25)에 롤 용지 P가 수용되는지 또는 제거되는 지를 검출하고, 도시 생략된 광학 센서(투과형 또는 반사형)에 의해서 용지의 종류를 감지한다. 이크 잔량 센서(144)는 잉크 카트리지(126)에 남아 있는 잉크의 양이 어느 정도인지 검출한다.
구동부(150)는 표시 드라이버(151), 헤드 드라이버(152), 모터 드라이버(153)(이송 모터 드라이버(153a)와 절단기 모터 드라이버(153b))를 포함하고, 각각을 구동 제어한다.
제어부(200)는 내부 버스(270)를 통해서 접속된 CPU(210), ROM(220), 문자 생성기 ROM(CG-ROM)(230), RAM(240), 플래시 롬(250) 및 내부 입출력 제어 장치(IOC : Input Output Controller)를 포함한다. ROM(220)은 각 처리 모드에서의 동작을 제어하기 위한 프로그램과 CPU(210)에 의해서 실행되는 프로그램을 저장하는 제어 프로그램 블록(221)과, 데이터 테이블 및 제어 데이터를 저장하기 위한 제어 데이터 블록(222)을 구비한다. 또한, CG-ROM(230)은 문자 및 기호의 폰트 데 이터를 기억하고, 소망하는 문자나 기호를 위한 문자 코드가 수신되면, 대응하는 폰트 데이터를 출력한다. 또, CG-ROM(230)은 호스트(10)의 처리 능력에 따라서 생략될 수도 있다.
RAM(240)은 작업 메모리로서, 플래그를 저장하는데 이용되는 작업 영역 블록(241), 예를 들어, 호스트(10)로부터 수신된 인쇄 데이터 및 커맨드를 저장하기 위한 수신 버퍼(242)(도 3의 데이터 수신부(42)에 상당)와, 호스트(10)에 송신하는 상태 및 응답을 저장하는 송신 버퍼(243)(도 3의 데이터 송신부(50)에 상당)와, 에러 발생시 선택되는 동작 모드를 제어하는 모드 선택 커맨드(도 5(a) 참조)에 의해서 설정되는 값을 저장하는 에러 상태 모드 블록(244)(도 3의 선택 모드 메모리(46)에 상당)과, 인쇄하기 위한 이미지 데이터를 저장하다 인쇄 버퍼(245)가 포함된다.
플래시 롬(250)은, 시동 모드 선택 커맨드 설정(도 5(d) 참조)을 저장하는 시동 모드 블록(251)(도 3의 선택 모드 메모리(46)에 상당)과, 용지 센서(143)로부터의 검출 결과에 의해서 식별되는 용지 종류(연속형, 슬립, 전용지)의 식별 데이터를 저장하는 용지 종류 데이터 블록(252)을 갖는다. 플래시 롬(250)을 이용하면, 전원 턴 오프시 데이터가 소거되지 않는 점에 유의해야 한다. 또한, 용지 종류의 설정은, 용지 센서(143)로부터의 검출 결과에 한정되는 것은 아니고, 인쇄 장치(20) 상의 딥(DIP) 스위치에 의해 설정되거나 호스트(10)로부터 송신된 제어 데이터에 의해서 설정될 수 있다.
IOC(260)에는, CPU(210)의 기능을 보충하고 주변 회로와 교환하는 인터페이 스 신호를 처리하기 위한 논리 회로가 구비되며, 게이트 어레이, 주문형 LSI, 또는 기타 장치로 이루어진다. 따라서, IOC(260)는, 호스트(10)로부터의 인쇄 데이터나 제어 데이터를 그대로 또는 내부 처리 후에 내부 버스(270)로 전달할 수 있다.
이와 같이 구성되어, CPU(210)는, ROM(220) 내에 저장된 제어 프로그램에 따라서, IOC(260)를 거쳐서 호스트(10) 또는 인쇄 장치(20)의 다른 부분으로부터의 신호 및 데이터를 이용해서, CG-ROM(230)로부터의 폰트 데이터, RAM(240) 내의 데이터를 처리하여, IOC(260)를 거쳐서 인쇄 장치(20)의 다른 부분으로 신호 및 데이터를 출력함으로써, 호스트(10)로부터 송신된 제어 커맨드에 따른 모드 선택 및 인쇄 처리를 제어한다.
다음에, 도 5을 참조하여 호스트(10)로부터 인쇄 장치(20)에 송신되는 제어 커맨드에 관해서 설명한다. 도 5(a)에 도시된 바와 같이, 에러 상태 모드 선택 커맨드 ESC A m1 m2는 에러 발생시 실행될 처리를 결정한다.
m1=0인 경우(제 1 처리 모드), 에러 발생시 삭제 처리 모드가 선택되지 않는다. 이 경우, 수신 버퍼(242) 및 인쇄 버퍼(245) 내에 저장된 인쇄가 완료되지 않은 데이터를 유지한다.
m1=1인 경우(제 2 처리 모드), 에러 발생시 수신 버퍼(242) 및 인쇄 버퍼(245) 내에 저장된 인쇄가 완료되지 않은 데이터는 메모리로부터 삭제한 후, 삭제 처리 모드가 선택된다.
m1=2인 경우(제 3 처리 모드), 에러 발생시 인쇄 버퍼(245) 내에 저장된 인쇄가 완료되지 않은 데이터는 메모리로부터 삭제되지만, 수신 버퍼(242) 내에 저장 된 인쇄가 완료되지 않은 데이터는 유지된 후, 삭제 처리 모드가 선택된다.
따라서, 파라미터 m1을 변화시킴으로써, 애플리케이션의 종류나 소망하는 인쇄 결과에 따라서 적절한 처리 모드를 선택할 수가 있다. 즉, 에러 상태 처리 모드 선택 수단이 달성된다. 또한, 보다 구체적으로 제 1 처리 모드(m1=0)를 선택하면, 원하는대로 인쇄를 지속할 수 있다. 이것은 에러로 인해 인쇄 출력이 섹션으로 분할되지 않은 경우, 즉, 인쇄 출력이 중단 및 섹션으로 분할되지 않고 인쇄가 지속되는 경우에 유효하다. 따라서, 인쇄 데이터를 다시 전송할 필요가 없고, 용지의 낭비를 방지할 수 있다.
또한, 제 2 처리 모드(m1=1)가 선택되면, 수신 버퍼(242)와 인쇄 버퍼(245) 내의 모든 데이터가 파기되고, 삭제 처리 모드에서 데이터를 삭제하는 데 요하는 시간이 보다 짧아진다. 또한, 인쇄 장치(20)의 상태를 감시하는 애플리케이션을 이용하고 있는 경우에는, 인쇄 장치(20)의 상태를 감시하면서 처리를 제어할 수 있고, 문제 해소를 나타내는 상태 보고가 수신된 후 인쇄 재개 커맨드를 송신함으로써 문제 없이 처리를 속행할 수 있다.
제 3 처리 모드(m1=2)가 선택되면, 수신 버퍼(242) 내의 데이터를 보유한 채로, 삭제 처리 모드가 선택된다. 그 결과, 에러 발생시에 호스트(10)의 데이터 송신 중단 처리에 의해서 중지되지 않은 데이터와, 이미 송신된 데이터(즉, 호스트(10)의 OS 송신 버퍼(512) 내의 데이터, POS 서버(30)의 데이터 버퍼(531), 인쇄 장치(20)의 수신 버퍼(242)) 중에 인쇄 재개 커맨드가 포함되어 있는 경우에, 인쇄 재개 커맨드에 의해서 정규 처리 모드가 재개될 수 있다. 따라서, 삭제 처리 모드가 활성화된 후, 수신 버퍼(242) 내의 데이터를 동시에 1바이트씩 확인하면서 삭제하기 때문에 삭제 처리에 많은 시간이 걸리지만, 인쇄 장치(20)의 상태를 감시하지 않는 애플리케이션이더라도 문제없이 처리를 재개할 수가 있다.
에러 상태 모드 선택 커맨드 ESC A m1 m2의 파라미터 m2는 처리 모드 변경시 호스트(10)로 응답을 송신할지의 여부를 지정한다(모드 변경 응답 선택 수단). 예컨대, m2=0인 경우에는, 본 실시예의 처리 모드 변경시 호스트(10)로 응답을 송신하지 않는다. 또한, m2=1인 경우에는, 정규 처리 모드로부터 삭제 처리 모드로 처리 모드 변경시 삭제 처리 개시 응답을 호스트(10)로 전송하고, 삭제 처리 모드로부터 정규 처리 모드로 동작 변경시 삭제 처리 종료 응답을 전송한다.
따라서, 인쇄 장치(20)로부터 삭제 처리 개시 응답 및 삭제 처리 종료 응답을 송신함으로써, 호스트(10)는 인쇄 장치(20)의 현재 처리 모드를 파악할 수가 있다. 또한, 삭제 처리 종료 응답은 인쇄 재개 커맨드가 정상적으로 처리된 것을 확인할 수가 있다.
또한, 처리 모드 변경시 응답을 호스트(10)로 송신할지의 여부를 선택할 수 있기 때문에, 파라미터 m2=0으로 설정하여 두 응답 모두 송신하지 않음으로써, 인쇄 장치(20)의 상태를 감시하지 않는 애플리케이션과 양립할 수 있다.
또, 에러 발생시의 처리 모드를 선택하고, 상술한 바와 같이 커맨드에 의해서 처리 모드 변경시 응답의 전송 여부를 선택하는 대신에, 인쇄 장치(20)에 메모리 스위치를 제공할 수 있다. 이 경우, 적절한 메모리 스위치를 재설정하기 위한 제어 데이터를 호스트(10)로부터 송신하여 대응하는 선택을 행할 수 있다. 또한, 그 대신에 인쇄 장치(20)에 딥 스위치를 마련하여, 대응하는 선택을 행하도록 설정할 수 있다.
다음에, 도 5(b)를 참조하여 인쇄 재개 커맨드에 관해서 설명한다. 상술한 바와 같이, 인쇄 재개 커맨드는 삭제 처리 모드를 그만두고 정규 처리 모드를 재개하라는 지시로서, 본 발명의 본 실시예에서는 ESC B dl … dk로 표기되며, 여기에서 dl … dk는, 예컨대 "FINISH"와 같은 문자열 또는 임의의 키워드 또는 값이다. 이 키워드나 값은 인쇄 장치(20) 내의 플래시 롬(250)에 저장된다. 파라미터로서 임의의 키워드를 이용함으로써, 우연한 일치로 인한 오동작을 방지할 수 있다. 또한, 인쇄 장치(20)의 상태를 감시하는 애플리케이션을 이용한 경우에는, 적절한 시간에 인쇄 재개 커맨드를 송신함으로써 정규 처리 모드로의 복귀를 애플리케이션이 관리할 수가 있고, 인쇄가 완료되지 않은 데이터를 확실히 삭제할 수 있다. 또한, 인쇄 장치(20)의 상태를 감시하지 않는 애플리케이션을 이용하는 경우에는, 인쇄 데이터의 선두에 인쇄 재개 커맨드를 부가함으로써, 에러 발생시 처리중이던 페이지의 다음 페이지로부터 인쇄를 재개할 수가 있다. 또한, 롤 용지 P의 절단을 지시하는 커맨드, 또는 인쇄 미디어가 슬립인 경우에는 해당 슬립의 배출을 지시하는 커맨드 등과 같이 확실히 실행될 커맨드 데이터 직전에 인쇄 재개 커맨드를 부가함으로써, 이들 커맨드를 확실히 실행시킬 수 있다.
다음에, 도 5(c)를 참조하여 처리 모드 확인 커맨드에 관해서 설명한다. 처리 모드 확인 커맨드 ESC C m은 인쇄 장치(20)의 현재 처리 모드를 확인하는 데 사용된다. 파라미터 m1은, 예컨대 m1=1로 설정될 수 있다. 예를 들어, 인쇄 데이터 를 송신하기 전에 처리 모드 확인 커맨드를 송신함으로써, 호스트(10)는 인쇄 장치(20)의 처리 모드에 적절한 데이터를 송신할 수 있다. 이것은, 예를 들어, 인쇄 장치(20)가 삭제 처리 모드에 있을 때 인쇄 데이터의 송신을 억제하고, 결과적으로 인쇄 데이터의 손실을 방지한다. 또한, 호스트(10)의 애플리케이션이 시동하기 전에, 인쇄 장치(20)가 삭제 처리 모드로 되어 있는 경우, 애플리케이션은 삭제 처리 개시 응답을 수신하지 않을 것이다. 그러나, 이 처리 모드 확인 커맨드를 사용함으로써 인쇄 장치(20)가 삭제 처리 모드에 있는지를 판정할 수 있다.
이 처리 모드 확인 커맨드 ESC C m에 의해서 질문이 있을 때, 인쇄 장치(20)는 삭제 처리 개시 응답 또는 삭제 처리 종료 응답을 송신한다. 즉, 인쇄 장치(20)가 삭제 처리 모드인 경우 삭제 처리 개시 응답을 송신하지만, 인쇄 장치(20)가 정규 처리 모드인 경우 삭제 처리 종료 응답을 송신한다. 처리 모드 변경시 송신되는 응답과 동일하게 응답함으로써, 호스트(10)는 동일한 태스크를 이용하여 처리 모드에 적합한 처리를 제어할 수 있다.
다음에, 도 5(d)를 참조하여 시동 모드 선택 커맨드에 관해서 설명한다. 상술한 바와 같이, 시동 모드 선택 커맨드는 인쇄 장치(20)가 정규 처리 모드로부터 시동할지 또는 삭제 처리 모드로부터 시동할지를 제어한다. 이 시동 모드 선택 커맨드는 ESC D m(시동 처리 모드 선택 수단)으로 표기된다.
파라미터 m=0인 경우, 인쇄 장치는 정규 처리 모드로부터 시동한다. 파라미터 m=1인 경우, 인쇄 장치는 삭제 처리 모드로부터 시동한다. 삭제 처리 모드로부터의 시동하도록 인쇄 장치를 설정함으로써(m=1), 예컨대 운영자의 실수로 인해 인 쇄 장치가 재시동 될 때, 예를 들어, 인쇄되지 않고 버퍼링된 데이터가 있거나, 호스트(10) 운영 시스템이 부팅될 때 플러그 앤 플레이에 의해서 생성된 불필요한 데이터가 있더라도 원하지 않는 데이터를 확실히 삭제할 수 있다. 어떤 장치(단말 장치)가 호스트(10)의 직렬 포트에 접속되는지를 판정하기 위해 출력되는 데이터가 이 원하지 않는 데이터의 일예이다.
또한, 정규 처리 모드로부터 시동할지, 또는 삭제 처리 모드로부터 시동할지를 선택할 수 있게 함으로써, 호스트(10)(애플리케이션)가 삭제 처리 모드와 양립되지 않을 때, 양립될 수 없는 문제점을 방지할 수 있다. 또, 이 시동 모드 선택 커맨드의 값은 인쇄 장치(20)의 시동시의 동작을 결정하므로, 플래시 롬(250) 또는 기타 비휘발성 메모리에 저장되어야 함에 유의해야 한다.
상술한 에러 상태 처리 모드 선택 수단 및 모드 변경 응답 선택 수단과 같이, 시동 처리 모드 선택 수단은 예컨대 메모리 스위치나 딥 스위치를 이용하여 구성될 수 있다.
다음에, 도 6 내지 도 13의 흐름도를 참조하여, 인쇄 장치(20) 및 호스트(10)의 동작을 설명한다. 도 6 내지 도 10 및 도 13은, 인쇄 장치(20)의 상태를 감시하는 애플리케이션을 이용한 경우에 적용되고, 도 11 및 도 12는 인쇄 장치(20)의 상태를 감시하지 않는 애플리케이션을 이용한 경우를 적용한다.
먼저, 도 6을 참조하여 정규 데이터 처리 중, 즉, 정규 처리 모드에서의 인쇄 장치(20)의 동작을 설명한다. 도 6에 도시된 바와 같이, 인쇄 장치(20)가 호스트(10)로부터 데이터를 수신하면(S11), 에러 산태 모드 선택 커맨드(ESC A)가 송신 되었는지를 확인한다(S12). 만약 그러면(S12에서 "예"일 경우), 커맨드 값 A(파라미터 m1, m2)는 에러 상태 모드 블록(244)(도 4 참조)으로 저장된다(S13).
에러 상태 모드 선택 커맨드가 수신되지 않은 경우(S12에서 "아니오"인 경우), 인쇄 장치(20)는 시동 모드 선택 커맨드(ESC D)가 수신되었는지의 여부를 판정한다(S14). 만약 그러면(S14에서 "예"인 경우), 커맨드 값 D(파라미터 m)은 시동 모드 블록(251)(도 4)로 저장된다(S15).
시동 모드 선택 커맨드가 수신되지 않은 경우(S14에서 "아니오"인 경우), 처리 모드 확인 커맨드(ESC C)가 수신되었는지의 여부를 판정한다(S16). 만약 그러면(S16에서 "예"인 경우), 현재 정규 처리 모드가 활성이므로 삭제 처리 종료 응답이 호스트(10)로 송신되고(S17), 그 결과 인쇄 장치(20)가 정규 처리 모드에 있다고 호스트(10)에게 알린다. 또한, 처리 모드 확인 커맨드가 수신되지 않은 경우에는(S16에서 "아니오"인 경우), 예를 들어, 인쇄 제어나 기계적 제어에 따라서 수신된 데이터를 처리한다(S18).
도시는 생략했지만, 정규 처리 모드에 있을 때, 예컨대 운영자의 실수로 인해 인쇄 재개 커맨드가 송신된 경우, 수신한 인쇄 재개 커맨드를 삭제한다.
다음에, 도 7 및 도 8을 참조하여 에러 발생시 및 삭제 처리 모드에 있어서의 인쇄 장치(20)의 동작을 설명한다. 도 7을 참조하면, 인쇄 장치(20)가 에러(용지 잼, 커버 개방, 용지 없음, 잉크 고갈, 또는 저장 용지 종류과 다른 용지 종류의 검출)를 검출하면(S21에서 "예"인 경우), 인쇄 제어 및 기계적 제어를 정지하고, 에러 LED(23)를 구동하여 점등 또는 점멸시켜 에러 발생을 나타내고, 에러 상 태를 호스트(10)에 송신한다(S22). 또한, 인쇄 장치(20)는 삭제 처리 모드 선택이 저장되었는지, 즉, 커맨드 값 A 파라미터 m1=1 또는 2인지(도 5(a) 참조)를 확인한다(S23). 삭제 처리 모드가 선택되지 않은 경우(즉, m1=0)(S23에서 "아니오"인 경우), 에러를 복구한 후(S24에서 "예"인 경우) 미처리 데이터(인쇄가 완료 되지 않은 데이터)의 처리를 재개한다(S25). 이 경우, 즉 m1=0이면, 에러 발생시 처리되지 않은 데이터는 메모리로부터 삭제되지 않고 메모리에 잔존하여, 에러 발생시 인쇄 중이던 데이터로부터 이어서 인쇄될 수 있다.
그러나, 삭제 처리 모드가 선택되고(S23에서 "예"인 경우) m1=1인 경우, 수신 버퍼(242)와 인쇄 버퍼(245) 내의 모든 미처리 데이터를 파기하고, 삭제 처리 개시 응답을 호스트(10)에 송신하여, 삭제 처리 모드를 활성화한다. 그러나, m1=2인 경우에는, 인쇄 버퍼(245) 내의 데이터를 파기하지만, 수신 버퍼(242) 내의 미처리 데이터는 유지하고, 삭제 처리 개시 응답을 호스트(10)에 송신하여, 삭제 처리 모드를 활성화한다(S26, 만약 커맨드 값 A 파라미터 m2=0이 아니면, 호스트(10)로 응답을 송신하지 않는다).
다음에 인쇄 장치(20)에 상태 변경이 있는지를 판정한다(S27). 변경이 검출되면(S27에서 "예"인 경우), 그 변경이 에러(문제)의 해소인지를 판정한다(S28). 에러가 복구된 경우(S28에서 "예"인 경우), 에러 복구 상태를 호스트(10)로 송신한다(S29). 그러나, 변경이 에러가 검출된 것인 경우(S28에서 "아니오"인 경우), 에러 발생 상태를 호스트(10)에 송신한다(S30).
에러 복구 또는 에러 상태 송신 후(S29, S30), 또는 상태 변경이 검출되지 않은 경우에(S27에서 "아니오"인 경우), 인쇄 장치(20)는 호스트(10)로부터 소정의 수신 데이터가 있는지를 검출한다(S31). 도 8을 참조하면, 호스트(10)로부터 데이터가 수신되면(S31에서 "예"인 경우), 처리 모드 확인 커맨드(ESC C)가 수신되었는지의 여부를 판정한다(S32). 처리 모드 확인 커맨드가 수신된 경우(S32에서 "예"인 경우), 현재 삭제 처리 모드이기 때문에, 인쇄 장치(20)는 삭제 처리 개시 응답을 송신한다(S33).
처리 모드 확인 커맨드가 수신되지 않은 경우(S32에서 "아니오"인 경우), 상태 요청 커맨드가 수신되었는지를 판정한다(S34). 만약 그러면(S34에서 "예"인 경우), 인쇄 장치 상태가 송신된다(S35). 또한, 상태가 요청되지 않은 경우(S34에서 "아니오"인 경우), 에러 복구 커맨드가 수신되었는지의 여부를 판정한다(S36). 예를 들어, 용지 잼 또는 기타 복구할 수 있는 에러 때문에 삭제 처리 모드가 된 경우, 해당 용지 잼이 제거되고 인쇄 장치 메카니즘이 리세트된 후 인쇄 장치는 호스트(10)로 에러 복구 보고를 송신한다(S37).
에러 복구 커맨드가 수신되지 않은 경우(S36에서 "아니오"인 경우), 인쇄 재개 커맨드 ESC B가 수신되었는지의 여부를 판정한다(S38). 만약, 아니면(S38에서 "아니오"인 경우), 수신한 데이터를 삭제한다(S39). 인쇄 재개 커맨드가 수신된 경우(S38에서 "예"인 경우), 삭제 처리 종료 응답을 송신한다(S40, 만약 커맨드 값 A가 m2=0이 아닌 경우에, 응답은 송신하지 않는다). 삭제 처리 모드를 종료한 다음 정규 처리 모드를 재개한다.
삭제 처리 모드시, 상술한 특정한 커맨드(처리 모드 확인 커맨드, 상태 요청 커맨드, 에러 복구 커맨드, 및 인쇄 재개 커맨드) 이외에는 모두 무시되기 때문에, 에러 상태 모드 선택 커맨드에 의해 삭제 처리 모드를 지정함으로써, 미처리 데이터(호스트(10)가 삭제되길 원하는 데이터)를 확실히 삭제할 수 있다.
인쇄 재개 커맨드를 수신하여 정규 처리 모드를 재개했을 때, 에러 요인(에러 상태)이 해제되어 있지 않은 경우에, 최초의 에러 검출 단계에 의해서 에러가 검출 단계에서 에러가 검출될 것이고(S21에서 "예"인 경우), 삭제 처리 개시 응답이 다시 송신되며, 삭제 처리 모드가 재개된다. 이렇게 함으로써, 인쇄 장치(20)는 확실히 에러를 복구한다. 또한, 호스트(10)는 에러(문제)가 지속되고 있음을 파악하여, 인쇄 재개 커맨드가 정상적으로 처리된 것을 확인할 수 있다.
또한, 예컨대 인쇄 재개 커맨드를 운영자가 수동으로 송신할 수 있는 경우, 에러로 인한 문제가 해결되지 않았음에도 불구하고 운영자의 실수로 인해 인쇄 재개 커맨드가 잘못 송신될 수 있다. 그와 같은 경우 인쇄 장치(20)가 응답을 송신할 수 없다면, 인쇄 장치의 송신 버퍼(243) 내에 과거의 삭제 처리 개시 응답 또는 삭제 처리 종료 응답이 미송신 상태로 남아 있을 수도 있다. 마찬가지로, 응답의 수신과 처리 모드 확인 커맨드의 송신이 상이한 태스크에 의해서 시작되는 경우 응답이 축적될 수 있다. 이와 같이, 송신 버퍼(243) 내에 과거의 양 응답이 남아 있고 삭제 처리 종료 응답이 미송신일 때 삭제 처리 모드가 재개되면, 과거의 양 응답은 파기하고, 최신의 삭제 처리 개시 응답만 송신한다. 이렇게 하면, 송신 버퍼(243) 내에 축적된 과거의 삭제 처리 개시 응답 및 삭제 처리 종료 응답이 호스트 장치에 연속 송신되는 것을 방지할 수 있다. 따라서, 인쇄 장치(20)의 상태 감시 간격이 큰 애플리케이션을 이용하면, 제어부(CPU 등)에 복수의 응답이 연속으로 송신되는 것으로 인한 과부하가 걸리지 않을 것이다.
다음에, 도 9 및 도 10을 참조하여 호스트(10)의 동작을 설명한다. 도 9에 도시된 바와 같이, 호스트(10)는 인쇄 장치(20)로의 송신 데이터가 있는지를 검출하고(S51), 만약 있으면(S51에서 "예"인 경우), 데이터 전송 처리를 실행하여 인쇄 장치(20)로 데이터를 송신한다(S52). 다음에, 호스트(10)는 인쇄 장치(20)로부터 데이터가 수신되는지를 검출하고(S53), 데이터가 수신되는 경우(S53에서 "예"인 경우), 삭제 처리 개시 응답이 수신되는 지를 판정한다(S54). 삭제 처리 개시 응답이 수신되지 않는 경우(S54에서 "아니오"인 경우), 수신된 데이터에 대응한 처리를 실행한다(S55). 그러나, 삭제 처리 개시 응답이 수신된 경우(S54에서 "예"인 경우), 호스트(10)는 인쇄 장치(20)가 삭제 처리 모드에 있는지를 파악하고, 따라서 호스트(10)는 데이터 송신 처리를 정지한다(S56).
데이터 송신 처리를 정지하면(S56), 호스트(10)는 도 10에 도시된 바와 같이 문제의 원인을 확인하기 위한 상태 요청 커맨드를 송신한다(S61, 단 문제점을 알고 있으면 이 단계를 제외하고 스킵할 수 있다). 그 다음, 호스트(10)는 인쇄 장치(20)로부터 에러 복구 보고가 수신되는지를 검출한다(S62). 수신되지 않는 경우(S62에서 "아니오"인 경우), 호스트(10)는 인쇄 장치(20)로부터 에러 복구 보고를 기다린다.
에러 복구 보고를 수신한 경우(S62에서 "예"인 경우), 삭제 처리 모드 설정을 체크한다. 즉, 에러 상태 모드 선택 커맨드 ESC A의 파라미터 m1이 m1=1 또는 m1=2로 설정되는지의 여부를 판정한다(S63). 삭제 처리 모드가 선택되지 않으면 m1=0(S63에서 "아니오"인 경우)이므로, 미송신 데이터에 대한 송신 처리를 재개한다(S64).
그러나, 삭제 처리 모드가 선택된 경우(S63에서 "예"인 경우), 미송신 데이터를 파기하고(S65), 인쇄 재개 커맨드 ESC B를 송신한다(S66). 인쇄 재개 커맨드 ESC B에 관한 삭제 처리 종료 응답을 수신하면(S67에서 "예"인 경우), 호스트(10)는 인쇄 장치(20)가 정규 처리 모드를 재개한 것을 파악하고, 이 처리를 종료한다.
삭제 처리 모드가 지정된 후 처리가 종료되면, 에러 발생 및 송신 중단 시 전송되는 데이터가 선두부터 송신된다. 그러나, 슬립에 인쇄중인 경우, 에러 발생 전에 수신한 처리 ID 응답에 근거하여, 인쇄가 완료되지 않은 첫 페이지의 선두로부터 데이터를 송신한다. 즉, 처리 ID가 인쇄 데이터의 각 페이지의 종단에 삽입되어 있는 경우, 에러 발생 전에 마지막으로 수신된 처리 ID 응답에 근거하여, 다음 처리 ID를 포함하는 페이지의 선두로부터 송신을 재개하고, 인쇄 장치(20)는 그 페이지의 처음부터 인쇄를 재개한다.
또, 인쇄 미디어로서 롤 용지 P가 인쇄되고 있는 경우, 인쇄 데이터의 각 라인의 선두에 처리 ID 응답을 삽입하여 이 처리 ID 응답을 유사하게 이용할 수 있다. 이렇게 하면 에러 발생시 인쇄가 중단된 라인의 선두로부터 인쇄를 재개할 수 있다.
인쇄 출력의 약간의 불균일이 인쇄 중인 이미지나 문자열에 문제로 되지 않을 때, 이 구성은 재전송해야 하는 데이터량을 최소화할 수 있고, 그 결과 보다 빠 르게 동작을 복구 및 재개할 수 있다.
또한, 영수증이나 거래 일지와 같이 정밀한 인쇄 출력이 요구되는 경우, 데이터를 송신하도록 하여 인쇄 중단시 인쇄 중이던 데이터의 선두로부터 재개할 수 있다.
다음에, 도 11 및 도 12를 참조하여, 인쇄 장치(20)의 상태를 감시하지 않는 애플리케이션을 이용한 경우에 대하여 설명한다. 인쇄 장치(20)의 상태를 감시하지 않는 점에서 도 2 내지 도 4에 도시된 것과 일치하지 않는 점이 있지만, 인쇄 장치(20)로부터 상태나 응답을 송신하지 않는 점과, 애플리케이션에 의해서 생성된 데이터(인쇄 데이터 및 제어 데이터)에 인쇄 재개 커맨드가 삽입되는 점을 제외하고는, 상태를 감시하는 경우와 동작이 같은 것이다. 따라서, 도 2 내지 도 4와 동일한 제어의 도시는 생략한다.
먼저, 도 1l을 참조하여 정규 데이터 처리시(즉, 정규 처리 모드에서) 인쇄 장치(20)에 의한 처리를 설명한다. 인쇄 장치(20)가 호스트(10)로부터 데이터를 수신하면(S71), 에러 상태 선택 커맨드인지를 판정한다(S72). 에러 상태 모드 선택인 경우(S72에서 "예"인 경우), 커맨드 값 A(파라미터 m1, m2)를 저장한다(S73). 도 11에 도시된 경우에서와 같이, 인쇄 장치(20)의 상태를 감시하지 않는 애플리케이션을 이용한 경우, 커맨드 값 A의 파라미터 m2는 항상 m2=0으로 설정되어 모드 변경 응답을 송신하지 않는 것이 바람직하다(도 5 참조).
에러 상태 모드 선택 커맨드가 수신되지 않은 경우, 인쇄 장치(20)는 시동 모드 선택 커맨드(ESC D)가 수신되었는지의 여부를 판정한다(S74). 그러면(S74에 서 "예"인 경우), 커맨드 값 D(파라미터 m)를 저장한다(S75).
그러나, 인쇄 재개 커맨드가 수신된 경우(S76에서 "예"인 경우), 인쇄 재개 커맨드를 삭제한다(S77). 또한, 수신 데이터가 인쇄 재개 커맨드도 아닌 경우(S76에서 "아니오"인 경우), 수신된 데이터에 적합한 처리를 실행한다(S78).
이와 같이, 인쇄 장치(20)의 상태를 감시하지 않는 애플리케이션을 이용한 경우, 소정의 이벤트에서 처리될 인쇄 데이터 또는 기타 데이터의 직전에 인쇄 재개 커맨드가 삽입되지만, 정규 처리 모드에서는 인쇄 재개 커맨드를 삭제하여 정규 인쇄 처리를 실행하는 것이 명백하다.
다음에, 도 12를 참조하여 에러 발생시 및 삭제 처리 모드에서의 인쇄 장치(20)에 의한 처리를 설명한다. 인쇄 장치(20)가 에러(용지 잼, 커버 개방, 용지 없음, 잉크 고갈, 또는 저장 용지 종류과 다른 용지 종류의 검출)를 검출하면(S81에서 "예"인 경우), 인쇄 제어 및 기계적 제어를 정지하고(S82), 삭제 처리 모드 선택이 저장되었는지, 즉, 커맨드 값 A 파라미터 m1=1 또는 2인지(도 5(a) 참조)를 확인한다(S83). 삭제 처리 모드가 선택되지 않은 경우(즉, m1=0)(S83에서 "아니오"인 경우), 문제를 해결한 후(S84에서 "예"인 경우) 미처리 데이터의 처리를 재개한다(S85). 이 경우, 즉, m1=0이면, 에러 발생시 처리되지 않은 데이터는 메모리로부터 삭제되지 않고 메모리에 잔존하여, 에러 발생시 인쇄 중이던 데이터로부터 이어서 인쇄될 수 있다.
그러나, 삭제 처리 모드가 선택되고(S83에서 "예"인 경우) m1=1인 경우, 수신 버퍼(242)와 인쇄 버퍼(245) 내의 모든 미처리 데이터를 파기하고, 삭제 처리 모드를 활성화한다. 그러나, m1=2인 경우에는, 인쇄 버퍼(245) 내의 데이터를 파기하지만, 수신 버퍼(242) 내의 미처리 데이터는 유지하고, 삭제 처리 모드를 활성화한다(S86)
다음에 문제나 에러가 해결되었는지의 여부를 판정한다(S87). 문제가 해결되지 않았으면(S87에서 "아니오"인 경우), 인쇄 장치(20)는 에러의 원인이 해결되길 기다린다. 문제가 해결되었다면(S87에서 "예"인 경우), 인쇄 장치(20)는 호스트(10)로부터 수신된 데이터를 찾는다. 데이터가 수신된 경우(S88에서 "예"인 경우), 인쇄 재개 커맨드가 수신되었는 지를 검출한다(S89). 수신된 데이터가 인쇄 재개 커맨드가 아닌 경우(S89에서 "아니오"인 경우), 데이터를 파기한다. 인쇄 재개 커맨드가 수신된 경우(S89에서 "예"인 경우), 삭제 처리 모드를 종료하고, 정규 처리 모드를 재개한다.
인쇄 장치(20)의 상태를 감시하지 않는 애플리케이션을 이용하더라도, 삭제 처리 모드시 인쇄 재개 커맨드 이외의 모든 커맨드는 무시한다. 그 결과, 에러 상태 모드 선택 커맨드로 삭제 처리 모드를 지정함으로써, 미처리 데이터를 확실히 삭제할 수 있다.
상술한 바와 같이, 인쇄 장치(20)의 상태를 감시하지 않는 프로그램을 이용한 경우라도, 정규 처리 모드를 재개할 때 문제(에러 상태)가 해결되어 있지 않으면, 최초의 에러 검출 단계에 의해서 에러가 검출 단계에서 에러로 돌아갈 것이고(S81에서 "예"인 경우), 삭제 처리 모드가 즉시 재개될 것이다.
다음에, 인쇄 장치(20)의 상태를 감시하는 도 13을 참조하여 인쇄 장치 시동 중 인쇄 장치(20)의 처리에 대해서 설명한다. 도면에 도시된 바와 같이, 인쇄 장치(20)가 턴온 되면, 하드웨어 및 소프트웨어 초기화 처리가 실행되고(S91), 인쇄 장치(20)는 호스트(10) 장치로 전원 온 보고를 송신한다(S92, 인쇄 장치가 보고를 송신하지 않는 구성이면 전원 온 보고를 송신하지 않고 제외함).
시동 중에 삭제 처리 모드가 지정되는지를 판정한다(S93, 시동 모드 선택 커맨드 ESC D, 도 5(d)참조). 삭제 처리 모드가 지정되어 있지 않으면(m=0)(S93에서 "아니오"인 경우), 정규의 데이터 처리를 진행한다. 한편, 삭제 처리 모드가 설정된 경우(m=1)(S93에서 "예"인 경우), 삭제 처리 모드의 처리를 실행한다(S94). 즉, 삭제 처리 개시 응답을 호스트(10)로 송신하고, 특정한 커맨드 이외의 호스트로부터 수신된 모든 데이터를 무시한다. 호스트(10)로부터 인쇄 재개 커맨드가 수신되면, 삭제 처리 종료 응답을 송신하여, 삭제 처리 모드를 종료하고 정규 처리 모드를 재개한다.
삭제 처리 모드에서 시동함으로써, 인쇄 데이터가 송신중일지라도 운영자 에러로 인해 인쇄 장치가 재시동될 때, 및 불필요한 데이터가 호스트(10) OS의 플러그 앤 플레이 초기화 처리에 의해서 생성될 때를 포함해서, 불필요한, 관계없는 데이터를 메모리로부터 확실히 제거할 수 있다.
시동 중에 에러가 발생하지 않을 수도 있고, 이 경우 인쇄 장치(20)는 에러 복구 보고를 송신하지 않을 것이다. 따라서, 호스트(10)는 인쇄 장치(20) 측에 에러가 없다는 것을 상태 요청 커맨드에 의해서 확인한 후 인쇄 재개 커맨드를 송신하는 것이 바람직하다. 데이터 삭제가 완료된 것을 확인하면(소정 시간 동안 수신 버퍼(242)로 데이터가 송신되지 않으면), 정규 처리 모드를 자동적으로 활성화하도록 인쇄 장치(20)를 구성할 수도 있다.
상술한 바와 같이, 본 발명에 따른 인쇄 장치(20) 또는 인쇄 시스템(1)에 의해서 인쇄 장치(20) 에러(오프 라인 상태 또는 인쇄 장치 에러)가 검출되면, 불필요한 데이터를 파기하는 삭제 처리 모드가 활성화되어, 중단될 수 있는 처리 전에 처리된 호스트(10) 측에 남아 있는 데이터 또는 버퍼링되고 아직 처리되지 않은 데이터가 있는 경우, 그 데이터에 근거한 불필요한 인쇄를 방지할 수 있다.
또한, 호스트(10)로부터 인쇄 재개 커맨드가 수신되면 삭제 처리 모드가 종료되기 때문에, 인쇄가 완료되지 않은 데이터(호스트(10)가 삭제되길 원하는 데이터)를 확실히 삭제할 수 있다.
또한, 본 발명에 따른 인쇄 장치(20)를 사용함으로써, 인쇄 장치의 상태를 감시하는지의 여부에 관계없이, 불필요한 데이터를 확실히 삭제할 수 있고 소모적인 인쇄를 방지할 수 있다.
또한, 에러 상태 모드 선택 커맨드는 애플리케이션의 종류과 사용자가 소망하는 인쇄 결과에 적합한 처리 모드를 선택하도록 구성할 수 있다. 예컨대, 제 1 처리 모드(m1=0)를 선택하면, 인쇄 메카니즘이 에러 발생시 용지를 절단(분할)하지 않는 경우, 이어진 인쇄 결과를 얻을 수 있다. 따라서, 인쇄 데이터를 재송신할 필요가 없게 되고, 용지의 낭비가 방지된다.
또한, 제 2 처리 모드(m1=1)를 선택하면, 수신 버퍼(242) 내의 모든 데이터를 파기하여, 삭제 처리 모드에서 데이터를 삭제하는 데 요구되는 시간을 단축할 수 있다. 애플리케이션이 인쇄 장치(20)의 상태를 감시하는 경우, 인쇄 장치(20)로부터의 상태를 감시하는 동안 처리가 속행되어, 삭제될 데이터에 인쇄 재개 커맨드를 삽입하지 않는 제어를 행할 수 있게 한다.
제 3 처리 모드(m1=2)를 선택하면, 수신 버퍼(242) 내에 데이터를 유지한 채 삭제 처리 모드가 활성화된다. 그 결과, 미리 송신된 데이터나 호스트(10)의 데이터 송신 중단 처리를 멈출 수 없는 데이터에 인쇄 재개 커맨드가 삽입된 경우, 인쇄 재개 커맨드에 의해서 정규 처리 모드가 재개될 수 있다. 따라서, 수신 버퍼(242)로부터 데이터를 삭제하는 데 보다 많은 시간이 걸리지만, 애플리케이션이 인쇄 장치(20)의 상태를 감시하지 않더라도, 지장없이 처리를 속행할 수 있다.
본 발명은 호스트(10)와 인쇄 장치(20)로 구성되는 인쇄 시스템(1)을 예로 d용하여 설명했지만, 본 발명은 이것으로 한정되지 않는다. 즉, 호스트(10)에 의해서 제어되는 장치는 인쇄 장치로 한정되지 않고, 다른 종류의 다양한 장치일 수 있다.
당업자라면 상술한 시스템 구성 및 커맨드를 본 발명의 범주로부터 벗어나지 않고 다양하게 변경할 수 있다는 점은 명백할 것이다.