利用方法、サンプルコード・関数リファレンス(Orange Pro Muzu API)


※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 Pro Muzu API
製品ご購入時のCDROMにソリューションファイルやアプリケーションソースコードもあわせてご参考ください。 
サポート・アップデートなどをご連絡するため、製品ご購入時のCDROMよりユーザー登録をおこなって下さい。




目次


 
1. C++での開発例
(C++/CLI .NETアプリケーションでの開発例ですが、VC++MFCでも利用可能です。)
 ※ libファイル、hファイルについてご不明な場合は株式会社オレンジタグスまでお問合せください。
 
【対象バージョン】
OrangeProMuzuAPI:v1.000
Microsoft Visual Basic.NET:2008以降推奨(Express Editionでも可)
※Windows x64(64ビット)では32ビットアプリケーションとして動作します。
【手順】
1. プロジェクトを新規作成する
[ファイル]→[新規作成]→[プロジェクト]の[Visual C++]→[Windowsフォームアプリケーション]でプロジェクト名(任意)を入力する
 2. ファイルを配置する
以下のファイルをプロジェクトのフォルダにコピーする
  OrangeProAPI.h
  OrangeProAPI.lib
以下のファイルをプロジェクトの実行ファイル出力フォルダにコピーする(debugフォルダとreleaseフォルダ)
   OrangeProAPI.dll 
3. DLLをリンクする
[プロジェクト]→[プロパティ]→[リンカ]→[入力]にOrangeProAPI.libを追加する 
4. hファイルをプロジェクトに追加する
[プロジェクト]→[既存項目の追加]からOrangeProAPI.hをプロジェクトに追加する 

stdafx.hの以下の場所にincludeを追加する。
 // TODO: プログラムに必要な追加ヘッダーをここで参照してください。
#include "
OrangeProAPI.h"
5. 関数を呼び出す
OrangeProAPI.hに定義されている関数を呼び出す  

【サンプルコード】
2.VBでの開発例を参考にしてください。
※製品にサンプルコードは付属しています。


 
2. VBでの開発例
 
    ※VBA開発時の注意事項
        Integer型をLong型にしてお使いください。予期せぬ動作をする場合があります。(VBAではInteger型が2バイトのため、Long型の4バイトをお使いください。)
【対象バージョン】
OrangeProMuzuAPI:v1.000
Microsoft Visual Basic.NET:2008以降推奨(Express Editionでも可)
※Windows x64(64ビット)では32ビットアプリケーションとして動作します。
手順
1. プロジェクトを新規作成する
[ファイル]→[新規作成]→[プロジェクト]の[Visual Basic]→[Windowsフォームアプリケーション]でプロジェクト名(任意)を入力する
 2. ファイルを配置する
以下のファイルをプロジェクトの実行ファイル出力フォルダにコピーする(デフォルトではbin\Releaseとbint\Debug)
OrangeProAPI.dll
3. DLLをリンクする
呼び出すクラス内で以下の宣言を記述する
例.
    Declare Function OTReadBlockIndex Lib "OrangeProAPI.dll" (ByRef data As Byte, ByRef dataLength As Integer, ByRef id As Byte, ByRef idLength As Integer, ByRef cardType As Integer, ByVal index As Integer, ByVal block As Integer, ByRef key As Byte, ByVal keyType As Integer) As Integer

    Declare Function OTWriteBlockIndex Lib "OrangeProAPI.dll" (ByRef data As Byte, ByVal dataLength As Integer, ByRef id As Byte, ByRef idLength As Integer, ByRef cardType As Integer, ByVal index As Integer, ByVal block As Integer, ByRef key As Byte, ByVal keyType As Integer) As Integer

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

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

