3.1. SMPort

プリンターとの通信を行うためのクラスです。

  • メソッド

    名称

    説明

    getPort

    プリンターと通信するためのポートをオープンします。

    releasePort

    プリンターと通信するためのポートをクローズします。

    searchPrinter

    デバイスと接続可能なプリンターを検索します。

    writePort

    プリンターにデータを書き込みます。

    readPort

    プリンターからデータを読み込みます。

    getParsedStatus

    プリンターのステータスを取得します。

    beginCheckedBlock

    印刷終了監視を開始します。

    endCheckedBlock

    印刷終了監視を終了します。

    disconnect

    指定されたBluetoothプリンターとのコネクションを切断します。

    getFirmwareInformation

    プリンターのモデル名とファームウェアバージョンを取得します。

    portName

    ポートをオープンしたときのportNameを取得します。

    portSettings

    ポートをオープンしたときのportSettingsを取得します。

    timeoutMillis

    内部制御およびAPIのタイムアウト値(ミリ秒指定)を取得します。

    connected

    指定されたBluetooth/Bluetooth Low EnergyプリンターのiOSデバイスとの接続状態を取得します。

    StarIOVersion

    StarIOライブラリのバージョン番号を取得します。

  • モデル:SMPort クラス

モデル/エミュレーション

mC-Print2 mC-Print3 mPOP FVP10 TSP100IV TSP100IIIW TSP100IIIBITSP100IIIU TSP100ECO TSP100U TSP100GTTSP100LAN TSP650II TSP650IISK TSP700II TSP800IISM-S210i SM-S220i SM-S230i SM-T300i/T300 SM-T400i BSC10 SM-L200 SM-L300 SP700
StarPRNT StarPRNT StarPRNT StarLine StarPRNT StarGraphic StarGraphic StarGraphic StarGraphic StarGraphic StarGraphic StarGraphic StarLine StarLine StarLine StarLine StarPRNT EscPosMobile StarPRNT EscPosMobile StarPRNT EscPosMobile StarPRNT EscPosMobile StarPRNT EscPosMobile EscPos StarPRNT StarPRNT StarDotImpact

getPort

releasePort

searchPrinter

writePort

readPort

getParsedStatus

beginCheckedBlock

[1] [1]

endCheckedBlock

[1] [1]

disconnect

- - - - - - - - - - - - - - - - - - - - - - -

holdPrintTimeoutMillis

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

getFirmwareInformation

[2] [2][3] [2][3] [2][3] [2][3] [2][3] [2][3] [2][3] [2] [2] [2] [2] [2]

portName

portSettings

timeoutMillis

connected

- - - - - - - -

StarIOVersion

