利用方法・サンプルコード・関数リファレンス

※VC++、VC#、VB・VB.NET・VBAによる開発が可能

必須ランタイム(VC++のみ):

以下のランタイムをインストールして開発してください。配布される場合には実行するPCごとにランタイムインストールが必要です。

○VC++2005の場合

Microsoft Visual C++ 2005 再頒布可能パッケージ (x86)

Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86)

Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージ ATL のセキュリティ更新プログラム

○VC++2008で開発される方は上記に加えてこちらのランタイムもインストール必要

Microsoft Visual C++ 2008 再頒布可能パッケージ (x86)

Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x86)

Orange Read Write Easy API

製品ご購入時のCDROMにソリューションファイルやアプリケーションソースコードもあわせてご参考ください。 

サポート・アップデートなどをご連絡するため、製品ご購入時のCDROMよりユーザー登録をおこなって下さい。

目次

1. C++での開発例

(C++/CLI .NETアプリケーションでの開発例ですが、C#、VC++MFCでも利用可能です。)

2. VB・VB.NET・VBAでの開発例

3. C#での開発例

4. 関数リファレンス

5. 利用フローチャート

 

1. C++での開発例

(C++/CLI .NETアプリケーションでの開発例ですが、VC++MFCでも利用可能です。)

 ※ libファイル、hファイルについてご不明な場合は株式会社オレンジタグスまでお問合せください。

 

【対象バージョン】

OrangeReadWriteEasyAPI:v1.010

Microsoft Visual C++: 2005/2008(Express Editionでも可)

※Windows x64(64ビット)では32ビットアプリケーションとして動作します。

【手順】

1. プロジェクトを新規作成する

[ファイル]→[新規作成]→[プロジェクト]の[Visual C++]→[Windowsフォームアプリケーション]でプロジェクト名(任意)を入力する

 2. ファイルを配置する

以下のファイルをプロジェクトのフォルダにコピーする

OrangeReadWriteEasyAPI.h

OrangeReadWriteEasyAPI.lib

以下のファイルをプロジェクトの実行ファイル出力フォルダにコピーする(debugフォルダとreleaseフォルダ)

OrangeReadWriteEasyAPI.dll 

3. DLLをリンクする

[プロジェクト]→[プロパティ]→[リンカ]→[入力]にOrangeReadWriteEasyAPI.libを追加する 

4. hファイルをプロジェクトに追加する

[プロジェクト]→[既存項目の追加]からOrangeReadWriteEasyAPI.hをプロジェクトに追加する 

stdafx.hの以下の場所にincludeを追加する。

 // TODO: プログラムに必要な追加ヘッダーをここで参照してください。

#include "OrangeReadWriteEasyAPI.h"

5. 関数を呼び出す

OrangeReadWriteEasyAPI.hに定義されているOTReadData(),OTWriteData()を呼び出す 

【サンプルコード】

2.VBでの開発例を参考にしてください。

 

2. VBでの開発例

 

【対象バージョン】

OrangeReadWriteEasyAPI:v1.010

Microsoft Visual Basic.NET:2005/2008(Express Editionでも可)

※Windows x64(64ビット)では32ビットアプリケーションとして動作します。

【手順】

1. プロジェクトを新規作成する

[ファイル]→[新規作成]→[プロジェクト]の[Visual Basic]→[Windowsフォームアプリケーション]でプロジェクト名(任意)を入力する

 2. ファイルを配置する

以下のファイルをプロジェクトの実行ファイル出力フォルダにコピーする(デフォルトではbin\Releaseとbint\Debug)

OrangeReadWriteEasyAPI.dll

3. DLLをリンクする

呼び出すクラス内で以下の宣言を記述する

例.

    Declare Function OTReadData Lib "OrangeReadWriteEasyAPI.dll" (ByRef data As Byte, ByRef dataLength As Integer, ByRef id As Byte, ByRef idLength As Integer, ByRef cardType As Integer) As Integer

    Declare Function OTWriteData Lib "OrangeReadWriteEasyAPI.dll" (ByRef data As Byte, ByVal dataLength As Integer, ByRef id As Byte, ByRef idLength As Integer, ByRef cardType As Integer) As Integer

   

※ほかにも呼び出し方法はあります

4. 関数を呼び出す

OTReadData(),OTWriteData()を呼び出す  

【サンプルコード】

・VB.NETの場合

ボタンをクリックした時にICの読取り結果をラベルに表示するサンプルコードです。

フォームにツールボックスからLabelとButtonを貼り付けてください。

※VB6.0以前のバージョンの場合はの場合はサンプルコード内の

result += id(i).ToString("X2") を

result = result & Right("00" & Hex(id(i)), 2) に変更して下さい。

 Public Class Form1

    Declare Function OTReadData Lib "OrangeReadWriteEasyAPI.dll" (ByRef data As Byte, ByRef dataLength As Integer, ByRef id As Byte, ByRef idLength As Integer, ByRef cardType As Integer) As Integer

    Declare Function OTWriteData Lib "OrangeReadWriteEasyAPI.dll" (ByRef data As Byte, ByVal dataLength As Integer, ByRef id As Byte, ByRef idLength As Integer, ByRef cardType As Integer) As Integer

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

        Dim data(47) As Byte        '読込データバッファ

        Dim dataLength As Integer   '読込データサイズ

        Dim id(10) As Byte          'カードID

        Dim idLength As Integer     'カードIDサイズ

        Dim cardType As Integer     'カードタイプ

        Dim idString As String = ""      'カードID文字列

        Dim dataString As String = ""    '結果文字列

        Dim result As Integer

        ’データ読込み

        result = OTReadData(data(0), dataLength, id(0), idLength, cardType)

        If 0 = result Then

            'カード種別を切替

            If 3 = cardType Then

                radioButton3.Checked = True

            ElseIf 11 = cardType Then

                radioButton1.Checked = True

            ElseIf 12 = cardType Then

                radioButton2.Checked = True

            End If

             'ICのIDを表示

            Dim i As Integer

            For i = 0 To (idLength - 1)

                idString += id(i).ToString("X2")

            Next

            'データをUNICODE文字列にエンコーディング

            dataString = System.Text.Encoding.Unicode.GetString(data)

            System.Diagnostics.Debug.WriteLine(LOGNAME + "result:" + dataString)

        Else

            dataString = "読込失敗しました:" + result.ToString

            System.Diagnostics.Debug.WriteLine(LOGNAME + "error:" + result.ToString)

        End If

        '結果表示

        txt_CardIDResult.Text = idString

        txt_CardData.Text = dataString

    End Sub

End Class

3. C#での開発例

 

 

【対象バージョン】

OrangeReadWriteEasyAPI:v1.010

Microsoft Visual C#:2005/2008(Express Editionでも可)

※Windows x64(64ビット)では32ビットアプリケーションとして動作します。

【手順】

1. プロジェクトを新規作成する

[ファイル]→[新規作成]→[プロジェクト]の[Visual C#]→[Windowsフォームアプリケーション]でプロジェクト名(任意)を入力する

 2. ファイルを配置する

以下のファイルをプロジェクトの実行ファイル出力フォルダにコピーする(デフォルトでは bin\Releaseとbint\Debug)

OrangeReadWriteEasyAPI.dll

3. DLLをリンクする

呼び出すクラス内で以下の宣言を記述する

例.

        [DllImport("OrangeReadWriteEasyAPI.dll", EntryPoint = "OTReadData", CharSet = CharSet.Ansi)]

        private extern static int OTReadData(ref Byte data, ref Byte dataLength, ref Byte id, ref IntPtr length);

   

    ※ほかにも呼び出し方法はあります

4. 関数を呼び出す

OTReadData(),OTWriteData()を呼び出す

  

【サンプルコード】

2.VBでの開発例を参考にしてください。

 

4. 関数リファレンス

【対象バージョン】OrangeReadWriteEasyAPI:v1.010

OTReadData

・関数宣言

LRESULT APIENTRY OTReadData(BYTE* data, int* dataLength, BYTE* id, int* idLength, int* cardType);

・引数

data:          読込みデータ(48バイト固定)

dataLength:    読込まれたデータサイズ(48バイト固定)

id:            ID ※API側からICの固有IDが返ります

idLength:      ID長さ ※API側からICの固有IDの長さが返ります

cardType:      カード種別(0:対象外のカード,3:FeliCa,11:MifareUltralight,12:MifareStandard1K)

・返り値

※以下のステータスコードを参照ください。

OTWriteData

・関数宣言

LRESULT APIENTRY OTWriteData(BYTE* data, int dataLength, BYTE* id, int* idLength, int* cardType);

・引数

data:          書込みデータ(48バイト固定)

dataLength:    書込みデータサイズ(48バイト固定)

id:            ID ※API側からICの固有IDが返ります

idLength:      ID長さ ※API側からICの固有IDの長さが返ります

cardType:      カード種別(0:対象外のカード,3:FeliCa,11:MifareUltralight,12:MifareStandard1K)

・返り値

※以下のステータスコードを参照ください。

【ステータスコード】

   OT_SUCCESS            = 0;    // 処理成功

   OT_FAILURE            = 1;    // 処理失敗

   OT_NO_SERVICE         = 2;    // カードサービスエラー        スマートカードサービスが起動していません。

   OT_NO_READERS         = 3;    // リーダー未接続            リーダーが接続されていません。接続してご利用ください。

   OT_NO_CARD            = 4;    // カード未接続              ICカードが接続されていません。または利用できないカードをかざしています。

   OT_REMOVE_TIMEOUT     = 5;    // カード除去待ちタイムアウト     同じカードが100ms以上かざされたままになっています。

   OT_REMOVE_READERS     = 6;    // リーダー切断エラー          リーダーの切断に失敗しました。

   OT_REMOVE_CARD        = 7;    // カード切断エラー            カードの切断に失敗しました。

   OT_CARD_TIMEOUT       = 8;    // カード待ちタイムアウト        カード接続待機時間1msを超えました。

   OT_COMMAND_ERROR      = 9;    // カードID取得コマンドエラー    ICカードへのコマンドでエラーが発生しました。

   OT_RELEASE_ERROR      = 10;   // カードサービス解放エラー     スマートカードサービスの開放に失敗しました。

    OT_UNKNOWN_CARD       = 11;   // 不明なカード種別           対象外のカードを検出しました。

    OT_AUTHENTICATE_ERROR = 12;   // キー認証エラー(Mifare)    MifareStandardでキー認証に失敗しました。

    OT_DATA_READ_ERROR    = 13;   // データ読取エラー           データ読込みに失敗しました。

    OT_DATA_WRITE_ERROR   = 14;   // データ書込エラー           データ書込みに失敗しました。

OT_FAILUREは定義以外のエラー発生時に返されます。

OT_REMOVE_TIMEOUT100ms以上カードが置かれたままの場合に返されます。

※GET_ID_SUCCESS以外が返される場合は、リーダー、カード状態等をご確認ください。それでも解決しない場合はFAQ for ソフトウェア開発をご確認ください。

 

5. 利用フローチャート

OrangeReadWriteEasyAPIの関数のステータスコード(返り値)に応じて処理を行ってください。

ステータスコードの内容は4.関数リファレンスに記載されています。

  

お問い合わせ

APIを利用したい方、APIの機能追加やカスタム開発・ソースコード提供、システムの受託開発などをご希望の方は、株式会社オレンジタグスまでお問い合わせ下さい。    

 

※本サイト記載の社名・製品名・ロゴは各社の商標または登録商標です。

※本サイト記載の文書またはデータ等を無断で複写、複製、転記、転載、ノウハウの使用等を行うことは禁じられております。

Copyright © 2009 Orangetags Inc. All Rights Reserved.