[FL-1629] Better RFID writing (#632)
* RFID: ground the antenna when writing * RFID: forced switch to indala mode
This commit is contained in:
		
							parent
							
								
									c799fcf416
								
							
						
					
					
						commit
						b8b0417374
					
				@ -20,7 +20,10 @@ void RfidReader::decode(bool polarity) {
 | 
			
		||||
    uint32_t period = current_dwt_value - last_dwt_value;
 | 
			
		||||
    last_dwt_value = current_dwt_value;
 | 
			
		||||
 | 
			
		||||
    //decoder_gpio_out.process_front(polarity, period);
 | 
			
		||||
#ifdef RFID_GPIO_DEBUG
 | 
			
		||||
    decoder_gpio_out.process_front(polarity, period);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    switch(type) {
 | 
			
		||||
    case Type::Normal:
 | 
			
		||||
        decoder_em.process_front(polarity, period);
 | 
			
		||||
@ -86,20 +89,9 @@ void RfidReader::start() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void RfidReader::start_forced(RfidReader::Type _type) {
 | 
			
		||||
    type = _type;
 | 
			
		||||
    switch(type) {
 | 
			
		||||
    case Type::Normal:
 | 
			
		||||
    start();
 | 
			
		||||
        break;
 | 
			
		||||
    case Type::Indala:
 | 
			
		||||
        furi_hal_rfid_pins_read();
 | 
			
		||||
        furi_hal_rfid_tim_read(62500.0f, 0.25f);
 | 
			
		||||
        furi_hal_rfid_tim_read_start();
 | 
			
		||||
        start_comparator();
 | 
			
		||||
 | 
			
		||||
        switch_timer_reset();
 | 
			
		||||
        last_readed_count = 0;
 | 
			
		||||
        break;
 | 
			
		||||
    if(_type == Type::Indala) {
 | 
			
		||||
        switch_mode();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,6 +6,8 @@
 | 
			
		||||
#include "decoder-indala.h"
 | 
			
		||||
#include "key-info.h"
 | 
			
		||||
 | 
			
		||||
//#define RFID_GPIO_DEBUG 1
 | 
			
		||||
 | 
			
		||||
class RfidReader {
 | 
			
		||||
public:
 | 
			
		||||
    enum class Type : uint8_t {
 | 
			
		||||
@ -26,7 +28,9 @@ private:
 | 
			
		||||
    friend struct RfidReaderAccessor;
 | 
			
		||||
 | 
			
		||||
    //DecoderAnalyzer decoder_analyzer;
 | 
			
		||||
    //DecoderGpioOut decoder_gpio_out;
 | 
			
		||||
#ifdef RFID_GPIO_DEBUG
 | 
			
		||||
    DecoderGpioOut decoder_gpio_out;
 | 
			
		||||
#endif
 | 
			
		||||
    DecoderEMMarine decoder_em;
 | 
			
		||||
    DecoderHID26 decoder_hid26;
 | 
			
		||||
    DecoderIndala decoder_indala;
 | 
			
		||||
 | 
			
		||||
@ -37,6 +37,7 @@ void RfidWriter::start() {
 | 
			
		||||
    furi_hal_rfid_tim_read(125000, 0.5);
 | 
			
		||||
    furi_hal_rfid_pins_read();
 | 
			
		||||
    furi_hal_rfid_tim_read_start();
 | 
			
		||||
    hal_gpio_write(&gpio_rfid_pull, true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void RfidWriter::stop() {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user