[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 以降が必要です。

3.1.1. 印刷処理フロー

次の印刷処理フローの手順に沿って印刷を行う方法を示します。

../_images/port_flow.png
  • 実装例

    unsigned char command[] = {0x41, 0x42, 0x43, 0x44, 0x1B, 0x7A, 0x00, 0x1B, 0x64, 0x02};
    
    StarPrinterStatus_2 printerStatus;
    SMPort *port = nil;
    
    while (YES) {
        NSError *error = nil;
    
        // Open port
        port = [SMPort getPort: "BT:Star Micronics" :@"" :10000 :&error];
    
        if (port == nil) {    break;  /* Some error occurred. */    }
    
        // Start to check the completion of printing
        [port beginCheckedBlock:&printerStatus :2 :&error];
    
        if (error != nil) {    break;  /* Some error occurred. */    }
    
        if (printerStatus.offline == SM_TRUE) {
        break;    // The printer is offline.
        }
    
        uint32_t total = 0;
    
        while (total < (uint32_t) commands.length) {
        // Send print data
        uint32_t written = [port writePort:command :total : sizeof(command) - total :&error];
    
        if (error != nil) {    break;  /* Some error occurred. */    }
    
        total += written;
        }
    
        // Stop to check the completion of printing
        [port endCheckedBlock:&printerStatus :2 :&error];
    
        if (error != nil) {    break;  /* Some error occurred. */    }
    
        if (printerStatus.offline == SM_TRUE) {
        break;    // The printer is offline.
        }
    
        // Success
        break;
    }
    
    if (port != nil) {
        // Close port
        [SMPort releasePort:port];
        port = nil;
    }
    

    Communication.mを参照ください

3.1.2. endCheckedBlockTimeoutMillis

endCheckedBlock メソッドのタイムアウト時間を指定します。(単位:ミリ秒)

印刷に時間がかかる場合、この値を大きくする事で endCheckedBlock メソッドの印刷完了待ち時間を伸ばす事ができます。

  • 宣言

    @property (assign, readwrite, nonatomic) u_int32_t endCheckedBlockTimeoutMillis;
    

重要

endCheckedBlock メソッドのタイムアウト時間の初期値は、getPort メソッドの引数で指定したタイムアウト時間と同じになります。指定した時間が10秒未満の場合、タイムアウトは10秒になります。

また、getPort メソッドのportSettingsパラメータで"データタイムアウト機能の設定"を使用する場合、本メソッドで設定するタイムアウト時間には、データタイムアウト機能の指定時間より3秒以上長くなるように設定してください。 3秒未満に設定した場合、内部制御により自動的に3秒長くなるように設定されます。

3.1.3. holdPrintTimeoutMillis

added in version 2.8.0

用紙保持制御のタイムアウト時間を示します。(単位:ミリ秒)

  • 宣言

    @property(assign, readwrite, nonatomic) u_int32_t holdPrintTimeoutMillis;
    

3.1.4. getPort

added in version 2.6.0

プリンターと通信するためのポートをオープンします。

  • 宣言

    + (SMPort *)getPort:(NSString *)portName :(NSString *)portSettings :(u_int32_t)ioTimeoutMillis :(NSError **)error;
    
  • 引数

    名称 説明
    portName プリンターと通信するためのポートを特定する文字列 NSString *
    portSettings プリンターとの接続設定情報 NSString *
    ioTimeoutMillis 内部制御および各APIのタイムアウト時間 u_int32_t
    error
    エラー発生時にはエラー情報が格納されます。
    codeプロパティにエラーコードがセットされています。
    NSError **
  • 戻り値

    説明
    SMPort オブジェクト
    ポートオープンに失敗した場合、または既にオープン済みの場合は、 nil が返されます
    SMPort
  • エラーコード

    説明
    SMStarIOResultCodeFailedError 何らかのエラーが発生したとき
    SMStarIOResultCodeInUseError プリンターから接続拒否されたとき(他ホストが接続中など)

印刷の手順については 印刷処理フロー を参照ください。

  1. portName 引数

インターフェイス

portName

説明

ライブラリバージョン

Bluetooth BT:iOS Port Name

iOSポート名で指定する場合

"BT:Star Micronics" 2.2.3+
BT:Serial Number[1]

プリンターのシリアルナンバーで指定する場合

"BT:2580217090400032" 2.4.0+
BT:Mac Address[2]

MACアドレスで指定する場合

"BT:00:12:F3:1E:2B:72" 2.4.0+
Bluetooth Low Energy BLE:Device Name

Bluetoothデバイス名で指定する場合

"BLE:STAR L200-00001" 2.2.3+
BLE:MAC Address

MACアドレスで指定する場合

"BLE:00:11:62:00:00:00" 2.2.3+
Ethernet/Wireless LAN TCP:IP Address

IPアドレスで指定する場合

"TCP:192.168.1.100"2.2.3+
USB[3] USB:Device Name

iOSポート名で指定する場合

"USB:TSP100" 2.2.3+
USB:Serial Number

プリンターのシリアルナンバーで指定する場合

"USB:2580217090400032" 2.4.0+
USB/Bluetooth/LAN AutoSwitch:

インターフェイス自動切り替え機能 を使用する場合

"AutoSwitch:"2.8.0+
[1]

mC-Print3/mC-Print2/mPOPのみ対応です。

[2]

TSP100IIIBIのみ対応です。

[3]

iOSデバイスとmPOPをUSB接続する場合、"BT:" から始まるPortNameを使用してください。"USB:" から始まるPortNameは使用できません。

重要

Bluetooth, USB(Lightning)両対応モデルでは、BluetoothとUSBは区別されず、同じ挙動となります。Bluetooth接続中にLightningケーブル接続を行うと、自動的にBluetoothは切断されLightning経由の通信となりますが、この時portNameを "BT:" から "USB:" に変更する必要はありません。

  • インターフェイス自動切り替え機能

    プリンターへ接続するためのポートを自動で検出する機能です。以下の優先順位で接続できるポートを検出します

    1. USB
    2. Bluetooth
    3. LAN

    本機能を使用するための手順は以下の通りです。

    1. iOSデバイス とプリンターをBluetoothもしくはLANで接続できる環境を構築

      • iOSデバイス とプリンターのBluetoothペアリングを行う
      • iOSデバイス とプリンターを同じネットワーク(同一セグメント)に接続する
    2. iOSデバイス とプリンターをUSBで接続

    3. portNameに"AutoSwitch:"を指定し、本メソッドを実行

    4. iOSデバイス とプリンターとのUSB接続が正常である場合は、3の手順に成功します。失敗した場合は iOSデバイス とプリンターのUSB接続をご確認の上、再度3の手順をやり直してください。

    5. 以降、引き続きportNameに"AutoSwitch:"を指定することで、 iOSデバイス とプリンターがUSBで接続されていない場合でも自動で他のインターフェイスと接続されます。

    使用するプリンターを変更する場合は、1の手順からやり直してください。

    本機能の使用が推奨されるケースは以下の通りです。

    • USBを含む複数のインターフェイスを使用可能な環境を構築することができる
    • 運用中に接続先インターフェイスが頻繁に変更される場合
    • プログラム上で接続先ポートを意識したくない場合

    重要

    • プリンターのUSBシリアルナンバー設定は有効に設定してください。
    • 接続先プリンター以外のプリンターとのUSB接続、またBluetoothペアリング設定をしないようにしてください。
    • LANインターフェイスを使用する場合は、UDP通信ポート22222を使用できる環境を構築してください。

    警告

    • 本機能を使用することにより、ポートを直接指定するよりも印字開始までの時間が遅くなるなどの場合があります。

    本機能をサポートするモデルは以下の通りです。

    モデル

    ファームウェアバージョン

    mC-Print2 1.0+
    mC-Print3 1.0+

    警告

    • MCP20/MCP30は除く
  1. portSetting 引数

    portSettings文字列は、以下のフォーマットで指定してください。

    各モデルで適用すべき識別子 + セミコロン(';')区切りのオプション指定文字列

    各モデルで適用すべき識別子は下表のとおりです。

    モデル

    エミュレーション

    識別子

    mC-Print2 StarPRNT ""
    mC-Print3 StarPRNT ""
    mPOP StarPRNT ""
    FVP10 StarLine ""
    TSP100IV 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 ""
    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 ""

    オプション指定文字列は下表のとおりです。

    インターフェイス

    オプション指定文字列

    説明

    ライブラリバージョン

    Bluetooth

    d[数値]

    データタイムアウト機能のタイムアウト値設定を行います。

    データタイムアウト機能をサポートするモデルで本オプションを指定しない場合は、データタイムアウト機能は有効で、タイムアウト値は3秒に設定されます。

    タイムアウト時間の指定方法は、以下のとおりです。

    1. [数値]に1から255を指定した場合:[数値]に指定した時間(単位:秒)
    2. [数値]に0を指定した場合:データタイムアウトを無効にする
    3. 上記以外の場合:3秒
    "d10"2.2.3+
    Ethernet/Wireless LAN

    l[数値](Lの小文字)

    対象のプリンターが他ホストから使用中の場合に接続をリトライします。

    リトライ時間の指定方法は、以下のとおりです。

    1. 数値を指定しない場合("l"のみ): getPort メソッドで指定したtimeout時間
    2. [数値]に0から300000を指定した場合:[数値]に指定した時間(単位:ミリ秒)
    3. [数値]に300001以上の値を指定した場合: getPort メソッドで指定したtimeout時間
    4. 上記以外の場合:リトライしない設定となります
    "l10000"2.4.0+

    [ポート番号]

    ポート番号(AirMac使用時のみ)

    "9100" 2.2.3+
    • データタイムアウト機能

      データタイムアウト機能とは、印刷中に指定した時間プリンターに対してデータが送られなかった場合に、残りの印字データを無視する機能です。
      この機能により、データ送信中にBluetooth接続が切断された場合に、次回の印刷が不正な内容になることを防ぐことができます。
      このオプションをサポートするモデルは以下のとおりです。
      モデル ファームウェアバージョン
      mC-Print2 1.0+
      mC-Print3 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"
  1. ioTimeoutMillis 引数

    ioTimeoutMillis引数は、ミリ秒のタイムアウト値で、内部制御とAPIでの通信に使用されるものです。 このパラメーターは、APIが制限された時間内で完了することを保証しますが、 正確なタイムアウトの長さを保証するものではありません。

    指定した時間が10秒未満の場合、タイムアウトは10秒になります。

    portSettingsパラメーターで[データタイムアウト機能のタイムアウト値設定]を行う場合、 ioTimeoutMillis引数の値をデータタイムアウト機能のタイムアウト値の指定時間より3秒以上長くなるように設定してください。 3秒未満に設定した場合、内部制御により endCheckedBlock メソッドのタイムアウト時間は自動的に3秒長くなるように設定されます。

  1. Apple AirMacシリーズのプリンター共有機能をご使用の場合

    portNameには、AirMac シリーズのIPアドレスを指定してください。

    例): TCP:192.168.1.2

    portSettingsには、ポート番号を指定します。

    91009109 "を順に指定し、接続に成功した値をご使用ください。

  1. SM-Lシリーズの注意事項

    iOSデバイス でBluetooth Low Energyにて通信する場合、プリンターとの接続に時間がかかることがあります。 接続に失敗した場合は、接続が成功するまでリトライを行ってください。

    また、接続時間を短縮したい場合は、プリンターとの接続が常に維持されるようアプリケーションを設計してください。

    ただし、接続中のプリンターは他のアプリケーション、および他の iOSデバイス から検出することができなくなります。

