#pragma once #include "decoder-analyzer.h" #include "decoder-emmarine.h" #include "decoder-hid26.h" #include "decoder-indala.h" #include "key-info.h" class RfidReader { public: enum class Type : uint8_t { Normal, Indala, }; RfidReader(); void start(Type type); void stop(); bool read(LfrfidKeyType* type, uint8_t* data, uint8_t data_size); private: friend struct RfidReaderAccessor; //DecoderAnalyzer decoder_analyzer; DecoderEMMarine decoder_em; DecoderHID26 decoder_hid26; DecoderIndala decoder_indala; uint32_t last_dwt_value; void start_comparator(void); void start_timer(void); void start_timer_indala(void); void start_gpio(void); void stop_comparator(void); void stop_timer(void); void stop_gpio(void); void decode(bool polarity); Type type = Type::Normal; };