ロゴ:EPSON
ロゴ:よくあるご質問(FAQ)

製品別
質問別

URLをクリップボードにコピーしました
シェア用URL:https://faq2.epson.jp/web/Detail.aspx?id=36013
  FAQ番号:36013
Visual Basic .NET でキャッシュドロアーの開閉状態を取得する方法
Visual Basic .NET で開発するデスクトップ アプリケーションからキャッシュドロアーが開いている状態を取得する方法を教えてください。
 
 

レシートプリンターに接続されたキャッシュドロアーの開閉状況は、ドライバー:EPSON Advanced Printer Driver シリーズやアプリケーション開発キット:EPSON OPOS ADK によって知ることができます。

目次

EPSON Advanced Printer Driver

EPSON Advanced Printer Driver にはレシートプリンターやキャッシュドロアーのステータス ( 状態 ) を知ることができる Status API があります。
これを使用することで、アプリケーションにレシートプリンターやキャッシュドロアーを監視する機能を組み込むことができます。

Status API の例

Imports com.epson.pos.driver

Public Class Form1

  Dim m_objAPI As New StatusAPI
  Dim printStatus As ASB

  Private Sub Button1_Click(sender As Object,
                            e As EventArgs) Handles Button1.Click

      ' イベントの関連付け
      AddHandler m_objAPI.StatusCallback, AddressOf StatusMonitoring

      ' プリンターのオープン
      m_objAPI.OpenMonPrinter(OpenType.TYPE_PRINTER, PRINTER_NAME)

      ' ステータス監視の開始
      m_objAPI.SetStatusBack()

  End Sub

  Private Sub Button2_Click(sender As Object,
                              e As EventArgs) Handles Button2.Click

      ' ステータス監視の終了
      m_objAPI.CancelStatusBack()

      ' プリンターのクローズ
      m_objAPI.CloseMonPrinter()

  End Sub

  Public Sub StatusMonitoring(ByVal dwStatus As ASB)

      ' 各ステータスの論理和で返されるのでANDで判定
      If (dwStatus And ASB.ASB_DRAWER_KICK) = ASB.ASB_DRAWER_KICK Then

          ' キャッシュドロアーが接続されていない、
          ' または接続されているキャッシュドロアーが開いている。
      End If

  End Sub

End Class

詳細はドライバー本体、および共に公開しているマニュアルをご確認ください。

EPSON OPOS ADK

EPSON OPOS ADK は OPOS 仕様準拠のアプリケーション開発キットです。
レシートプリンターやキャッシュドロアーを制御するための API を提供しています。

注意

EPSON Advanced Printer Driver のように Windows 用プリンタードライバーとしてご使用いただけるものではありません。プリンターへの印刷やキャッシュドロアーの開閉には、必ずアプリケーションの開発が必要です。

DrawerOpened の例

   m_Drawer.Open()
   m_Drawer.Claim(1000)
   m_Drawer.DeviceEnabled = True

   m_Drawer.OpenDrawer()

   'ドロワーが開いている間、Loop をする例
   Do
      System.Threading.Thread.Sleep(100)
   Loop Until m_Drawer.DrawerOpened = True

   '終了処理
   m_Drawer.DeviceEnabled = False
   m_Drawer.Release()
   m_Drawer.Close()

イベント:StatusUpdateEvent で状態を知る例

Protected Sub OnStatusUpdateEvent(ByVal source As Object _
                                , ByVal e As StatusUpdateEventArgs)

   Select Case e.Status

        'キャッシュドロアーが閉じている。
        Case CashDrawer.StatusClosed

        'キャッシュドロアーは開いている。
        Case CashDrawer.StatusOpen

   End Select

End Sub

キャッシュドロアー CD-A3336,DLA-58EDIII,DM-Z100,DM-Z400,DMA-48EDIII,DSA-35EDIII
FAQ改善アンケート

このページの評価をお聞かせください。〇✖をお選びください。

 

■役に立った
■役に立たなかった