3.1. StarIOPort
プリンターとの通信を行うためのクラスです。
メソッド
名称
説明
プリンターと通信するためのポートをオープンします。
プリンターと通信するためのポートをクローズします。
デバイスと接続可能なプリンターを検索します。
プリンターにデータを書き込みます。
プリンターからデータを読み込みます。
プリンターのステータスを取得します。
印刷終了監視を開始します。
印刷終了監視を終了します。
endCheckedBlock メソッドのタイムアウト値(ミリ秒指定)
用紙保持制御のタイムアウト時間を設定します。
プリンターのモデル名とファームウェアバージョンを取得します。
ポートをオープンしたときのportNameを取得します。
ポートをオープンしたときのportSettingsを取得します。
StarIOライブラリのバージョン番号を取得します。
モデル:StarIOPort クラス
モデル/エミュレーション |
mC-Print2 | mC-Print3 | mC-Label3 | mPOP | FVP10 | TSP100IV | TSP100IV SK | TSP100IIIW | TSP100IIIBI | TSP100IIIU | TSP100ECO | TSP100U | TSP100GT | TSP100LAN | TSP650II | TSP650IISK | TSP700II | TSP800II | TUP500 | SM-S210i | SM-S220i | SM-S230i | SM-T300i/T300 | SM-T400i | BSC10 | SM-L200 | SM-L300 | SP700 | SK1-211/221/V211 | SK1-211/221/V211 Presenter | SK1-311/321/V311 | SK1-311/V311 Presenter | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
StarPRNT | StarPRNT | StarPRNT | StarPRNT | StarLine | StarPRNT | StarPRNT | StarGraphic | StarGraphic | StarGraphic | StarGraphic | StarGraphic | StarGraphic | StarGraphic | StarLine | StarLine | StarLine | StarLine | StarLine | StarPRNT | EscPosMobile | StarPRNT | EscPosMobile | StarPRNT | EscPosMobile | StarPRNT | EscPosMobile | StarPRNT | EscPosMobile | EscPos | StarPRNT | StarPRNT | StarDotImpact | StarPRNT | StarPRNT | StarPRNT | StarPRNT | |
getPort |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
releasePort |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
searchPrinter |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
writePort |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
readPort |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
retreiveStatus |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
beginCheckedBlock |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔[1] | ✔ | ✔ | ✔ | ✔[1] | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
endCheckedBlock |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔[1] | ✔ | ✔ | ✔ | ✔[1] | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
setEndCheckedBlockTimeoutMillis |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
setHoldPrintTimeoutMillis |
- | - | ✔ | - | - | - | ✔ | - | - | - | - | - | - | - | - | ✔ | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | ✔ | - | ✔ | - |
getFirmwareInformation |
✔ | ✔ | ✔ | ✔ | ✔[2] | ✔ | ✔ | ✔[2][3] | ✔[2][3] | ✔[2][3] | ✔[2][3] | ✔[2][3] | ✔[2][3] | ✔[2][3] | ✔[2] | ✔[2] | ✔[2] | ✔[2] | ✔[2] | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔[4] | ✔ | ✔ | ✔[2] | ✔ | ✔ | ✔ | ✔ |
getPortName |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
getPortSettings |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
getStarIOVersion |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
[1] | SM-S220i はファームウェアバージョン 2.1 未満、SM-T300 はファームウェアバージョン 2.4 未満では印刷データ送信完了の確認はできますが、印刷終了監視はできません。 |
[2] | Apple AirMac シリーズを使用する場合、USBモデルは空文字を返します。 |
[3] | TSP100IIIU, TSP100U, TSP100GT, TSP100ECO の場合、モデル名は TSP100 になります。TSP100U, TSP100GT, TSP100ECO, TSP100LAN はファームウェアバージョンを取得できません。TSP100IIILAN, TSP100IIIW, TSP100IIIU はライブラリバージョン 2.2.7 以降が必要です。 |
[4] | ライブラリバージョン 2.2.3 以降が必要です。 |
3.1.1. 印刷処理フロー
次の印刷処理フローの手順に沿って印刷を行う方法を示します。
実装例
StarIOPort port = null; try { // Port open port = StarIOPort.getPort(portName, portSettings, 10000, context); // Print end monitoring -Start StarPrinterStatus status = port.beginCheckedBlock(); byte[] command = PrinterFunctions.createTextReceiptData(emulation, localizeReceipts, false); // Send print data port.writePort(command, 0, command.length); // Print end monitoring -End status = port.endCheckedBlock(); // Status judgment during printing completion monitoring if (status.offline == false) { // Print successful end (Printer Online) } else { // Printing is abnormal termination (no paper, printer cover open etc) // Notify user } } catch (StarIOPortException e) { // Error } finally { try { // Port close StarIOPort.releasePort(port); } catch (StarIOPortException e) {} }
Communication.javaを参照ください。
3.1.2. getPort
プリンターと通信するためのポートをオープンします。
宣言
public static StarIOPort getPort(String portName, String portSettings, int ioTimeoutMillis, Context context) throws StarIOPortException; @Deprecated public static StarIOPort getPort(String portName, String portSettings, int ioTimeoutMillis) throws StarIOPortException;
引数
名称
説明
型
portName
プリンターと通信するためのポートを特定する文字列
String
portSettings
プリンターとの接続設定情報
String
ioTimeoutMillis
内部制御および各APIのタイムアウト時間
int
context
コンテキスト
android.content.Context
戻り値
説明
型
StarIOPort オブジェクト
例外
説明
型
ポートオープンに失敗したとき誤ったportNameを設定したとき
エラーコード
値
説明
StarResultCode.FAILURE
何らかのエラーが発生したとき
StarResultCode.FAILURE_IN_USE
プリンターから接続拒否されたとき(他ホストが接続中など)
印刷の手順については 印刷処理フロー を参照ください。
portName 引数
インターフェイス |
portName |
説明 |
例 |
ライブラリバージョン |
---|---|---|---|---|
Bluetooth | BT: | 最初に見つかったスタープリンタと通信します。
スタープリンタを1台のみペアリングして使用してください。
|
"BT:" | 2.2.0+ |
BT:Device Name | Bluetoothデバイス名で指定する場合 |
"BT:Star Micronics" | 2.2.2+ | |
BT:BD Address | Bluetoothデバイスアドレスで指定する場合 |
"BT:00:12:F3:1E:2B:72" | 2.2.2+ | |
Ethernet/Wireless LAN | TCP:IP Address | IPアドレスで指定する場合 |
"TCP:192.168.1.100" | 2.2.2+ |
USB | USB: | 最初に見つかったスタープリンタと通信します。
プリンターをUSBで1台のみ接続して使用してください。
|
"USB:" | 2.2.2+ |
USB:SN:USB Serial Number | USBシリアルナンバーで指定する場合 |
"USB:SN:1234ABCD" | 2.2.2+ | |
USB:searchPrinter Result | searchPrinter メソッドで検索した結果得られるPortName。
getPortName メソッドで取得できます。
|
"USB:1-3" | 2.2.2+ | |
USB/Bluetooth/LAN | AutoSwitch: | インターフェイス自動切り替え機能 を使用する場合 |
"AutoSwitch:" | 2.9.0+ |
インターフェイス自動切り替え機能
プリンターへ接続するためのポートを自動で検出する機能です。以下の優先順位で接続できるポートを検出します
USB
Bluetooth
LAN
本機能を使用するための手順は以下の通りです。
Androidデバイス とプリンターをBluetoothもしくはLANで接続できる環境を構築
Androidデバイス とプリンターのBluetoothペアリングを行う
Androidデバイス とプリンターを同じネットワーク(同一セグメント)に接続する
Androidデバイス とプリンターをUSBで接続
portNameに"AutoSwitch:"を指定し、本メソッドを実行
Androidデバイス とプリンターとのUSB接続が正常である場合は、3の手順に成功します。失敗した場合は Androidデバイス とプリンターのUSB接続をご確認の上、再度3の手順をやり直してください。
以降、引き続きportNameに"AutoSwitch:"を指定することで、 Androidデバイス とプリンターがUSBで接続されていない場合でも自動で他のインターフェイスと接続されます。
使用するプリンターを変更する場合は、1の手順からやり直してください。
本機能の使用が推奨されるケースは以下の通りです。
USBを含む複数のインターフェイスを使用可能な環境を構築することができる
運用中に接続先インターフェイスが頻繁に変更される場合
プログラム上で接続先ポートを意識したくない場合
重要
プリンターのUSBシリアルナンバー設定は有効に設定してください。
接続先プリンター以外のプリンターとのUSB接続、またBluetoothペアリング設定をしないようにしてください。
LANインターフェイスを使用する場合は、UDP通信ポート22222を使用できる環境を構築してください。
警告
本機能を使用することにより、ポートを直接指定するよりも印字開始までの時間が遅くなるなどの場合があります。
本機能をサポートするモデルは以下の通りです。
モデル
ファームウェアバージョン
mC-Print2 1.0+ mC-Print3 1.0+ mC-Label3 1.0+ TSP100IV 1.0+ TSP100IV SK 1.0+ 警告
MCP20/MCP30は除く
portSetting 引数
portSettings文字列は、以下のフォーマットで指定してください。
各モデルで適用すべき識別子 + セミコロン(';')区切りのオプション指定文字列
各モデルで適用すべき識別子は下表のとおりです。
モデル
エミュレーション
識別子
mC-Print2 StarPRNT "" mC-Print3 StarPRNT "" mC-Label3 StarPRNT "" mPOP StarPRNT "" FVP10 StarLine "" TSP100IV StarPRNT "" TSP100IV SK StarPRNT "" TSP100IIIW StarGraphic "" TSP100IIIBI StarGraphic "" TSP100IIIU StarGraphic "" TSP100IIU+ StarGraphic "" TSP100ECO StarGraphic "" TSP100U StarGraphic "" TSP100GT StarGraphic "" TSP100LAN StarGraphic "" TSP650II StarLine "" TSP650IISK StarLine "" TSP700II StarLine "" TSP800II StarLine "" TUP500 StarLine "" SM-S210i StarPRNT "Portable" EscPosMobile "Portable;escpos" or "mini" SM-S220i StarPRNT "Portable" EscPosMobile "Portable;escpos" or "mini" SM-S230i StarPRNT "Portable" EscPosMobile "Portable;escpos" or "mini" SM-T300i/T300 StarPRNT "Portable" EscPosMobile "Portable;escpos" or "mini" SM-T400i StarPRNT "Portable" EscPosMobile "Portable;escpos" or "mini" BSC10 EscPos "escpos" SM-L200 StarPRNT "Portable" SM-L300 StarPRNT "Portable" SP700 StarDotImpact "" SK1-211/221/V211 StarPRNT "" SK1-211/221/V211 Presenter StarPRNT "" SK1-311/321/V311 StarPRNT "" SK1-311/V311 Presenter StarPRNT "" オプション指定文字列は下表のとおりです。
インターフェイス
オプション指定文字列
説明
例
ライブラリバージョン
Bluetooth d[数値]
データタイムアウト機能のタイムアウト値設定を行います。
データタイムアウト機能をサポートするモデルで本オプションを指定しない場合は、データタイムアウト機能は有効で、タイムアウト値は3秒に設定されます。
タイムアウト時間の指定方法は、以下のとおりです。
[数値]に1から255を指定した場合:[数値]に指定した時間(単位:秒)
[数値]に0を指定した場合:データタイムアウトを無効にする
上記以外の場合:3秒
"d10" 2.2.2+ l[数値](Lの小文字)
接続のリトライをおこないます。
リトライ時間の指定方法は、以下のとおりです。
数値を指定しない場合("l"のみ): getPort メソッドで指定したtimeout時間
[数値]に0から300000を指定した場合:[数値]に指定した時間(単位:ミリ秒)
[数値]に300001以上の値を指定した場合:getPortメソッドで指定したtimeout時間
上記以外の場合:リトライしない設定となります
"l10000" 2.2.2+ Ethernet/Wireless LAN l[数値](Lの小文字)
対象のプリンターが他ホストから使用中の場合に接続をリトライします。
リトライ時間の指定方法は、以下のとおりです。
"l10000" 2.3.0+ [ポート番号]
ポート番号(AirMac使用時のみ)
"9100" 2.2.2+ データタイムアウト機能
データタイムアウト機能とは、印刷中に指定した時間プリンターに対してデータが送られなかった場合に、残りの印字データを無視する機能です。この機能により、データ送信中にBluetooth接続が切断された場合に、次回の印刷が不正な内容になることを防ぐことができます。このオプションをサポートするモデルは以下のとおりです。モデル
ファームウェアバージョン
mC-Print2
1.0+
mC-Print3
1.0+
mC-Label3
1.0+
mPOP
1.0+
FVP10
2.0+
TSP100IIIBI
1.0+
TSP650II
2.0+
TSP650IISK
1.0+
TSP700II
5.0+
TSP800II
2.0+
portSettingsの引数指定例
プリンター接続環境
指定すべきportSettings
TSP650IIをデフォルト設定で使用する
""
mC-Print3をEthernetインターフェイスで、リトライ有効で使用する
";l10000"
SM-L200をデフォルトで使用する
"Portable"
TSP650IIのBluetoothインターフェイスで、印刷中に10秒間データが送られなかった場合にデータキャンセル機能を動作させる
";d10"
ioTimeoutMillis 引数
ioTimeoutMillis引数は、ミリ秒のタイムアウト値で、内部制御とAPIでの通信に使用されるものです。 このパラメーターは、APIが制限された時間内で完了することを保証しますが、 正確なタイムアウトの長さを保証するものではありません。
指定した時間が10秒未満の場合、タイムアウトは10秒になります。
portSettingsパラメーターで[データタイムアウト機能のタイムアウト値設定]を行う場合、 ioTimeoutMillis引数の値をデータタイムアウト機能のタイムアウト値の指定時間より3秒以上長くなるように設定してください。 3秒未満に設定した場合、内部制御により endCheckedBlock メソッドのタイムアウト時間は自動的に3秒長くなるように設定されます。
Apple AirMacシリーズのプリンター共有機能をご使用の場合
portNameには、AirMac シリーズのIPアドレスを指定してください。
例):
TCP:192.168.1.2
portSettingsには、ポート番号を指定します。
9100
〜9109
"を順に指定し、接続に成功した値をご使用ください。
getPortリトライフロー
Bluetoothプリンターを使用する場合、 Androidデバイス や使用環境によってgetPortが失敗し、 Androidデバイス との接続ができず印刷やステータス取得ができない場合があります。
getPortに失敗した場合、例外StarIOPortExceptionが発生します。 その際は、下記手順2.と3.を繰り返す処理を行ってください。
getPortが失敗し、StarIOPortExceptionが発生する
一定時間(例:500ミリ秒)待機する
再度getPortを実行する
getPortに成功した場合、印刷やステータス取得などの処理に進みます
重要
待機する秒数やgetPortメソッドの繰り返し回数は、 Androidデバイス や使用環境によって異なります。 十分な検証を行ったうえで、適切な値を設定してください。
3.1.3. releasePort
プリンターと通信するためのポートをクローズします。
宣言
public static void releasePort(StarIOPort port);
引数
名称
説明
型
port
以前に getPort メソッドにより作成された StarIOPort オブジェクト
戻り値
なし
印刷の手順については 印刷処理フロー を参照ください。
重要
注意事項
プリンターとデータ通信しない時は、本メソッドを呼び出し、ポートをクローズしてください。 ポートをオープンにしたままにしておくと、以降のポートオープンの呼び出し要求が失敗する可能性があります。
有線/無線LANインターフェイスを使用する場合の注意事項
互換性に関する注意事項
StarIOPort3.1.jar バージョン2.6.0(StarPRNT SDK バージョン5.11.0同梱)より、挙動が以下のように変更されています。
StarIOPort3.1.jar バージョン2.5.0以前
releasePortメソッドを呼ぶ前にgetPortメソッドを複数回呼んだ場合は、 getPortメソッドを呼んだ回数分releasePortメソッドを呼ぶことでポートがクローズされます。
StarIOPort3.1.jar バージョン2.6.0以後
releasePortメソッドを呼んだ場合は、 getPortメソッドを呼んだ回数に関わらず必ずポートがクローズされます。
3.1.4. searchPrinter
Starプリンターを検索し、検索結果を返します。
宣言
public static ArrayList<PortInfo> searchPrinter(String target, Context context) throws StarIOPortException; public static ArrayList<PortInfo> searchPrinter(String target) throws StarIOPortException;
引数
名称
説明
型
target
検索したいスター精密製プリンターのインターフェイス(I/F)を指定する文字列* Bluetooth I/Fの場合:BT:
* Ethernet/Wireless LAN I/Fの場合:TCP:
* USB I/Fの場合:USB:
context
コンテキストtargetにUSB:
を指定する場合に必要です。android.context.Context
戻り値
説明
型
スター精密製プリンターの検索結果取得できる情報につきましては、 PortInfo クラスをご参照ください。ArrayList<PortInfo>
例外
説明
型
ポートオープンに失敗した誤ったtargetを引数に設定した
エラーコード
値
説明
StarResultCode.FAILURE
何らかのエラーが発生した
実装例
try { //Searches for an Ethernet / Wireless LAN interface Star printer on the same network. List<PortInfo> portList = StarIOPort.searchPrinter("TCP:"); for (PortInfo port : portList) { Log.i ("LOG", "Port Name: " + port.getPortName()); Log.i ("LOG", "MAC Address: " + port.getMacAddress()); Log.i ("LOG", "Model Name: " + port.getModelName()); } } catch (StarIOPortException e) { // An error occurred. }
SearchPortFragment.javaを参照ください。
重要
USBプリンターを接続し直した場合
USBプリンターを接続し直した際は、再度本メソッドを実行し、最新のプリンター情報を取得してください。
制限事項
本メソッドはデバイスを確実に検出することを保証するものではありません。
Android 7.0以降での制限事項
Android 7.0以降では、本メソッドで得られるプリンター情報のうち、PortName(USB:1-3等)はUSBプリンターの再接続によって変化します。
3.1.5. writePort
プリンターにデータを書き込みます。
宣言
public void writePort(byte[] writeBuffer, int offset, int size) throws StarIOPortException;
引数
名称
説明
型
writeBuffer
書き込みたいデータを格納するbyte配列
byte[]
offset
writeBufferのどの位置から書き込み始めるかを指定するインデックス
int
size
書き込むbyte数
int
戻り値
なし
例外
説明
型
通信エラーが発生したとき
エラーコード
値
説明
StarResultCode.FAILURE
何らかのエラーが発生した
印刷の手順については 印刷処理フロー を参照ください。
3.1.6. readPort
プリンターからデータを読み込みます。 プリンターからRaw byteを読み込む必要がある場合のみ、本メソッドをご使用ください。
宣言
public void readPort(byte[] readBuffer, int offset, int size) throws StarIOPortException;
引数
名称
説明
型
readBuffer
データが読み込まれるbyte配列
byte[]
offset
readBufferにデータを書き込み始めるインデックス
int
size
読み込むbyte数
int
戻り値
説明
型
実際に受信できたバイト数データを全て受信できなかった場合でも、本メソッドは成功します。アプリケーションは、期待するデータが全て受信できるまで本メソッドを複数回呼び出すか、しきい値に達するまで再試行する必要があります。int
例外
説明
型
通信エラーが発生したとき
エラーコード
値
説明
StarResultCode.FAILURE
何らかのエラーが発生した
重要
USB接続でご利用時の制限事項
プリンターから512バイト以上の応答が発生する場合、本メソッドの引数readBufferおよびsizeは512バイト以上を指定してください。
512バイト未満を指定した場合、応答を読み込めない場合があります。
3.1.7. retreiveStatus
プリンターのステータスを取得します。
宣言
public StarPrinterStatus retreiveStatus() throws StarIOPortException;
引数
なし
戻り値
説明
型
現在のプリンターステータス取得できるステータスの種類は、 StarPrinterStatus 構造体をご参照ください。
例外
説明
型
通信エラーが発生したとき
エラーコード
値
説明
StarResultCode.FAILURE
何らかのエラーが発生した
実装例
if (status.offline == false) { // Printer OnLine if (status.paperDetectionError == true) { // Paper detection error } if (status.compulsionSwitch == true) { // Cashdrawer Open } else { // Cashdrawer Close } } else { // Printer Offline }
Communication.javaを参照ください。
3.1.8. beginCheckedBlock
endCheckedBlock メソッドとセットで使用し、印刷終了を監視します。
最後まで正しく印刷されたか確認したい場合、印刷データ送信の直前に本メソッドを、 印刷データ送信の直後に endCheckedBlock メソッドをそれぞれ実行します。
用紙保持制御を行う場合、本メソッドは用紙が抜き取られるまでブロックし、抜き取られると制御を返します。 setHoldPrintTimeoutMillis で指定したタイムアウト時間内に用紙が抜き取られない場合、エラーとなります。
宣言
public StarPrinterStatus beginCheckedBlock() throws StarIOPortException;
引数
なし
戻り値
説明
型
現在のプリンターステータス取得できるステータスの種類は、 StarPrinterStatus 構造体をご参照ください。
例外
説明
型
通信エラーが発生したときプリンターがオフライン状態のとき
エラーコード
値
説明
ライブラリバージョン
StarResultCode.FAILURE_PAPER_PRESENT
用紙保持制御のタイムアウトが発生した
2.7.0+
StarResultCode.FAILURE
何らかのエラーが発生した
2.2.2+
実装例
beginCheckedBlock / endCheckedBlock による印刷終了監視処理の手順は、印刷処理フロー を参照ください。
3.1.9. endCheckedBlock
beginCheckedBlock メソッドとセットで使用し、印刷終了の監視を行います。
プリンターの状態を監視し、送信した印刷データの印刷が正常に完了する、印刷途中にプリンターの状態がオフラインになる、 setEndCheckedBlockTimeoutMillis で指定したタイムアウトが経過しエラーが発生すると、 制御を返します。印刷データ以外を送信した場合は、そのコマンドがプリンターで処理されると制御を返します。
宣言
public StarPrinterStatus endCheckedBlock() throws StarIOPortException;
引数
なし
戻り値
説明
型
現在のプリンターステータス取得できるステータスの種類は、 StarPrinterStatus 構造体をご参照ください。
例外
説明
型
通信エラーが発生したときタイムアウト時間内にプリンターからの応答がないとき
エラーコード
値
説明
StarResultCode.FAILURE
何らかのエラーが発生した
実装例
beginCheckedBlock / endCheckedBlock による印刷終了監視処理の手順は、印刷処理フロー を参照ください。
3.1.10. setEndCheckedBlockTimeoutMillis
endCheckedBlock メソッドのタイムアウト時間を指定します。(単位:ミリ秒)
印刷に時間がかかる場合、この値を大きくする事で endCheckedBlock メソッドの印刷完了待ち時間を伸ばす事ができます。
宣言
public void setEndCheckedBlockTimeoutMillis(int endCheckedBlockTimeoutMillis);
引数
名称
説明
型
endCheckedBlockTimeoutMillis
endCheckedBlock メソッドのタイムアウト時間(ミリ秒指定)
int
戻り値
なし
重要
endCheckedBlock メソッドのタイムアウト時間の初期値は、getPort メソッドの引数で指定したタイムアウト時間と同じになります。指定した時間が10秒未満の場合、タイムアウトは10秒になります。
また、getPort メソッドのportSettingsパラメータで"データタイムアウト機能の設定"を使用する場合、本メソッドで設定するタイムアウト時間には、データタイムアウト機能の指定時間より3秒以上長くなるように設定してください。 3秒未満に設定した場合、内部制御により自動的に3秒長くなるように設定されます。
3.1.11. setHoldPrintTimeoutMillis
added in version 2.7.0
用紙保持制御のタイムアウト時間を示します。(単位:ミリ秒)
宣言
public void setHoldPrintTimeoutMillis(int holdPrintTimeoutMillis);
引数
名称
説明
型
holdPrintTimeoutMillis
用紙保持制御のタイムアウト時間(ミリ秒指定)
int
戻り値
なし
3.1.12. getFirmwareInformation
プリンターのモデル名とファームウェアバージョンを取得します。
宣言
public Map<String, String> getFirmwareInformation() throws StarIOPortException;
引数
なし
戻り値
説明
型
ファームウェア情報を含むMap型オブジェクト戻り値のMap型オブジェクトのキーに"ModelName"を設定することでモデル名を、"FirmwareVersion"を設定することでファームウェアバージョンを取得できます。Map<String, String>
例外
説明
型
通信エラーが発生したとき
エラーコード
値
説明
StarResultCode.FAILURE
何らかのエラーが発生した
実装例
try { Map<String, String> firmwareInformationMap = port.getFirmwareInformation(); Log.i ("LOG", "Model Name: " + firmwareInformationMap.get("ModelName")); Log.i ("LOG", "Firmware Version: " + firmwareInformationMap.get("FirmwareVersion")); } catch (StarIOPortException e) { // Error }
DeviceStatusFragment.java および Communication.java をご参照ください。
3.1.13. getPortName
getPort メソッドで指定したportNameを取得します。
宣言
public String getPortName();
引数
なし
戻り値
説明
型
getPort メソッドに渡したportName引数
String
3.1.14. getPortSettings
getPort メソッドで指定したportSettingsを取得します。
宣言
public String getPortSettings();
引数
なし
戻り値
説明
型
getPort メソッドに渡したportSettings引数
String
3.1.15. getStarIOVersion
StarIOライブラリのバージョンを取得します。
宣言
public String getStarIOVersion();
引数
なし
戻り値
説明
型
StarIOライブラリのバージョン文字列
String