* Rfid: indala 40134 validation and decoding * Rfid: show indala info * Rfid: decoder to output comparator signal on gpio pins * Rfid: working indala 40134 decoder * HAL: added function to change rfid timer parameters on the fly * RFID: Indala reading, card detection, card verification * Rfid: indala writing
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| //#include "decoder-analyzer.h"
 | |
| #include "decoder-gpio-out.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();
 | |
|     void start_forced(RfidReader::Type type);
 | |
|     void stop();
 | |
|     bool read(LfrfidKeyType* type, uint8_t* data, uint8_t data_size);
 | |
| 
 | |
|     bool detect();
 | |
|     bool any_read();
 | |
| 
 | |
| private:
 | |
|     friend struct RfidReaderAccessor;
 | |
| 
 | |
|     //DecoderAnalyzer decoder_analyzer;
 | |
|     //DecoderGpioOut decoder_gpio_out;
 | |
|     DecoderEMMarine decoder_em;
 | |
|     DecoderHID26 decoder_hid26;
 | |
|     DecoderIndala decoder_indala;
 | |
| 
 | |
|     uint32_t last_dwt_value;
 | |
| 
 | |
|     void start_comparator(void);
 | |
|     void stop_comparator(void);
 | |
| 
 | |
|     void decode(bool polarity);
 | |
| 
 | |
|     uint32_t detect_ticks;
 | |
| 
 | |
|     uint32_t switch_os_tick_last;
 | |
|     bool switch_timer_elapsed();
 | |
|     void switch_timer_reset();
 | |
|     void switch_mode();
 | |
| 
 | |
|     LfrfidKeyType last_readed_type;
 | |
|     uint8_t last_readed_data[LFRFID_KEY_SIZE];
 | |
|     uint8_t last_readed_count;
 | |
| 
 | |
|     Type type = Type::Normal;
 | |
| };
 |