Interface and device initialization.

This commit is contained in:
Ondrej Mikle 2014-07-19 02:23:57 +02:00
parent 130190699c
commit 4e1642ca1e
3 changed files with 54 additions and 1 deletions

View file

@ -12,6 +12,30 @@ NFCDevice::NFCDevice()
{
pollNr = 20;
pollPeriod = 2;
_nfcContext = NULL;
nfc_init(&_nfcContext);
if (_nfcContext == NULL) {
throw NFCError("Unable to init libnfc (malloc)");
}
_nfcDevice = nfc_open(_nfcContext, NULL);
if (_nfcDevice == NULL) {
throw NFCError("Unable to open NFC device.");
}
if (nfc_initiator_init(_nfcDevice) < 0) {
nfc_close(_nfcDevice);
throw NFCError("NFC initiator error");
}
}
NFCDevice::~NFCDevice()
{
nfc_exit(_nfcContext);
}
std::string NFCDevice::scanUID()
@ -30,3 +54,7 @@ const nfc_modulation NFCDevice::_modulations[5] = {
const size_t _modulationsLen = 5;
NFCError::NFCError(const std::string& msg)
{
_msg = msg;
}

View file

@ -2,6 +2,7 @@
#include <string>
#include <inttypes.h>
#include <stdexcept>
#include <nfc/nfc.h>
#include <nfc/nfc-types.h>
@ -13,7 +14,7 @@ public:
NFCDevice();
~NFCDevice() {}
virtual ~NFCDevice();
std::string scanUID();
@ -24,6 +25,29 @@ public:
protected:
static const nfc_modulation _modulations[5];
static const size_t _modulationsLen = 5;
nfc_context *_nfcContext;
nfc_device *_nfcDevice;
};
class NFCError: public std::exception
{
public:
NFCError(const std::string& msg);
const char *what() const throw() {return _msg.c_str();}
~NFCError() throw() {}
protected:
std::string _msg;
};

View file

@ -6,6 +6,7 @@
%}
%include std_string.i
%include std_except.i
%include "brmdoor_nfc.h"