3.1.5. releasePort

プリンターと通信するためのポートをクローズします。

  • 宣言

    + (void) releasePort:(SMPort *)port;
    
  • 引数

    名称 説明
    port 以前に getPort メソッドにより作成された SMPort オブジェクト SMPort
  • 戻り値

    なし

印刷の手順については 印刷処理フロー を参照ください。

警告

getPortを実行した後は、必ずreleasePortしてから次のgetPortを行ってください。 releasePortをせずに次のgetPortを行うと、 nil が返されます。

3.1.6. searchPrinter

added in version 2.6.0

Starプリンターを検索し、検索結果を返します。

  • 宣言

    + (NSArray *)searchPrinter:(NSString *)target :(NSError **)error;
    
  • 引数

    名称 説明
    target
    すべてのインターフェイスタイプ: "ALL:"
    Bluetoothの場合: "BT:"
    Bluetooth Low Energyの場合: "BLE:"
    Ethernet/Wireless LANの場合: "TCP:"
    USBの場合: "USB:"
    NSString *
    error
    エラー発生時にはエラー情報が格納されます。
    codeプロパティにエラーコードがセットされています。
    NSError *
  • 戻り値

    説明
    スター精密製プリンターの検索結果
    取得できる情報につきましては、 PortInfo クラスをご参照ください。
    NSArray *
  • エラーコード

    説明
    SMStarIOResultCodeFailedError 何らかのエラーが発生した
  • 実装例

    NSArray *portInfoArray;
    
    NSError *error = nil;
    
    portInfoArray = [SMPort searchPrinter:@"ALL:" :&error];
    
    if (error != nil) {
        // Some error occurred.
    }
    
    if (portInfoArray == nil) {
        return;
    }
    
    for (PortInfo *portInfo in portInfoArray) {
        NSLog(@"Port Name: %@", portInfo.portName);
        NSLog(@"MAC Address: %@", portInfo.macAddress);
        NSLog(@"Model Name: %@", portInfo.modelName);
    }
    

    SearchPortViewController.mをご参照ください。

