mirror of
https://github.com/brmlab/brmdoor_libnfc.git
synced 2025-06-08 08:34:00 +02:00
Interface and device initialization.
This commit is contained in:
parent
130190699c
commit
4e1642ca1e
3 changed files with 54 additions and 1 deletions
|
@ -12,6 +12,30 @@ NFCDevice::NFCDevice()
|
||||||
{
|
{
|
||||||
pollNr = 20;
|
pollNr = 20;
|
||||||
pollPeriod = 2;
|
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()
|
std::string NFCDevice::scanUID()
|
||||||
|
@ -30,3 +54,7 @@ const nfc_modulation NFCDevice::_modulations[5] = {
|
||||||
const size_t _modulationsLen = 5;
|
const size_t _modulationsLen = 5;
|
||||||
|
|
||||||
|
|
||||||
|
NFCError::NFCError(const std::string& msg)
|
||||||
|
{
|
||||||
|
_msg = msg;
|
||||||
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
#include <stdexcept>
|
||||||
|
|
||||||
#include <nfc/nfc.h>
|
#include <nfc/nfc.h>
|
||||||
#include <nfc/nfc-types.h>
|
#include <nfc/nfc-types.h>
|
||||||
|
@ -13,7 +14,7 @@ public:
|
||||||
|
|
||||||
NFCDevice();
|
NFCDevice();
|
||||||
|
|
||||||
~NFCDevice() {}
|
virtual ~NFCDevice();
|
||||||
|
|
||||||
std::string scanUID();
|
std::string scanUID();
|
||||||
|
|
||||||
|
@ -24,6 +25,29 @@ public:
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
static const nfc_modulation _modulations[5];
|
static const nfc_modulation _modulations[5];
|
||||||
|
|
||||||
static const size_t _modulationsLen = 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;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%include std_string.i
|
%include std_string.i
|
||||||
|
%include std_except.i
|
||||||
|
|
||||||
%include "brmdoor_nfc.h"
|
%include "brmdoor_nfc.h"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue