1 1 1 1 / 10101010
CashDrawer
CashDrawer
CashDrawer
CashDrawer
ライブラリ
ライブラリ
ライブラリ
ライブラリ
API
API
API
API
仕様書
仕様書
仕様書
仕様書
Rev.
Rev.
Rev.
Rev. 0
0
0
00
0
0
0.0
.0
.0
.04
4
4
4
2 2 2 2 / 10101010
目次
目次
目次
目次
1. 1. 1. 1. ファイル構成ファイル構成ファイル構成ファイル構成 ... 333 3 2. 2. 2. 2. 環境環境環境環境 ... 333 3 2.1. 2.1. 2.1. 2.1. 動作環境動作環境動作環境動作環境OSOS ...OSOS... 333 3 2.2. 2.2. 2.2. 2.2. コンパイル時の注意点コンパイル時の注意点コンパイル時の注意点コンパイル時の注意点 ... 333 3 2.3. 2.3. 2.3.2.3. USBUSBUSBUSBドライバドライバドライバドライバ ... 333 3 3. 3. 3. 3. 関数一覧関数一覧関数一覧関数一覧 ... 444 4 3.1. 3.1. 3.1.
3.1. USBUSBUSBUSB接続確認処理(接続確認処理(接続確認処理(接続確認処理(CD_checkConnectCD_checkConnectCD_checkConnectCD_checkConnect)))) ... 444 4 3.2.
3.2. 3.2.
3.2. ソレノイドソレノイドソレノイドソレノイドONONONON処理(処理(処理(処理(CD_onSolenoidCD_onSolenoidCD_onSolenoidCD_onSolenoid)))) ... 444 4 3
3 3
3.3..3..3. .3. マイクロスイッチの状態取得処理(マイクロスイッチの状態取得処理(マイクロスイッチの状態取得処理(マイクロスイッチの状態取得処理(CD_getStatusSwCD_getStatusSwCD_getStatusSwCD_getStatusSw)))) ... 444 4 3.4.
3.4. 3.4.
3.4. USBUSBUSBUSB切断処理(切断処理(切断処理(切断処理(CD_disConnectCD_disConnectCD_disConnectCD_disConnect)))) ... 444 4 4. 4. 4. 4. 使用例使用例使用例使用例 ... 555 5 4.1. 4.1. 4.1. 4.1. C++C++C++C++ ... 555 5 4.2. 4.2. 4.2.
4.2. VB.NETVB.NETVB.NETVB.NET ... 666 6 4.3.
4.3. 4.3.
4.3. C#.NETC#.NETC#.NETC#.NET ... 777 7 4.4. 4.4. 4.4. 4.4. VB6.0VB6.0VB6.0VB6.0 ... 888 8 5. 5. 5.
5. AppendixAppendixAppendixAppendix ... 999 9 5.1. 5.1. 5.1. 5.1. ソレノイドソレノイドソレノイドソレノイドONONONON仕様仕様仕様仕様... ... 999 9 6. 6. 6. 6. 変更履歴変更履歴変更履歴変更履歴 ... 10101010
3 3 3 3 / 10101010
1.
ファイル構成
ファイル構成
ファイル構成
ファイル構成
ファイル名 説明 CashDrawer.dll 本仕様書の対象DLL。 CashDrawer.lib インポートライブラリファイル(C++参照用) CashDrawer.h インクルードファイル(C++参照用)2.
環境
環境
環境
環境
2.1. 動作環境動作環境動作環境動作環境OS ・Windows XP (32bit)・Windows Vista (32bit/64bit) ・Windows 7 (32bit/64bit) ・Windows 8 (32bit/64bit) ・Windows 8.1 (32bit/64bit) 2.2. コンパイル時の注意点コンパイル時の注意点コンパイル時の注意点コンパイル時の注意点 ※本ライブラリは、32bitプログラムです。 呼び側exeでも、使用CPUを「x86」に設定する必要があります。 例えば、VisualStdio2012の場合、プロジェクトのプロパティ内にて設定します。 「AnyCPU」「x64」の場合、USB通信エラーになります。 ※32bitプログラムですが、64bit用PC上でも動作可能です。 2.3. USBドライバドライバドライバドライバ ※本ライブラリのUSBドライバは、標準HID通信を行っているため、 PC本体にUSBをつなげると、Windows側で自動的にインストールが行われます。 ※USBドライバのインストールが完了していない状態で、呼び側exeにて通信処理を 行っても、USB通信エラーになります。 この際の動作保証は致しませんのでご了承ください。
4 4 4 4 / 10101010
3.
関数一覧
関数一覧
関数一覧
関数一覧
インクルードファイル:CashDrawer.h 3.1. USB接続確認接続確認接続確認接続確認処理処理処理処理((((CD_checkConnect)))) USB接続状態を確認します。 未接続の場合、接続処理を行います。 INT32 WINAPI CD_checkConnect()引数: なし。 戻り値: 0 接続中 -1 切断中(USB 接続に失敗) -2 切断中(現存するインターフェースが存在しない) -3 切断中(メモリ不足) -4 切断中(USB 詳細情報取得に失敗) -5 切断中(送信ハンドルの作成に失敗) -6 切断中(受信ハンドルの作成に失敗) 3.2. ソレノイドソレノイドソレノイドソレノイドON処理処理(処理処理(((CD_onSolenoid)))) ソレノイドON送信を行います。 3回連続で送信を行います。(150msecごとに3回送信) ソレノイドON送信後、基盤側で約3秒間はソレノイドONを受け付けません。 (詳細は「5.1.ソレノイドON仕様」を参照)
INT32 WINAPI CD_onSolenoid()
引数: なし。 戻り値: 0 送信成功 -1 送信失敗 -2 USB 未接続などで未送信 3.3. マイクロスイッチの状態取得マイクロスイッチの状態取得処理マイクロスイッチの状態取得マイクロスイッチの状態取得処理処理処理((((CD_getStatusSw)))) マイクロスイッチの状態取得送信を行います。 スイッチ状態の受信を行います。 INT32 WINAPI CD_getStatusSw()
引数: なし。 戻り値: 1 SW OFF 0 SW ON -1 送信失敗 -2 USB 未接続などで未送信 -3 受信失敗 -4 USB 未接続などで未受信 3.4. USB切断処理切断処理切断処理切断処理((((CD_disConnect)))) USB切断処理を行います。 再び接続状態にしたい場合は、CD_checkConnect()関数をCallしてください。
INT32 WINAPI CD_disConnect()
引数: なし。 戻り値: なし
5 5 5 5 / 10101010
4.
使用例
使用例
使用例
使用例
4.1. C++#include "CashDrawer.h" // プロジェクトの設定にてCashDrawer.lib参照も追加
// USB接続 INT32 iRtn; iRtn = CD_checkConnect(); if( iRtn == 0 ) { GetDlgItem(IDC_STATIC)->SetWindowText(_T("Connect OK")); } else { GetDlgItem(IDC_STATIC)->SetWindowText(_T("Connect NG")); } // ソレノイドON INT32 iRtn; iRtn = CD_onSolenoid(); if( iRtn == 0 ) { GetDlgItem(IDC_STATIC)->SetWindowText(_T("SolenoidON OK")); } else { GetDlgItem(IDC_STATIC)->SetWindowText(_T("SolenoidON NG")); } // Sw状態取得 INT32 iRtn; iRtn = CD_getStatusSw(); if( iRtn == 0 ) { GetDlgItem(IDC_STATIC)->SetWindowText(_T("Status : A Pressed")); }
else if( iRtn == 1 )
{
GetDlgItem(IDC_STATIC)->SetWindowText(_T("Status : Not Pressed"));
} else { GetDlgItem(IDC_STATIC)->SetWindowText(_T("GetStatusSw NG")); } // USB切断 CD_disConnect(); // アプリケーション終了時、CD_disConnect()をcallしてください。 BOOL CVc_sampleDlg::DestroyWindow() { // TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください CD_disConnect(); return CDialog::DestroyWindow(); }
6 6 6 6 / 10101010
4.2. VB.NET
Private Declare Function CD_checkConnect Lib "CashDrawer.dll" () As Integer
Private Declare Function CD_onSolenoid Lib "CashDrawer.dll" () As Integer
Private Declare Function CD_getStatusSw Lib "CashDrawer.dll" () As Integer
Private Declare Sub CD_disConnect Lib "CashDrawer.dll" ()
‘ USB接続
Dim iRtn As Integer
iRtn = CD_checkConnect()
If (iRtn = 0) Then
Label1.Text = "Connect OK"
Else
Label1.Text = "Connect NG" & Environment.NewLine & "(code = " & iRtn & ")"
End If
‘ ソレノイドON
Dim iRtn As Integer
iRtn = CD_onSolenoid()
If (iRtn = 0) Then
Label1.Text = "SolenoidON OK"
Else
Label1.Text = "SolenoidON NG" & Environment.NewLine & "(code = " & iRtn & ")"
End If
‘ Sw状態取得
Dim iRtn As Integer
iRtn = CD_getStatusSw()
If (iRtn = 0) Then
Label1.Text = "Status : A Pressed"
ElseIf (iRtn = 1) Then
Label1.Text = "Status : Not Pressed"
Else
Label1.Text = "Get StatusSw NG" & Environment.NewLine & "(code = " & iRtn & ")"
End If
‘ USB切断
CD_disConnect()
Label1.Text = "disconnected"
‘ アプリケーション終了時、CD_disConnect()をcallしてください。
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
CD_disConnect()
7 7 7 7 / 10101010 4.3. C#.NET using System.Runtime.InteropServices; [DllImport("CashDrawer.dll")]
public static extern int CD_checkConnect();
[DllImport("CashDrawer.dll")]
public static extern int CD_onSolenoid();
[DllImport("CashDrawer.dll")]
public static extern int CD_getStatusSw();
[DllImport("CashDrawer.dll")]
public static extern void CD_disConnect();
// USB接続
int iRtn;
iRtn = CD_checkConnect();
if (iRtn == 0)
{
label1.Text = "Connect OK";
}
else
{
label1.Text = "Connect NG" + "\r\n" + "(code = " + iRtn + ")";
} // ソレノイドON int iRtn; iRtn = CD_onSolenoid(); if (iRtn == 0) {
label1.Text = "SolenoidON OK";
}
else
{
label1.Text = "SolenoidON NG" + "\r\n" + "(code = " + iRtn + ")";
} // Sw状態取得 int iRtn; iRtn = CD_getStatusSw(); if (iRtn == 0) {
label1.Text = "Status : A Pressed";
}
else if (iRtn == 1)
{
label1.Text = "Status : Not Pressed";
}
else
{
label1.Text = "Get StatusSw NG" + "\r\n" + "(code = " + iRtn + ")";
} // USB切断
CD_disConnect();
label1.Text = "disconnected";
// アプリケーション終了時、CD_disConnect()をcallしてください。
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
CD_disConnect();
8 8 8 8 / 10101010
4.4. VB6.0
Private Declare Function CD_checkConnect Lib "CashDrawer.dll" () As Integer
Private Declare Function CD_onSolenoid Lib "CashDrawer.dll" () As Integer
Private Declare Function CD_getStatusSw Lib "CashDrawer.dll" () As Integer
Private Declare Sub CD_disConnect Lib "CashDrawer.dll" ()
‘ USB接続
Dim iRtn As Integer
iRtn = CD_checkConnect()
If (iRtn = 0) Then
Label1.Caption = "Connect OK"
Else
Label1.Caption = "Connect NG" & vbNewLine & "(code = " & iRtn & ")"
End If
‘ ソレノイドON
Dim iRtn As Integer
iRtn = CD_onSolenoid()
If (iRtn = 0) Then
Label1.Caption = "SolenoidON OK"
Else
Label1.Caption = "SolenoidON NG" & vbNewLine & "(code = " & iRtn & ")"
End If
‘ Sw状態取得
Dim iRtn As Integer
iRtn = CD_getStatusSw()
If (iRtn = 0) Then
Label1.Caption = "Status : A Pressed"
ElseIf (iRtn = 1) Then
Label1.Caption = "Status : Not Pressed"
Else
Label1.Caption = "Get StatusSw NG" & vbNewLine & "(code = " & iRtn & ")"
End If
‘ USB切断
Call CD_disConnect
Label1.Caption = "disconnected"
‘ アプリケーション終了時、CD_disConnect()をcallしてください。
Private Sub Form_Unload(Cancel As Integer)
Call CD_disConnect
9 9 9 9 / 10101010
5. Appendix
5.1. ソレノイドソレノイドソレノイドソレノイドON仕様仕様仕様仕様 ・ソレノイドON実行後、約3秒以内に再度ソレノイドONを実施しても実行されません。 ・ソレノイドON実行後、約3秒後に再度ソレノイドONを実施した場合、実行します。 ・ソレノイドON送信は、基盤側から実行中かどうかの返信がありませんので、 呼び側で、タイムコントロールを行う必要があります。 以下、基盤側で行っているタイムチャートイメージです。 ※ライブラリ側で、150msecごとに3回送信を実施しているのは、送信漏れ防止のため。 3回とも送信成功しても、基盤側で上記仕様により1回分しかソレノイドONが実施されない。 ON OFF トリガー ×実行不可 〇実行可 トリガー (3秒以内の場合 トリガーを受けても 受け付けない) トリガー (3秒後の場合 トリガー受付可) 約3秒 約3秒約3秒 約3秒 10ms 10ms 150ms10 1010 10 / 10101010