std::vector<unsigned char> RFIDeasReaderUnit::getTagId() { std::vector<unsigned char> tagid; #ifdef _WINDOWS unsigned char idbuf[32]; memset(idbuf, 0x00, sizeof(idbuf)); d_lastTagIdBitsLength = fnGetActiveID(idbuf, sizeof(idbuf)); if (d_lastTagIdBitsLength > 16) { int bytes = (d_lastTagIdBitsLength + 7) / 8; tagid.insert(tagid.end(), idbuf, idbuf + bytes); // Swap LSByte => MSByte std::reverse(tagid.begin(), tagid.end()); } else { long err = fnGetLastLibErr(); if (err > 0) { LOG(LogLevel::WARNINGS) << "An error occured when getting the active ID (" << err << ")"; LOG(LogLevel::INFOS) << "Disconnecting from the reader..."; disconnectFromReader(); LOG(LogLevel::INFOS) << "Reconnecting to the reader..."; connectToReader(); } } #endif return tagid; }
void ReaderUnit::unSerialize(boost::property_tree::ptree& node) { disconnectFromReader(); d_readerUnitConfig->unSerialize(node.get_child(d_readerUnitConfig->getDefaultXmlNodeName())); std::string transportType = node.get_child("TransportType").get_value<std::string>(); std::shared_ptr<DataTransport> dataTransport = LibraryManager::getInstance()->getDataTransport(transportType); // Cannot create data transport instance from xml, use default one if (!dataTransport) { dataTransport = getDataTransport(); } if (dataTransport && transportType == dataTransport->getTransportType()) { dataTransport->unSerialize(node.get_child(dataTransport->getDefaultXmlNodeName())); setDataTransport(dataTransport); } }
DeisterReaderUnit::~DeisterReaderUnit() { disconnectFromReader(); }
IdOnDemandReaderUnit::~IdOnDemandReaderUnit() { disconnectFromReader(); }
NFCReaderUnit::~NFCReaderUnit() { disconnectFromReader(); }
OK5553ReaderUnit::~OK5553ReaderUnit() { disconnectFromReader(); }
AxessTMC13ReaderUnit::~AxessTMC13ReaderUnit() { disconnectFromReader(); }
OSDPReaderUnit::~OSDPReaderUnit() { disconnectFromReader(); }
AxessTMCLegicReaderUnit::~AxessTMCLegicReaderUnit() { disconnectFromReader(); }