ロゴ:EPSON
ロゴ:よくあるご質問(FAQ)

製品別
質問別

URLをクリップボードにコピーしました
シェア用URL:https://faq2.epson.jp/web/Detail.aspx?id=50313
  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();
}

このようにプリンターの変化をイベントで知ることができます。

FAQ改善アンケート

このページの評価をお聞かせください。〇✖をお選びください。

 

■役に立った
■役に立たなかった