[printing-japan] Bi-di資料
Masaki IWATA
iwata @ axe-inc.co.jp
2003年 12月 8日 (月) 23:18:43 PST
アックスの岩田です。
> 中村です。
ありがとうございます。
# すっきりしました。
やはり、標準エラー出力のメッセージを使うのですね。
> 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側に送ります。
IPP Backend のソースを見てみると、Printer オブジェクトの
printer-state-reasons 属性から、これらのメッセージを生成
していますね。(丸投げではなく、1つ1つチェックしています)
opbidi- で始まるキーワードは、IPP の仕様にありませんので、
Bi-Di 用に拡張されたものだと思うのですが、これらの一覧は
どこにあるのでしょうか?
> 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は、保持される可能性が高いです。
> ※ここは、未確認です!
Type A のプリンタステータスユーティリティは、受動的に参照
するのみということですね。
--
IWATA Masaki
岩田 正樹
More information about the Printing-japan
mailing list