3.2. IFactory

プリンターへのポート接続クラスです。

  • メソッド

    名称

    説明

    GetPort

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

    ReleasePort

    指定されたポートへの接続を閉じます。

    SearchPrinter

    StarPrinterを検索します。

    GetStarIOVersion

    StarIOバージョンを取得します。

3.2.1. GetPort

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

  • 宣言

    IPort GetPort(string portName, string portSettings, int timeout)
    
  • 引数

    名称

    説明

    portName

    プリンターと通信するためのポートを特定する文字列

    string

    portSettings

    プリンターとの接続設定情報

    string

    timeout

    内部制御および各APIのタイムアウト時間

    int

  • 戻り値

    説明

    IPort オブジェクト

    IPort

  • 例外

    説明

    ポートオープンに失敗したとき
    誤ったportNameを設定したとき

    PortException

  • エラーコード

    説明

    StarResultCode.ErrorFailed

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

    StarResultCode.ErrorInUse

    プリンターから接続拒否されたとき(他ホストが接続中など)

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

  1. portName 引数

インターフェイス

portName

説明

ライブラリバージョン

Bluetooth BT:Bluetooth COM Port

BluetoothのCOMポートで指定する場合

"BT:COM3" 2.3.0+
BT:BD Address

Bluetoothデバイスアドレスで指定する場合

"BT:00:12:F3:1E:2B:72" 2.5.0+
Ethernet/Wireless LAN TCP:IP Address

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

"TCP:192.168.1.100"2.3.0+
USB Printer Class USBPRN:Printer Queue Name

プリンターキュー名で指定する場合

"USBPRN:Star MCP31/30" 2.3.0+
USB Vendor Class USBVEN:
最初に見つかったスタープリンタと通信します。
プリンターをUSBで1台のみ接続して使用してください。
"USBVEN:" 2.3.0+
USBVEN:USB Serial Number

USBシリアルナンバーで指定する場合

"USBVEN:1234ABCD" 2.3.0+
USBVEN:COM Port

COMポートで指定する場合

"USBVEN:COM3" 2.3.0+
Parallel LPT Port Number

パラレルポート名で指定する場合

"LPT1" 2.3.0+
Serial Serial Port Number

シリアルポート名で指定する場合

"COM1" 2.3.0+
USB/Bluetooth/LAN AutoSwitch:

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

