Class: RfidInterfaceClient
- Inherits:
-
Object
- Object
- RfidInterfaceClient
- Defined in:
- lib/inteface_aplication/rfid_interface_client.rb
Overview
La clase RfidInterfaceClient representa una interfaz para un cliente Telnet genérico
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Referencia a un hash de parámetros de configuración.
-
#id_server ⇒ Object
readonly
Representa el identificado del servidor actualmente en uso.
-
#servers ⇒ Object
readonly
Referencia a cantidad de servidores instanciados.
Instance Method Summary collapse
-
#consult(sock, cmd) ⇒ Object
Ejecuta un comando y recibe una o más respuestas, imprimiéndola(s) en el socket.
-
#initialize(yml = 'rfid_config.yml') ⇒ RfidInterfaceClient
constructor
Crea una nueva interfaz para un cliente Telnet genérico, a partir de los parámetros de configuración obtenidos desde el archivo “rfid_config.yml”.
-
#set_server(sock, id) ⇒ Object
Permite cambiar el servidor al cual seran dirigidos los comandos y consultas.
-
#single_consult(sock, cmd) ⇒ Object
Ejecuta un comando y recibe una respuesta, imprimiéndola en el socket.
Constructor Details
#initialize(yml = 'rfid_config.yml') ⇒ RfidInterfaceClient
Crea una nueva interfaz para un cliente Telnet genérico, a partir de los parámetros de configuración obtenidos desde el archivo “rfid_config.yml”
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/inteface_aplication/rfid_interface_client.rb', line 20 def initialize(yml='rfid_config.yml') parse = YAML::parse(File.open(yml)) @config = parse.transform @id_server = "local_config" @servers = 0 @config.each do |key, value| if key.include?("server") @servers = @servers + 1 end end end |
Instance Attribute Details
#config ⇒ Object (readonly)
Referencia a un hash de parámetros de configuración
10 11 12 |
# File 'lib/inteface_aplication/rfid_interface_client.rb', line 10 def config @config end |
#id_server ⇒ Object (readonly)
Representa el identificado del servidor actualmente en uso
14 15 16 |
# File 'lib/inteface_aplication/rfid_interface_client.rb', line 14 def id_server @id_server end |
#servers ⇒ Object (readonly)
Referencia a cantidad de servidores instanciados
12 13 14 |
# File 'lib/inteface_aplication/rfid_interface_client.rb', line 12 def servers @servers end |
Instance Method Details
#consult(sock, cmd) ⇒ Object
Ejecuta un comando y recibe una o más respuestas, imprimiéndola(s) en el socket
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/inteface_aplication/rfid_interface_client.rb', line 35 def consult(sock,cmd) begin conection = Net::Telnet::new("Host" => @config[@id_server]["ip_address"].to_s,"Timeout" => 5,"Port" => @config[@id_server]["port"]) sock.print "MESSAGE: Server "+@config[@id_server]["ip_address"].to_s+":"+@config[@id_server]["port"].to_s+"\n" conection.cmd("#{cmd.chop}") do |response| sock.print response.to_s if response.to_s.include?("Stop Verbose") conection.puts("exit") end end rescue Exception => e sock.print "ERROR: Couldn't establish the conexion!\n" end end |
#set_server(sock, id) ⇒ Object
Permite cambiar el servidor al cual seran dirigidos los comandos y consultas
69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/inteface_aplication/rfid_interface_client.rb', line 69 def set_server(sock, id) change = false @config.each do |key, value| if value["id_server"].to_s.eql?(id) change = true @id_server = key sock.print "MESSAGE: Change to Server #{id} Complete!\n" break end end if !change sock.print "ERROR: No Server Found!\n" end end |
#single_consult(sock, cmd) ⇒ Object
Ejecuta un comando y recibe una respuesta, imprimiéndola en el socket
53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/inteface_aplication/rfid_interface_client.rb', line 53 def single_consult(sock,cmd) begin conection = Net::Telnet::new("Host" => @config[@id_server]["ip_address"].to_s,"Timeout" => 5,"Port" => @config[@id_server]["port"]) sock.print "MESSAGE: Server "+@config[@id_server]["ip_address"].to_s+":"+@config[@id_server]["port"].to_s+"\n" conection.puts("#{cmd.chop}") sock.print conection.gets #conection.close rescue sock.print "ERROR: Couldn't establish the conexion!\n" end end |