Class: Smartware::Interface::CardReader

Inherits:
Interface
  • Object
show all
Defined in:
lib/smartware/interfaces/card_reader.rb

Defined Under Namespace

Classes: CardReaderError

Constant Summary collapse

COMMUNICATION_ERROR =
1
HARDWARE_ERROR =
2
CARD_JAM_ERROR =
3
CARD_ERROR =
4
MAG_READ_ERROR =
5
ICC_ERROR =
6

Instance Attribute Summary

Attributes inherited from Interface

#config

Instance Method Summary collapse

Methods inherited from Interface

#error, #model, #status, #version

Constructor Details

#initialize(config) ⇒ CardReader

Returns a new instance of CardReader.



21
22
23
24
25
26
# File 'lib/smartware/interfaces/card_reader.rb', line 21

def initialize(config)
  super

  @status[:model] = @device.model
  @status[:version] = @device.version
end

Instance Method Details

#captureObject



65
66
67
68
69
70
71
72
# File 'lib/smartware/interfaces/card_reader.rb', line 65

def capture
  @device.capture
  @status[:error] = nil
  true
rescue CardReaderError => e
  @status[:error] = e.code
  false
end

#card_inserted?Boolean

Returns:

  • (Boolean)


28
29
30
31
32
33
# File 'lib/smartware/interfaces/card_reader.rb', line 28

def card_inserted?
  @device.status == :card_inserted
rescue CardReaderError => e
  @status[:error] = e.code
  nil
end

#ejectObject



53
54
55
56
57
58
59
60
61
62
63
# File 'lib/smartware/interfaces/card_reader.rb', line 53

def eject
  @device.eject

  sleep 0.5 while @device.status == :card_at_gate

  @status[:error] = nil
  true
rescue CardReaderError => e
  @status[:error] = e.code
  false
end

#read_magstripObject



74
75
76
77
78
79
80
# File 'lib/smartware/interfaces/card_reader.rb', line 74

def read_magstrip
  @device.read_magstrip

rescue CardReaderError => e
  @status[:error] = e.code
  nil
end

#start_acceptingObject



35
36
37
38
39
40
41
42
# File 'lib/smartware/interfaces/card_reader.rb', line 35

def start_accepting
  @device.accepting = true
  @status[:error] = nil
  true
rescue CardReaderError => e
  @status[:error] = e.code
  false
end

#stop_acceptingObject



44
45
46
47
48
49
50
51
# File 'lib/smartware/interfaces/card_reader.rb', line 44

def stop_accepting
  @device.accepting = false
  @status[:error] = nil
  true
rescue CardReaderError => e
  @status[:error] = e.code
  false
end