Module: LibNFC
- Extended by:
- FFI::Library
- Defined in:
- lib/ruby-nfc/libnfc.rb
Defined Under Namespace
Classes: DepInfo, Felica, ISO14443a, ISO14443b, ISO14443b2ct, ISO14443b2sr, ISO14443bi, Jewel, Modulation, Target, TargetInfo
Constant Summary
collapse
- PROPERTIES =
please refer to nfc-types.h for description
[ :NP_TIMEOUT_COMMAND,
:NP_TIMEOUT_ATR,
:NP_TIMEOUT_COM,
:NP_HANDLE_CRC,
:NP_HANDLE_PARITY,
:NP_ACTIVATE_FIELD,
:NP_ACTIVATE_CRYPTO1,
:NP_INFINITE_SELECT,
:NP_ACCEPT_INVALID_FRAMES,
:NP_ACCEPT_MULTIPLE_FRAMES,
:NP_AUTO_ISO14443_4,
:NP_EASY_FRAMING,
:NP_FORCE_ISO14443_A,
:NP_FORCE_ISO14443_B,
:NP_FORCE_SPEED_106
]
- DEP_MODE =
[
:NDM_UNDEFINED,
:NDM_PASSIVE,
:NDM_ACTIVE
]
- BAUD_RATE =
[
:NBR_UNDEFINED,
:NBR_106,
:NBR_212,
:NBR_424,
:NBR_847
]
- MODULATION_TYPE =
[
:NMT_ISO14443A, 1,
:NMT_JEWEL,
:NMT_ISO14443B,
:NMT_ISO14443BI, :NMT_ISO14443B2SR, :NMT_ISO14443B2CT, :NMT_FELICA,
:NMT_DEP
]
- DepEnum =
enum(DEP_MODE)
- ModulationType =
enum(MODULATION_TYPE)
- BaudRate =
enum(BAUD_RATE)
Class Method Summary
collapse
Class Method Details
.crc(data) ⇒ Object
272
273
274
275
276
277
278
279
280
281
|
# File 'lib/ruby-nfc/libnfc.rb', line 272
def self.crc(data)
data_ptr = FFI::MemoryPointer.new(:uint8, data.length)
data_ptr.put_bytes(0, data)
crc_ptr = FFI::MemoryPointer.new(:uint8, 2)
crc_ptr.put_bytes(0, "\x0\x0")
iso14443a_crc(data_ptr, data.length, crc_ptr)
crc_ptr.get_bytes(0, 2).to_s
end
|
.crc_hex(data) ⇒ Object
283
284
285
|
# File 'lib/ruby-nfc/libnfc.rb', line 283
def self.crc_hex(data)
crc(data).unpack('H*').pop
end
|
.debug_target(target) ⇒ Object
287
288
289
290
291
|
# File 'lib/ruby-nfc/libnfc.rb', line 287
def self.debug_target(target)
str_pointer = FFI::MemoryPointer.new(:pointer)
str_nfc_target(str_pointer, target, true)
puts str_pointer.get_pointer(0).get_string(0)
end
|