4.9. StarIoExtManager
プリンターと常時接続を行うことで、リアルタイムな状態取得機能を提供します。
列挙体
名称
説明
マネージャタイプ定数
プリンターステータス定数
プリンター用紙ステータス定数
プリンターカバーステータス定数
キャッシュドロアーステータス定数
バーコードリーダーステータス定数
コンストラクタ
名称
説明
StarIoExtManagerを初期化します。
プロパティ
名称
説明
Port オブジェクトを示します。
プリンターステータスを示します。
プリンター用紙ステータスを示します。
プリンターカバーステータスを示します。
キャッシュドロアーステータスを示します。
バーコードリーダーステータスを示します。
キャッシュドロアー開閉センサーのモードを示します。
メソッド
名称
説明
マネージメントを開始します。
マネージメントを停止します。
Portプロパティによる通信権利の排他制御を行います
イベント
名称
説明
プリンター使用不能を通知します。
プリンターオンラインを通知します。
プリンターオフラインを通知します。
プリンター用紙レディを通知します。
プリンター用紙ニアエンプティを通知します。
プリンター用紙エンプティを通知します。
プリンターカバーオープンを通知します。
プリンターカバークローズを通知します。
キャッシュドロアーオープンを通知します。
キャッシュドロアークローズを通知します。
バーコードリーダー使用不能を通知します。
バーコードリーダー接続を通知します。
バーコードリーダー切断を通知します。
バーコードデータ受信を通知します。
アクセサリー切断状態でのアクセサリー再接続成功を通知します。
アクセサリー切断状態でのアクセサリー再接続失敗を通知します。
アクセサリー切断を通知します。
ステータスアップデートを通知します。
重要
SM-Sシリーズ、SM-Tシリーズでは、自動パワーダウンモードを"NO USE"(工場出荷時設定)に設定してください。
4.9.1. StarIoExtManagerType
マネージャタイプ定数です。
宣言
public enum StarIoExtManagerType { Standard, WithBarcodeReader, OnlyBarcodeReader }
定数
名称
説明
Standard
プリンター、キャッシュドロワのマネージメント
WithBarcodeReader
プリンター、キャッシュドロワ、バーコードリーダーのマネージメント
OnlyBarcodeReader
バーコードリーダーのマネージメント
4.9.2. StarIoExtManagerPrinterStatus
プリンターステータス定数です。
宣言
public enum StarIoExtManagerPrinterStatus { Invalid, Impossible, Online, Offline }
定数
名称
説明
Invalid
不定
Impossible
プリンター使用不能
Online
プリンターオンライン検出
Offline
プリンターオフライン検出
4.9.3. StarIoExtManagerPrinterPaperStatus
プリンター用紙ステータス定数です。
宣言
public enum StarIoExtManagerPrinterPaperStatus { Invalid, Impossible, Ready, NearEmpty, Empty }
定数
名称
説明
Invalid
不定
Impossible
プリンター使用不能
Ready
プリンター用紙レディ検出
NearEmpty
プリンター用紙ニアエンド検出
Empty
プリンター用紙エンプティ検出
4.9.4. StarIoExtManagerPrinterCoverStatus
プリンターカバーステータス定数です。
宣言
public enum StarIoExtManagerPrinterCoverStatus { Invalid, Impossible, Open, Close }
定数
名称
説明
Invalid
不定
Impossible
プリンター使用不能
Open
プリンターカバーオープン検出
Close
プリンターカバークローズ検出
4.9.5. StarIoExtManagerCashDrawerStatus
キャッシュドロアーステータス定数です。
宣言
public enum StarIoExtManagerCashDrawerStatus { Invalid, Impossible, Open, Close }
定数
名称
説明
Invalid
不定
Impossible
キャッシュドロアー使用不能
Open
キャッシュドロアーオープン検出
Close
キャッシュドロアークローズ検出
4.9.6. StarIoExtManagerBarcodeReaderStatus
バーコードリーダーステータス定数です。
宣言
public enum StarIoExtManagerBarcodeReaderStatus { Invalid, Impossible, Connect, Disconnect }
定数
名称
説明
Invalid
不定
Impossible
バーコードリーダー使用不能
Connect
バーコードリーダー接続検出
Disconnect
バーコードリーダー切断検出
4.9.7. Port
Port オブジェクトを示します。
宣言
public Port Port { get; }
4.9.8. PrinterOnlineStatus
プリンターオンラインステータスを示します。
宣言
public StarIoExtManagerPrinterStatus PrinterOnlineStatus { get; }
4.9.9. PrinterPaperStatus
プリンター用紙ステータスを示します。
宣言
public StarIoExtManagerPrinterPaperStatus PrinterPaperStatus { get; }
4.9.10. PrinterCoverStatus
プリンターカバーステータスを示します。
宣言
public StarIoExtManagerPrinterCoverStatus PrinterCoverStatus { get; }
4.9.11. CashDrawerStatus
キャッシュドロアーステータスを取得します。
宣言
public StarIoExtManagerCashDrawerStatus CashDrawerStatus { get; }
4.9.12. BarcodeReaderStatus
バーコードリーダーステータスを示します。
宣言
public StarIoExtManagerBarcodeReaderStatus BarcodeReaderStatus { get; }
4.9.13. CashDrawerOpenActiveHigh
キャッシュドロアー開閉センサのモードを示します。
宣言
public bool CashDrawerOpenActiveHigh { get; set; }
4.9.14. StarIoExtManager
StarIoExtManager を初期化します。
宣言
public StarIoExtManager(StarIoExtManagerType type, string portName, string portSettings, Int32 timeout)
引数
名称
説明
型
type
マネージャタイプ
portName
ConnectAsync メソッドのportNameと同じです。
string
portSettings
ConnectAsync メソッドのportSettingと同じです。
string
ioTimeoutMillis
内部制御およびAPIのタイムアウト値
uint
戻り値
説明
型
StarIoExtManager オブジェクト
実装例
StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000);
PrinterExtSamplePage.xaml.cs/ CashDrawerExtSamplePage.xaml.cs/ BarcodeReaderSamplePage.xaml.cs/ CombinationExtSamplePage.xaml.cs を参照ください。
4.9.15. ConnectAsync
マネージメントを開始します。
宣言
public IAsyncOperation<bool> ConnectAsync()
引数
なし
戻り値
説明
型
結果true ... 成功false ... 失敗bool
エラーコード
値
説明
ライブラリバージョン
StarResultCode.ErrorFailed
何らかのエラーが発生したとき
1.7.0+
StarResultCode.ErrorInUse
プリンターから接続拒否されたとき(他ホストが接続中など)
1.7.0+
StarResultCode.ErrorInProcess
既に接続処理を実行中
1.7.0+
実装例
StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); await starIoExtManager.ConnectAsync();
PrinterExtSamplePage.xaml.cs/ CashDrawerExtSamplePage.xaml.cs/ BarcodeReaderSamplePage.xaml.cs/ CombinationExtSamplePage.xaml.cs を参照ください。
4.9.16. DisconnectAsync
マネージメントを停止します。
宣言
public IAsyncOperation<bool> DisconnectAsync()
引数
なし
戻り値
説明
型
結果true ... 成功false ... 失敗bool
実装例
StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); await starIoExtManager.ConnectAsync(); if (starIoExtManager != null) { await starIoExtManager.DisconnectAsync(); starIoExtManager = null; }
PrinterExtSamplePage.xaml.cs/ CashDrawerExtSamplePage.xaml.cs/ BarcodeReaderSamplePage.xaml.cs/ CombinationExtSamplePage.xaml.cs を参照ください。
4.9.17. LockAsync
Portプロパティによる通信権利の排他制御を行います。
宣言
public IAsyncOperation<IDisposable> LockAsync()
引数
なし
戻り値
説明
型
IDisposableオブジェクト
IDisposable
4.9.18. PrinterImpossibleEvent
プリンター使用不能を通知します。
宣言
public event EventHandler<Object> PrinterImpossibleEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.PrinterImpossibleEvent += starIoExtManager_PrinterImpossibleEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_PrinterImpossibleEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.19. PrinterOnlineEvent
プリンターオンラインを通知します。
宣言
public event EventHandler<Object> PrinterOnlineEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.PrinterOnlineEvent += starIoExtManager_PrinterOnlineEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_PrinterOnlineEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.20. PrinterOfflineEvent
プリンターオフラインを通知します。
宣言
public event EventHandler<Object> PrinterOfflineEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.PrinterOfflineEvent += starIoExtManager_PrinterOfflineEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_PrinterOfflineEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.21. PrinterPaperReadyEvent
プリンター用紙レディを通知します。
宣言
public event EventHandler<Object> PrinterPaperReadyEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.PrinterPaperReadyEvent += starIoExtManager_PrinterPaperReadyEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_PrinterPaperReadyEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.22. PrinterPaperNearEmptyEvent
プリンター用紙ニアエンプティを通知します。
宣言
public event EventHandler<Object> PrinterPaperNearEmptyEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.PrinterPaperNearEmptyEvent += starIoExtManager_PrinterPaperNearEmptyEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_PrinterPaperNearEmptyEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.23. PrinterPaperEmptyEvent
プリンター用紙エンプティを通知します。
宣言
public event EventHandler<Object> PrinterPaperEmptyEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.PrinterPaperNearEmptyEvent += starIoExtManager_PrinterPaperNearEmptyEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_PrinterPaperNearEmptyEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.24. PrinterCoverOpenEvent
プリンターカバーオープンを通知します。
宣言
public event EventHandler<Object> PrinterCoverOpenEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.PrinterCoverOpenEvent += starIoExtManager_PrinterCoverOpenEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_PrinterCoverOpenEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.25. PrinterCoverCloseEvent
プリンターカバークローズを通知します。
宣言
public event EventHandler<Object> PrinterCoverCloseEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.PrinterCoverCloseEvent += starIoExtManager_PrinterCoverCloseEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_PrinterCoverCloseEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.26. CashDrawerOpenEvent
キャッシュドロアーオープンを通知します。
宣言
public event EventHandler<Object> CashDrawerOpenEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.CashDrawerOpenEvent += starIoExtManager_CashDrawerOpenEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_CashDrawerOpenEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.27. CashDrawerCloseEvent
キャッシュドロアークローズを通知します。
宣言
public event EventHandler<Object> CashDrawerCloseEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.CashDrawerCloseEvent += starIoExtManager_CashDrawerCloseEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_CashDrawerCloseEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.28. BarcodeReaderImpossibleEvent
バーコードリーダー使用不能を通知します。
宣言
public event EventHandler<Object> BarcodeReaderImpossibleEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.BarcodeReaderImpossibleEvent += starIoExtManager_BarcodeReaderImpossibleEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_BarcodeReaderImpossibleEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.29. BarcodeReaderConnectEvent
バーコードリーダー接続を通知します。
宣言
public event EventHandler<Object> BarcodeReaderConnectEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.BarcodeReaderConnectEvent += starIoExtManager_BarcodeReaderConnectEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_BarcodeReaderConnectEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.30. BarcodeReaderDisconnectEvent
バーコードリーダー切断を通知します。
宣言
public event EventHandler<Object> BarcodeReaderDisconnectEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.BarcodeReaderDisconnectEvent += starIoExtManager_BarcodeReaderDisconnectEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_BarcodeReaderDisconnectEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.31. BarcodeDataReceivedEvent
バーコードデータ受信を通知します。
宣言
public event EventHandler<Object> BarcodeDataReceivedEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.BarcodeDataReceivedEvent += starIoExtManager_BarcodeDataReceivedEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_BarcodeDataReceivedEvent(object sender, object e) { // barcode data, byte [] type is stored in parameter e. // type cast as byte[] type and get barcode data. await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.32. AccessoryConnectSuccessEvent
アクセサリー切断状態でのアクセサリー再接続成功を通知します。
宣言
public event EventHandler<Object> AccessoryConnectSuccessEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.AccessoryConnectSuccessEvent += starIoExtManager_AccessoryConnectSuccessEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_AccessoryConnectSuccessEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.33. AccessoryConnectFailureEvent
アクセサリー切断状態でのアクセサリー再接続失敗を通知します。
宣言
public event EventHandler<Object> AccessoryConnectFailureEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.AccessoryConnectFailureEvent += starIoExtManager_AccessoryConnectFailureEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_AccessoryConnectFailureEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.34. AccessoryDisconnectEvent
アクセサリー切断を通知します。
宣言
public event EventHandler<Object> AccessoryDisconnectEvent;
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.AccessoryDisconnectEvent += starIoExtManager_AccessoryDisconnectEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_AccessoryDisconnectEvent(object sender, object e) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }
4.9.35. StatusUpdatedEvent
ステータスアップデートを通知します。
宣言
public event EventHandler<Object> StatusUpdatedEvent;
- アップデートステータス
自動ステータスの3バイト目〜6バイト目を16進数文字列化したもの(例:HEX
28000000
) STAR Line Modeコマンド仕様書もしくはStarPRNTコマンド仕様書を参照ください。- アップデートステータス通知タイミング
ステータス変化時、またはステータス未変化時に5分ごと
実装例
async private void Button_Click(object sender, RoutedEventArgs e) { StarIoExtManager starIoExtManager = new StarIoExtManager(StarIoExtManagerType.WithBarcodeReader, portName.ToString(), portSettings.ToString(), 10000); starIoExtManager.StatusUpdatedEvent += starIoExtManager_StatusUpdatedEvent; await starIoExtManager.ConnectAsync(); } async void starIoExtManager_StatusUpdatedEvent(object sender, object e) { // Hexadecimal digit sequence of 3rd to 6th bytes in Automatic Status of string type (*) is stored in parameter e. (ex. "28000000") // Type cast as string type and get Automatic Status. await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { // UI thread Implementation }); }