【サンプルコード】
・VB.NETの場合
ボタンをクリックした時にICのブロック0番目の読取り結果をラベルに表示するサンプルコードです。
フォームにツールボックスからTextBoxを2つ貼り付けてください。
※製品にサンプルコードは付属しています。
※VB6.0以前のバージョンの場合はの場合はサンプルコード内の 
result += id(i).ToString("X2") を 
result = result & Right("00" & Hex(id(i)), 2) に変更して下さい。

 Public Class Form1

    Declare Function OTReadBlockIndex Lib "OrangeProAPI.dll" (ByRef data As Byte, ByRef dataLength As Integer, ByRef id As Byte, ByRef idLength As Integer, ByRef cardType As Integer, ByVal index As Integer, ByVal block As Integer, ByRef key As Byte, ByVal keyType As Integer) As Integer

  ' 読取結果
    Private Const OT_SUCCESS As Integer = 0             ' 処理成功
    Private Const OT_FAILURE As Integer = 1             ' 処理失敗
    Private Const OT_NO_SERVICE As Integer = 2          ' カードサービスエラー
    Private Const OT_NO_READERS As Integer = 3          ' リーダー未接続
    Private Const OT_NO_CARD As Integer = 4             ' カード未接続
    Private Const OT_REMOVE_TIMEOUT As Integer = 5      ' カード除去待ちタイムアウト
    Private Const OT_REMOVE_READERS As Integer = 6      ' リーダー切断エラー
    Private Const OT_REMOVE_CARD As Integer = 7         ' カード切断エラー
    Private Const OT_CARD_TIMEOUT As Integer = 8        ' カード待ちタイムアウト
    Private Const OT_COMMAND_ERROR As Integer = 9       ' カードID取得コマンドエラー
    Private Const OT_RELEASE_ERROR As Integer = 10      ' カードサービス解放エラー
    Private Const OT_UNKNOWN_CARD As Integer = 11       ' 不明なカード種別
    Private Const OT_AUTHENTICATE_ERROR As Integer = 12 ' キー認証エラー(Mifare)
    Private Const OT_DATA_READ_ERROR As Integer = 13    ' データ読取エラー
    Private Const OT_DATA_WRITE_ERROR As Integer = 14   ' データ書込エラー
    Private Const OT_DATA_ACCESS_ERROR As Integer = 15  ' データアクセスエラー
 
Private Sub button1_Click( ByVal sender As System.Object,  ByVal e As System.EventArgs) Handles button1.Click
        ' ブロックデータ
        Dim data As [Byte]() = New [Byte](15) {}
        ' ブロックデータ長
        Dim dataLength As New IntPtr()
        ' カードIDデータ
        Dim id As [Byte]() = New [Byte](9) {}
        ' カードIDデータ長
        Dim idLength As New IntPtr()
        ' カードタイプ
        Dim cardType As New IntPtr()

        Dim idString As [String] = ""
        Dim dataString As [String] = ""

        ' リーダー0番目指定
        Dim index As Integer = 0
        ' ブロック0番目指定
        Dim block As [Byte] = &H0
        ' 工場出荷時キー指定
        Dim key As [Byte]() = {&Hff, &Hff, &Hff, &Hff, &Hff, &Hff}
        ' キーA指定(0:キーA/1:キーB)
        Dim keyType As Integer = 0
        Dim result As Long = 0

        ' データ読込み
        result = OTReadBlockIndex(data(0), dataLength, id(0), idLength, cardType, index, block, key(0), keyType)

If result = OT_SUCCESS OrElse result = OT_REMOVE_TIMEOUT Then
 ' カードID文字列作成
For i As Integer = 0 To idLength.ToInt32() - 1
idString += id(i).ToString("X2")
Next
' ブロックデータ文字列作成
For i As Integer = 0 To dataLength.ToInt32() - 1
dataString += data(i).ToString("X2")
Next
Else
idString = "読取りに失敗しました。:"
idString += result.ToString()
End If
textBox1.Text = idString
textBox2.Text = dataString
End Sub
End Class
  


