#pragma once #include #include #include #ifdef __cplusplus extern "C" { #endif /** Initialize RFID subsystem */ void furi_hal_rfid_init(); /** * @brief config rfid pins to reset state * */ void furi_hal_rfid_pins_reset(); /** * @brief config rfid pins to emulate state * */ void furi_hal_rfid_pins_emulate(); /** * @brief config rfid pins to read state * */ void furi_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 furi_hal_rfid_tim_read(float freq, float duty_cycle); /** * @brief start read timer * */ void furi_hal_rfid_tim_read_start(); /** * @brief stop read timer * */ void furi_hal_rfid_tim_read_stop(); /** * @brief config rfid timer to emulate state * * @param freq timer frequency */ void furi_hal_rfid_tim_emulate(float freq); /** * @brief start emulation timer * */ void furi_hal_rfid_tim_emulate_start(); /** * @brief stop emulation timer * */ void furi_hal_rfid_tim_emulate_stop(); /** * @brief config rfid timers to reset state * */ void furi_hal_rfid_tim_reset(); /** * @brief check that timer instance is emulation timer * * @param hw timer instance */ bool furi_hal_rfid_is_tim_emulate(TIM_HandleTypeDef* hw); /** * @brief set emulation timer period * * @param period overall duration */ void furi_hal_rfid_set_emulate_period(uint32_t period); /** * @brief set emulation timer pulse * * @param pulse duration of high level */ void furi_hal_rfid_set_emulate_pulse(uint32_t pulse); /** * @brief set read timer period * * @param period overall duration */ void furi_hal_rfid_set_read_period(uint32_t period); /** * @brief set read timer pulse * * @param pulse duration of high level */ void furi_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 furi_hal_rfid_change_read_config(float freq, float duty_cycle); #ifdef __cplusplus } #endif