Calling AppProcess as suggested by @cacke-r

This commit is contained in:
Federico Cerutti
2022-02-01 00:03:15 +01:00
parent 3b53376b56
commit d3299fee43
6 changed files with 23 additions and 21 deletions
@@ -67,7 +67,7 @@ uint16_t Sniff14443AAppProcess(uint8_t *Buffer, uint16_t BitCount) {
case STATE_REQA:
LED_PORT.OUTCLR = LED_RED;
// If received Reader REQA or WUPA
if (TrafficSource == TRAFFIC_READER &&
if (SniffTrafficSource == TRAFFIC_READER &&
(Buffer[0] == 0x26 || Buffer[0] == 0x52)) {
SniffState = STATE_ATQA;
} else {
@@ -76,7 +76,7 @@ uint16_t Sniff14443AAppProcess(uint8_t *Buffer, uint16_t BitCount) {
break;
case STATE_ATQA:
// ATQA: P RRRR XXXX P XXRX XXXX
if (TrafficSource == TRAFFIC_CARD &&
if (SniffTrafficSource == TRAFFIC_CARD &&
BitCount == 2 * 9 &&
(Buffer[0] & 0x20) == 0x00 && // Bit6 RFU shall be 0
(Buffer[1] & 0xE0) == 0x00 && // bit13-16 RFU shall be 0
@@ -87,7 +87,7 @@ uint16_t Sniff14443AAppProcess(uint8_t *Buffer, uint16_t BitCount) {
} else {
// If not ATQA, but REQA, then stay on this state,
// Reset to REQA, save the counter and reset the counter
if (TrafficSource == TRAFFIC_READER &&
if (SniffTrafficSource == TRAFFIC_READER &&
(Buffer[0] == 0x26 || Buffer[0] == 0x52)) {
} else {
// If not ATQA and not REQA then reset to REQA
@@ -97,7 +97,7 @@ uint16_t Sniff14443AAppProcess(uint8_t *Buffer, uint16_t BitCount) {
break;
case STATE_ANTICOLLI:
// SEL: 93/95/97
if (TrafficSource == TRAFFIC_READER &&
if (SniffTrafficSource == TRAFFIC_READER &&
BitCount == 2 * 8 &&
(Buffer[0] & 0xf0) == 0x90 &&
(Buffer[0] & 0x09) == 0x01) {
@@ -108,7 +108,7 @@ uint16_t Sniff14443AAppProcess(uint8_t *Buffer, uint16_t BitCount) {
}
break;
case STATE_UID:
if (TrafficSource == TRAFFIC_CARD &&
if (SniffTrafficSource == TRAFFIC_CARD &&
BitCount == 5 * 9 &&
checkParityBits(Buffer, BitCount)) {
SniffState = STATE_SELECT;
@@ -119,7 +119,7 @@ uint16_t Sniff14443AAppProcess(uint8_t *Buffer, uint16_t BitCount) {
case STATE_SELECT:
// SELECT: 9 bytes, SEL = 93/95/97, NVB=70
if (TrafficSource == TRAFFIC_READER &&
if (SniffTrafficSource == TRAFFIC_READER &&
BitCount == 9 * 8 &&
(Buffer[0] & 0xf0) == 0x90 &&
(Buffer[0] & 0x09) == 0x01 &&
@@ -132,7 +132,7 @@ uint16_t Sniff14443AAppProcess(uint8_t *Buffer, uint16_t BitCount) {
break;
case STATE_SAK:
// SAK: 1Byte SAK + CRC
if (TrafficSource == TRAFFIC_CARD &&
if (SniffTrafficSource == TRAFFIC_CARD &&
BitCount == 3 * 9 &&
checkParityBits(Buffer, BitCount)) {
if ((Buffer[0] & 0x04) == 0x00) {
+2
View File
@@ -26,6 +26,8 @@ static volatile struct {
uint8_t CodecBuffer[CODEC_BUFFER_SIZE];
uint8_t CodecBuffer2[CODEC_BUFFER_SIZE];
enum RCTraffic SniffTrafficSource;
void (* volatile isr_func_TCD0_CCC_vect)(void) = NULL;
void (* volatile isr_func_CODEC_DEMOD_IN_INT0_VECT)(void) = NULL;
void (* volatile isr_func_ACA_AC0_vect)(void);
+2
View File
@@ -119,6 +119,8 @@ typedef enum {
extern uint8_t CodecBuffer[CODEC_BUFFER_SIZE];
extern uint8_t CodecBuffer2[CODEC_BUFFER_SIZE];
extern enum RCTraffic {TRAFFIC_READER, TRAFFIC_CARD} SniffTrafficSource;
/* Shared ISR pointers and handlers */
extern void (* volatile isr_func_TCD0_CCC_vect)(void);
void isr_Reader14443_2A_TCD0_CCC_vect(void);
@@ -56,8 +56,6 @@ static volatile uint16_t ReaderBitCount;
static volatile uint16_t CardBitCount;
static volatile uint16_t rawBitCount;
enum RCTraffic TrafficSource;
INLINE void CardSniffInit(void);
INLINE void CardSniffDeinit(void);
@@ -510,7 +508,7 @@ void Sniff14443ACodecTask(void) {
// Let the Application layer know where this data comes from
LEDHook(LED_CODEC_RX, LED_PULSE);
TrafficSource = TRAFFIC_READER;
SniffTrafficSource = TRAFFIC_READER;
ApplicationProcess(CodecBuffer, ReaderBitCount);
}
@@ -523,7 +521,7 @@ void Sniff14443ACodecTask(void) {
LEDHook(LED_CODEC_RX, LED_PULSE);
// Let the Application layer know where this data comes from
TrafficSource = TRAFFIC_CARD;
SniffTrafficSource = TRAFFIC_CARD;
ApplicationProcess(CodecBuffer2, CardBitCount);
}
@@ -9,7 +9,6 @@
#include "Codec.h"
#include "Terminal/CommandLine.h"
extern enum RCTraffic {TRAFFIC_READER, TRAFFIC_CARD} TrafficSource;
/* Codec Interface */
void Sniff14443ACodecInit(void);
void Sniff14443ACodecDeInit(void);
+10 -9
View File
@@ -50,7 +50,6 @@ static volatile uint8_t ShiftRegister;
static volatile uint8_t ByteCount;
static volatile uint8_t ReaderByteCount;
static volatile uint8_t CardByteCount;
static volatile uint16_t DemodByteCount;
static volatile uint16_t SampleDataCount;
/////////////////////////////////////////////////
@@ -741,11 +740,12 @@ void SniffISO15693CodecTask(void) {
if (Flags.ReaderDemodFinished) {
Flags.ReaderDemodFinished = 0;
DemodByteCount = ReaderByteCount;
if (DemodByteCount > 0) {
LogEntry(LOG_INFO_CODEC_SNI_READER_DATA, CodecBuffer, DemodByteCount);
if (ReaderByteCount > 0) {
LogEntry(LOG_INFO_CODEC_SNI_READER_DATA, CodecBuffer, ReaderByteCount);
LEDHook(LED_CODEC_RX, LED_PULSE);
SniffTrafficSource = TRAFFIC_READER;
ApplicationProcess(CodecBuffer, ReaderByteCount);
}
}
@@ -753,12 +753,13 @@ void SniffISO15693CodecTask(void) {
if(Flags.CardDemodFinished) {
Flags.CardDemodFinished = 0;
DemodByteCount = CardByteCount;
if (DemodByteCount > 0) {
LogEntry(LOG_INFO_CODEC_SNI_CARD_DATA, CodecBuffer2, DemodByteCount);
if (CardByteCount > 0) {
LogEntry(LOG_INFO_CODEC_SNI_CARD_DATA, CodecBuffer2, CardByteCount);
LEDHook(LED_CODEC_RX, LED_PULSE);
SniffTrafficSource = TRAFFIC_CARD;
ApplicationProcess(CodecBuffer2, CardByteCount);
/* Note: the application might want to know if the frame is broken, need to extern bBrokenFrame */
}
ReaderSniffInit();