重要

  • 本メソッドはデバイスを確実に検出することを保証するものではありません。
  • BluetoothとUSB(Lightning)の両方に対応するモデルでは、BluetoothとUSBは区別されません。実際の接続方法にかかわらず、target未指定あるいは "BT:" を指定した場合はBluetoothプリンター、"USB:" を指定した場合はUSBプリンターとして検出されます。
  • Bluetooth Low Energyインターフェイスを利用する場合、初めてsearchPrinterメソッドでプリンター情報を取得した際、portNameが "BLE:" となることがあります。この場合、一旦 getPort メソッドでプリンターに接続してください。以降、正しいデバイス名を取得および使用できるようになります。
  • iOSデバイスとmPOPをUSB接続している場合、mPOPはBluetooth接続(例: "BT:mPOP")として検出されます。そのため、targetには "BT:" もしくは "All:" を指定してください。

3.1.7. writePort

プリンターにデータを書き込みます。

  • 宣言

    - (u_int32_t)writePort:(u_int8_t const *)writeBuffer :(u_int32_t)offset :(u_int32_t)size :(NSError **)error;
    
  • 引数

    名称 説明
    writeBuffer 書き込みたいデータを格納するbyte配列 u_int8_t const *
    offset writeBufferのどの位置から書き込み始めるかを指定するインデックス u_int32_t
    size 書き込むbyte数 u_int32_t
    error
    エラー発生時にはエラー情報が格納されます。
    codeプロパティにエラーコードがセットされています。
    NSError **
  • 戻り値

    説明
    Bluetooth/Ethernet/Wireless LAN/USB インターフェイス
    実際に書き込まれたバイト数
    データが全て書き込めなかった時でも、本メソッドは成功します。アプリケーションは期待されるデータが全て読み取れるまで、本メソッドを複数回呼び出す必要があります。または、しきい値に達するまで再試行をするようにします。

    Bluetooth Low Energyインターフェイス
    成功時には、送信データのサイズが返ります。失敗時は0が返ります。
    u_int32_t
  • エラーコード

    説明
    SMStarIOResultCodeFailedError 何らかのエラーが発生した

