From 323f3b6053c9d99572e800a158408567cfdccf4d Mon Sep 17 00:00:00 2001 From: whowechina Date: Sat, 22 Jun 2024 09:37:00 +0800 Subject: [PATCH] Better timeout by ignoring some expected DTR line signal --- Production/Firmware/aic_pico.uf2 | Bin 995840 -> 996352 bytes firmware/include/aime.h | 3 +-- firmware/include/bana.h | 3 +-- firmware/src/lib/aime.c | 32 ++++++++++++++++++++++++------- firmware/src/lib/bana.c | 10 +++++----- firmware/src/main.c | 4 ++-- 6 files changed, 34 insertions(+), 18 deletions(-) diff --git a/Production/Firmware/aic_pico.uf2 b/Production/Firmware/aic_pico.uf2 index 355ac22023a6ffca8e2cc74922cca994302735a8..7fb9ba87bbe8c71b7e835a019f48df5ce33795f4 100644 GIT binary patch delta 82149 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 delta 80520 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 diff --git a/firmware/include/aime.h b/firmware/include/aime.h index c598db6..eb3007d 100644 --- a/firmware/include/aime.h +++ b/firmware/include/aime.h @@ -23,8 +23,7 @@ bool aime_feed(int c); /* if aime is currently active */ bool aime_is_active(); -/* force fast expire */ -void aime_fast_expire(); +void aime_dtr_off(); uint32_t aime_led_color(); diff --git a/firmware/include/bana.h b/firmware/include/bana.h index 989e5d3..82591e6 100644 --- a/firmware/include/bana.h +++ b/firmware/include/bana.h @@ -19,8 +19,7 @@ bool bana_feed(int c); /* if bana is currently active */ bool bana_is_active(); -/* force fast expire */ -void bana_fast_expire(); +void bana_dtr_off(); const char *bana_get_led_pattern(); diff --git a/firmware/src/lib/aime.c b/firmware/src/lib/aime.c index 1720036..b779902 100644 --- a/firmware/src/lib/aime.c +++ b/firmware/src/lib/aime.c @@ -20,8 +20,8 @@ static bool debug = false; #define DEBUG(...) if (nfc_runtime.debug) printf(__VA_ARGS__) -#define AIME_EXPIRE_SEC 7200 -#define AIME_FAST_EXPIRE_SEC 10 +#define AIME_EXPIRE_US (1200 * 1000000ULL) +#define AIME_FAST_EXPIRE_US (3 * 1000000ULL) enum { CMD_GET_FW_VERSION = 0x30, @@ -68,6 +68,8 @@ const char *fw_version[] = { "TN32MSEC003S F/W Ver1.2", "\x94" }; const char *hw_version[] = { "TN32MSEC003S H/W Ver3.0", "837-15396" }; const char *led_info[] = { "15084\xFF\x10\x00\x12", "000-00000\xFF\x11\x40" }; static int ver_mode = 1; +static bool expecting_dtr_off = false; +static uint64_t expected_dtr_off_time = 0; static struct { bool enabled; @@ -362,16 +364,24 @@ static void cmd_mifare_halt() static void cmd_felica() { send_simple_response(STATUS_INVALID_COMMAND); - return; + expecting_dtr_off = true; + expected_dtr_off_time = time_us_64() + 50000ULL; } static uint32_t led_color; static void cmd_led_rgb() { - led_color = request.payload[0] << 16 | request.payload[1] << 8 | request.payload[2]; + uint8_t r = request.payload[0]; + uint8_t g = request.payload[1]; + uint8_t b = request.payload[2]; + led_color = r << 16 | g << 8 | b; + build_response(0); send_response(); + + expecting_dtr_off = true; + expected_dtr_off_time = time_us_64() + 400000ULL; } static void handle_frame() @@ -502,7 +512,7 @@ bool aime_feed(int c) if (req_ctx.check_sum == c) { handle_frame(); req_ctx.active = false; - expire_time = time_us_64() + AIME_EXPIRE_SEC * 1000000ULL; + expire_time = time_us_64() + AIME_EXPIRE_US; } return true; } @@ -519,12 +529,20 @@ bool aime_is_active() return time_us_64() < expire_time; } -void aime_fast_expire() +void aime_dtr_off() { + if ((expecting_dtr_off) && + (abs(time_us_64() - expected_dtr_off_time) < 70000ULL)) { + expecting_dtr_off = false; + return; + } + if (!aime_is_active()) { return; } - expire_time = time_us_64() + AIME_FAST_EXPIRE_SEC * 1000000ULL; + + DEBUG("\nAIME: DTR_OFF delta: %lld", time_us_64() - expected_dtr_off_time); + expire_time = time_us_64() + AIME_FAST_EXPIRE_US; } uint32_t aime_led_color() diff --git a/firmware/src/lib/bana.c b/firmware/src/lib/bana.c index 44cab23..24cccf0 100644 --- a/firmware/src/lib/bana.c +++ b/firmware/src/lib/bana.c @@ -20,8 +20,8 @@ static bool debug = false; #define DEBUG(...) if (nfc_runtime.debug) printf(__VA_ARGS__) -#define BANA_EXPIRE_SEC 7200 -#define BANA_FAST_EXPIRE_SEC 10 +#define BANA_EXPIRE_US (1200 * 1000000ULL) +#define BANA_FAST_EXPIRE_US (3 * 1000000ULL) static void putc_trap(uint8_t byte) { @@ -446,7 +446,7 @@ bool bana_feed(int c) } else if (req_ctx.frame_len == request.hdr.len + 7) { handle_frame(); req_ctx.frame_len = 0; - expire_time = time_us_64() + BANA_EXPIRE_SEC * 1000000ULL; + expire_time = time_us_64() + BANA_EXPIRE_US; } return true; } @@ -456,12 +456,12 @@ bool bana_is_active() return time_us_64() < expire_time; } -void bana_fast_expire() +void bana_dtr_off() { if (!bana_is_active()) { return; } - expire_time = time_us_64() + BANA_FAST_EXPIRE_SEC * 1000000ULL; + expire_time = time_us_64() + BANA_FAST_EXPIRE_US; } static const struct { diff --git a/firmware/src/main.c b/firmware/src/main.c index 5979e58..1d17225 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -485,7 +485,7 @@ void tud_cdc_line_state_cb(uint8_t itf, bool dtr, bool rts) DEBUG("\nReader Line State: %d %d", dtr, rts); if (!dtr) { - aime_fast_expire(); - bana_fast_expire(); + aime_dtr_off(); + bana_dtr_off(); } }