0

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

ありがとう。

4

1 に答える 1

2

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

明らかな分離が見られます。RFID リーダーを物理的にユーザーの近くに配置して、ユーザーがリーダーの前で RFID タグを振って何らかのアクションを実行できるようにする必要があります。次に、ユーザーが自宅にいて、 RFID リーダーにアクセスできません。

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

Rails アプリと軽量デスクトップ アプリケーションの 2 つのアプリケーションを作成する必要があります。デスクトップ アプリケーションは、「スキャン」マシンでローカルに実行されます。まず、デーモンである可能性があります。「daemons」、「daemonize」、および「daemon-kit」gem を見てください。

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

上で作成した小さなアプリケーションは、そのアドレスに POST を送信する必要があります。しかし、アプリケーションはタグを関連付けるユーザー名をどのように認識するのでしょうか? あなたが何をしているのか正確に知らなければ、私はアドバイスできません。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
于 2010-12-28T18:23:28.460 に答える