Skip to content

File syn_rfid.h

File List > drivers > syn_rfid.h

Go to the documentation of this file

#ifndef SYN_RFID_H
#define SYN_RFID_H

#include "../common/syn_defs.h"
#include "../port/syn_port_gpio.h"

#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef enum {
    SYN_RFID_MFRC522 = 0, 
    SYN_RFID_PN532 = 1,   
    SYN_RFID_RDM6300 = 2  
} SYN_RFIDType;

typedef struct {
    SYN_RFIDType type;
    SYN_GPIO_Pin ss_pin;
    SYN_GPIO_Pin rst_pin;
    uint8_t uid[10];   
    uint8_t uid_len;   
    bool card_present; 
} SYN_RFID;

SYN_Status syn_rfid_init(SYN_RFID *rfid, SYN_GPIO_Pin ss_pin, SYN_GPIO_Pin rst_pin,
                         SYN_RFIDType type);

void syn_rfid_feed_card(SYN_RFID *rfid, const uint8_t *uid, uint8_t len);

void syn_rfid_clear_card(SYN_RFID *rfid);

bool syn_rfid_is_card_present(const SYN_RFID *rfid);

const uint8_t *syn_rfid_get_uid(const SYN_RFID *rfid, uint8_t *len);

#ifdef __cplusplus
}
#endif

#endif /* SYN_RFID_H */