3.3. IPort
プリンターとの通信を行うためのクラスです。
プロパティ
名称
説明
ポートをオープンしたときのportNameを取得します。
ポートをオープンしたときのportSettingsを取得します。
ポートをオープンしたときのtimeoutを取得します。
用紙保持制御のタイムアウト時間を設定します。
メソッド
名称
説明
プリンターにデータを書き込みます。
プリンターからデータを読み込みます。
プリンターのステータスを取得します。
プリンターのオンライン状態を取得します。
印刷終了監視を開始します。
印刷終了監視を終了します。
ハードウェアレベルでリセットを行います。
プリンターのモデル名とファームウェアバージョンを取得します。
3.3.1. 印刷処理フロー
次の印刷処理フローの手順に沿って印刷を行う方法を示します。
実装例
byte[] command = new byte[] { 0x41, 0x42, 0x43, 0x44, 0x1B, 0x7A, 0x00, 0x1B, 0x64, 0x02 }; IPort port = null; try { port = Factory.I.GetPort("BT:COM1", "", 10000); // Start to check the completion of printing StarPrinterStatus status = port.BeginCheckedBlock(); if (status.Offline) { // There was an error writing to the port } uint writtenLength = port.WritePort(command, 0, (uint)command.Length); // Stop to check the completion of printing status = port.EndCheckedBlock(); if (status.Offline) { // There was an error writing to the port } } catch (PortException) { // There was an error writing to the port } finally { Factory.I.ReleasePort(port); }
Communication.csを参照ください。
3.3.2. PortName
GetPort メソッドで指定したportNameを取得します。
宣言
string PortName { get; }
3.3.3. PortSettings
GetPort メソッドで指定したportSettingsを取得します。
宣言
string PortSettings { get; }
3.3.4. Timeout
GetPort メソッドで指定したtimeoutMillisを取得します。
宣言
uint Timeout { get; }
3.3.5. HoldPrintTimeout
added in version 2.7.0
用紙保持制御のタイムアウト時間を示します。(単位:ミリ秒)
宣言
int HoldPrintTimeout { get; set; }
3.3.6. WritePort
プリンターにデータを書き込みます。
宣言
uint WritePort(byte[] writeBuffer, uint offset, uint size);
引数
名称
説明
型
writeBuffer
書き込みたいデータを格納するbyte配列
byte[]
offset
writeBufferのどの位置から書き込み始めるかを指定するインデックス
uint
size
書き込むbyte数
uint
戻り値
説明
型
書き込んだデータサイズ
uint
例外
説明
型
通信エラーが発生したとき
エラーコード
値
説明
StarResultCode.ErrorFailed
何らかのエラーが発生した
印刷の手順については 印刷処理フロー を参照ください。
3.3.7. ReadPort
プリンターからデータを読み込みます。 プリンターからRaw byteを読み込む必要がある場合のみ、本メソッドをご使用ください。
宣言
uint ReadPort(ref byte[] readBuffer, uint offset, uint size);
引数
名称
説明
型
readBuffer
データが読み込まれるbyte配列
byte[]
offset
readBufferにデータを書き込み始めるインデックス
uint
size
読み込むbyte数
uint
戻り値
説明
型
実際に受信できたバイト数データを全て受信できなかった場合でも、本メソッドは成功します。アプリケーションは、期待するデータが全て受信できるまで本メソッドを複数回呼び出すか、しきい値に達するまで再試行する必要があります。uint
例外
説明
型
通信エラーが発生したとき
エラーコード
値
説明
StarResultCode.ErrorFailed
何らかのエラーが発生した
重要
USB接続でご利用時の制限事項
プリンターから512バイト以上の応答が発生する場合、本メソッドの引数readBufferおよびsizeは512バイト以上を指定してください。
512バイト未満を指定した場合、応答を読み込めない場合があります。
3.3.8. GetParsedStatus
プリンターのステータスを取得します。
宣言
StarPrinterStatus GetParsedStatus();
引数
なし
戻り値
説明
型
現在のプリンターステータス取得できるステータスの種類は、 StarPrinterStatus 構造体をご参照ください。
例外
説明
型
通信エラーが発生したとき
エラーコード
値
説明
StarResultCode.ErrorFailed
何らかのエラーが発生した
3.3.9. GetOnlineStatus
プリンターのオンライン状態を取得します。
宣言
bool GetOnlineStatus();
引数
なし
戻り値
説明
型
プリンターのオンライン状態true ... オンラインfalse ... オフラインbool
例外
説明
型
通信エラーが発生したとき
エラーコード
値
説明
StarResultCode.ErrorFailed
何らかのエラーが発生した
3.3.10. BeginCheckedBlock
EndCheckedBlock メソッドとセットで使用し、印刷終了を監視します。
最後まで正しく印刷されたか確認したい場合、印刷データ送信の直前に本メソッドを、 印刷データ送信の直後に EndCheckedBlock メソッドをそれぞれ実行します。
用紙保持制御を行う場合、本メソッドは用紙が抜き取られるまでブロックし、抜き取られると制御を返します。 HoldPrintTimeout で指定したタイムアウト時間内に用紙が抜き取られない場合、エラーとなります。
宣言
StarPrinterStatus BeginCheckedBlock();
引数
なし
戻り値
説明
型
現在のプリンターステータス取得できるステータスの種類は、 StarPrinterStatus 構造体をご参照ください。
例外
説明
型
通信エラーが発生したときプリンターがオフライン状態のとき
エラーコード
値
説明
ライブラリバージョン
StarResultCode.ErrorPaperPresent
用紙保持制御のタイムアウトが発生した
2.7.0+
StarResultCode.ErrorFailed
何らかのエラーが発生した
2.3.0+
実装例
BeginCheckedBlock / EndCheckedBlock による印刷終了監視処理の手順は、印刷処理フロー を参照ください。
3.3.11. EndCheckedBlock
BeginCheckedBlock メソッドとセットで使用し、印刷終了の監視を行います。
プリンターの状態を監視し、送信した印刷データの印刷が正常に完了する、印刷途中にプリンターの状態がオフラインになる、 GetPort で指定したタイムアウトが経過しエラーが発生すると、 制御を返します。印刷データ以外を送信した場合は、そのコマンドがプリンターで処理されると制御を返します。
宣言
StarPrinterStatus EndCheckedBlock();
引数
なし
戻り値
説明
型
現在のプリンターステータス取得できるステータスの種類は、 StarPrinterStatus 構造体をご参照ください。
例外
説明
型
通信エラーが発生したときタイムアウト時間内にプリンターからの応答がないとき
エラーコード
値
説明
StarResultCode.ErrorFailed
何らかのエラーが発生した
実装例
BeginCheckedBlock / EndCheckedBlock による印刷終了監視処理の手順は、印刷処理フロー を参照ください。
3.3.12. ResetDevice
プリンターをハードウェアレベルでリセットします。
構文
void ResetDevice();
引数
なし
戻り値
なし
例外
説明
型
通信エラーが発生したとき
エラーコード
値
説明
StarResultCode.ErrorFailed
何らかのエラーが発生した
3.3.13. GetFirmwareInformation
プリンターのモデル名とファームウェアバージョンを取得します。
宣言
Dictionary<string, string> GetFirmwareInformation();
引数
なし
戻り値
説明
型
モデル名とファームウェアバージョンをDictionaryで返します。KeyにModelName
を設定することで戻り値からモデル名を取得します。KeyにFirmwareVersion
を設定することで戻り値からファームウェアバージョンを取得します。Dictionary<string, string>
例外
説明
型
通信エラーが発生したとき
エラーコード
値
説明
StarResultCode.ErrorFailed
何らかのエラーが発生した