4.9. StarIoExtManager

プリンターと常時接続を行うことで、リアルタイムな状態取得機能を提供します。

  • メソッド

    名称

    説明

    ConnectAsync

    マネージメントを開始します。

    DisconnectAsync

    マネージメントを停止します。

    LockAsync

    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

    マネージャタイプ

    StarIoExtManagerType

    portName

    ConnectAsync メソッドのportNameと同じです。

    string

    portSettings

    ConnectAsync メソッドのportSettingと同じです。

    string

    ioTimeoutMillis

    内部制御およびAPIのタイムアウト値

    uint

  • 戻り値

    説明

    StarIoExtManager オブジェクト

    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
        });
    }