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

※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でも利用可能です。)


 
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.  
Comments