利用方法・サンプルコード・関数リファレンス(Orange One Stop Easy API)

※VC++、VC#、VB・VB.NET・VBAによる開発が可能(VBAはExcel 32bitのみ)

必須ランタイム(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 One Stop Easy API

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

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

目次

1. C++での開発例

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

3. C#での開発例

4. データ保存形式

5. 関数リファレンス

6. 利用フローチャート

 

1. C++での開発例

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

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

 

【対象バージョン】

OrangeOneStopEasyAPI:v1.000以降

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

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

【手順】

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

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

 2. ファイルを配置する

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

OrangeOneStopEasyAPI.h

OrangeOneStopEasyAPI.lib

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

OrangeOneStopEasyAPI.dll 

3. DLLをリンクする

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

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

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

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

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

#include "OrangeOneStopEasyAPI.h"

5. 関数を呼び出す

OrangeOneStopEasyAPI.hに定義されている関数を呼び出す 

【サンプルコード】

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

※カードを連続読み込みを行う場合はこちらの情報も併せてご確認下さい。

 

2. VBでの開発例

 

【対象バージョン】

OrangeOneStopEasyAPI:v1.000以降

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

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

【手順】

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

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

 2. ファイルを配置する

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

OrangeOneStopEasyAPI.dll

3. DLLをリンクする

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

例. 

   Declare Function OTReadData Lib "OrangeOneStopEasyAPI.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 "OrangeOneStopEasyAPI.dll" (ByRef data As Byte, ByVal dataLength As Integer, ByRef id As Byte, ByRef idLength As Integer, ByRef cardType As Integer) As Integer

    

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

4. 関数を呼び出す

定義されている関数を呼び出す     

【サンプルコード】

・VB.NETの場合

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

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

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

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

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

※カードを連続読み込みを行う場合はこちらの情報も併せてご確認下さい。

 Public Class Form1

    Declare Function OTReadData Lib "OrangeOneStopEasyAPI.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 "OrangeOneStopEasyAPI.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

・VBAの場合

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

UserFormにツールボックスからLabel1,Label2,Label3とCommandButton1を貼り付けてください。

※"OrangeOneStopEasyAPI.dll"の部分は実際にDLLを置いている完全パスを指定してください。

※VBAの場合はInteger型をLong型にしてお使いください。予期せぬ動作をする場合があります。(VBAではInteger型が2バイトのため、Long型の4バイトをお使いください。)

※カードを連続読み込みを行う場合はこちらの情報も併せてご確認下さい。

Private Declare Function OTReadData Lib "OrangeOneStopEasyAPI.dll" (ByRef data As Byte, ByRef dataLength As Long, ByRef id As Byte, ByRef idLength As Long, ByRef cardType As Long) As Long

Private Sub CommandButton1_Click()

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

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

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

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

        Dim cardType As Long     'カードタイプ

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

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

        Dim result As Long

        ’データ読込み

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

        If 0 = result Then

             'ICのIDを表示

            Dim i As Integer

            For i = 0 To (idLength - 1)

                idString = idString & Right("00" & Hex(id(i)), 2)

            Next

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

            dataString = data

        Else

            dataString = "読込失敗しました"

        End If

        '結果表示

        Label1.Caption= idString

        Label2.Caption = dataString

        Label3.Caption = cardType

End Sub

3. C#での開発例

 

 

【対象バージョン】

OrangeOneStopEasyAPI:v1.000以降

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

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

【手順】

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

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

 2. ファイルを配置する

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

OrangeOneStopEasyAPI.dll

3. DLLをリンクする

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

例.

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

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

   

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

4. 関数を呼び出す

定義されている関数を呼び出す

  

【サンプルコード】

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

※カードを連続読み込みを行う場合はこちらの情報も併せてご確認下さい。

4. データ保存形式 ※Ver2.0.0.0以降

フォルダ指定機能はございません。

どのカードにおいても48byte固定で保存します。

読み書きするデータは48byteごとの「フォルダ」として格納されます。

※FeliCa Lite/Lite-Sは32byteのフォルダがあります。

※Mifare ClassicはデフォルトキーでのキーA認証のみです。

 

        ※OrangeOneStopEasyAPI for Androidとデータ互換性があります。

   

5. 関数リファレンス

【対象バージョン】OrangeOneStopEasyAPI:v2.000

【関数一覧】

        GetCardID               ・・・ICカードのIDを取得する 

        GetCardIDIndex       ・・・ICカードのIDを取得する(ICカードリーダー選択あり)

        PutURL                   ・・・携帯電話へURLを転送する

        PutURLIndex           ・・・携帯電話へURLを転送する(ICカードリーダー選択あり)

        OTReadData            ・・・ICカードのデータを読み出す

        OTReadDataIndex    ・・・ICカードのデータを読み出す(ICカードリーダー選択あり)

        OTReadFolderIndex ・・・ICカードのデータを読み出す(ICカードリーダー選択・フォルダ指定あり) ※Ver2.0.0.0以降

        OTWriteData            ・・・ICカードへデータを書き込む

        OTWriteDataIndex   ・・・ICカードへデータを書き込む(ICカードリーダー選択あり)

        OTWriteFolderIndex・・・ICカードへデータを書き込む(ICカードリーダー選択・フォルダ指定あり) ※Ver2.0.0.0以降

        GetReadersList        ・・・接続されているICカードリーダーの名称一覧と数量を取得する

        OTGetReaderInfoIndex・・・接続されているICカードリーダーのシリアルナンバー(S/N)を取得する ※Ver2.0.1.0以降

カード種別

0:    その他

1:    Mifare Classic 1K

2:    Mifare Classic 4K

3:    Mifare Ultralight

5:    FeliCa

※読み書き可能なカードはMifare Classic1K/4K,Mifare Ultralight,FeliCa Lite/Lite-Sのみです。

GetCardID

※OrangeEasyAPI、OrangeGetNFCIDmUIDEasyAPIと完全互換の関数です。そのまま置換え可能です。

・関数宣言

LRESULT APIENTRY GetCardID(BYTE* id, int* length);

・引数

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

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

・返り値

    GET_ID_SUCCESS            = 0;    // 読取成功

    GET_ID_FAILURE            = 1;    // 読取失敗 ※1

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

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

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

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

    GET_ID_REMOVE_READERS     = 6;    // リーダー切断           リーダーがはずされました。

    GET_ID_REMOVE_CARD        = 7;    // カード切断             カードがはずされました。

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

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

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

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

       ※2 GET_ID_REMOVE_TIMEOUTはエラーではなく、読取り成功しています。同じカードがかざされたままである事を通知するものです。

        置き忘れ防止などの処理の実装にご利用ください。

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

GetCardIDIndex

・関数宣言

LRESULT APIENTRY GetCardIDIndex(BYTE* id, int* length, int index);

・引数

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

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

index:       リーダーのインデックスを指定します(0~9まで最大10台まで)

・返り値

    GET_ID_SUCCESS            = 0;    // 読取成功

    GET_ID_FAILURE            = 1;    // 読取失敗 ※1

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

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

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

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

    GET_ID_REMOVE_READERS     = 6;    // リーダー切断              リーダーがはずされました。

    GET_ID_REMOVE_CARD        = 7;    // カード切断             カードがはずされました。

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

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

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

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

       ※2 GET_ID_REMOVE_TIMEOUTはエラーではなく、読取り成功しています。同じカードがかざされたままである事を通知するものです。

        置き忘れ防止などの処理の実装にご利用ください。

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

PutURL

※OrangeMobileFeliCaPutURLEasyAPIと完全互換の関数です。そのまま置換え可能です。

・関数宣言

LRESULT APIENTRY PutURL(BYTE* url, int urlLength);

・引数

url:              URL文字列(最大120バイト)

urlLength:    URL文字列長

・返り値

   OT_PUTURL_SUCCESS            = 0;    // 読取成功

    OT_PUTURL_FAILURE            = 1;    // 読取失敗

    OT_PUTURL_NO_SERVICE         = 2;    // カードサービスエラー

   OT_PUTURL_NO_READERS         = 3;    // カードリーダー未接続

    OT_PUTURL_NO_CARD            = 4;    // カード未接続

    OT_PUTURL_URLLENGTH_ERR      = 105;    // URL長オーバー

    OT_PUTURL_COMMAND_ERR        = 106;    // 送信コマンドエラー

    OT_PUTURL_RESPONSE_ERR       = 107;    // コマンドレスポンスエラー

        

        ※OT_PUTURL_FAILUREは上記以外のエラー発生時に返されます。

PutURLIndex

・関数宣言

LRESULT APIENTRY PutURLIndex(BYTE* url, int* urlLength, int index);

・引数

url:              URL文字列(最大120バイト)

urlLength:    URL文字列長

index:          リーダーのインデックスを指定します(0~9まで最大10台まで)

・返り値

   OT_PUTURL_SUCCESS            = 0;    // 読取成功

    OT_PUTURL_FAILURE            = 1;    // 読取失敗

    OT_PUTURL_NO_SERVICE         = 2;    // カードサービスエラー

   OT_PUTURL_NO_READERS         = 3;    // カードリーダー未接続

    OT_PUTURL_NO_CARD            = 4;    // カード未接続

    OT_PUTURL_URLLENGTH_ERR      = 105;    // URL長オーバー

    OT_PUTURL_COMMAND_ERR        = 106;    // 送信コマンドエラー

    OT_PUTURL_RESPONSE_ERR       = 107;    // コマンドレスポンスエラー

        ※OT_PUTURL_FAILUREは上記以外のエラー発生時に返されます。

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:     カード種別(※カード種別参照)

・返り値

    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_DATA_ACCESS_ERROR   = 15;   // データアクセスエラー    FeliCaカードのデータアクセスに失敗しました。(FeliCa Liteのみ対応)

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

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

OTReadDataIndex

・関数宣言

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

・引数

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

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

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

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

cardType:       カード種別(※カード種別参照)

index:            リーダーのインデックスを指定します(0~9まで最大10台まで)

・返り値

    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_DATA_ACCESS_ERROR   = 15;   // データアクセスエラー    FeliCaカードのデータアクセスに失敗しました。(FeliCa Liteのみ対応)

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

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

OTReadFolderIndex ※Ver2.0.0.0以降

・関数宣言

LRESULT APIENTRY OTReadFolderIndex(BYTE* data, int* dataLength, BYTE* id, int* idLength, int* cardType, int index, int folderNo);

・引数

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

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

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

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

cardType:       カード種別(※カード種別参照)

index:            リーダーのインデックスを指定します(0~9まで最大10台まで)

folderNo:        フォルダNo指定(※4.データ保存形式 参照)

・返り値

    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_DATA_ACCESS_ERROR  = 15;   // データアクセスエラー    FeliCaカードのデータアクセスに失敗しました。(FeliCa Liteのみ対応)

    OT_INDEX_ERROR = 16;   // リーダーインデックスエラー    リーダーのインデックスが無効です。

    OT_FOLDER_ERROR  = 17;   // フォルダインデックスエラー    フォルダのインデックスが無効です。

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

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

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:     カード種別(※カード種別参照)

・返り値

    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_DATA_ACCESS_ERROR   = 15;   // データアクセスエラー    FeliCaカードのデータアクセスに失敗しました。(FeliCa Liteのみ対応)

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

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

OTWriteDataIndex

・関数宣言

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

・引数

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

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

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

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

cardType:       カード種別(※カード種別参照)

index:             リーダーのインデックスを指定します(0~9まで最大10台まで)

・返り値

    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_DATA_ACCESS_ERROR   = 15;   // データアクセスエラー    FeliCaカードのデータアクセスに失敗しました。(FeliCa Liteのみ対応)

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

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

OTWriteFolderIndex ※Ver2.0.0.0以降

・関数宣言

LRESULT APIENTRY OTWriteFolderIndex(BYTE* data, int dataLength, BYTE* id, int* idLength, int* cardType, int index, int folderNo);

・引数

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

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

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

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

cardType:       カード種別(※カード種別参照)

index:             リーダーのインデックスを指定します(0~9まで最大10台まで)

folderNo:        フォルダNo指定(※4.データ保存形式 参照)

・返り値

    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_DATA_ACCESS_ERROR   = 15;   // データアクセスエラー    FeliCaカードのデータアクセスに失敗しました。(FeliCa Liteのみ対応)

    OT_INDEX_ERROR = 16;   // リーダーインデックスエラー    リーダーのインデックスが無効です。

    OT_FOLDER_ERROR  = 17;   // フォルダインデックスエラー    フォルダのインデックスが無効です。

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

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

GetReadersList

・関数宣言

LRESULT APIENTRY GetReadersList(BYTE* list, int* number);

・引数

list:                 ICカードリーダー 名称文字列(2048バイト固定) ※\0区切りで連続しています

number:          接続済みICカードリーダー数

・返り値

    OT_SUCCESS            = 0;    // 処理成功

    OT_FAILURE            = 1;    // 処理失敗

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

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

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

    OT_REMOVE_READERS     = 6;    // リーダー切断          リーダーがはずされました。

    OT_REMOVE_CARD        = 7;    // カード切断                   カードがはずされました。

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

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

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

OTGetReaderInfoIndex ※Ver2.0.1.0以降

※ICカードをかざした状態しか使用できませんので、ご注意ください。

・関数宣言

LRESULT APIENTRY OTGetReaderInfoIndex(BYTE* readerId, int* readerIdLength, int index);

・引数

readerId:            リーダーシリアルナンバー(S/N) ※14byte固定

readerIdLength:  リーダーシリアルナンバー(S/N)長さ ※API側からリーダーのシリアルナンバー(S/N)の長さが返ります

index:               リーダーのインデックスを指定します(0~9まで最大10台まで)

・返り値

    OT_SUCCESS            = 0;    // 処理成功

    OT_FAILURE            = 1;    // 処理失敗

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

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

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

    OT_REMOVE_READERS     = 6;    // リーダー切断          リーダーがはずされました。

    OT_REMOVE_CARD        = 7;    // カード切断                   カードがはずされました。

    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_DATA_ACCESS_ERROR   = 15;   // データアクセスエラー    FeliCaカードのデータアクセスに失敗しました。(FeliCa Liteのみ対応)

    OT_INDEX_ERROR = 16;   // リーダーインデックスエラー    リーダーのインデックスが無効です。

    OT_FOLDER_ERROR  = 17;   // フォルダインデックスエラー    フォルダのインデックスが無効です。

    OT_PNPCOMMAND_ERROR  = 18;   // リーダーシリアルナンバー(S/N)取得コマンドエラー    リーダーシリアルナンバー(S/N)の取得に失敗しました。

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

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

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

 

6. 利用フローチャート

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

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

  

お問い合わせ

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

 

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

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

Copyright © 2009 Orangetags Inc. All Rights Reserved.