[printing-japan] Bi-di資料
naka @ E-D.co.jp
naka @ E-D.co.jp
2003年 12月 8日 (月) 22:23:19 PST
中村です。
>CUPS 本体に手を入れるということはないのですよね?
>
>すみませんが、Bi-Di からのプリンタステータスが、*具体的*に
>はどのような経路/*手段*によって、操作者の目に届くことにな
>るのか、解説して頂けませんでしょうか?
岩田さんの質問は、Backend TypeX と、Printer Status Utility Type A の間の
情報の渡し方についてと思いますので、分かる範囲でお答えします。
1)Backend TypeX
CUPSに渡す情報はIPPの属性として得られる、
printer-state-reasons
printer-state-message
という2つの情報があります。
Backend TypeXでは、printer-state-reasonsについては、次の様にして、
標準Errorを通して、CUPS側に通知します。
fprintf(stderr,"STATE: \n"); /* CUPS側のmessage配列のクリア */
fprintf(stderr,"STATE: +opbidi-ink-c-70-report\n");
fprintf(stderr,"STATE: +opbidi-ink-m-30-low-warning\n");
fprintf(stderr,"STATE: +opbidi-ink-y-30-low-warning\n");
fprintf(stderr,"STATE: +opbidi-ink-k-0-empty\n");
fprintf(stderr,"STATE: +media-jam\n");
printer-state-reasonsは、CUPS1.1では、16個までのメッセージ配列として
上のメッセージを格納しています。
また、printer-state-messageについては、TAB区切り文字を次の様にして、
fprintf(stderr,"INFO: マゼンタのインクが少なくなっています。\tイエローのインクが少なくなっています。\tマゼンタのインクがなくなりました。\t用紙がつまりました。\n");
※上の文字のcharsetは、UTF-8です。
CUPS側に送ります。
2)CUPSは、印刷JOBを起動した後、定期的に stderr からのメッセージが来ているか
を調べ、メッセージを受けたら、そのプリンターの情報を更新します。
3)PSTypeAは、起動時に指定されたプリンタの情報を CUPS から得ます。この時、
IPPの属性として、
printer-state-reasons
printer-state-message
の情報が受けられますので、
・printer-state-reasons属性からは、インクレベルの情報を取り出し、それを
GUI画面に表示させる。
・printer-state-messageは、TAB区切り文字を改行に変えて、GUI画面に表示
する。
という処理を定期的に行ないます(3秒毎程度)。
4)printer-state-messageは、backendや他のfilterで、上書きされる可能性が
ありますが、printer-state-reasonsは、保持される可能性が高いです。
※ここは、未確認です!
以上、間違っていたら、訂正をお願いします。
--
Hisao Nakamura <naka @ E-D.co.jp,naka @ pro.or.jp>
More information about the Printing-japan
mailing list