Files
seader/protocol/picopass_poller.h
T
Eric Betts bbeb0a5765 format
2023-11-16 21:45:02 -08:00

60 lines
1.3 KiB
C

#pragma once
#include <nfc/nfc.h>
#include "picopass_protocol.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
PicopassPollerEventTypeRequestMode,
PicopassPollerEventTypeCardDetected,
PicopassPollerEventTypeCardLost,
PicopassPollerEventTypeSuccess,
PicopassPollerEventTypeFail,
} PicopassPollerEventType;
typedef enum {
PicopassPollerModeRead,
} PicopassPollerMode;
typedef struct {
PicopassPollerMode mode;
} PicopassPollerEventDataRequestMode;
typedef union {
PicopassPollerEventDataRequestMode req_mode;
} PicopassPollerEventData;
typedef struct {
PicopassPollerEventType type;
PicopassPollerEventData* data;
} PicopassPollerEvent;
typedef NfcCommand (*PicopassPollerCallback)(PicopassPollerEvent event, void* context);
typedef struct PicopassPoller PicopassPoller;
PicopassPoller* picopass_poller_alloc(Nfc* nfc);
void picopass_poller_free(PicopassPoller* instance);
void picopass_poller_start(
PicopassPoller* instance,
PicopassPollerCallback callback,
void* context);
void picopass_poller_stop(PicopassPoller* instance);
uint8_t* picopass_poller_get_csn(PicopassPoller* instance);
PicopassError picopass_poller_send_frame(
PicopassPoller* instance,
BitBuffer* tx_buffer,
BitBuffer* rx_buffer,
uint32_t fwt_fc);
#ifdef __cplusplus
}
#endif