35 lines
836 B
C
35 lines
836 B
C
#ifndef _ATR_DECODER_H_
|
|
#define _ATR_DECODER_H_
|
|
|
|
#include "armcm0.h"
|
|
#include "sc_reader.h"
|
|
|
|
#define ATR_MAX_T_LENGTH (31)
|
|
#define DEFAULT_FD (0x11)
|
|
|
|
#pragma pack(push, 1)
|
|
typedef struct {
|
|
uint8_t TS;
|
|
uint8_t T0;
|
|
uint8_t T[ATR_MAX_T_LENGTH];
|
|
//
|
|
uint8_t Check;
|
|
uint8_t ILength; //Interface characters length
|
|
uint8_t HLength; //Historical characters length
|
|
uint8_t TotalLength;
|
|
uint8_t Th_Start;
|
|
} SC_ATR;
|
|
#pragma pack(pop)
|
|
|
|
void atr_reset(void);
|
|
bool atr_decode(SC_ATR *atr);
|
|
uint8_t atr_decoder_get_extra_guard_time(void);
|
|
uint8_t atr_decoder_get_waiting_integer(void);
|
|
bool atr_decoder_get_clock_stop(bool *high);
|
|
bool atr_decoder_allow_pps(void);
|
|
bool atr_decoder_allow_switch_mode(void);
|
|
uint8_t atr_decoder_get_protocol(void);
|
|
uint8_t atr_decoder_get_FD(void);
|
|
|
|
#endif //_ATR_DECODER_H_
|