Program Listing for File tag_responder.hpp
↰ Return to documentation for file (libspookyaction/include/desfire/tag_responder.hpp
)
//
// Created by spak on 1/19/23.
//
#ifndef DESFIRE_ESP32_TAG_RESPONDER_HPP
#define DESFIRE_ESP32_TAG_RESPONDER_HPP
#include <desfire/tag.hpp>
#include <pn532/desfire_pcd.hpp>
#include <pn532/scanner.hpp>
namespace desfire {
struct tag_responder : virtual pn532::scanner_responder {
[[nodiscard]] inline std::vector<pn532::target_type> get_scan_target_types(pn532::scanner &) const override;
inline pn532::post_interaction interact(pn532::scanner &scanner, pn532::scanned_target const &target) override;
virtual pn532::post_interaction interact_with_tag(tag &tag) = 0;
};
}// namespace desfire
namespace desfire {
std::vector<pn532::target_type> tag_responder::get_scan_target_types(pn532::scanner &) const {
return {pn532::target_type::passive_106kbps_iso_iec_14443_4_typea};
}
pn532::post_interaction tag_responder::interact(pn532::scanner &scanner, pn532::scanned_target const &target) {
auto tag = std::make_shared<::desfire::tag>(scanner.ctrl().shared_from_this(), target.index);
return interact_with_tag(*tag);
}
}// namespace desfire
#endif//DESFIRE_ESP32_TAG_RESPONDER_HPP