質問

RFIDリーダーを含むプロジェクトに取り組んでいます。 RFIDタグを読み取り、UIDを出力するシンプルな.RBファイルを書きました。私が今やりたいのは、そのデータをRuby on Railsアプリケーション(2.3.x)に取得することです。私はこれを行う方法について本当に知りません。別の問題は、特定のポイントでデータが必要であることです。例:ユーザーを登録し、RFIDタグのUIDをこのユーザーと一緒にアソシエイトにしたいということです。それ、どうやったら出来るの?イベントマシンを使用する必要がありますか?または、私のアプリケーションに.RBファイルが必要ですか?

.RBスクリプト(このスクリプトはUIDを出力します。ROR(2.3.x)アプリに送信するにはどうすればよいですか?

require 'rubygems'
 require 'nfc'
 NFC.instance.find do |tag|
    p tag.uid
end

ありがとう。

役に立ちましたか?

解決

アプリケーションに2つの部分があるようです。サービスへのWeb対応フロントエンドと、ユーザーを物理デバイスに関連付けるハードウェアフロントエンドです。私は間違っているかもしれませんが、アプリを展開すると、ユーザーがデータセンターに歩いてタグをスキャンすることが期待されるとは思いません。

私は明らかな分離を見ることができます - あなたはユーザーの近くに物理的にRFIDリーダーを持っている必要があり、彼らは読者の前でRFIDタグを振って何らかのアクションを実行し、そしてユーザーが自宅にいて持っている2番目の部分を実行することができますRFIDリーダーへのアクセスはありません。

これら2つの部分を個別のアプリケーションとして保持し、いくつかのRFIDをユーザーに関連付けるロジックを持つことをお勧めします。 Rails / Active Recordでは、ユーザーモデルとタグにhas_many関連がある場合があります。

Railsアプリの2つのアプリケーションと、軽量のデスクトップアプリケーションを作成する必要があります。デスクトップアプリケーションは、「スキャン」マシンでローカルに実行されます。それから始めるためには、デーモンになる可能性があります。「デーモン」、「デーモン化」、「デーモンキット」の宝石を見てください。

Railsアプリでは、ユーザーとRFIDタグの間の関連性を作成するためのルートを作成します。例えば。 /users/:id/tagsを投稿します

上記の小さなアプリケーションは、そのアドレスに投稿を送信する必要があります。しかし、アプリケーションは、タグを関連付けるためのユーザー名をどのように把握していますか?あなたが何をしているのかを正確に知らずに、私はアドバイスすることはできません。 RFIDを認識した後、ユーザー名(STDIN.GETS)を要求してコマンドラインに入力するか、より複雑なアプリケーションで、一意であり、スキャンアプリケーションからGETを介して読み取られるある種のトークンを生成できます。 。

例えば。これをデーモンとして実行して、RFIDタグをユーザーに関連付けることができます。

require 'rubygems'
require 'nfc'
require 'httparty'

class TagAssociator
  include HTTParty
  base_uri 'example.com'
end

NFC.instance.find do |tag|
  puts "What is your username?"
  username = STDIN.gets
  TagAssociator.post('/users/#{username}/tags', :query => {:uid => tag.uid})
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top