Add Gitea OTA firmware update, dual-slot partition layout, and Gitea Actions release workflow
This commit is contained in:
115
components/rc522/internal/rc522_picc_internal.h
Normal file
115
components/rc522/internal/rc522_picc_internal.h
Normal file
@@ -0,0 +1,115 @@
|
||||
#pragma once
|
||||
|
||||
#include "rc522_pcd_internal.h"
|
||||
#include "rc522_picc.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Commands sent to the PICC
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
/**
|
||||
* The commands used by the PCD to manage communication with several PICCs (ISO 14443-3, Type A, section 6.4)
|
||||
* REQuest command, Type A. Invites PICCs in state IDLE to go to READY and prepare for
|
||||
* anticollision or selection. 7 bit frame.
|
||||
*/
|
||||
RC522_PICC_CMD_REQA = 0x26,
|
||||
|
||||
/**
|
||||
* Wake-UP command, Type A. Invites PICCs in state IDLE and HALT to go to READY(*) and prepare
|
||||
* for anticollision or selection. 7 bit frame.
|
||||
*/
|
||||
RC522_PICC_CMD_WUPA = 0x52,
|
||||
|
||||
/**
|
||||
* Cascade Tag. Not really a command, but used during anti collision.
|
||||
* TODO: move it from here in that case
|
||||
*/
|
||||
RC522_PICC_CMD_CT = 0x88,
|
||||
|
||||
/**
|
||||
* Anti collision/Select, Cascade Level 1
|
||||
*/
|
||||
RC522_PICC_CMD_SEL_CL1 = 0x93,
|
||||
|
||||
/**
|
||||
* Anti collision/Select, Cascade Level 2
|
||||
*/
|
||||
RC522_PICC_CMD_SEL_CL2 = 0x95,
|
||||
|
||||
/**
|
||||
* Anti collision/Select, Cascade Level 3
|
||||
*/
|
||||
RC522_PICC_CMD_SEL_CL3 = 0x97,
|
||||
|
||||
/**
|
||||
* HaLT command, Type A. Instructs an ACTIVE PICC to go to state HALT.
|
||||
*/
|
||||
RC522_PICC_CMD_HLTA = 0x50,
|
||||
|
||||
/**
|
||||
* Request command for Answer To Reset.
|
||||
*
|
||||
*/
|
||||
RC522_PICC_CMD_RATS = 0xE0,
|
||||
|
||||
/**
|
||||
* AUTHenticate command for Ultralight C & AES.
|
||||
*
|
||||
*/
|
||||
RC522_PICC_CMD_UL_AUTH = 0x1A,
|
||||
|
||||
/**
|
||||
* GET Version level 3 command for Ultralight EV1 & NANO, and NTAGs.
|
||||
*/
|
||||
RC522_PICC_CMD_GETV = 0x60,
|
||||
} rc522_picc_command_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
rc522_pcd_command_t pcd_command;
|
||||
rc522_bytes_t bytes;
|
||||
uint8_t expected_interrupts;
|
||||
uint8_t rx_align;
|
||||
uint8_t valid_bits;
|
||||
bool check_crc;
|
||||
} rc522_picc_transaction_t;
|
||||
|
||||
typedef struct rc522_picc_transaction_context rc522_picc_transaction_context_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
rc522_bytes_t bytes;
|
||||
uint8_t valid_bits;
|
||||
} rc522_picc_transaction_result_t;
|
||||
|
||||
esp_err_t rc522_picc_send(const rc522_handle_t rc522, const rc522_picc_transaction_t *transaction,
|
||||
rc522_picc_transaction_context_t *out_context);
|
||||
|
||||
esp_err_t rc522_picc_transceive(const rc522_handle_t rc522, const rc522_picc_transaction_t *transaction,
|
||||
rc522_picc_transaction_result_t *out_result);
|
||||
|
||||
esp_err_t rc522_picc_reqa(const rc522_handle_t rc522, rc522_picc_atqa_desc_t *out_atqa);
|
||||
|
||||
esp_err_t rc522_picc_wupa(const rc522_handle_t rc522, rc522_picc_atqa_desc_t *out_atqa);
|
||||
|
||||
esp_err_t rc522_picc_select(
|
||||
const rc522_handle_t rc522, rc522_picc_uid_t *out_uid, uint8_t *out_sak, bool skip_anticoll);
|
||||
|
||||
esp_err_t rc522_picc_halta(const rc522_handle_t rc522, rc522_picc_t *picc);
|
||||
|
||||
esp_err_t rc522_picc_heartbeat(
|
||||
const rc522_handle_t rc522, const rc522_picc_t *picc, rc522_picc_uid_t *out_uid, uint8_t *out_sak);
|
||||
|
||||
rc522_picc_type_t rc522_picc_get_type(const rc522_picc_t *picc);
|
||||
|
||||
esp_err_t rc522_picc_set_state(
|
||||
const rc522_handle_t rc522, rc522_picc_t *picc, rc522_picc_state_t new_state, bool fire_event);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user