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