KR100199430B1 - 출력제어장치 - Google Patents

출력제어장치 Download PDF

Info

Publication number
KR100199430B1
KR100199430B1 KR1019960012411A KR19960012411A KR100199430B1 KR 100199430 B1 KR100199430 B1 KR 100199430B1 KR 1019960012411 A KR1019960012411 A KR 1019960012411A KR 19960012411 A KR19960012411 A KR 19960012411A KR 100199430 B1 KR100199430 B1 KR 100199430B1
Authority
KR
South Korea
Prior art keywords
language
control language
control
discrimination
discriminating
Prior art date
Application number
KR1019960012411A
Other languages
English (en)
Other versions
KR960038583A (ko
Inventor
까쓰히사 니이하라
꼬이찌 미야자끼
요시노리 군지
이찌로 꼰노
유우지 시오미
Original Assignee
사까모도 마사모도
미야하라 아끼라
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP7098954A external-priority patent/JP2785742B2/ja
Priority claimed from JP7098953A external-priority patent/JP2861859B2/ja
Application filed by 사까모도 마사모도, 미야하라 아끼라 filed Critical 사까모도 마사모도
Publication of KR960038583A publication Critical patent/KR960038583A/ko
Application granted granted Critical
Publication of KR100199430B1 publication Critical patent/KR100199430B1/ko

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J29/00Details of, or accessories for, typewriters or selective printing mechanisms not otherwise provided for
    • B41J29/38Drives, motors, controls or automatic cut-off devices for the entire printing mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Record Information Processing For Printing (AREA)

Abstract

처리시간의 단축과 오판정을 대폭적으로 저감하는 출력제어장치, 화상기록장치등에서, 상위장치로부터 보내온 입력데이터를 기술하는 제어언어를 판별할 때에, 제어언어마다 정해진 판별 룰을 순차적으로 적용해 나간다. 이에 따라 일률적으로 같은 판별 룰을 적용하는 경우에 비해서, 제어언어에 최적의 판별 룰을 적용할 수 있으므로, 처리시간의 단축화와 오판정의 가능성의 저감이 동시에 달성된다. 또 명령군을 그룹으로 나누어 그룹마다 다른 판별 룰을 적용하면 제어언어마다 복수의 판별 룰이 적용된 것과 같게 되므로, 더욱 처리시간의 단축화와 오판정의 가능성의 저감을 도모할 수 있다.

Description

출력제어장치
제1도는 제1의 실시의 형태에 의한 화상기록장치의 개략적 구성을 나타낸 블록도.
제2도는 제1의 실시의 형태에 의한 화상기록장치의 회로 구성도.
제3도는 제1의 실시에 형태에 의한 화상기록장치의 소프트웨어의 구조를 나타낸 도면.
제4도는 응용 프로그램의 기본적인 기능 블록도.
제5도는 프린터언어 고정모드에서의 화상기록장치의 처리의 흐름을 나타낸 플로차트.
제6도는 프린터언어 고정모드에서의 화상기록장치의 기능 블록도.
제7도는 자동판별모드에서의 화상기록장치의 처리의 흐름을 나타낸 플로차트.
제8도는 자동판별모드로 정상동작했을 경우의 화상기록장치의 기능 블록도.
제9도는 자동판별모드로 중지(abort)요구가 나왔을 경우의 화상기록장치의 기능 블록도.
제10도는 자동판별 퍼서의 구성을 나타낸 블록도.
제11도는 자동판별 퍼서의 처리의 흐름을 나타낸 플로차트.
제12도는 언어A 판별기(84)에서의 판별 룰의 흐름을 나타낸 플로차트.
제13도는 언어C 판별기 (88)에서의 판별 룰의 흐름을 나타낸 플로차트.
제14도는 그룹을 형성하는 언어 D와 언어E의 최종적인 판별 룰의 흐름을 나타낸 플로차트.
제15도는 제2의 실시의 형태에 의한 언어A 판별기 (84)에서의 판별 룰의 흐름을 나타낸 플로차트.
제16도는 제2의 실시의 형태에 의한 언어C 판별기(84)에서의 판별 룰의 흐름을 나타낸 플로차트.
본 발명은 화상기록장치등의 출력을 제어하기 위한 출력제어장치에 관한 것이며, 특히 호스트 컴퓨터등의 상위장치로부터 수신한 데이터를 기술하는 제어언어를 해석하고, 그 제어언어의 해석에 의거해서 화상기록을 하는 화상기록장치의 출력제어장치에 관한 것이다.
종래에는 프린터장치등의 화상기록장치에서 호스트 컴퓨터등으로부터 수신한 제어언어의 종류를 판별하는 수단으로서, 다음에 설명하는 일본국 특개평 5-282109호, 5-104825호, 4-323069호, 5-96823호, 및 5-88822호의 각 공보에 개시된 기술이 있었다.
일본국 특개평 5-282109호 공보에 의하면 제어언어의 종류를 각 모드 고유의 특징코드에 의거해서 식별하는 기술이 개시되어 있다. 이 기술은 상술한 방법으로도 식별할 수 없는 경우에는 그 장치의 내장모드의 특징코드로 식별하며, 또 그 방법으로도 식별할수 없는 경우에는 카드모드의 특징코드로 식별하고, 그래도 식별할수 없는 경우에는 식별 불능으로 하는 방법을 채용하고 있다.
일본국 특개평 5-104825호 공보에 의하면 입력데이터 내의 제어 코드, 예컨데 이스케이프 시켄스등을 판단하여, 소정 부분이 전부 문자로 구성되어 있는 경우에는 문자열로 프린터를 제어하는 언어 (Post Script)의 에뮬레이션(모방)을 해석의 대상으로 하는 기술이 개시되어 있다.
일본국 특개평 제 4- 323069호 공보에 의하면 제어언어의 종류마다 출현빈도가 높은 명령코드의 테이블을 준비하여, 이 테이블의 코드와 입력데이터의 코드를 비교해서 일치하는 명령코드의 많은 쪽으로 제어언어의 종류를 결정하는 방법이 개시되어 있다.
일본국 특개평 제5-96823호 공보에 의하면 각 에뮬레이션별로 비교용의 테이블을 가지며, 호스트 컴퓨터로부터 보내온 데이터내의 세밀한 데이터열 단위를 각 테이블로부터 검색하여, 일치할 때마다 그것들에 설정된 가중치 (weight)를 가산하고, 최종적으로 가장 큰 가산치를 나타낸 에뮬레이션을 선택하는 판별방법이 개시되어 있다. 이 판별방법에서는 판별결과를 결정하는 판단기준시로서 어느 에뮬레이션이 소정치 이상의 가산치에 달했을 때, 또는 두번째로 큰 가산치와의 차가 소정치 이상으로 되었을 때등이 채용된다.
일본국 특개평 5-88822호 공보에 의하면 다음과 같은 판별방법이 개시되어 있다. 즉 입력데이터에 포함된 제어문자가 우선순위가 낮은 명령체계로부터 순차적으로 그 체계에 존재하는가의 여부를 판단해 나가서, 존재하지 않으면 그 명령체계를 선택대상으로부터 제외해 나간다. 그리고 남은 명령체계가 1개로 되었을 때, 그것을 판별결과로서 선택하며, 2개 이상이 있을 때는 다른 제어 문자를 남아 있는 명령체계로부터 검색하여, 그 제어문자의 유무에 따라 판별한다. 또 소정량의 데이터를 검색해 나간 결과, 2개 이상의 명령체계가 남았을 경우에는 우선순위가 높은 명령체계를 선택한다. 그리고 상기 소요량이라 함은 수신버퍼 용량분 또는 전 페이지분의 데이터량을 말하며, 전 페이지분이라 함은 데이터수신 간격이 기준시간 이상이 되었을 때까지의 수신데이터분을 말한다.
그러나 상기 종래 기술에는 다음과 같은 문제점이 있었다.
일본국 특개평 5-282109호 공보에 개시된 기술에서는 사용빈도가 높다고 예상되는 내장모드를 먼저 체크하고 있으나, 어떤 모드의 사용빈도가 높은가는 사용하고 있는 유저에 따라 달라서, 판별처리의 속도가 고려되고 있지 않다는 문제점이 있다.
또 일본국 특개평 5-104825호 공보에 개시된 기술에서는 제어코드를 판별하는 단계와 소정 부분이 전부 문자로 구성되어 있는 것을 판별하는 단계의 2단계로 판별이 이루어지고 있어서, 판별처리에 시간이 걸리는 문제점이 있다.
또 일본국 특개평 4-323069호 공보에 개시된 기술에서는 1개의 제어언어에 특유의 유닉한 명령코드에 의거한 판별처리를 하고 있기 때문에 그 명령코드를 단순한 데이터로서 가지고 있는 다른 제어언어와의 구별을 할 수 없어서 , 오판정이 대단히 커지는 문제가 있다.
또한 일본국 특개평 5-96823호 공보 및 5-88822호 공보에 개시된 기술에서는 상기 기술과 마찬가지로 각 제어언어가 제어문자나 데이터열등의 가산치에 의거해서 제어언어를 판별하는 방법이며, 각 제어언어마다의 판별방법이 최적화되어 있지 않아서 처리시간이 걸리는 문제점을 필연적으로 안고 있다.
본 발명은 상기 사실을 고려하여 입력데이터의 제어언어가 특정한 제어언어인가를 각각 판별하는 제어언어 판별수단을 제어언어마다 설비함으로써 판별 정밀도를 향상 시킴과 동시에 제어언어를 결정하기 위한 처리속도를 향상시킨 출력제어장치를 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위하여 청구항 1의 발명은 입력데이터를 기억하는 기억수단과, 상기 입력 데이터의 제어 언어가 특정한 제어언어인가를 각각 판별하는 복수의 제어언어 판별수단과, 상기 복수의 제어언어 판별수단에 의한 판별결과에 의거해서 상기 입력데이터의 제어언어를 결정하는 결정수단과, 상기 결정수단에 의해 결정된 제어언어에 의거해서 상기 입력데이터를 해석하여 출력하는 출력수단을 포함하여 구성한 것이다.
청구항 1의 발명에서는 기억수단이 입력데이터를 기억하고, 복수의 제어언어 판별수단이 기억된 입력데이터의 제어언어가 특정한 제어언어인가를 각각 판별한다. 다음에 결정수단이 복수의 제어언어 판별수단에 의한 판별결과에 의거해서 입력데이터의 제어언어를 결정한다. 그리고 출력수단이 결정수단에 의해 결정된 제어언어에 의거해서 입력데이터를 해석하여 출력한다. 이와 같이 제어언어를 판별하는 판별수단을 제어언어마다 준비하였으므로 제어언어마다 최적의 판별수단을 준비하면 판별 정밀도를 향상시킬 수가 있고, 이에 따라 최적의 제어언어에 의거해서 화상등을 출력할 수가 있다.
청구항 2의 발명은 청구항 1의 상기 복수의 제어언어 판별수단중의 적어도 1개의 제어언어 판별수단은 다른 제어언어 판별수단과는 다른 판별 룰을 가지는 것을 특징으로 한다.
청구항 2의 발명에서는 복수의 제어언어 판별수단중의 적어도 1개의 제어언어 판별수단이 다른 제어언어 판별수단과는 다른 판별 룰을 가지므로, 모든 제어언어 판별수단이 동일한 판별 룰, 예컨데 고유한 명령코드에 의거한 판별 룰을 가지고 있는 경우와 비교해서 오판정의 우려를 회피할 수 있다.
청구항 3의 발명은 청구항 2의 상기 복수의 제어언어 판별수단중의 적어도 1개의 제어언어 판별수단은 입력데이터중의 특정 코드의 출현순서에 의해 특정한 제어언어인가를 판별하는 판별 룰을 가지는 것을 특징으로 한다.
청구항 3의 발명에서는 적어도 1개의 제어언어 판별 수단이 입력데이터중의 특정 코드의 출현순서에 의해 특정한 제어언어인가를 판별하는 판별 룰을 가지고 있으므로, 단순히 특정 코드의 유무에 의한 판별보다도 대폭적으로 판별 정밀도를 향상시킬 수가 있다.
청구항 4의 발명은 청구항 2의 상기 복수의 제어언어 판별수단중의 적어도 1개의 제어언어 판별수단이 입력데이터중의 특정 코드의 출현수가 소정수에 달함으로써 특정한 제어언어인가를 판별하는 판별 룰을 가지는 것을 특징으로 한다.
청구항 4의 발명에서는 상기 복수의 제어언어 판별 수단중의 적어도 1개의 제어언어 판별수단이 입력데이터중의 특정 코드의 출현수가 소정수에 달함으로써 특정한 제어언어인가를 판별하는 판별 룰을 가지고 있으므로, 단순히 특정 코드의 유무에 의한 판별 보다도 오판정의 가능성을 적게 할 수가 있다.
청구항 5의 발명은 청구항 2의 상기 복수의 제어언어 판별수단중의 적어도 1개의 제어언어 판별수단이 복수의 판별 룰을 가지는 것을 특징으로 한다.
청구항 5의 발명에서는 적어도 1개의 제어언어 판별 수단이 복수의 판별 룰을 적용하여 입력데이터를 판별하므로, 1개의 판별 룰만을 적용하는 경우와 비교해서 오판정의 가능성을 적게 할 수가 있다.
청구항 6의 발명은 청구항 1의 상기 결정수단이 상기 복수의 제어언어 판별수단의 1개의 제어언어 판별수단이 제어언어의 판별에 성공했을 경우에는 입력데이터의 제어언어는 판별에 성공한 제어언어인가를 결정하는 것을 특징으로 한다.
청구항 6의 발명에서는 복수의 제어언어 판별수단이 입력데이터의 제어언어가 특정한 제어언어인가를 각각 판별해 나갈 때에, 1개의 제어언어 판별수단이 제어언어의 판별에 성공했을 경우에는, 결정수단은 입력데이터의 제어언어는 판별에 성공한 제어언어이라고 결정한다. 그리고 출력수단이 결정된 제어언어에 의거해서 입력데이터를 해석하여 출력한다. 이와 같이 다른 제어언어 판별수단이 판별처리를 하고 있는 동안에도 1개의 제어언어 판별수단이 판별에 성공했을 경우에는 제어언어를 결정하므로 판별속도를 향상시킬 수가 있다.
청구항 7의 발명은 청구항 1의 상기 결정수단이 판별 속도가 빠른 순서로 상기 복수의 제어언어 판별수단에 대해 판별처리를 시키는 것을 특징으로 한다.
청구항 7의 발명에서는 결정수단이 판별속도가 빠른 순서로 상기 복수의 제어언어 판별수단에 대해 판별처리를 시켜서, 판별결과에 의거해서 입력데이터의 제어언어를 결정한다. 예컨데 청구항 6의 발명과 같이 1개의 제어언어 판별수단이 판별에 성공했을 경우에는 즉시 제어언어를 결정하도록 하면, 복수의 제어언어 판별수단을 순서대로 판별시킬 경우에는 판별속도를 가장 향상시킬 수가 있다.
청구항 8의 발명은 입력데이터를 기억하는 기억수단과, 상기 입력데이터의 제어언어가 특정한 제어언어인가를 판별하는 복수의 제어언어 판별수단과, 상기복수의 제어언어 판별수단중에서 대상으로 하는 제어언어가 유사한 그룹에 속하는 제어언어 판별수단에 대해서는 그룹으로서 제어언어를 판별하는 그룹판별수단과, 상기 그룹판별수단 및 이 그룹에 속하지 않는 제어언어 판별수단의 판별결과에 의거해서 상기 입력데이터의 제어언어을 결정하는 결정수단과, 상기 결정수단에 의해 결정된 제어언어에 의거해서 상기 입력데이터를 해석하여 출력하는 출력수단을 포함하여 구성된 것이다.
청구항 8의 발명에서는 기억수단이 입력데이터를 기억하고, 복수의 제어언어 판별수단이 기억된 입력데이터의 제어언어가 특정한 제어언어인가를 각각 판별한다. 이 판별에서 구룹판별수단이 복수의 제어언어 판별수단중에서 대상으로 하는 제어언어가 유사한 그룹에 속하는 제어언어 판별수단에 대해서는 그룹으로서 제어언어를 판별한다. 다음에 결정수단이 그룹판별수단 및 이 그룹에 속하지 않는 제어언어 판별수단의 판별결과에 의거해서 상기 입력데이터의 제어언어을 결정한다. 그리고 출력수단이 결정수단에 의해 결정된 제어언어에 의거해서 상기 입력데이터를 해석하여 출력한다. 이와 같이 서로 오판별하기 쉬운 유사한 제어언어간의 판별에 대해서는 그룹으로서 제어언어를 판별시키므로 오판별이 회피되고, 판별 정밀도의 대폭적인 향상을 도모할 수가 있다.
청구항 9의 발명은 청구항 8의 상기 그룹판별수단이 상기 복수의 제어언어 판별수단의 어느 것이나 특정한 제어언어임을 판별할 수 없었을 경우에는, 미리 정해진 기준으로 그룹으로서의 제어언어를 판별하는 것을 특징으로 한다.
청구항 9의 발명에서는 복수의 제어언어 판별수단의 어느 것이나 특정한 제어언어임을 판별할 수 없었을 경우에는, 미리 정해진 기준으로 그룹으로서의 제어언어를 판별하도록 하였다. 이 미리 정해진 기준으로서는, 예컨데 출현빈도가 큰 제어언어를 우선적으로 결정하는 기준등을 생각할수 있다. 이와 같이 그룹내의 서로 유사한 제어언어의 판별을 할 수 없었을 경우에도 기준에 따른 판별이 가능해지므로 오판별의 가능성을 적게 할 수가 있다.
[실시의 형태]
(제1의 실시의 형태)
다음에 도면을 참조하여 본 발명의 실시의 형태를 상세히 설명한다. 제1도에 나타낸 바와 같이 본 발명의 출력장치로서의 화상기록장치(11)는 화상을 기록하는 기록부(12), 기록부(12)에 화상정보를 공급하는 화상공급장치(13), 전원부(14), 및 외부로부터의 지시를 입력하기 위한 조작패널(15)을 갖추고 있다.
기록부(12)는 예컨데 레이저 프린터등으로 구성되며, 화상공급장치(13)로부터의 동작지령신호(26)에 의거해서 화상공급장치(13)으로부터 공급된 화상정보(27)를 기록용지(23)에 인자출력(화상기록)한다. 이 기록화상을 정상적으로 실행시키기 위하여 기록부(12)는 도시하지 않은 카세트 트레이에 수용된 기록용지(23)의 종류나 도시하지 않은 정착부가 정착온도에 달했는가의 여부등을 나타내는 상태신호(24)를 화상공급장치(13)에 송출한다. 또 기록부(12)는 화상정보의 전송에 대해 기록부(12)와 동기를 취하기 위한 동기펄스(25)를 화상공급장치(13)에 송출한다.
화상공급장치(13)에는 호스트 인터페이스단자(17) 및 입력단자(18)가 접속되어 있다. 호스트 인터페이스단자(17)는 도시하지 않은 호스트 인터페이스로부터 인자데이터를 입력시키기 위한 단자이며, 입력단자(18)는 도시하지 않은 네트워크로부터 인자데이터를 입력시키기 위한 단자이다. 이 호스트 인터페이스단자(17) 또는 입력단자(18)를 통해서 인자데이터를 2계통으로 입력할 수가 있다. 또한 입력단자(18)에는 네트워크상의 복수의 장치가 인자데이터의 공급원으로서 접속되는 경우도 있다.
화상공급장치(13)는 기록부(12)로부터 보내온 상태신호(24) 및 동기펄스(25)에 의거해서 동작지령신호(26)를 송출하여 기록부(12)를 동작시킴과 동시에 호스트 인터페이스단자(17)또는 입력단자(18)로부터 입력된 인자데이터를 화상정보(27)로서 기록부(12)에 송출하여 화상기록을 제어한다.
조작패널(15)은 키나 스위치등의 입력부와, 액정 디스플레이(LCD)나 발행 다이오드(LED)등으로 구성된 표시부로 구성되며, 오퍼레이터의 조작에 의해 화상공급장치(13)에 기록에 관한 필요한 지시정보(19)를 송출한다. 또 지시정보(19)를 받은 화상공급장치(13)로부터 반송된 응답정보(21)를 표시한다.
전원부(14)는 상용전원(AC)를 소정의 직류 또는 교류로 변환하여 기록부(12) 및 화상공급장치(13)에 공급한다.
화상공급장치(13)는 제2도에 나타낸 바와 같이 각종제어의 중추적 역할을 담당함과 동시에 시스템 버스(32)에 접속된 CPU(중앙처리장치)(31)를 갖추고 있다. 시스템 버스(32)에는 패널 I/F(인터페이스)회로(33), 호스트 I/F회로(34)가 접속되어 있다.
패널 I/F회로(33)는 조작패널(15)과의 인터페이스를 취하기 위한 회로이며, 오퍼레이터가 조작패널(15)의 키를 조작하면, 이에 대응한 신호가 조작패널(15)로부터 출력되어 패널 I/F회로(33)을 통해서 시스템 버스(32)상에 전송된다. 또 시스템 버스(32)의 표시정보는 패널 I/F회로(33)를 통해서 조작패널(15)에 전속되어 표시가 이루어진다.
호스트 I/F회로(34)는 호스트 컴퓨터등의 상위장치와의 인터페이스를 취하기 위한 회로이며. 예컨대 호스트 컴퓨터로부터 입력되는 인자데이터를 RS232C 규격이나 센트로닉스준거에 의거해서 수신하는 회로로 구성되어 있다.
또한 이 화상공급장치(13)는 복수의 호스트 인터페이스단자를 갖일 수 있으며, 필요로 하는 호스트 인터페이스에 맞추어서 호스트 I/F회로(35)를 증설할 수 있다. 증설가능한 인터페이스로서는 예컨데 센트로닉스 인터페이스나 이서 네트등이 있다. 이에 따라 복수의 호스트 인터페이스로부터 인자데이터를 입력할 수 있다.
또 시스템 버스(32)에는 불휘발성 메모리(NVM)(37), RAM(38), 프로그램 메모리 (39), 문자패턴 메모리(41), 기록부 I/F회로(43) 및 비트 맵 콘트롤러(44)가 접속되어 있다.
NVM(37)은 도시하지 않은 전지에 의하여 백업된 메모리이며, 화상기록장치(11)자체의 전지가 오프로 된 상태에서도 필여한 데이터를 보존할 수가 있다.
RAM(38)은 CPU(31)의 작업용 메모리이며, 화상기록장치(11)의 각종 제어를 하기 위해 필요한 데이터를 보존한다. 또 RAM(38)은 호스트 I/F회로(34)나 호스트 I/F회로(35)로부터 입력된 인자데이터를 일시적으로 보존하는 수신버퍼로서도 기능한다. 또한 이 RAM(38)에는 발생한 문자패턴, 이미지등을 기록용지 1페이지에 대응시켜서 붙이고 전자적인 편집을 하기 위한 비트 데이터를 저장하는 비트 맵 메모리(42)가 포함되어 있다.
프로그램 메모리(39)는 CPU(31)에 의한 화상기록장치(11)의 제어를 하기 위한 프로그램을 저장한 메모리이다.
또한 이 프로그램 메모리(39)에 저장되어 있는 프로그램은 화상기록장치(11)의 전원이 온 되었을 때에 CPU(31)로부터 판독된다.
문자패턴 메모리(41)는 프린트아우트를 할 때의 문자패턴을 저장한 메모리이며, 소위 폰트 메모리라 불리우는 메모리이다.
기록부 I/F회로(43)는 기록부(12)와 인터페이스를 취하기 위한 회로이며, 예컨데 비트 맵 메모리(42)에 전개된 비트 데이터를 화상정보(27)로서 기록부(12)에 공급한다거나, 또 상태신호(24), 동기펄스(25) 및 동작지령신호(26)을 송수하는 인터페이스로서의 역할을 갖는다.
비트 맵 콘트롤러(44)는 비트 맵 메모리(42)와 기록부 I/F회로(43)간의 화상정보의 전송에 관한 제어를 하기 위한 회로이다.
프로그램 메모리(46) 및 문자패턴 메모리(47)는 각각 프로그램 메모리(39) 및 문자패턴 메모리(41)와 마찬가지로 프로그램 및 문자패턴을 저장해두기 위한 메모리이나, 유저의 요구에 맞추어서 선택적으로 화상기록장치(11)에 접속할 수 있게 되어 있다. 프로그램은 메모리(46) 및 문자패턴 메모리(47)로서는 착탈자재의 IC 카드형식 또는 SIMM형식의 ROM등을 사용할 수가 있다. 이에 따라 각종의 호스트 컴퓨터로부터 보내온 인자데이터나 제어데이터에 대응한 프로그램이나 문자패턴에 폭 넓게 대응이 가능해진다.
하드디스크(48)는 대량의 데이터를 기억해두기 위한 자기기록장치이며, 문자패턴의 추가, 폼 데이터 및 로고 데이터의 보존, 호스트 컴퓨터로부터의 입력데이터의 보존등에 사용된다. 이 하드디스크(48)도 유저가 필요에 따라 접속할 수가 있다.
다음에 프로그램 메모리(39)에 기억되어 있는 프로그램, 즉 소프트웨어의 구조를 제3도에 나타낸다. 제3도에 나타낸 바와 같이 최하층에는 하드디스크(48)등의 각 주변기기를 개별적으로 제어하기 위한 소프트웨어군인 디바이스 드라이버가 위치하고 있다.
다음의 계층에는 OS(operating system)가 위치하여, 화상기록장치(11)를 제어하는 소프트웨어의 중추적 역할을 담당하고 있다. 이 OS는 타스크관리, 기록관리, 입출력관리등을 함으로써 CPU(31), RAM(38), 각 주변기기등의 하드웨어를 관리한다. 또 하드웨어 자원의 관리를 토대로 하여 파일관리, 프로그램관리, 통신제어등을 함으로써 파일, 상위의 프로그램등의 논리자원을 관리한다. 이와 같은 구성을 취함으로써 하드웨어의 변경에 의한 상위 계층의 소프트웨어의 수정을 최소화할 수 있다.
OS의 상위에는 제어용 라이브러리, 응용 프로그램(application program)이 위치하고 있다. 제어용 라이브러리에는 최상층에 있는 응용 프로그램에 사용되는 제어용의 프로그램군이 저장되어 있다.
응용 프로그램은 화상기록장치(11)가 유저 소망의 동작을 실행하도록 작성된 응용적인 프로그램이다. 제어언어로서의 프린터언어를 해석하여 화상으로 전개하는 디콤포저는 이 응용 프로그램에 속한다.
제4도에 응용 프로그램을 기본적인 기능 블록으로 나타낸다. 콘트롤(60)은 시스템 전체를 제어하는 것이며, 인(62) 및 기타부(others)(68)로부터의 작업 (job)개시의 요구에 의거해서 데이터 프로세스 (64) 및 기타부(68)를 제어한다. 이 콘트롤 (60)은 다음과 같은(1)-(4)의 모듈로 구성되어 있다, 그리고 본 실시의 형태에서는 콘트롤 (60)을 시스템 제어부라고 한다.
(1) 시스템 콘트롤러: 설정정보를 체크하여 각 타스크를 기동한다.
(2) 작업 콘트롤러: 작업을 실행 제어한다.
(3) 페이지 콘트롤러: 비트 맵 메모리를 관리한다.
(4) 타이머 콘트롤러: 메시지에 의한 타이머를 관리한다.
인(62)은 호스트 컴퓨터와의 데이터의 입출력을 관리하는 것이다. 이와 같은 입출력을 하기 위해 인(62)은 데이터 프로세스(64)에 데이터를 주거나, 또는 데이터 프로세스(64)로부터 데이터를 받는다. 또한 데이터를 주거나, 받거나 하면 콘트롤(60)에 작업의 개시를 요구한다. 또 인(62)은 예컨대 다음과 같은 모듈로 구성되어 있다.
(1) 인터페이스 A : 로컬 인터페이스 A
(2) 인터페이스 B : 로컬 인터페이스 B
(3) 인터페이스 C : 네트워크 인터페이스 C
(4) 인터페이스 D : 네트워크 인터페이스 D
(5) 인터페이스 E : 네트워크 인터페이스 E
또한 로컬 인터페이스로서는 센트로닉스, RS-232C등, 네트워크 인터페이스로서는 이서 네트, 로컬 토크등을 사용할 수 있다.
데이터 프로세스(64)는 데이터를 처리하는 것이다. 이 처리하게 될 데이터는 인(62)으로부터 받은 데이터이며, 처리결과는 인(62) 또는 아우트(66)에 건네준다.
또 데이터 프로세스(64)는 본 실시의 형태에서 규정하는 제어언어 해석부와 동의어이며, 본 실시의 형태에서는 디콤포저라고 한다.
디콤포저는 데이터 프로세스(64)로서 장착되며, 다음과 같은 종류가 있다. 이들은 각각 1개 이상의 타스크로서 동작한다.
(1) 자동판별 퍼서 : 프린터언어(제어언어)를 판별하는 타스크이다.
(2) 언어A 디콤포저 : 프린터언어A(제품 고유의 페이지 기술언어)를 해석하고 실행하는 타스크군이다.
(3) 언어B 디콤포저 : 프린터언어B(업계 표준의 페이지 기술언어)를 해석하고 실행하는 타스크군이다.
(4) 언어C 디콤포저 : 프린터언어C(X사 개발 프로터 제어언어)를 해석하고 실행하는 타스크군이다.
(5) 언어D 디콤포저 : 프린터언어D(Y사 개발 와이어 도트 프린터 제어언어)를 해석하고 실행하는 타스크군이다.
(6) 언어E 디콤포저 : 프린터언어E(Z사 개발 와이어 도트 프린터 제어언어)를 해석하고 실행하는 타스크군이다.
(7) 덤 프:16진 덤프의 화상을 형성하는 타스크이다.
(8) 프린트 유틸리티 포매터 타스크 : 각종 프린트 유틸리티의 화상을 형성하는 타스크이다.
아우트(66)는 데이터 프로세스(64)의 처리결과의 데이터를 출력하는 것이다. 이 아우트(66)는 다음과 같은 모듈로 구성되어 있다.
(1) 엔딩 콘트롤러: 프린터 엔딩(기록부)를 제어한다.
기타부(68)는 상술한 이외의 다른 각종 기능이나 복합적인 기능을 실행하는 것이다. 이 기타부(68)는 다음과 같은 모듈로 구성되어 있다.
(1) UI : 패널(15)를 제어한다.
(2) 프린터관리 에이전트 : 네트워크에서의 프린터관리 시스템을 실현하기 위한 기능을 갖는다. 예컨대 고객에 대해 프린터 리소스, 상태의 설정, 제공등의 기능이다.
이상과 같이 응용 프로그램은 수개의 구성요소로 되며, 각 구성요소는 다시 수개의 기능모듈로 구성되어 있다. 이들 기능모듈은 실제로는 1개 또는 복수의 타스크로 구성되어 있다. 디콤포저도 수개의 타스크군을 구성하고 있다.
이들 타스크군은 제어용 라이브러리로서 준비되어 있는 여러가지 함수를 사용하여 타스크 사이의 동기를 취하고 있다. 디콤포저도 제어용 라이브러리를 사용하여 콘트롤(60), 인(62) 및 아우트(66)를 구성하는 타스크군과의 동기를 취하면서 프린트기능을 실현하고 있다.
다음에 화상기록장치(11)의 작용에 대해 설명한다. 각종의 컴퓨터나 워크스테이션등의 정보처리장치로부터 출력된 인자데이터 및 그 인자데이터를 어떻게 출력하는가를 정한 제어언어로 구성된 제어데이터는 호스트 인터페이스 단자(17) 또는 입력단자(18)를 통해서 화상공급장치(13)에 입력된다. 정보처리장치에는 많은 종류가 있기 때문에, 입력된 제어데이터는 반드시 통일되어 있지는 않다. 예컨대 어떤 정보처리장치가 송출하는 제어데이터는 기록용지의 사이즈나 문서의 크기등을 세밀하게 지정할 수 있어도, 다른 장치의 제어데이터는 이와 같은 지정을 할 수 없는 경우가 있다.
후자와 같이 제어데이터에 지정이 없을 경우에 패널(15)의 표시부에는 그 취지가 표시된다. 따라서 오퍼레이터가 패널(15)에 의해 그 기록에 관한 필요한 데이터를 키 입력하면 그 지시정보(19)가 화상공급장치(13)에 전달되어, 지시정보(19)에 의거한 기록제어가 가능해진다.
또한 정보처리장치측에서 기록할 용지의 사이즈나 문자의 크기등을 제어데이터로서 지정해 온 경우에도 패널(15)로부터 키 조작등에 의해 지시정보(19)를 입력하는 것도 가능하다. 이와 같은 경우에는 정보처리장치측의 지시를 항상 우선시킬 수도 있고, 패널(15)측의 입력을 우선시킬 수도 있다. 또 시간적으로 나중에 지시를 준 쪽을 우선시킬 수도 있다.
다음에 화상공급장치(13)는 지시정보(19)와 기록부(12)로부터의 상태신호에 의거해서 인자가 가능한가의 여부등을 판단하여, 그 뜻을 응답정보(21)로서 패널(15)에 표시시킨다. 예컨대 지시정보(19)에 의해 지시된 사이즈의 용지가 기록부(12)에 세트되어 있지 않을 경우에는 그 사이즈의 용지를 세트하도록 촉구하는 응답을 패널(15)에 표시시킨다.
이상과 같이 하여 기록준비가 완료되면 화상공급장치(13)는 동작지시신호(26)를 기록부(12)에 송출하여 기록부(12)를 제어데이터에 의거해서 동작시킴과 동시에 기록부(12)로부터의 동기펄스(25)에 의해 출력의 타이밍을 취하면서 입력된 인자데이터를 화상정보(27)로서 기록부(12)에 전송한다.
다음에 응용 프로그램의 전체 동작, 특히 작업 개시시에 기동되는 디콤포저의 작용에 대해서 설명한다. 작업개시시에 기동되는 디콤포저는 입력포트마다 설정되어 있는 프린터언어(제어언어)의 디콤포저이다. 작업의 입력포트에 대해 설정되어 있는 제어언어가 자동판별을 지정한 것이면 자동판별 퍼서가 기동되고(자동판별모드), 자동판별이 지정되어 있지 않으면 설정되어 있는 제어언어의 디콤포저가 기동된다(프린터언어 고정모드). 다음에 이 2개의 경우의 디콤포저의 처리에 대해 각각 설명한다. 그리고 대상으로 되는 디콤포저는 상기의 언어A, 언어B, 언어C, 언어D, 언어E에 대한 디콤포저 및 덤프이다.
우선 프린터언어 고정모드의 처리를 제5도의 플로차트 및 제6도의 블록도를 참조하여 설명한다. 그리고 제6도에서 인 타스크(74)는 인(62)에 의한 타스크, 아우트 타스크(76)는 아우트(66)에 의한 타스크, 작업 콘트롤러(72)는 상술한 콘트롤(60)의 1개의 기능모듈, 디콤포저(70)는 이 작업을 실행하는 1개의 디콤포저이다.
인 타스크(74)가 작업을 검출하였는가의 여부를 판정하여(스텝 300), 부정 판정의 경우에는 작업이 검출될 때까지 디콤포저(70)의 대기상태가 유지된다. 작업이 검출되면 인 타스크(74)는 그 입력포트의 프린터언어 설정을 참조하여 대응하는 디콤포저의 작업으로서 작업 콘트롤러(72)에 작업을 요구한다(스텝 302). 그리고 작업이 검출되었다 함은 어떤 인터페이스에 일련의 데이터가 입력되었다는 것을 의미한다.
작업 콘트롤러(시스텝제어부)(72)는 인 타스크(74)로부터의 작업 요구를 받아서, 그 디콤포저(70)에 작업실행지시를 출력한다(스텝 304).
비동기 이벤트로서 작업실행 지실르 받은 디콤포저(70)는 디콤포저처리를 개시한다(스텝 306). 이 디콤포저(70)에 의한 디콤포저처리에 의해, 인 타스크(74)에 의해 수신된 수신버퍼(RAM(38))내의 프린터언어는 설정된 프린터언어로 해석되어 나간다.
디콤포저(70)가 수신버퍼내의 프린터언어를 판독하고 있을 동안에 데이터의 종료를 나타내는 EOJ가 검출되었는가의 여부가 판정된다(스텝 308). EOJ가 검출되지 않을 경우에는 디콤포저처리(스텝 306)가 속행되고, EOJ가 검출되면 디콤포저(70)는 작업의 종료처리를 한다. 또한 EOJ는 작업의 종료를 나타내는 데이터의 입력, 데이터입력 대기시간의 타임 아우트, 패널(15)로부터의 강제배출 지시의 입력, 파일의 종료, 네트워크 접속의 종료등을 검출하여 판단할 수가 있다.
작업의 종료처리로서 디콤포저(70)는 우선 아우트 타스크(76)에 작업종료 통지를 낸다(스텝 310). 이에 따라 엔딩 콘트롤러는 그 처리데이터 이후의 해당 작업의 출력 의뢰가 없다는 것을 검출할 수 있어(스텝 312), 출력종료의 준비가 가능해진다.
그리고 디콤포저(70)는 작업 콘트롤러(72)에 대해 작업종료를 보고한다(스텝 314).
이상과 같이 디콤포저처리가 종료되면 디콤포저(70)는 비동기 이벤트 대기상태로 이행하고(스텝 316), 새로운 디콤포저처리의 실행지시를 기다린다(스텝 304).
다음에 자동판별모드의 처리를 제7도의 플로차트, 이 플로차트에 나타나는 기능블록과 제어의 흐름을 나타낸 제8도 및 제9도를 참조하여 설명한다. 그리고 제8도는 자동판별이 되었을 경우, 제9도는 자동판별이 되지 않았을 경우를 나타내고, 새롭게 부가된 자동판별 퍼서(78)는 상술한 데이터 프로세스(64)로서 장착되는 프린터언어 판별타스크이다.
우선 인 타스크(74)가 작업을 검출했는가의 여부가 판단되고(스텝318), 부정 판정의 경우에는 작업이 검출될 때까지 디콤포저(70)의 대기상태가 유지된다. 작업이 검출되면 인 타스크(74)는 작업 콘트롤러(72)에 대해 자동판별 퍼서(78)의 작업으로서 작업을 요구한다(스텝 320).
작업요구를 받은 작업 콘트롤러(72)는 자동판별 퍼서(72)에 작업실행지시를 낸다(스텝 322 ).
작업실행지시를 받은 자동판별 퍼서(78)는 하기의 ①,②중의 어느 하나의 조건이 충족되었을 때에 수신한 소정수의 데이터 또는 EOJ 검출까지의 데이터를 대상으로 하여 자동판별처리를 실행한다(스텝 324).
① 소정수의 데이터를 수신했을 경우
② EOJ를 검출했을 경우
이 자동판별처리의 상세한 것에 대해서는 후술한다.
자동판별 퍼서(78)가 자동판별처리를 종료하면 입력된 프린터언어가 어떤 언어인가를 판별했는가의 여부가 판정된다(스텝 326). 입력된 프린터언어가 어떤 언어인가를 판별했을 경우에는 자동판별 퍼서(78)는 작업 콘트롤러(72)에 대해 판별결과의 프린터언어에 대응하는 디콤포저(70)에 대한 전환요구를 내고(스텝 334), 작업 콘트롤러(72)는 이 디콤포저(70)를 기동시키기 위한 작업실행지시를 낸다(스텝 304). 그 이후는 제어가 이 디콤포저(70)에 이행하고, 스텝 304를 포함한 이후의 스텝은 제5도의 프린터 고정모드과 같으므로, 제5도와 대응하는 부분에도 동일 부호를 붙여서 설명을 생략한다.
또한 자동판별 퍼서(78)가 판별한 프린터언어의 디콤포저가 옵션 소프트웨어에 장착되어 있는가의 여부 판단과 처리는 자동판별 퍼서(78)가 아니고, 작업 콘트롤러(72)가 실행한다.
한편 스텝 326에서, 입력된 프린터언어가 어떤 언어인가를 판별할 수 없었던 경우에는 자동판별 퍼서(78)가 작업 콘트롤러(72)에 대해 중지(ABORT)요구를 낸다(스텝 328). 또한 이 때, 프린트 로그에 프린터언어 판별불능이라는 뜻을 등록한다.
중지요구를 받은 작업 콘트롤러(72)는 자동판별 퍼서(78)에 중지지시를 낸다(스텝 330). 이에 따라 자동판별 퍼서(78)의 처리가 종료가 된다(스텝 332). 즉 디콤포저(71)가 비동기 이벤트 대기상태로 이행한다(제9도 참조). 그리고 이 때에 해방된 디콤포저는 특정한 것을 가리키는 복수이기 때문에 제9도에서는 디콤포저(71)로서 단일의 디콤포저(70)와 구별하고 있다.
그리고 처리를 끝낸 자동판별 퍼서(78)는 작업 콘트롤러(72)에 중지종료를 보고하고(스텝 333), 이에 따라 자동 판별처리는 종료되어 최초의 스텝 318로 복귀한다. 그리고 이 시점에서는 아직 아우트 타스크(76)에 대해 출력의뢰를 하지 않았기 때문에 판별이 되었을 때와는 달리, 아우트 타스크(76)에 대해서는 작업종료를 통지하지 않는다(제9도 참조).
이상의 자동판별모드를 사용하면 호스트 컴퓨터로부터 수신된 데이터가 어떤 프린터언어로 기술되어 있는가가 자동적으로 식별되므로, 유저가 프린터언어를 지정하지 않드라도 화상기록장치(11)는 수신된 데이터에 맞추어서 적절한 프린터언어 처리계를 선택하여 프린트처리를 할 수가 있다.
다음에 상기 자동판별 퍼서(78) 내부의 구성과 상세한 제어의 흐름에 대해 설명한다. 제10도에 나타낸 바와 같이 자동판별 퍼서(78)는 작업콘트롤러(72)와의 인터페이스를 취하기 위한 작업 콘트롤러 인터페이스(80)을 갖추고 있다.
또 작업 콘트롤러 인터페이스(80)는 판별기 콘트롤러(82)에 작업실행지시에 의거한 판별개시지시를 줌과 동시에 판별기 콘트롤러(82)로부터 송출된 판별결과를 수신한다. 또 작업 콘트롤러 인터페이스(80)는 작업콘트롤러(72)로부터의 작업실행지시를 수신함과 동시에 디콤포저 전환 요구나 중지요구를 작업 콘트롤러(72)에 송출한다.
판별기 콘트롤러(82)는 작업 콘트롤러 인터페이스(80)로부터의 판별개시지시에 의거해서 수신데이터가 특정한 프린터언어인가의 여부를 판별하는 판별기의 각각에 기동지시를 줌과 동시에 각 판별기로부터의 판별결과(성공, 실패 및 부정중의 어느 것)를 받는다.
본 실시의 형태에서는 언어A 판별기(84), 언어B 판별기(86), 언어C 판별기(88), 언어D 판별기(90) 및 언어E 판별기(92)의 5개의 판별기가 설치되어, 수신데이터가 언어A, 언어B, 언어C, 언어 D 및 언어E로 기술되어 있는가의 여부를 각각 판별한다.
언어A 판별기(84), 언어B 판별기 (86)및 언어C 판별기(88)는 각각 직접 판별기 콘트롤러(82)와 접속되어 있으며, 판별기 콘트롤러(82)로부터의 기동지시에 의해 각각 대상으로 하는 프린터언어를 판별하여, 판별결과를 판별기 콘트롤로(82)에 송출한다.
언어D 판별기(90) 및 언어E 판별기(92)는 그룹판별 제어부(94)를 통해서 판별기 콘트롤러(82)와 접속되어 있으며, 그룹판별 제어부(94)를 통해서 입력되는 기동지시에 의해 각각 대상으로 하는 프린터언어를 판별하고, 그 판별결과를 그룹판별 제어부(94)를 통해서 판별기 콘트롤러(82)에 송출한다.
또한 판별기끼리를 1개의 그룹으로 구성하느냐의 여부는, 예컨대 대상으로 하는 프린터언어가 서로 공통의 명령을 가질 것이 하나의 기준이 되며, 공통의 명령을 갖는 경우에는 1개의 그룹으로 구성한다.
또 이들 판별기는 버퍼(96)와 접속되어 있으며, 버퍼에 저장되어 있는 수신데이터를 판독하여 그 판별 대상으로 하고 있다. 이 버퍼(96)는 로컬한 메모리이며, 여기에 저장되어 있는 수신데이터는 수신버퍼(제2도에서 말하는 RAM(38))로부터 전송되어 온 것이다.
각 판별기는 수신 데이터를 소정의 바이트수만큼 차례로 판독하여, 각 판별기가 대상으로 하는 언어로 사용되는 명령이 있는가의 여부를 검색한다. 또 각 판별기는 수신데이터를 각 판별기가 대상으로 하는 언어라고 가정하여 문법 에러가 있는가의 여부를 검색한다. 그리고 명령이 있는가 문법 에러가 있는가의 2종류의 검색결과의 조합에 의거해서 성공, 부정, 실패 중의 어느 것인가의 판정결과를 출력한다.
성공 : 문법 에러 없음 및 명령 있음
부정 : 문법 에러 없음 및 명령 없음
실패 : 문법 에러 있음
성공의 경우에는 수신데이터의 프린트언어는 해당 판별기의 대상으로 하는 언어이며, 부정의 경우에는 해당 언어인가의 여부를 알 수 없는 상태, 실패의 경우에는 수신데이터의 프린터언어는 해당 언어가 아니라는 것을 나타내고 있다.
이상과 같이 판별결과를 정의함으로써 실패의 경우에는 문법 에러를 검출한 시점에서 판별기에 의한 판별 처리를 중단시킬 수가 있다. 이에 따라 해당하지 않은 제어언어을 위한 판별처리를 최소한으로 억제할 수가 있어, 판별처리를 고속화할 수 있다.
또 문법 에러를 검출함으로써 가끔 문자열로서 다른 제어언어의 명령을 포함하지 않을 경우에도 오판정을 방지 할 수 있으므로 판별 정밀도를 향상시킬 수가 있다.
또한 이 문법 에러는 제어언어로서의 모순이 검출된 것을 의미하고, 다음과 같이 검출된다. 즉, 각 판별기는 수신데이터를 기술하는 제어언어중에서 그 판별기가 대상으로 하는 제어언어일 수는 없는 명령코드를 검출하였을 경우, 또는 제어언어일 수는 없는 명령코드의 조합을 검출하였을 경우에 문법 에러의 판별결과를 출력한다. 또 어떤 특정한 명령코드가 데이터열의 특정한 위치에 있다거나, 명령코드의 순번이 정해있는 제어언어의 경우에 해당 위치에 그 명령코드가 없을 때에도 문법 에러에 해당한다.
다음에 자동판별 퍼서(78)의 처리의 흐름에 대해 제11도의 플로차트를 따라 설명한다.
수신버퍼(RAM(38))에 일정량 이상의 수신데이터가 저장되면 로컬한 메모리인 버퍼(96)에 소정수분의 해당 수신데이터, 예컨대 256바이트나 1024바이트분의 수신데이터가 전송된다(스텝 340). 단 해당 소정수 미만에서 수신데이터의 종료를 나타내는 EOJ가 검출되었을 경우에는 EOJ까지의 수신데이터가 전송된다(스텝 340).
그리고 작업 콘트롤러 인터페이스(80)에 작업 콘트롤러(72)로부터 작업실행지시가 있으면, 작업 콘트롤러 인터페이스(80)는 판별기 콘트롤러(82)에 판별개시지시를 준다. 그리고 판별개시지시를 받은 판별기 콘트롤러(82)는 각 판별기에 기동지시를 주어 순서대로 기동시킨다.
우선 언어A 판별기(84)가 기동되어(스텝 342), 버퍼(96)내의 수신테이터가 언어A인가의 여부의 판별처리가 이루어진다. 판별처리가 종료되면, 그 결과가 판별기 콘트롤러(82)에 전달되어, 판별결과의 판정이 이루어진다(스텝 344).
스텝 344의 판정이 성공일 경우에는 언어A가 수신데이터의 프린터언어이라고 판정한다(스텝 372). 그리고 판별결과가 언어A라는 정보가 작업 콘트롤러 인터페이스(80)에 전달되어, 그 곳으로부터 그 판별결과가 시스템에 통지된다(스텝 374). 또는 작업 콘트롤러 인터페이스(80)로부터 작업 콘트롤러(72)에 언어A를 해석하는 디콤포저에 대한 전환요구가 송출된다.
스텝 344의 판정이 실패 또는 부정일 경우에는 다음의 언어B 판별기(86)가 기동되어(스텝 346), 버퍼(96)내의 수신데이터가 언어B인가의 여부의 판별이 이루어진다.
그 판별결과의 판정(스텝 348)이 성공일 경우에는 언어B가 수신데이터의 프린터언어라고 판단하여, 상기와 마찬가지 처리가 실행된다.
스텝 348의 판정이 실패 또는 부정일 경우에는 다음의 언어C 판별기(88)가 기동되어(스텝 350), 버퍼(96)내의 수신데이터가 언어C인가의 여부의 판별이 이루어진다.
그 판별결과의 판정(스텝 352)이 성공일 경우에는 언어C가 수신데이터의 프린터언어라고 판단하여, 상기와 마찬가지 처리가 실행된다.
이와 같이 1개의 판별기가 성공이라고 판단한 시점에서 자동판별처리를 완료시킴으로써 해당하지 않은 제어언어를 위한 판별처리를 하지 않아도 되므로 판별처리를 고속화할 수 있다.
그런데 스텝 352의 판정이 실패 또는 부정일 경우에는 판별기 콘트롤러(82)는 그룹판별 제어부(94)에 기동지시를 주어서 언어D·언어E 판별처리를 실행시킨다(스텝 354). 이 언어D·언어E 판별처리는 다음과 같은 스텝으로 구성된다.
우선 언어D 판별기(90)에 의해 수신데이터가 언어D인가의 여부의 판별처리(스텝 356)가 이루어지고, 그 판별결과가 그룹판별 제어부(94)에 송출되고, 그 곳에서 일단 보존된다. 다음에 언어E 판별기(92)에 의해 수신데이터가 언어E인가의 여부의 판별처리(스텝 358)가 이루어지고, 그 판별결과가 그룹판별 제어부(94)에 송출된다. 그룹판별 제어부(94)는 언어D 판별기(90)와 언어E 판별기(92)에 의한 판별결과를 룰에 비추어서 비교하여, 어느 쪽에 일치하는가, 또는 어느 쪽도 아닌가를 판별한다(스텝 360). 예컨대 한 쪽의 언어만의 판별이 성공하고, 다른 쪽은 실패 또는 부정일 경우에는 전자의 언어를 판별결과로 한다. 또 양자가 다 같이 성공일 경우에는 언어D를 판별결과로 하고, 양자가 다 같이 부정일 경우에는 언어E를 판별결과로 한다. 그리고 양자가 다 같이 실패일 경우에는 판별결과를 실패로 하고, 한 쪽이 부정이고 다른 쪽이 실패일 경우에는 판별결과를 부정으로 한다.
판별결과가 나오면 그룹판별 제어부(94)는 그 판별결과와 성공의 경우에는 그 언어의 종류를 판별기 콘트롤러(82)에 통지한다. 그리고 그 판별결과가 판정되어(스텝 362), 성공일 경우에는 언어D와 언어E중의 어느 하나의 언어가 프린터언어라고 판단하여(스텝 372), 시스템에 통지한다(스텝 374). 한편 스텝 362의 판정에서 실패 또는 부정일 경우에는 모두 실패이거나, 부정 있음이 판정된다(스텝 366). 모두 실패일 경우에는 판별결과가 에러로 되고(스텝 370), 부정 있음일 경우에는 판별결과가 언어E로 되어(스텝 368), 시스템에 통지한다(스텝 374). 이 언어E는 상술한 바와 같이 와이어 도트 프린터 제어언어의 하나로서 단순한 테스트출력(문자열과 복귀·개행등의 명령의 조합)이 가능한 언어이기 때문에 이와 같은 처리가 가능해진다.
이와 같이 상호간에 공통의 명령이 있는 제어언어는 1개의 그룹으로서 취급하고, 같은 그룹내의 제어언어의 판별에 대해서는 이들 판별기에 의한 판별이 전부 종료되었을 때에 판별결과가 출력하도록 하였으므로, 같은 그룹내의 제어언어와의 오판정이 방지된다. 또 해당 그룹에 속하지 않는 다른 제어언어와의 오판정도 회피 할 수 있다.
또한 스텝 360이나 스텝 368에서 취급한 바와 같이 프린터언어를 특정지우는 명령을 포함하지 않는 데이터만의 부정일 경우에도 룰로 정한 적절한 제어언어를 적용함으로써 인자가 가능해진다.
그리고 스텝 360에서 같은 그룹내의 복수의 판별기가 성공을 출력하였을 경우에는 그룹판별 제어부(94)는 다음과 같은 방법에 의해 판별결과를 출력하고록 하여도 좋다.
우선 개개의 제어언어에서의 명령코드를 특유 명령과 공통 명령으로 분류하고, 이 공통 명령에 대해서는 각 판별기마다 가중치 테이블을 준비하여, 입력된 제어언어의 명령코드와 일치할 때마다 각 판별기마다 그것들에 설정된 가중치를 가산해 간다. 그리고 최종적인 가산결과를 판별 결과 성공의 보조정보로서 이용한다. 즉 그룹내의 모든 판별기의 가산결과가 나온 후, 성공을 검출한 판별기가 복수 있을 경우에, 그들 판별기마다의 가산결과의 대소로 그룹의 어떤 제어언어인가를 결정하는 방법이다. 공통 명령은 제어상의 의미, 중요도가 각 제어언어마다 다르기 때문에, 이 방법에 의해 그룹내의 식별을 할 수가 있어, 판별 정밀도를 향상시킬 수가 있다.
또한 그룹내의 제어언어군에서 미리 우선순위를 붙여 두고, 그룹내의 모든 판별기의 결과가 나온 후에 모순되는 명령코드를 포함하고 있는 것을 검출한 판별기를 제외하고, 이 우선순위를 따라 그룹의 어느 제어언어인가를 결정하는 방법도 유효하다. 이 방법은 특히 어떤 제어언어에 있어서, 공통 명령(군)의 제어상의 의미가 다른 제어언어보다 중요할 경우에 적용할 수 있다. 즉 그룹내에서 성공을 검출한 판별기가 복수 있을 경우는 입력데이터로서 공통의 명령을 포함하고 있다는 것을 의미한다. 따라서 공통 명령(군)의 제어상의 의미가 다른 제어언어보다 중요할 경우에는 우선순위를 확실하게 하는 척도로 간주할 수가 있다.
이 방법에 의하면 상술한 방법에 비해서 특유 명령과 공통 명령의 분류, 가중치 검색, 가산처리를 생략할 수가 있으므로 처리시간이 단축되는 이점이 있다.
또 상기의 예에서는 각 제어언어를 판별하기 위한 판별 룰은 모두 명령의 유무와 명령코드의 모순의 유무의 검색이었으나, 제어언어마다 각각 정해진 판별 룰을 적용하도록 하여도 좋다. 즉 각 판별기에서 실행되는 판별 룰을 그 대상으로 하는 제어언어의 판별에 있어서 최적의 판별 룰로 최급되는 것이며, 제어언어의 종류에 따라 판별 룰은 다르기도 하고, 같은 것이기도 하다. 이에 따라 불필요한 검색의 필요성이 적어져서, 처리시간의 단축을 도모할 수 있음과 동시에 해당 제어언어에 최적의 판별 룰에 의해 판별 정밀도가 향상하는 효과도 얻어진다.
이와 같은 제어언어마다 다른 판별 룰의 예를 제12도와 제13도에 나타낸다.
제12도의 플로챠트는 언어A판별기(84)의 판별 룰을 나타낸 것이며, 이 판별 룰은 명령의 출현순서에 따라 언어A를 특정지우는 것이다. 언어A에서는 명령을 세그멘트라 불리우는 계층으로 레벨수신하고 있으므로 1번째와 2번째에 수신되는 명령이 정해져 있으며, 그 때문에 명령의 출현순서에 의해 언어가 특정지워진다.
제12도에 의하면 우선 입력데이터를 구성하는 코드가 판독되어 명령의 구분 체크가 이루어짐으로써 1번째의 명령이 취득된다(스텝 376 전단). 이때 명령문은 판독후 폐기 처리된다(스텝 376 후단).
다음에 판별할 데이터가 종료되었는가의 여부가 체크된다(스텝 378). 데이터가 종료된 경우에는 판별결과는 부정으로 되어 (스텝 404), 언어A 판별기(84)의 처리가 종료된다.
종료되어 있지 않을 경우에는 1번째의 명령 체크가 이루어져서(스텝 380), 언어A의 데이터에서 1번째에 출현할 명령으로서 올바른가의 여부가 판정된다(스텝 382).
1번째의 명령 체크의 결과가 에러이었을 경우에는 판별결과는 실패로 되어(스텝 402), 언어A 판별기(84)의 처리가 종료된다.
1번째의 명령 체크의 결과가 올바른 경우에는 판독된 코드에 대해서 파라미터 구분체크가 이루어짐으로써 파라미터가 취득된다(스텝384 전단). 이 때에도 명령문은 판독 후 폐기처리된다(스텝 384 후단).
다음에 판별할 데이터가 종료되었는가의 여부가 체크된다(스텝 386). 데이터가 종료된 경우에는 판별결과는 부정으로 되어(스텝 404), 언어A 판별기(84)의 처리가 종료된다.
종료되어 있지 않을 경우에는 1번째의 명령의 파라미터 체크가 이루어져서(스텝 388), 언어A의 데이터에서 1번째에 출현할 명령의 파라미터로서 올바른가의 여부가 판정된다(스텝 390).
파라미터 체크의 결과가 에러이었을 경우에는 판별결과는 실패로 되어(스텝 402), 언어A 판별기(84)의 처리가 종료된다.
파라미터 체크의 결과가 올바른 경우에는 2번째의 명령이 취득된다(392). 이 2번째의 명령의 취득방법도 1번째의 명령과 마찬가지이다.
다음에 판별할 데이터가 종료하였는가의 여부가 체크된다(스텝 394). 데이터가 종료된 경우에는 판별결과는 부정으로 되어(스텝 404), 언어A 판별기(84)의 처리가 종료된다.
종료되어 있지 않을 경우에는 2번째의 명령 체크가 이루어져서(스텝 396), 언어A의 데이터에서 2번째에 출현할 명령으로서 올바른가의 여부가 판정된다(스텝 398).
2번째의 명령 체크의 결과가 에러이었을 경우에는 판별결과는 실패로 되어(스텝 402), 언어A 판별기(84)의 처리가 종료된다.
2번째에 올 명령이 올바르면 판별결과는 성공으로 되어, 제어언어는 언어A로 간주할 수 있다(스텝 400).
이상과 같이 명령의 출현순서에 따라 언어를 판별할 경우에는 단순히 해당 언어에 특유한 명령만을 검색하는 경우에 비해, 가끔 데이터열로서 해당 명령과 같은 코드를 가지고 있는 경우와의 혼동을 회피할 수 있으므로, 판별 정밀도가 대폭적으로 향상된다. 더구나 제12도에 나타낸 바와 같이 명령의 출현하는 순서나 위치가 다르면 그 시점에서 즉시 판별결과를 실패로 하여 해당 판별기의 처리를 종료할 수 있으므로 처리시간의 단축도 가능해진다.
다음에 제13도의 플로차트는 언어C 판별기(88)의 판별 룰을 나타낸 것이며, 이 판별 룰은 언어C의 명령의 출현수가 소정수 이상이 되었을 때 언어C를 특정지우는 것이다.
제13도에 의하면 우선 명령의 취득이 이루어진다(스텝 406 전단). 명령의 취득방법은 알파벳의 검색을 하여, 검출되었으면 다음의 1바이트까지 인출한다. 즉 2바이트마다의 데이터를 판별할 데이터로부터 취득한다. 또 검출한 것이 알파벳이 아니고 ESC(1Bh) 코드일 경우에는 다음의 1바이트가(2Eh)인 것을 확인하고, 다시 다음의 1바이트를 인출한다. 따라서 판별데이터로부터 3바이트를 취득한다.
다음에 판별데이터가 종료되었는가의 여부가 체크된다(스텝 408). 데이터가 종료된 경우에는 판별결과는 부정으로 되어(스텝 428), 언어C 판별기(88)의 처리가 종료된다.
종료되어 있지 않을 경우에는 명령 체크가 이루어져서(스텝 410), 언어C의 명령으로서 올바른가의 여부가 판정된다(스텝 412).
명령 체크의 결과가 에러이었을 경우, 즉 명령 취득이 에러 종료 또는 취득된 명령이 언어C의 것이 아니라고 판정되었을 경우에는 판정결과는 실패로 되어(스텝 414), 언어C 판별기(88)의 처리가 종료된다.
명령 체크의 결과가 올바른 경우에는 명령수의 카운트 업(스텝 416)이 이루어진다. 또한 이 명령수는 언어C 판별기(88)의 기동시에 제로 클리어되어 있다.
다음에 명령수의 카운트치가 5에 달하였는가의 여부가 판정된다(스텝 418). 긍정판정, 즉 명령수의 카운트치가 5에 달하였을 경우에는 판정결과는 성공으로 되어, 제어언어는 언어C로서 취급된다(스텝 420).
부정판정의 경우에는 명령 체크를 한 명령이 문자를 파라미터로 하는 명령인가의 여부가 판정된다(스텝 422). 문자 파라미터의 명령이 아닐 경우에는 스텝 406으로 복귀하여 판별데이터로부터 다음 명령의 취득이 이루어져서, 어느 것인가의 판별결과가 나올 때까지 마찬가지 처리가 반복된다.
문자 파라미터의 명령의 경우에는 스텝 406의 명령취득으로 파라미터를 명령으로서 해석하지 않도록 하기 위하여 문자 파라미터의 판독후 폐기처리가 이루어진다(스텝 424).
이 파라미터의 판독후 폐기처리에서 판별데이터가 종료되었는가의 여부의 판정이 이루어져서(스텝 426), 종료된 경우에는 판별결과를 부정으로 하여 언어C 판별기(88)의 처리를 종료시킨다. 종료되어 있지 않을 경우에는 스텝 406으로 복귀하여 판별데이터로부터 다음 명령의 취득이 이루어져서, 어느 것인가 판별결과가 나올 때까지 마찬가지 처리가 반복된다.
이상과 같이 명령의 출현수에 따라 언어를 판별할 경우에는 단순히 해당 언어에 특유한 명령의 유무만을 겸출하는 경우에 비해 판별 정밀도가 향상하는 이점이 있다. 이와 같은 판별 룰을 채용하는 경우에, 제13도에 나타낸 바와 같이 파라미터의 판독후 폐기처리를 하면, 가끔 데이터열로서 해당 코드와 같은 코드를 가지고 있는 경우와의 혼동을 회피할 수 있으므로, 판별 정밀도가 저하할 우려가 없어진다.
또 상기와 같이 명령의 출현수에 따라 판별하는 제어언어끼리가 그룹을 형성할 경우, 예컨대 상기 언어D와 언어E와 같은 경우에는 상술한 바와 같이 2개의 판별을 별도로 하면 오판별의 가능성이 높아진다. 예컨대 언어D의 명령에는 언어E 판별기 (92)에서 에러를 발생하지 않은 것이 존재하기 때문에 언어E는 언어D의 판별을 하지 않으면 최종적으로 언어E이라고 판별할 수가 없다.
이와 같은 판별의 경우의 최종적인 판별처리의 흐름을 구체적으로 제14도의 플로차트에 나타낸다. 또한 언어D 판별기(90)와 언어E 판별기(92)의 처리는 명령의 에러 체크와 명령수의 카운트만이다.
제14도에 의하면 우선 언어D 판별기(90)에 의해 입력 데이터가 언어D로 기술되어 있는가의 여부 판별처리가 이루어진다(스텝 430). 치리가 끝나면 언어D 판별기(90)가 에레 종료되었는가의 여부가 판정되어(스텝 432), 에러 종료의 경우에는 다음의 언어E 판별기(92)에 의한 판별처리로 이행하고(스텝 438), 에러 종료가 아닐 경우에는 언어D 특유의 명령의 유무가 체크된다(스텝 434).
언어D 특유의 명령이 있을 경우에는 판별결과는 성공으로 되어, 제어언어는 언어D로서 취급된다(스텝 436). 한편 언어D 특유의 명령이 없을 경우에는 다음의 언어E 판별기(92)에 의한 판별처리로 이행한다(스텝 438).
언어E 판별기(92)에 의해 입력데이터가 언어E로 기술되어 있는가의 여부의 판별처리가 이루어져서(스텝 438), 해당 처리가 종료되면 언어E 판별기(92)가 에러 종료되었는가의 여부가 판정된다(스텝 440). 에러 종료의 경우에는 판별결과는 실패로 되고(스텝 446), 에러 종료가 아닐 경우에는 언어E 특유의 명령의 유무가 체크된다(스텝 442).
언어E 특유의 명령이 있을 경우에는 판별결과는 성공으로 되고, 제어언어는 언어E로서 취급된다(스텝 448). 한편 언어E 특유의 명령이 없을 경우에는 판별결과는 실패로 된다(스텝 444).
이와 같이 그룹에 속하는 제어언어군의 최종적인 판정을 함으로써 그룹내의 오판별을 회피할 수가 있으므로 판정 정밀도를 향상시킬 수가 있다.
또한 상기와 같이 각 판별기마다 판별 룰을 가지며, 또 성공을 출력한 시점에서 판별처리를 종료시킬 경우에는 처리시간이 빠른 판별기의 순서대로 처리를 진행해 나가도록 하면 처리시간의 단축화에 공헌하게 된다. 예컨대 명령의 출현순서를 체크하는 방법이 가장 처리가 빠르고, 그 후에 명령수에 따른 체크, 특유한 명령의 유무의 체크로 되므로, 각 판별기에 의한 판별 룰의 기동을 이 순서대로 하면 가장 처리의 반복회수가 많은 선두부근의 판별기의 처리시간이 짧으므로 평균적인 판별처리시간이 단축된다.
또 각 판별기를 기동시키는 순번은 불변이어도 좋으나, 가변으로 할 수도 있다. 예컨대 직전에 판별한 것을 먼저 판별하는 방법, 어떤 제어언어인가의 판별결과를 카운트해두고, 카운트치가 큰 순서대로 판별하는 방법, 유저가 명령 또는 조작패널에 의해 판별하는 순번을 지정하는 방법등이 있다. 이와 같이 순번을 가변으로 함으로써 보다 처리시간을 단축화시킬 수가 있다.
(제2의 실시의 형태)
제1의 실시의 형태에서는 각 판별기마다. 즉 제어언어마다 1개의 판별 룰을 갖는 경우의 예에 대해 상세히 설명하였으나, 각 판별기마다 복수의 판별 룰을 적용하도록 하여도 좋다. 이것을 제2의 실시의 형태로서 아래에 개시한다. 그리고 프린터장치의 구성, 소프트웨어의 구성에 대해서는 제1의 실시의 형태와 마찬가지이므로 동일한 부호를 붙여서 설명을 생략한다.
제2의 실시의 형태에서는 각 판별기마다 복수의 판별 룰을 가지고 있다. 예컨대 언어A 판별기(84)에서는 데이터 1번째 및 2번째의 명령순서가 올바를 때, 또는 언어A에 특정의 명령군이 검출되었을 때에 언어A를 확정하는 판별 룰을 가지고 있다. 따라서 판별 룰이 적용되는 명령군이 판별 룰마다 달라서, 각각에 대응하는 그룹을 구성하고 있다. 예컨대 언어A 판별기(84)의 경우에는 명령군은 표1과 같이 분류된다.
또한 각 판별기는 각 판별기마다에 주어진 판별 룰에 따라서, 판독된 명령을 각 그룹으로 분류하는 기능을 가지고 있다.
표1의 그룹 분류에 의거한 언어A 판별기(84)의 동작에 대해 제15도의 플로차트로 설명한다.
명령의 출현순서를 검지하기 위하여 판별개시시에 명령수 카운터가 초기화된다(스텝 450).
다음에 입력데이터로부터 문자열이 취득된다(스텝 452). 문자열이라 함은 언어A가 정의하는 데리미터가 검출되기까지의 일련의 데이터열을 말한다.
문자열이 취득되고 있는 동안에 데이터가 종료되었는가의 여부가 판정되어(스텝 454), 데이터가 종료된 경우에는 판별결과가 부정으로 되어(스텝 472), 판별이 종료된다.
데이터가 종료되지 않는 경우에는 취득된 명령이 정상인가의 여부가 체크되어(스텝 456), 정상의 명령이 검출되지 않으면, 판별결과가 실패로 되어(스텝 474), 판별이 종료된다.
정상의 명령이 검출되면 명령수 카운터에 1이 가산된다(스텝 458).
다음에 검출된 명령이 그룹③에 속하는가의 여부가 체크된다(스텝 460). 그룹③에 속하는 명령, 즉 즉석에서 언어를 확정할 명령이면 판별결과가 성공으로 되어(스텝 478), 판별이 종료된다.
그룹③에 속하지 않는 명령이면 취득된 명령의 출현순서가 1번째인가 2번째인가에 따라 분기한다(스텝 462).
검출된 명령의 출현순서가 1번째이며, 또 해당 명령이 그룹①에 속하는 명령, 즉 데이터의 1번째에 있어야 할 명령이면(스텝 464 긍정 판정), 다음의 명령을 취득하기 위하여 문자열 취득처리(스텝 452)로 복귀한다. 또 검출된 명령이 데이터의 1번째에 있음에도 불구하고 그룹①에 속하지 않은 명령, 즉 데이터의 1번째에 있어서는 안될 명령이면(스텝 464 부정 판정), 판별결과가 실패로 되어, 판별처리가 종료된다.
검출된 명령의 출현순서가 2번째이며, 또 해당 명령이 그룹②에 속하는 명령, 즉 데이터의 2번째에 있어야 할 명령이면(스텝 466 긍정 판정), 판별결과가 성공으로 되어, 언어A가 제어언어로서 취급된다. 또 검출된 명령이 데이터의 2번째에 있음에도 불구하고 그룹②에 속하지 않은 명령, 즉 데이터의 2번째에 있어서는 안될 명령이면(스텝 466 부정 판정), 판별결과가 실패로 되어, 판별처리가 종료된다.
이상이 제2의 실시의 형태에 의한 언어A 판별기(84)의 동작인데, 이와 같은 처리를 함으로써 판별에 요하는 평균시간을 단축화할 수 있는 효과가 있다. 즉 제1의 실시의 형태에서는 언어A를 출현순서만에 의해 판별하여, 적어도 2데이터를 검출하여야 하였으나, 제2의 실시의 형태에서는, 예컨대 데이터열중의 1번째에 언어A에만 특유의 명령이 있을 경우에, 이 시점에서 판별결과를 낼 수가 있어서, 1데이터의 검출이면 된다. 또 검지하여야 할 데이터가 적어지므로, 데이터가 도중에 종료되어 판별결과가 부정이되는 우려도 적어져서 판별 정밀도가 향상하는 이점도 있다.
다음에 언어C의 판별예에 대해 설명한다. 언어C 판별기(88)의 판별 룰은 제1의 실시의 형태에서는 명령의 출현수가 기준이었으나, 제2의 실시의 형태에서는 이것에 추가해서 언어C만에 특유한 명령에 의한 판별도 실행할 수 있도록 되어 있다. 따라서 언어C의 명령군은 표2와 같이 분류된다.
표2의 그룹분류에 의거하여 언어C판별기(88)의 동작에 대하여 제16도의 플로차트로 설명한다.
명령의 출현 순서를 검지하기 위하여 판별개시시에 명령수 카운터가 초기화 된다(스텝 478).
다음에 입력 데이터로부터 문자열이 취득된다(스텝 480). 문자열이라 함은 언어C가 정의하는 데리미터가 검출될때까지의 일련의 데이터열을 말한다. 문자열이 취득되고 있는 동안에 데이터가 종료되었는가의 여부가 판정되어(스텝482) 데어터가 종료된 경우에는 판별결과가 부정으로 되어(스텝494)판별이 종료된다. 데이터가 종료되지 않는 경우에는 취득된 명령이 정상인가 여부가 체크되어(스텝484), 정상인 명령이 검출되지 않으면 판별결과가 실패로 되어(스텝496) 판별이 종료된다.
정상인 명령이 검출되면 해당 명령이 그룹⑤에 속하는가 여부가 체크된다(스텝486). 그룹⑤에 속하는 명령 즉, 즉석에서 언어를 확정할 명령이면 판별결과가 성공으로 되어(스텝498) 판별이 종료된다. 이 경우에 제어언어는 언어C로서 취급한다.
그룹⑥에 속하는 명령, 즉 출현수를 카운트할 명령의 경우에는 명령수 카운터에 1이 가산된다(스텝 488).
다음에 명령수 카운터의 명령수가 5에 달하였는가의 여부가 판정되어(스텝 490), 5에 달하지 않았을 경우에는 문자열 취득처리(스텝 480)로 복귀하여 마찬가지 처리가 반복된다.
명령수가 5에 달한 경우에는 판별결과가 성공으로 되어(스텝 492), 제어언어가 언어C로서 취급된다.
이상이 제2의 실시의 형태에 의한 언어C 판별기(88)의 동작인데, 이와 같은 처리를 함으로써 판별에 요하는 평균시간을 단축화할 수 있는 효과가 있다. 즉 제1의 실시의 형태에서는 언어C의 출현수만에 의해 판별하여 5개의 명령을 검출하여야 하였으나, 제2의 실시의 형태에서는, 예컨대 5개의 명령을 검출하기 전에 언어C에만 특유의 명령이 있을 경우에, 이 시점에서 판별결과를 낼 수가 있다. 또 검지하여야 할 데이터가 적어지므로, 데이터가 도중에 종료되어 판별결과가 부정이 되는 우려도 적어져서 판별 정밀도가 향상하는 이점도 있다.
이상이 본 발명에 관한 실시의 형태인데, 상기의 예에 한정되는 것은 아니다. 예컨대 상기 실시의 형태에서 나타낸 제어언어를 판별하는 판별기는 상기의 제어언어의 종류나 수에 한정되지 않는다. 또 판별 룰도 출현순서나 명령수의 체크에 한정되지 않고, 예컨대 각 명령에 대한 가중치 가산결과나 우선순위를 이용하도록 하여도 좋다.
또한 회로구성, 기능블록, 소프트웨어의 구성, 제어나 입출력의 흐름등도 임의로 적당히 변경할 수가 있다. 예컨대 자동판별처리등을 게이트 어레이로 실현함으로써 보다 고속화를 달성할 수도 있다.

Claims (9)

  1. 입력데이터를 기억하는 기억수단과, 상기 입력데이터의 제어언어가 특정한 제어언어인가를 각각 판별하는 복수의 제어언어 판별수단과, 상기 복수의 제어언어 판별수단에 의한 판별결과에 의거해서 상기 입력데이터의 제어언어를 결정하는 결정수단과, 상기 결정수단에 의해 결정된 제어언어에 의거해서 상기 입력데이터를 해석하여 출력하는 출력수단을 포함하는 출력제어장치.
  2. 제1항에 있어서, 상기 복수의 제어언어 판별수단중의 적어도 1개의 제어언어 판별수단은 다른 제어언어 판별수단과는 다른 판별 룰을 가지는 것을 특징으로 하는 출력 제어장치.
  3. 제2항에 있어서, 상기 복수의 제어언어 판별수단중의 적어도 1개의 제어언어 판별수단이 입력데이터중의 특정 코드의 출현순서에 의해 특정한 제어언어인가를 판별하는 판별 룰을 가지는 것을 특징으로 하는 출력제어장치.
  4. 제2항에 있어서, 상기 복수의 제어언어 판별수단중의 적어도 1개의 제어언어 판별수단이 입력데이터중의 특정 코드의 출현수가 소정수에 달함으로써 특정한 제어언어인가를 판별하는 판별 룰을 가지는 것을 특징으로 하는 출력제어장치.
  5. 제2항에 있어서, 상기 복수의 제어언어 판별수단중의 적어도 1개의 제어언어 판별수단이 복수의 판별 룰을 가지는 것을 특징으로 하는 출력제어장치.
  6. 제1항에 있어서, 상기 결정수단은 상기 복수의 제어언어 판별수단의 1개의 제어언어 판별수단이 제어언어의 판별에 성공했을 경우에는 입력데이터의 제어언어는 판별에 성공한 제어언어인가를 결정하는 것을 특징으로 하는 출력제어장치.
  7. 제1항에 있어서, 상기 결정수단은 판별속도가 빠른 순서로 상기 복수의 제어언어 판별수단에 대해 판별처리를 시키는 것을 특징으로 하는 출력제어장치.
  8. 입력데이터를 기억하는 기억수단과, 상기 입력데이터의 제어언어가 특정한 제어언어인가를 판별하는 복수의 제어언어 판별수단과, 상기 복수의 제어언어 판별수단중에서 대상으로 하는 제어언어가 유사한 그룹에 속하는 제어언어 판별수단에 대해서는 그룹으로서 제어언어를 판별하는 그룹판별수단과, 상기 그룹판별수단 및 이 그룹에 속하지 않는 제어언어 판별수단의 판별결과에 의거해서 상기 입력데이터의 제어언어를 결정하는 결정수단과, 상기 결정수단에 의해 결정된 제어언어에 의거해서 상기 입력데이터를 해석하여 출력하는 출력수단을 포함하는 출력제어장치.
  9. 제8항에 있어서, 상기 그룹판별수단이 상기 복수의 제어언어 판별수단의 어느 것이나 특정한 제어언어임을 판별할 수 없었을 경우에는, 미리 정해진 기준으로 그룹으로 서의 제어언어를 판별하는 것을 특징으로 하는 출력제어장치.
KR1019960012411A 1995-04-24 1996-04-23 출력제어장치 KR100199430B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP95-098953 1995-04-24
JP95-098954 1995-04-24
JP7098954A JP2785742B2 (ja) 1995-04-24 1995-04-24 プリンタ装置
JP7098953A JP2861859B2 (ja) 1995-04-24 1995-04-24 出力制御装置

Publications (2)

Publication Number Publication Date
KR960038583A KR960038583A (ko) 1996-11-21
KR100199430B1 true KR100199430B1 (ko) 1999-06-15

Family

ID=26440042

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960012411A KR100199430B1 (ko) 1995-04-24 1996-04-23 출력제어장치

Country Status (3)

Country Link
US (1) US5854940A (ko)
KR (1) KR100199430B1 (ko)
TW (1) TW307846B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3869925B2 (ja) * 1997-01-31 2007-01-17 キヤノン株式会社 画像処理装置及び方法
JPH10224643A (ja) * 1997-01-31 1998-08-21 Canon Inc 画像処理装置及び方法
US7126703B1 (en) * 1998-08-04 2006-10-24 Sharp Laboratories Of America, Inc. Printer controller with error recovery for multiple language capability
US20090111206A1 (en) 1999-03-30 2009-04-30 Daniel Luch Collector grid, electrode structures and interrconnect structures for photovoltaic arrays and methods of manufacture
US7507903B2 (en) 1999-03-30 2009-03-24 Daniel Luch Substrate and collector grid structures for integrated series connected photovoltaic arrays and process of manufacture of such arrays
US8138413B2 (en) 2006-04-13 2012-03-20 Daniel Luch Collector grid and interconnect structures for photovoltaic arrays and modules
US8664030B2 (en) 1999-03-30 2014-03-04 Daniel Luch Collector grid and interconnect structures for photovoltaic arrays and modules
US8222513B2 (en) 2006-04-13 2012-07-17 Daniel Luch Collector grid, electrode structures and interconnect structures for photovoltaic arrays and methods of manufacture
US8198696B2 (en) 2000-02-04 2012-06-12 Daniel Luch Substrate structures for integrated series connected photovoltaic arrays and process of manufacture of such arrays
US7420701B2 (en) * 2003-09-30 2008-09-02 Sharp Laboratories Of America, Inc. Systems and methods for providing automatic language switching
JP4983235B2 (ja) * 2006-12-04 2012-07-25 富士ゼロックス株式会社 画像処理装置、画像処理システム及び画像処理プログラム
US8729385B2 (en) 2006-04-13 2014-05-20 Daniel Luch Collector grid and interconnect structures for photovoltaic arrays and modules
US8884155B2 (en) 2006-04-13 2014-11-11 Daniel Luch Collector grid and interconnect structures for photovoltaic arrays and modules
US9236512B2 (en) 2006-04-13 2016-01-12 Daniel Luch Collector grid and interconnect structures for photovoltaic arrays and modules
US9006563B2 (en) 2006-04-13 2015-04-14 Solannex, Inc. Collector grid and interconnect structures for photovoltaic arrays and modules
US8822810B2 (en) 2006-04-13 2014-09-02 Daniel Luch Collector grid and interconnect structures for photovoltaic arrays and modules
US9865758B2 (en) 2006-04-13 2018-01-09 Daniel Luch Collector grid and interconnect structures for photovoltaic arrays and modules
US7973954B2 (en) * 2006-08-28 2011-07-05 Sharp Laboratories Of America, Inc. Method and apparatus for automatic language switching for an imaging device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293466A (en) * 1990-08-03 1994-03-08 Qms, Inc. Method and apparatus for selecting interpreter for printer command language based upon sample of print job transmitted to printer
EP0881565B1 (en) * 1991-03-12 2004-08-04 Canon Kabushiki Kaisha Output method and apparatus using the same
JPH04323069A (ja) * 1991-04-23 1992-11-12 Canon Inc 出力方法及び装置
JP2698252B2 (ja) * 1991-09-25 1998-01-19 三田工業株式会社 プリンタ
JP2913934B2 (ja) * 1991-10-07 1999-06-28 富士ゼロックス株式会社 プリンタ装置
JP2913941B2 (ja) * 1991-10-15 1999-06-28 富士ゼロックス株式会社 プリンタ制御装置
US5392419A (en) * 1992-01-24 1995-02-21 Hewlett-Packard Company Language identification system and method for a peripheral unit
JPH05282109A (ja) * 1992-03-30 1993-10-29 Canon Inc コードデータのモード識別方法及び印刷装置
EP0585523B1 (en) * 1992-09-03 1998-12-09 Hewlett-Packard Company Automatic language boundary identification for a peripheral unit that supports multiple control languages

Also Published As

Publication number Publication date
US5854940A (en) 1998-12-29
KR960038583A (ko) 1996-11-21
TW307846B (ko) 1997-06-11

Similar Documents

Publication Publication Date Title
KR100199430B1 (ko) 출력제어장치
EP0834800B1 (en) Method and apparatus for controlling output of a printer
US6473811B1 (en) Method and apparatus for displaying a connection status of a device based on connection information
US20020114006A1 (en) Printer apparatus, printer system and control method thereof
EP0548251A1 (en) Method and system for matching the software command language of a computer with the printer language of a printer
EP0702289B1 (en) A method of automatically recognizing a language in which digital data are received
US7471406B2 (en) Printing control apparatus and method, and printing system
EP0556059B1 (en) Output method and apparatus
JPH05177884A (ja) 印字装置の制御装置
JP2785742B2 (ja) プリンタ装置
EP1022651A2 (en) Output control method and apparatus
JP2861859B2 (ja) 出力制御装置
JP2785743B2 (ja) データ処理装置
JP3435374B2 (ja) 文字読取装置および文字認識方法
US7318221B2 (en) Windows™ F-language interpreter
JP2853606B2 (ja) プリンタ装置
KR100334102B1 (ko) 프린터의 이력 관리방법
JP2913941B2 (ja) プリンタ制御装置
JP3610194B2 (ja) 印刷制御装置および印刷制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2910687B2 (ja) 印刷装置及び印刷方法
US20020184565A1 (en) Method for coexistence and cooperation between system firmware and debug code
US6002843A (en) Printing apparatus and its control method
JPH0224183A (ja) プリンタ
JPH08324035A (ja) 情報処理装置並びに印刷装置並びに印刷システムおよび印刷システムのプリンタドライバ選択方法
JPH082067A (ja) 印刷装置及びその制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060223

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee