3.2. IFactory
プリンターへのポート接続クラスです。
メソッド
名称
説明
プリンターと通信するためのポートをオープンします。
指定されたポートへの接続を閉じます。
StarPrinterを検索します。
StarIOバージョンを取得します。
3.2.1. GetPort
プリンターと通信するためのポートをオープンします。
宣言
IPort GetPort(string portName, string portSettings, int timeout)
引数
名称
説明
型
portName
プリンターと通信するためのポートを特定する文字列
string
portSettings
プリンターとの接続設定情報
string
timeout
内部制御および各APIのタイムアウト時間
int
戻り値
説明
型
IPort オブジェクト
例外
説明
型
ポートオープンに失敗したとき誤ったportNameを設定したとき
エラーコード
値
説明
StarResultCode.ErrorFailed
何らかのエラーが発生したとき
StarResultCode.ErrorInUse
プリンターから接続拒否されたとき(他ホストが接続中など)
印刷の手順については 印刷処理フロー を参照ください。
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+ |
インターフェイス自動切り替え機能
プリンターへ接続するためのポートを自動で検出する機能です。以下の優先順位で接続できるポートを検出します
USB
Bluetooth
LAN
本機能を使用するための手順は以下の通りです。
Windowsデバイス とプリンターをBluetoothもしくはLANで接続できる環境を構築
Windowsデバイス とプリンターのBluetoothペアリングを行う
Windowsデバイス とプリンターを同じネットワーク(同一セグメント)に接続する
Windowsデバイス とプリンターをUSBで接続
portNameに"AutoSwitch:"を指定し、本メソッドを実行
Windowsデバイス とプリンターとのUSB接続が正常である場合は、3の手順に成功します。失敗した場合は Windowsデバイス とプリンターのUSB接続をご確認の上、再度3の手順をやり直してください。
以降、引き続き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は除く
portSetting 引数
portSettings文字列は、以下のフォーマットで指定してください。
(Serialインターフェイスの場合はシリアルポート設定 + ;) + 各モデルで適用すべき識別子 + セミコロン(';')区切りのオプション指定文字列
注釈
シリアルポート設定
各フィールドはカンマ,
で区切り次のように記述します。<ボーレート>,<パリティ>,<データビット>,<ストップビット>,< フロー制御>
(例:9600,n,8,1,n
)* ボーレート:115200
、57600
、38400
、19200
、9600
、4800
から、プリンターの設定内容に合わせて選択します。* パリティ:n
、e
、o
から、プリンターの設定内容に合わせて選択します。n:パリティなしe:偶数ビットo:奇数ビット* データビット:7
、8
から、プリンターの設定内容に合わせて選択します。* ストップビット:1
、2
から、プリンターの設定内容に合わせて選択します。* フロー制御:n
、h
、c
、x
から、プリンターの設定内容に合わせて選択します。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" BSC10II StarPRNT "" BSC10 EscPos "escpos" SM-L200 StarPRNT "Portable" SM-L300 StarPRNT "Portable" SP700 StarDotImpact "" オプション指定文字列は下表のとおりです。
インターフェイス
オプション指定文字列
説明
例
ライブラリバージョン
Bluetooth d[数値]
データタイムアウト機能のタイムアウト値設定を行います。
データタイムアウト機能をサポートするモデルで本オプションを指定しない場合は、データタイムアウト機能は有効で、タイムアウト値は3秒に設定されます。
タイムアウト時間の指定方法は、以下のとおりです。
[数値]に1から255を指定した場合:[数値]に指定した時間(単位:秒)
[数値]に0を指定した場合:データタイムアウトを無効にする
上記以外の場合:3秒
"d10" 2.3.0+ l[数値](Lの小文字)
接続のリトライをおこないます。
リトライ時間の指定方法は、以下のとおりです。
数値を指定しない場合("l"のみ): GetPort メソッドで指定したtimeout時間
[数値]に0から300000を指定した場合:[数値]に指定した時間(単位:ミリ秒)
[数値]に300001以上の値を指定した場合:getPortメソッドで指定したtimeout時間
上記以外の場合:リトライしない設定となります
"l10000" 2.3.0+ Ethernet/Wireless LAN l[数値](Lの小文字)
対象のプリンターが他ホストから使用中の場合に接続をリトライします。
リトライ時間の指定方法は、以下のとおりです。
"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)
引数
戻り値
なし
印刷の手順については 印刷処理フロー を参照ください。
重要
互換性に関する注意事項
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
シリアルポートおよびパラレルポートの検索は、ご使用中のWindows PCに該当するポートが搭載されているかを検出するものであり、 ポートにプリンターが接続されているかどうかの検出は行いません。
- 2
Bluetoothプリンターを検索する場合、インストールされているBluetoothドライバーによってはプリンターの検索ができない場合があります。 プリンターの検索ができない場合は、お手数ですがBluetooth仮想COMポートの確認を参照のうえ、プリンターと接続するための情報をご確認ください。 Microsoft社のBluetoothドライバーをご使用の場合、Bluetoothプリンターの検索は可能です。
戻り値
説明
型
スター精密製プリンターの検索結果取得できる情報につきましては、 PortInfo クラスをご参照ください。List<PortInfo>
制限事項
本メソッドはデバイスを確実に検出することを保証するものではありません。
3.2.4. GetStarIOVersion
StarIOライブラリのバージョンを取得します。
宣言
string GetStarIOVersion();
引数
なし
戻り値
説明
型
StarIOライブラリのバージョン文字列
string