"AutoSwitch:"2.7.0+
  • インターフェイス自動切り替え機能

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

    1. USB

    2. Bluetooth

    3. LAN

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

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

      • Windowsデバイス とプリンターのBluetoothペアリングを行う

      • Windowsデバイス とプリンターを同じネットワーク(同一セグメント)に接続する

    2. Windowsデバイス とプリンターをUSBで接続

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

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

    5. 以降、引き続きportNameに"AutoSwitch:"を指定することで、 Windowsデバイス とプリンターが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は除く

  1. portSetting 引数

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

    (Serialインターフェイスの場合はシリアルポート設定 + ;) + 各モデルで適用すべき識別子 + セミコロン(';')区切りのオプション指定文字列

    注釈

    シリアルポート設定

    各フィールドはカンマ , で区切り次のように記述します。
    <ボーレート>,<パリティ>,<データビット>,<ストップビット>,< フロー制御>
    (例: 9600,n,8,1,n

    * ボーレート: 11520057600384001920096004800 から、プリンターの設定内容に合わせて選択します。
    * パリティ: neo から、プリンターの設定内容に合わせて選択します。
    n:パリティなし
    e:偶数ビット
    o:奇数ビット
    * データビット: 78 から、プリンターの設定内容に合わせて選択します。
    * ストップビット: 12 から、プリンターの設定内容に合わせて選択します。
    * フロー制御: nhcx から、プリンターの設定内容に合わせて選択します。
    n:フロー制御なし
    h:ハードウェア フロー制御(DSR)
    c:ハードウェア フロー制御(CTS)
    x:ソフトウェアフロー制御(Xon/Xoff)

    プリンターの設定内容は、プリンターの自己印字を実行することで印字されます
    プリンターの自己印字は、プリンターのフィードボタンを押しながらプリンターの電源を入れることで実行されます。

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

    モデル

    エミュレーション

    識別子

    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 ""
    SM-S210i StarPRNT "Portable"
    EscPosMobile"mini"
    SM-S220i StarPRNT "Portable"
    EscPosMobile"mini"
    SM-S230i StarPRNT "Portable"
    EscPosMobile"mini"
    SM-T300i/T300 StarPRNT "Portable"
    EscPosMobile"mini"
    SM-T400i StarPRNT "Portable"
    EscPosMobile"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.3.0+

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

    接続のリトライをおこないます。

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

    1. 数値を指定しない場合("l"のみ): GetPort メソッドで指定したtimeout時間

    2. [数値]に0から300000を指定した場合:[数値]に指定した時間(単位:ミリ秒)

    3. [数値]に300001以上の値を指定した場合:getPortメソッドで指定したtimeout時間

    4. 上記以外の場合:リトライしない設定となります

    "l10000"2.3.0+
    Ethernet/Wireless LAN

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

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

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

    1. 数値を指定しない場合("l"のみ): GetPort メソッドで指定したtimeout時間

    2. [数値]に0から300000を指定した場合:[数値]に指定した時間(単位:ミリ秒)

    3. [数値]に300001以上の値を指定した場合: GetPort メソッドで指定したtimeout時間

    4. 上記以外の場合:リトライしない設定となります

    "l10000"2.4.1+
    • データタイムアウト機能

      データタイムアウト機能とは、印刷中に指定した時間プリンターに対してデータが送られなかった場合に、残りの印字データを無視する機能です。
      この機能により、データ送信中に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"

3.2.2. ReleasePort

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

  • 宣言

    void ReleasePort(IPort port)
    
  • 引数

    名称

    説明

    port

    以前に GetPort メソッドにより作成された IPort オブジェクト

    IPort

  • 戻り値

    なし

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

重要

互換性に関する注意事項

StarIO.dll バージョン2.6.0(StarPRNT SDK バージョン5.11.0同梱)より、挙動が以下のように変更されています。

  • StarIO.dll バージョン2.5.0以前

    ReleasePortメソッドを呼ぶ前にGetPortメソッドを複数回呼んだ場合は、 GetPortメソッドを呼んだ回数分ReleasePortメソッドを呼ぶことで、ポートがクローズされます。

  • StarIO.dll バージョン2.6.0以後

    ReleasePortメソッドを呼んだ場合は、 GetPortメソッドを呼んだ回数に関わらず必ずポートがクローズされます。

3.2.3. SearchPrinter

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

  • 宣言

    List<PortInfo> SearchPrinter()
    List<PortInfo> SearchPrinter(PrinterInterfaceType target)
    
  • 引数

    引数省略時は全てのインターフェイスのプリンタを検索します。

    名称

    説明

    target

    プリンターのインターフェイスタイプを指定 1 2

    PrinterInterfaceType

    1

    シリアルポートおよびパラレルポートの検索は、ご使用中のWindows PCに該当するポートが搭載されているかを検出するものであり、 ポートにプリンターが接続されているかどうかの検出は行いません。

    2

    Bluetoothプリンターを検索する場合、インストールされているBluetoothドライバーによってはプリンターの検索ができない場合があります。 プリンターの検索ができない場合は、お手数ですがBluetooth仮想COMポートの確認を参照のうえ、プリンターと接続するための情報をご確認ください。 Microsoft社のBluetoothドライバーをご使用の場合、Bluetoothプリンターの検索は可能です。

  • 戻り値

    説明

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

    List<PortInfo>

  1. 制限事項

    本メソッドはデバイスを確実に検出することを保証するものではありません。

3.2.4. GetStarIOVersion

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

  • 宣言

    string GetStarIOVersion();
    
  • 引数

    なし

  • 戻り値

    説明

    StarIOライブラリのバージョン文字列

    string