module NetworkedRFID::ReaderControlMethods
Public Class Methods
included(klass)
click to toggle source
# File lib/networked_rfid/rfid_controller_service.rb, line 9 def included(klass) methods = { beep: { once: { short: [ 0x02, 0xa0, 0x00, 0x26, 0x07, 0x00, 0x04, 0x01, 0x00, 0x00, 0x00, 0x01, 0x85, 0x03 ], long: [ 0x02, 0xe0, 0x00, 0x26, 0x07, 0x00, 0x04, 0x05, 0x00, 0x00, 0x00, 0x01, 0xc1, 0x03 ] }, twice: [ 0x02, 0xe0, 0x00, 0x26, 0x07, 0x00, 0x04, 0x01, 0x00, 0x01, 0x01, 0x01, 0xc5, 0x03 ] }, lights: { off: [ 0x02, 0xb0, 0x00, 0x24, 0x02, 0x00, 0x00, 0x96, 0x03 ], red_on: [ 0x02, 0xa0, 0x00, 0x24, 0x02, 0x00, 0x01, 0x87, 0x03 ], green_on: [ 0x02, 0xb0, 0x00, 0x24, 0x02, 0x00, 0x02, 0x94, 0x03 ], both_on: [ 0x02, 0xb0, 0x00, 0x24, 0x02, 0x00, 0x03, 0x94, 0x03 ] } } load_methods methods, [ ] do |method, packet| klass.send :define_method, method do |ip| socket = UDPSocket.new socket.send packet.pack("C*"), 0, ip, 2000 socket.recv 16 socket.close end end end
Private Class Methods
load_methods(methods, path) { |path| ... }
click to toggle source
# File lib/networked_rfid/rfid_controller_service.rb, line 39 def load_methods(methods, path, &block) methods.each do |key, value| if value.kind_of?(Array) yield (path + [ key ]).join("_"), value else load_methods(value, path + [ key ], &block) end end end