連続で、ID取得を行うにはどうすればいいですか

質問:OrangeEasyAPIを利用して、ボタンを押した時だけ読むのではなく、連続で読み続けるにはどうすればよいですか?

 

 

回答:

製品付属のサンプルプログラムソースでは、ボタンを押した時のみID読取りを行っています。

これを連続で行うには、タイマーなどのコンポーネントを利用して、定期的にAPIを呼び出してください。

※0.5秒~1.0秒(500ms~1000ms)間隔での呼び出しを推奨しております。(SCL010の場合)

※1.5秒(1500ms)程度の間隔での呼び出しを推奨しております。(R1-1Rの場合)

例.VB2008の場合

1.プロジェクトを開いて、デザイナ(画面を開発する画面)を開く

サンプルプログラムソースでは、Form1.vbを開いて下さい。

2.[ツールボックス]の中から「Timer」を選択して、画面の上にドラッグ&ドロップする

Timer1というコンポーネントが画面の下部に追加されます。

3.追加されたコンポーネント(例.Timer1)を選択して、プロパティの[Enable]をTrueにする

デフォルトでEnableはFalseになっていますので、Timerが動作しません。

[Interval]を変更することで、読取り間隔(ミリ秒)を変更することができます。

100ミリ秒以下に設定することはできません。

3.追加されたコンポーネント(例.Timer1)をダブルクリックして、Timerイベントを作成する

ダブルクリックするとForm1.vbに

Private Sub Timer1_Tick( ByVal sender As System.Object,  ByVal e As System.EventArgs) Handles Timer1.Tick

End Sub

が追加されます。

4.Timer1_Tick内でAPIを呼び出す

定期的に行いたい処理をここで記述してください。

Private Sub Timer1_Tick( ByVal sender As System.Object,  ByVal e As System.EventArgs) Handles Timer1.Tick

        Dim id(10) As Byte

        Dim length As Integer

        Dim result As String

        Dim value As Integer

        result = ""

        'ICを読取ります

        value = GetCardID(id(0), length)    

End Sub

いくつかのカード・タグが読み取りにくい場合があります

カード連続読取中に、突然少しの間リーダライタがカードを読み込まなくなる

連続でカードを読込ませたときにエラーがでてしまう

カードをかざした時に鳴るデフォルトの音を消したいのですが可能でしょうか?

複数リーダライタ接続した際に再起動してもINDEXがずれないように出来ますか?

ID取得アプリケーション:カードをかざしても「No Card」のエラーがでます。