印刷の手順については 印刷処理フロー を参照ください。

3.1.8. readPort

プリンターからデータを読み込みます。 プリンターからRaw byteを読み込む必要がある場合のみ、本メソッドをご使用ください。

  • 宣言

    - (u_int32_t)readPort:(u_int8_t *)readBuffer :(u_int32_t)offset :(u_int32_t)size :(NSError **)error;
    
  • 引数

    名称 説明
    readBuffer データが読み込まれるbyte配列 u_int8_t *
    offset readBufferにデータを書き込み始めるインデックス u_int32_t
    size 読み込むbyte数 u_int32_t
    error
    エラー発生時にはエラー情報が格納されます。
    codeプロパティにエラーコードがセットされています。
    NSError **
  • 戻り値

    説明
    実際に読み込まれたバイト数
    データを全て受信できなかった場合でも、本メソッドは成功します。アプリケーションは、期待するデータが全て受信できるまで本メソッドを複数回呼び出すか、しきい値に達するまで再試行する必要があります。
    u_int32_t
  • エラーコード

    説明
    SMStarIOResultCodeFailedError 何らかのエラーが発生した

重要

StarIO.framework v2.4.0(StarPRNT SDK v5.6.0)より、LANプリンター使用時のreadPortの挙動が以下のように変更されています。

