Class: Tamashii::Agent::Device::CardReader::Mfrc522Spi

Inherits:
Base
  • Object
show all
Defined in:
lib/tamashii/agent/device/card_reader/mfrc522_spi.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) ⇒ Mfrc522Spi

Returns a new instance of Mfrc522Spi.



10
11
12
13
# File 'lib/tamashii/agent/device/card_reader/mfrc522_spi.rb', line 10

def initialize(*args)
  super
  @reader = MFRC522.new(fetch_option(:reset_pin, default_reset_pin))
end

Instance Method Details

#default_reset_pinObject



15
16
17
# File 'lib/tamashii/agent/device/card_reader/mfrc522_spi.rb', line 15

def default_reset_pin
  24
end

#poll_uidObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/tamashii/agent/device/card_reader/mfrc522_spi.rb', line 19

def poll_uid
  # check antenna
  return nil unless @reader.picc_request(MFRC522::PICC_REQA)

  # read uid
  uid = nil
  begin
    uid, sak = @reader.picc_select
  rescue CommunicationError, UnexpectedDataError => e
    logger.error "Error when selecting card: #{e.message}"
    uid = :error
  rescue => e
    uid = :error
    logger.error "GemError when selecting card: #{e.message}"
  ensure
    @reader.picc_halt
  end
  uid
end

#shutdownObject



39
40
41
# File 'lib/tamashii/agent/device/card_reader/mfrc522_spi.rb', line 39

def shutdown
  @reader.shutdown
end