flipperzero-firmware/firmware/targets/api-hal-include/api-hal-rfid.h
SG 6926cf8b7e
[FL-1449] Indala reading and writing (#616)
* 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
2021-08-02 01:11:18 +03:00

117 lines
2.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <stdint.h>
#include <stdbool.h>
#include <main.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief config rfid pins to reset state
*
*/
void api_hal_rfid_pins_reset();
/**
* @brief config rfid pins to emulate state
*
*/
void api_hal_rfid_pins_emulate();
/**
* @brief config rfid pins to read state
*
*/
void api_hal_rfid_pins_read();
/**
* @brief config rfid timer to read state
*
* @param freq timer frequency
* @param duty_cycle timer duty cycle, 0.0-1.0
*/
void api_hal_rfid_tim_read(float freq, float duty_cycle);
/**
* @brief start read timer
*
*/
void api_hal_rfid_tim_read_start();
/**
* @brief stop read timer
*
*/
void api_hal_rfid_tim_read_stop();
/**
* @brief config rfid timer to emulate state
*
* @param freq timer frequency
*/
void api_hal_rfid_tim_emulate(float freq);
/**
* @brief start emulation timer
*
*/
void api_hal_rfid_tim_emulate_start();
/**
* @brief stop emulation timer
*
*/
void api_hal_rfid_tim_emulate_stop();
/**
* @brief config rfid timers to reset state
*
*/
void api_hal_rfid_tim_reset();
/**
* @brief check that timer instance is emulation timer
*
* @param hw timer instance
*/
bool api_hal_rfid_is_tim_emulate(TIM_HandleTypeDef* hw);
/**
* @brief set emulation timer period
*
* @param period overall duration
*/
void api_hal_rfid_set_emulate_period(uint32_t period);
/**
* @brief set emulation timer pulse
*
* @param pulse duration of high level
*/
void api_hal_rfid_set_emulate_pulse(uint32_t pulse);
/**
* @brief set read timer period
*
* @param period overall duration
*/
void api_hal_rfid_set_read_period(uint32_t period);
/**
* @brief set read timer pulse
*
* @param pulse duration of high level
*/
void api_hal_rfid_set_read_pulse(uint32_t pulse);
/**
* Сhanges the configuration of the RFID timer "on a fly"
* @param freq new frequency
* @param duty_cycle new duty cycle
*/
void api_hal_rfid_change_read_config(float freq, float duty_cycle);
#ifdef __cplusplus
}
#endif