From 28db2471eb2f2c46697e49019772e73aba91bca8 Mon Sep 17 00:00:00 2001 From: Georg Date: Mon, 24 Oct 2016 12:54:42 +0200 Subject: [PATCH] better handling of application reset in emulation --- Firmware/Chameleon-Mini/AntennaLevel.c | 7 ++++++- Firmware/Chameleon-Mini/Application/MifareUltralight.c | 1 - Firmware/Chameleon-Mini/Codec/ISO14443-2A.c | 2 -- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Firmware/Chameleon-Mini/AntennaLevel.c b/Firmware/Chameleon-Mini/AntennaLevel.c index cdc6ea1..30baed6 100644 --- a/Firmware/Chameleon-Mini/AntennaLevel.c +++ b/Firmware/Chameleon-Mini/AntennaLevel.c @@ -1,5 +1,6 @@ #include "AntennaLevel.h" #include "LEDHook.h" +#include "Application/Application.h" #define FIELD_MIN_RSSI 500 @@ -8,7 +9,11 @@ void AntennaLevelTick(void) uint16_t rssi = AntennaLevelGet(); if (rssi < FIELD_MIN_RSSI) + { LEDHook(LED_FIELD_DETECTED, LED_OFF); - else + if (ActiveConfiguration.UidSize != 0) // this implies that we are emulating right now + ApplicationReset(); // reset the application just like a real card gets reset when there is no field + } else { LEDHook(LED_FIELD_DETECTED, LED_ON); + } } diff --git a/Firmware/Chameleon-Mini/Application/MifareUltralight.c b/Firmware/Chameleon-Mini/Application/MifareUltralight.c index 70d22d2..a7bb3d1 100644 --- a/Firmware/Chameleon-Mini/Application/MifareUltralight.c +++ b/Firmware/Chameleon-Mini/Application/MifareUltralight.c @@ -73,7 +73,6 @@ void MifareUltralightAppInit(void) void MifareUltralightAppReset(void) { State = STATE_IDLE; - FromHalt = false; } void MifareUltralightAppTask(void) diff --git a/Firmware/Chameleon-Mini/Codec/ISO14443-2A.c b/Firmware/Chameleon-Mini/Codec/ISO14443-2A.c index 4b3c928..22c19f1 100644 --- a/Firmware/Chameleon-Mini/Codec/ISO14443-2A.c +++ b/Firmware/Chameleon-Mini/Codec/ISO14443-2A.c @@ -433,8 +433,6 @@ void ISO14443ACodecTask(void) { /* We have to generate the parity bits ourself */ ParityBufferPtr = 0; } - } else { - ApplicationReset(); } if (AnswerBitCount != ISO14443A_APP_NO_RESPONSE) {