URLをクリップボードにコピーしました
シェア用URL:https://faq2.epson.jp/web/Detail.aspx?id=50313
|
最終更新日 2018/12/19 |
FAQ番号:50313 |
|
接続時にプリンターの状態を知りたい
|
|
Epson ePOS SDK for JavaScript の connect で接続するとき、プリンタのロール紙切れや
カーバーオープン等のありがちなエラーを検知したい。
|
|
-
-
用紙が無い、カバーが開いているなど " オフライン " 状態のとき
Epson ePOS SDK for JavaScript から接続を開始した場合は、createDevice メソッドの
結果 ( callback ) で "DEVICE_NOT_FOUND" を返します。
その結果を受け取ったときはプリンター側に何らかの問題がある状態です。
プリンター本体が印刷できる状態か確認してください。
例
function connect(){
// デバイスと接続
ePosDev.connect('192.168.192.168', '8008', callback_connect);
}
function callback_connect(cResult){
// connect メソッドの実行結果 cResult
if ((cResult == 'OK') || (cResult == 'SSL_CONNECT_OK')) {
//Printer オブジェクトを取得
ePosDev.createDevice('local_printer', ePosDev.DEVICE_TYPE_PRINTER,
{'crypto' :false, 'buffer' : false}, callback_createDevice);
} else {
// 指定時間内にデバイスと通信できなかった ERROR_TIMEOUT など。
// エラーメッセージ表示などの処理
}
}
function callback_createDevice(deviceObj, retcode){
// createDevice メソッドの実行結果 retcode
if( retcode == "DEVICE_NOT_FOUND" ) {
// 指定デバイスを発見できなかった状態です。
// プリンターが使用可能な状態か確認してください。
// deviceType 等が間違っていないかも確認してください。
return;
}
if( retcode == "DEVICE_IN_USE" ) {
// デバイスが他で使用中です。
// 後で connect からやり直すなどをしてください。
return;
}
}
プリンターが既に接続中の場合には "DEVICE_IN_USE" を返します。
また、connect メソッドや createDevice メソッドの実行結果で
問題が無く、プリンターとの通信が確立した後に「プリンターの状態を取得」する場合、
Printer オブジェクトによるプリンターステータスの取得、更新を有効にしてください。
ステータスの取得、更新を有効にするためには startMonitor メソッドを使用します。
例
function callback_createDevice(deviceObj, retcode){
printer = deviceObj;
// イベント群を登録
printer.onreceive = function (res) {
alert('Print ' + (res.success ? 'Success' : 'Failure'));
};
printer.ononline = function () {
alert('online');
};
printer.onoffline = function () {
alert('offline');
};
printer.oncoverok = function () {
alert('coverok');
};
// カバーオープン時のイベントを登録
printer.oncoveropen = function () {
alert('coveropen');
};
}
function startMonitor() {
// ステータス監視の開始
printer.startMonitor();
}
function stopMonitor() {
// ステータス監視の終了
printer.stopMonitor();
}
このようにプリンターの変化をイベントで知ることができます。
|