3. C#での開発例
 
 
【対象バージョン】
OrangeProMuzuAPI:v1.000
Microsoft Visual Basic.NET:2008以降推奨(Express Editionでも可)
※Windows x64(64ビット)では32ビットアプリケーションとして動作します。
【手順】
1. プロジェクトを新規作成する
[ファイル]→[新規作成]→[プロジェクト]の[Visual C#]→[Windowsフォームアプリケーション]でプロジェクト名(任意)を入力する
 2. ファイルを配置する
以下のファイルをプロジェクトの実行ファイル出力フォルダにコピーする(デフォルトでは bin\Releaseとbint\Debug)
OrangeProAPI.dll
3. DLLをリンクする
呼び出すクラス内で以下の宣言を記述する
例.
[DllImport("OrangeProAPI.dll", EntryPoint = "OTReadBlockIndex", CharSet = CharSet.Ansi)]
private extern static int OTReadBlockIndex(ref Byte data, ref IntPtr dataLength, ref Byte id, ref IntPtr idLength, ref IntPtr cardType, int index, int block, ref Byte key, int keyType);
   
    ※ほかにも呼び出し方法はあります

4. 関数を呼び出す
定義されている関数を呼び出す
  
【サンプルコード】
2.VBでの開発例を参考にしてください。
※製品にサンプルコードは付属しています。


 
4. 関数リファレンス
【対象バージョン】OrangeProMuzuAPI:v2.000

【関数一覧】
        GetReadersList              ・・・接続されているICカードリーダーの名称一覧と数量を取得する
        OTReadBlockIndex       ・・・ICカードのデータをブロック指定して読み出す(ICカードリーダー選択あり) 
        OTWriteBlockIndex       ・・・ICカードのデータをブロック指定して書き込む(ICカードリーダー選択あり) 
        OTGetCardInfoIndex      ・・・ICカードのIDと種別を取得する(ICカードリーダー選択あり) 
        OTGetReaderInfoIndex   ・・・リーダライタのシリアル番号を取得する(ICカードリーダー選択あり)
        OTReadRangeIndex       ・・・ICカードのデータをブロック範囲を指定して読み込む(ICカードリーダー選択あり)
        OTWriteRangeIndex       ・・・ICカードのデータをブロック範囲を指定して書き込む(ICカードリーダー選択あり)
        OTFeliCaReadBlockIndex・・・FeliCaカードのデータをサービスコード、ブロックコードを指定して読み込む(ICカードリーダー選択あり)  
        OTFeliCaThroughIndex・・・FeliCaカードへスルーコマンドを送信する(ICカードリーダー選択あり) 


カード種別
0:    不明なカード
1:    Mifare Classic 1K
2:    Mifare Classic 4K
3:    Mifare Ultralight
5: FeliCa Standard / FeliCa Lite / FeliCa Lite-S

指定可能ブロック番号範囲
 カード種別 指定可能ブロック
 Mifare Classic 1K 0~63
 Mifare Classic 4K 0~254
 Mifare Ultralight 0~15
 FeliCa Lite / Lite-S 0~14、0x80~0x88、0x90~0x92、0xA0
※指定時には10進数、16進数どちらで指定しているかご注意ください
カード種別に関する注意事項
※カード種別をみたい場合は、カードに接続した初回の時に種別を取得して下さい。カードが置かれたままの状態OT_REMOVE_TIMEOUTの場合は(カードIDは取得できますが)カード種別は取得できません。(Ver.3.0.1.0以降)

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以上カードが置かれたままの場合に返されます。
             

OTReadBlockIndex
 ・関数宣言
     LRESULT APIENTRY OTReadBlockIndex(BYTE* data, int* dataLength, BYTE* id, int* idLength, int* cardType, int index, BYTE block, BYTE* key, int keyType);
 ・引数
     data:              読込みデータ
     dataLength:    読込まれたデータサイズ(ICカードにより可変)
     id:                  ID ※API側からICの固有IDが返ります
     idLength:        ID長さ ※API側からICの固有IDの長さが返ります
     cardType:       カード種別(※カード種別参照)
     index:            リーダーのインデックスを指定します(0~9まで最大10台まで)
     block:            ブロック番号を指定します(0~カード規定ブロックまで)
     key:                キー情報を指定します(6byte)
     keyType:        キーを指定します(0:キーA/1:キーB)
 ・返り値
       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_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_WRITE_ERROR   = 15;   // データアクセスエラー    FeliCaカードのデータアクセスに失敗しました。(FeliCa Liteのみ対応)

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

OTWriteBlockIndex
 ・関数宣言
     LRESULT APIENTRY OTWriteBlockIndex(BYTE* data, int dataLength, BYTE* id, int* idLength, int* cardType, int index, BYTE block, BYTE* key, int keyType);
 ・引数
     data:              書込みデータ
     dataLength:    書込みデータサイズ(ICカードにより可変)
     id:                  ID ※API側からICの固有IDが返ります
     idLength:        ID長さ ※API側からICの固有IDの長さが返ります
     cardType:       カード種別(※カード種別参照)
     index:            リーダーのインデックスを指定します(0~9まで最大10台まで)
     block:            ブロック番号を指定します(0~カード規定ブロックまで)
     key:                キー情報を指定します(6byte)
     keyType:        キーを指定します(0:キーA/1:キーB)
 ・返り値
       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_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_WRITE_ERROR   = 15;   // データアクセスエラー    FeliCaカードのデータアクセスに失敗しました。(FeliCa Liteのみ対応)

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

OTGetCardInfoIndex
 ・関数宣言
     LRESULT APIENTRY OTGetCardInfoIndex(BYTE* id, int* length, int* cardType, int index);
 ・引数
     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_WRITE_ERROR   = 15;   // データアクセスエラー    FeliCaカードのデータアクセスに失敗しました。(FeliCa Liteのみ対応)

             ※OT_FAILUREは定義以外のエラー発生時に返されます。
             ※OT_REMOVE_TIMEOUT100ms以上カードが置かれたままの場合に返されます。

OTGetReaderInfoIndex
 ・関数宣言
     LRESULT APIENTRY OTGetReaderInfoIndex(BYTE* readerId, int* readerIdLength, int index);
 ・引数
     readerId:                   リーダーシリアルID
     readerIdLength:      リーダーシリアルIDの長さ(14byte固定で返ります)
     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_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_WRITE_ERROR   = 15;   // データアクセスエラー    FeliCaカードのデータアクセスに失敗しました。(FeliCa Liteのみ対応)

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

OTReadRangeIndex
 ・関数宣言
     LRESULT APIENTRY OTReadRangeIndex(BYTE* data, int* dataLength, BYTE* id, int* idLength, int* cardType, int index, BYTE startBlock, BYTE endBlock, BYTE* key, int keyType);
 ・引数
     data:              読込みデータ
     dataLength:    読込まれたデータサイズ(ICカードにより可変)
     id:                  ID ※API側からICの固有IDが返ります
     idLength:        ID長さ ※API側からICの固有IDの長さが返ります
     cardType:       カード種別(※カード種別参照)
     index:             リーダーのインデックスを指定します(0~9まで最大10台まで)
     startBlock:      開始ブロック番号を指定します(0~カード規定ブロックまで)
     endBlock:       終了ブロック番号を指定します(0~カード規定ブロックまで)
     key:               キー情報を指定します(6byte)
     keyType:        キーを指定します(0:キーA/1:キーB)
 ・返り値
       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_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_WRITE_ERROR   = 15;   // データアクセスエラー    FeliCaカードのデータアクセスに失敗しました。(FeliCa Liteのみ対応)
            OT_RANGE_ERROR            = 50;   // ブロック範囲エラー    開始ブロックに終了ブロックより大きい値が指定されています。

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

OTWriteRangeIndex
 ・関数宣言
     LRESULT APIENTRY OTWriteRangeIndex(BYTE* data, int dataLength, BYTE* id, int* idLength, int* cardType, int index, BYTE startBlock, BYTE endBlock, BYTE* key, int keyType);
 ・引数
     data:              読込みデータ
     dataLength:    読込まれたデータサイズ(ICカードにより可変)
     id:                  ID ※API側からICの固有IDが返ります
     idLength:        ID長さ ※API側からICの固有IDの長さが返ります
     cardType:       カード種別(※カード種別参照)
     index:            リーダーのインデックスを指定します(0~9まで最大10台まで)
     block:            ブロック番号を指定します(0~カード規定ブロックまで)
     key:                キー情報を指定します(6byte)
     keyType:        キーを指定します(0:キーA/1:キーB)
 ・返り値
       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_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_WRITE_ERROR   = 15;   // データアクセスエラー    FeliCaカードのデータアクセスに失敗しました。(FeliCa Liteのみ対応)
            OT_RANGE_ERROR            = 50;   // ブロック範囲エラー    開始ブロックに終了ブロックより大きい値が指定されています。

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

OTFeliCaReadBlockIndex
 ・関数宣言
      LRESULT APIENTRY OTFeliCaReadBlockIndex(BYTE* data, int* dataLength, BYTE* id, int* idLength, int* cardType, int index, BYTE* serviceCode, BYTE* block);
 ・引数
     data:              読込みデータ
     dataLength:    読込まれたデータサイズ(ICカードにより可変)
     id:                  ID ※API側からICの固有IDが返ります
     idLength:        ID長さ ※API側からICの固有IDの長さが返ります
     cardType:       カード種別(※カード種別参照)
     index:             リーダーのインデックスを指定します(0~9まで最大10台まで)
     serviceCode:   FeliCaサービスコード(2バイト) ※リトルエンディアン
     block:             FeliCaブロック番号(2バイト)
 ・返り値
       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_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_WRITE_ERROR   = 15;   // データアクセスエラー    FeliCaカードのデータアクセスに失敗しました。(FeliCa Liteのみ対応)
            OT_RANGE_ERROR            = 50;   // ブロック範囲エラー    開始ブロックに終了ブロックより大きい値が指定されています。

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

OTFeliCaThroughIndex
 ・関数宣言
LRESULT APIENTRY OTFeliCaThroughIndex(const BYTE* command, int commandLength, BYTE* res, int* resLength, int index);
 ・引数
     command:      FeliCaコマンド
     commandLength:    FeliCaコマンドサイズ
     res:                  FeliCaレスポンス(コマンドによって可変)
     resLength:        FeliCaレスポンスサイズ(コマンドによって可変)
     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_CARD_TIMEOUT       = 8;    // カード待ちタイムアウト        カード接続待機時間1msを超えました。
       OT_COMMAND_ERROR      = 9;    // カードID取得コマンドエラー    ICカードへのコマンドでエラーが発生しました。
       OT_RELEASE_ERROR      = 10;   // カードサービス解放エラー     スマートカードサービスの開放に失敗しました。
       OT_UNKNOWN_CARD       = 11;   // 不明なカード種別           対象外のカードを検出しました。
    OT_FELICA_COMMAND_LENGTH_ERROR = 60 // FeliCaスルーコマンド長エラー    FeliCaコマンドが255バイトを超えています。
    OT_FELICA_COMMAND_ERROR  = 61 // FeliCaスルーコマンドエラー FeliCaコマンドでエラーが発生しました。


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

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

 
5. 利用フローチャート
OrangeProMuzuAPIの関数のステータスコード(返り値)に応じて処理を行ってください。
ステータスコードの内容は4.関数リファレンスに記載されています。

  

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


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

Copyright © 2009-2013 Orangetags Inc. All Rights Reserved.  
Comments