readPort実行時に受信すべきデータが存在しなかった場合
  • v2.3.3以前: PortException をスローします。
  • v2.4.0以降: 0 を返します。

3.1.9. getParsedStatus

プリンターのステータスを取得します。

  • 宣言

    - (NSUInteger)getParsedStatus:(void *)starPrinterStatus :(u_int32_t)level :(NSError **)error;
    
  • 引数

    名称 説明
    starPrinterStatus
    現在のプリンターステータスが格納されます。
    取得できるステータスの種類は、 StarPrinterStatus 構造体をご参照ください。
    void *
    level
    StarPrinterStatus構造体のレベル
    (0, 1, 2の指定が可能ですが、通常は2を指定します。)
    u_int32_t
    error
    エラー発生時にはエラー情報が格納されます。
    codeプロパティにエラーコードがセットされています。
    NSError **
  • 戻り値

    説明
    成功時: 1
    失敗時: 0
    NSUInteger
  • エラーコード

    説明
    SMStarIOResultCodeFailedError 何らかのエラーが発生した
  • 実装例

    StarPrinterStatus_2 printerStatus;
    NSError *error = nil;
    
    [port getParsedStatus: &printerStatus : 2 : &error];
    
    if (error != nil) {
        // Some error occurred.
    }
    if (printerStatus.offline == SM_TRUE) {
        if (printerStatus.coverOpen == SM_TRUE) {
            // Cover is open.
        }
        else if (printerStatus.receiptPaperEmpty == SM_TRUE) {
            // Receipt paper is empty.
        }
        else {
            // The printer is offline.
        }
    }
    else {
        // The printer is online.
    }
    

    DeviceStatusViewController.mを参照ください

3.1.10. beginCheckedBlock

endCheckedBlock メソッドとセットで使用し、印刷終了を監視します。

最後まで正しく印刷されたか確認したい場合、印刷データ送信の直前に本メソッドを、 印刷データ送信の直後に endCheckedBlock メソッドをそれぞれ実行します。

用紙保持制御を行う場合、本メソッドは用紙が抜き取られるまでブロックし、抜き取られると制御を返します。 holdPrintTimeoutMillis で指定したタイムアウト時間内に用紙が抜き取られない場合、エラーとなります。

  • 宣言

    - (NSUInteger)beginCheckedBlock:(void *)starPrinterStatus :(u_int32_t)level :(NSError **)error;
    
  • 引数

    名称 説明
    starPrinterStatus
    StarPrinterStatus構造体へのポインタ
    (StarPrinterStatus, StarPrinterStatus_1, StarPrinterStatus_2の指定が可能ですが、通常はStarPrinterStatus_2を指定します。)
    本メソッドの実行に成功した場合、現在のプリンターステータスが格納されます。
    void *
    level
    StarPrinterStatus構造体のレベル
    (0, 1, 2の指定が可能ですが、通常は2を指定します。)
    u_int32_t
    error
    エラー発生時にはエラー情報が格納されます。
    codeプロパティにエラーコードがセットされています。
    NSError **
  • 戻り値

    説明
    成功時: 1
    失敗時: 0
    NSUInteger
  • エラーコード

    説明

    ライブラリバージョン

    SMStarIOResultCodePaperPresentError

    用紙保持制御のタイムアウトが発生した

    2.8.0+

    SMStarIOResultCodeFailedError

    何らかのエラーが発生した

    2.2.3+

  • 実装例

    beginCheckedBlock / endCheckedBlock による印刷終了監視処理の手順は、印刷処理フロー を参照ください。

3.1.11. endCheckedBlock

beginCheckedBlock メソッドとセットで使用し、印刷終了の監視を行います。

