Class: Tamashii::Agent::Device::CardReader::Pn532Uart

Inherits:
Base
  • Object
show all
Defined in:
lib/tamashii/agent/device/card_reader/pn532_uart.rb

Instance Method Summary collapse

Methods inherited from DeviceBase

#fetch_option, #fetch_option!, #unexport_pin

Methods included from Common::Loggable

#display_name, #logger, #progname

Constructor Details

#initialize(*args) ⇒ Pn532Uart

Returns a new instance of Pn532Uart.



9
10
11
12
13
14
15
# File 'lib/tamashii/agent/device/card_reader/pn532_uart.rb', line 9

def initialize(*args)
  super
  @ctx = NFC::Context.new
  @dev = @ctx.open "pn532_uart:#{fetch_option(:path, default_path)}"
  @card_type = @options[:card_type] || :felica
  logger.info "Card type enabled: #{@card_type}"
end

Instance Method Details

#default_pathObject



17
18
19
# File 'lib/tamashii/agent/device/card_reader/pn532_uart.rb', line 17

def default_path
  "/dev/ttyAMA0"
end

#poll_uidObject



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/tamashii/agent/device/card_reader/pn532_uart.rb', line 21

def poll_uid
  tag = @dev.poll(@card_type)
  if tag && !tag.is_a?(Integer)
    return tag.uid
  else
    return nil
  end
rescue => e
  logger.error "Error when reading card: #{e.message}"
  return :error
end

#shutdownObject



33
34
35
36
# File 'lib/tamashii/agent/device/card_reader/pn532_uart.rb', line 33

def shutdown
  @dev.close
  @dev = nil
end