コンテンツにスキップ

UHF RFID 加速度センサ評価ツール

概要

加速度が搭載されているRFIDのセンサデータをR/Wコントローラー経由で取得して値をカンマ区切りで表示、保存をを行うコマンドラインツールです。

ダウンロード

fn_rfidtagread [Latest commit 93d629a]

対象タグ

タグ

動作環境

OS

  • MacOS

依存コマンド

  • jq version 1.6以上
  • bc
  • ping
  • echo

コマンドライン説明

コマンド名

fn_rfidtagread

説明

指定されたRFIDコントローラーに対してHTTPアクセスを行うことにより、タグ情報を取得します。
R/Wコントローラーは、周辺の該当のタグをすべて取得するため、本ツールでは対象になるタグを限定しています。(PC=3000のタグのみを対象)

ヘルプ

Usage: ./fn_rfidtagread [OPTION]...
        Accel RFID Reader Scaner (version: 0.0.1)
        -h                controller IP Address
        -i                interval(sec)
        -f                TAG list filet
        -t                TAG
        -o, --output      output filename
        -v, --verbose     verbose mode
        -?                display this help and exit
        +<format>         print out format TAG, X, Y, Z, RAWX, RAWY, RAWZ, RAW
        example:

          ./fn_rfidtagread -h 192.168.250.1 +%TAG%X%Y%Z%RAW -t <TAG> -i 3 -v

引数

パラメータ 説明
-h R/WコントローラーのIPアドレス -h 192.168.250.1
-i 取得間隔(秒) -i 3
-f 評価したいタグを列挙したファイルを指定 -f tagfile.txt
-t 評価したいタグを直接指定 -t E200680D0000000000000017
-o 出力先ファイル -o ./out.log
-v 詳細出力 -v
-? ヘルプ -
+\<format> フォーマットを列挙します +%TAG%X%Y%Z%RAW

引数補足説明

(-i)フラグで取得間隔を設定することにより連続的に取得が可能です。(-i)フラグを指定しない場合、一回のみの取得が可能です。
コントローラーに対してデータ取得は発見したすべてのタグ情報が返ってくる為(-t)フラグで評価したいタグを指定することができます。このフラグは複数指定が行えます。
また(-f)フラグでファイルに一行一タグを列挙することも可能です。
結果は、標準出力に出力されますが、(-o)フラグでファイルを指定することにより結果をファイルに出力することが可能です。また出力フォーマットも指定できます。

出力フォーマット

引数の+で指定できるフォーマット

変数 説明 出力例
%TAG RFIDタグのEPC E200680D0000000000000017
%X X軸の値 -0.035
%Y Y軸の値 0.001
%Z Z軸の値 -1.060
%RAWX 加工前X軸の値 FFDC
%RAWY 加工前Y軸の値 0001
%RAYZ 加工前Z軸の値 FBC3
%RAW 加工前全データ 1101FFD67FD8FC370000000000000000

使用例

R/Wコントローラーが192.168.250.1でその周辺にタグ(E200680D0000000000000017)がある場合
出力はファイルとして、3秒間隔でデータを取得する。出力フォーマットはタグとXYZの変換後のデータだけを取得します。

./fn_rfidtagread -h 192.168.250.1 -i 3 +%TAG%X%Y%Z -t E200680D0000000000000017 -o 20220113.out

技術情報

R/Wへの接続フロー

  1. パラメータ(cmd=01)でClose(漏れ対策)
  2. パラメータ(cmd=00)でopen
  3. パラメータ(cmd=21)でstopInv
  4. パラメータ(cmd=20&method=00)でstartInv
  5. パラメータ(cmd=22)でpolling。ここで発見したタグ一覧と件数が分かります
  6. 発見したタグから、-tや-fで指定したタグがあるか調査
  7. 1秒待機(タグのユーザエリアのデータを読み取るための仕様)
  8. ユーザデータを読み取ります
  9. ユーザデータのCSDBA[7:0]より加速度の該当エリアまでのオフセットを算出します。
  10. パラメータ(cmd=36&t_epc=<タグ>&t_pc=3000&password=00000000&offset=<上記のオフセット値>)で読み取ります
  11. 読み取られたSDBよりエラー情報を取得します。1:2が11であること。3:4が01であること。
  12. パリティチェックを行います。
    1. 値を二進に変換
    2. 先頭の1バイトをパリティ値として取得
    3. 2バイト目以降の1以外の件数を取得
    4. 件数の2の剰余とパリティ値が同じならエラー
  13. X,Y,Zの加速度の取得
  14. 出力フォーマットの作成
  15. インターバルがあれば待機して再度取得を開始する
Back to top