プリンターの状態を監視し、送信した印刷データの印刷が正常に完了する、印刷途中にプリンターの状態がオフラインになる、 endCheckedBlockTimeoutMillis で指定したタイムアウトが経過しエラーが発生すると、 制御を返します。印刷データ以外を送信した場合は、そのコマンドがプリンターで処理されると制御を返します。

  • 宣言

    - (NSUInteger)endCheckedBlock:(void *)starPrinterStatus :(u_int32_t)level :(NSError **)error;
    
  • 引数

    名称 説明
    starPrinterStatus
    StarPrinterStatus構造体へのポインタ
    (StarPrinterStatus, StarPrinterStatus_1, StarPrinterStatus_2の指定が可能ですが、通常はStarPrinterStatus_2を指定します。)
    本メソッドの実行に成功した場合、現在のプリンターステータスが格納されます。
    void *
    level
    StarPrinterStatus構造体のレベル
    (0, 1, 2の指定が可能ですが、通常は2を指定します。)
    u_int32_t
    error
    エラー発生時にはエラー情報が格納されます。
    codeプロパティにエラーコードがセットされています。
    NSError **
  • 戻り値

    説明
    成功時: 1
    失敗時: 0
    NSUInteger
  • エラーコード

    説明
    SMStarIOResultCodeFailedError 何らかのエラーが発生した
  • 実装例

    beginCheckedBlock / endCheckedBlock による印刷終了監視処理の手順は、印刷処理フロー を参照ください。

3.1.12. disconnect

指定されたBluetoothプリンターとのコネクションを切断します。

コネクションの切断後、Bluetoothデバイスは再び他の iOSデバイス から接続することができるようになります。

  • 宣言

    - (BOOL)disconnect:(NSError **)error;
    
  • 引数

    名称 説明
    error
    エラー発生時にはエラー情報が格納されます。
    codeプロパティにエラーコードがセットされています。
    NSError *
  • 戻り値

    説明
    切断成功・切断失敗

    本メソッドは、以下の場合に失敗となります。
    * getPortで指定したタイムアウト時間内に切断が完了しなかった場合
    * 接続先プリンターが切断機能に非対応の場合(モバイルプリンター等)

    Ethernetデバイスに対しては何も行いません。
    Ethernetデバイスに対して実行した場合は常に YES を返します。
    BOOL
  • エラーコード

    説明
    SMStarIOResultCodeFailedError 何らかのエラーが発生した

3.1.13. getFirmwareInformation

プリンターのモデル名とファームウェアバージョンを取得します。

  • 宣言

    - (NSDictionary *)getFirmwareInformation:(NSError **)error;
    
  • 引数

    名称 説明
    error
    エラー発生時にはエラー情報が格納されます。
    codeプロパティにエラーコードがセットされています。
    NSError *
  • 戻り値

    説明
    ファームウェア情報取得結果のNSDictionary

    戻り値のDictionaryのキーに @"ModelName" を設定することでモデル名を、@"FirmwareVersion" を設定することでファームウェアのバージョンを取得できます。
    NSDictionary *
  • エラーコード

    説明
    SMStarIOResultCodeFailedError 何らかのエラーが発生した

3.1.14. portName

getPort メソッドで指定したportNameを取得します。

  • 宣言

    - (NSString *) portName;
    

3.1.15. portSettings

getPort メソッドで指定したportSettingsを取得します。

  • 宣言

    - (NSString *) portSettings;
    

3.1.16. timeoutMillis

getPort メソッドで指定したtimeoutMillisを取得します。

  • 宣言

    - (u_int32_t) timeoutMillis;
    

3.1.17. connected

プリンターがデバイスと接続されていれば YES を、未接続の場合は NO を返します。

  • 宣言

    - (BOOL) connected;
    

重要

Bluetooth/Bluetooth Low Energyインターフェイスのみ対応しています。 非対応のインターフェイスでは、常に YES を返します。

iOSデバイスの制限により、 Bluetooth/Bluetooth Low Energy通信が切断されてから本プロパティに反映されるまで5秒程度かかります。

3.1.18. StarIOVersion

StarIOライブラリのバージョンを取得します。

  • 宣言

    + (NSString *)StarIOVersion;
    
  • 引数

    なし

  • 戻り値

    説明
    StarIOライブラリのバージョン文字列 NSString *