Pregunta

Estoy trabajando en un proyecto que involucra a un lector RFID. He escrito un archivo .rb simple que lee la etiqueta RFID y da salida a la UID. Lo que quiero hacer ahora es conseguir que los datos a mi Ruby on Rails aplicación (2.3.x). Realmente no tengo idea de cómo hacer esto. Otro problema es que necesito los datos en puntos específicos, ejemplo: i registrar un usuario y quiero que el asociado UID de la etiqueta RFID con este usuario. ¿Cómo puedo hacer eso? ¿Debo usar la máquina de eventos? o simples requieren el archivo .rb en mi solicitud?

.rb guión (script envía el UID. ¿Cómo puedo enviar a mi ROR (2.3.x) aplicación?

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

Gracias.

¿Fue útil?

Solución

Parece que tiene dos partes de la aplicación - una interfaz habilitado para la web a su servicio, y un extremo frontal del hardware que se asocia a un usuario con un dispositivo físico. Puedo estar equivocado, pero dudo que al implementar la aplicación que se esperaría que el usuario camine a su centro de datos para escanear en su etiqueta!

puedo ver una separación obvia - es necesario tener un lector RFID físicamente cerca del usuario para que puedan agitar la etiqueta RFID delante del lector y llevar a cabo algún tipo de acción, y luego una segunda parte en la que el usuario está en casa y no tiene acceso al lector de RFID.

I sugeriría mantener estas dos partes como aplicaciones separadas y que tiene cierta lógica que asocia varios dispositivos RFID a un usuario. En Rails / Active Record es posible que tenga un modelo de usuario y una asociación has_many a una etiqueta.

Se necesita crear dos aplicaciones - su aplicación Rails, y una aplicación de escritorio ligero. La aplicación de escritorio se ejecuta localmente en su máquina 'escaneo'. Para empezar que podría ser un demonio:. Vistazo a los "demonios", y joyas "daemonize" "demonio-kit"

En sus rieles aplicación que a continuación, hacer una ruta para la creación de la assocation entre un usuario y una etiqueta RFID. P.ej. POST a / usuarios /: id / etiquetas

La pequeña aplicación que has escrito anteriormente debe enviar un POST a esa dirección. Pero, ¿cómo la aplicación sé a qué nombre de usuario para asociar con la etiqueta? Sin saber exactamente lo que está haciendo no puedo aconsejar. Después de reconocer un RFID puede simplemente pedir el nombre de usuario (STDIN.gets) y escribirla en la línea de comandos, o en una aplicación más complicado generar algún tipo de símbolo que es único y se lee a través de un GET de la aplicación de escaneo .

Ej. Usted podría funcionar esto como un demonio para asociar una etiqueta RFID con un usuario:

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top