Files
resy/project/rfid/rfid_reader.cpp
2017-06-15 18:22:49 +02:00

48 lines
835 B
C++

#include "rfid_reader.hpp"
#include <unistd.h>
#include <iostream>
#include <chrono>
#include <ctime>
rfid_reader::rfid_reader()
{
mfrc.PCD_Init();
thread = std::thread(&rfid_reader::loop, this);
}
uint32_t rfid_reader::last_id() const
{
return uid;
}
void rfid_reader::loop()
{
while(true)
{
if(!mfrc.PICC_IsNewCardPresent())
{
continue;
}
if(!mfrc.PICC_ReadCardSerial())
{
continue;
}
uid = int((unsigned char)(mfrc.uid.uidByte[0]) << 24 |
(unsigned char)(mfrc.uid.uidByte[1]) << 16 |
(unsigned char)(mfrc.uid.uidByte[2]) << 8 |
(unsigned char)(mfrc.uid.uidByte[3]));
#ifndef NDEBUG
printf("\n");
std::time_t result = std::time(nullptr);
std::cout << std::asctime(std::localtime(&result));
printf("%X\n", last_id());
#endif
std::this_thread::sleep_for(1s);
}
}