mirror of
https://github.com/bettse/seader.git
synced 2026-06-07 21:52:49 +00:00
Corrent where incoming bytes are sent
This commit is contained in:
@@ -195,11 +195,11 @@ bool seader_recv_t1(Seader* seader, CCID_Message* message) {
|
||||
FURI_LOG_W(TAG, "Invalid T=1 frame: too short");
|
||||
return false;
|
||||
}
|
||||
//uint8_t NAD = message->payload[0];
|
||||
uint8_t NAD = message->payload[0];
|
||||
uint8_t rPCB = message->payload[1];
|
||||
uint8_t LEN = message->payload[2];
|
||||
//uint8_t LRC = message->payload[3 + LEN];
|
||||
//FURI_LOG_D(TAG, "NAD: %02X, rPCB: %02X, LEN: %02X, LRC: %02X", NAD, rPCB, LEN, LRC);
|
||||
uint8_t LRC = message->payload[3 + LEN];
|
||||
FURI_LOG_D(TAG, "NAD: %02X, rPCB: %02X, LEN: %02X, LRC: %02X", NAD, rPCB, LEN, LRC);
|
||||
|
||||
if(rPCB == 0xE1) {
|
||||
// S(IFS response)
|
||||
@@ -230,6 +230,7 @@ bool seader_recv_t1(Seader* seader, CCID_Message* message) {
|
||||
}
|
||||
|
||||
if(seader_validate_lrc(message->payload, message->dwLength) == false) {
|
||||
FURI_LOG_W(TAG, "Invalid T=1 frame: LRC mismatch");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -238,12 +239,12 @@ bool seader_recv_t1(Seader* seader, CCID_Message* message) {
|
||||
message->dwLength = LEN;
|
||||
|
||||
if(message->dwLength == 0) {
|
||||
//FURI_LOG_D(TAG, "Received T=1 frame with no data");
|
||||
FURI_LOG_D(TAG, "Received T=1 frame with no data");
|
||||
return true;
|
||||
}
|
||||
return seader_worker_process_sam_message(seader, message->payload, message->dwLength);
|
||||
} else if(rPCB == (cPCB | MORE_BIT)) {
|
||||
//FURI_LOG_D(TAG, "Received T=1 frame with more bit set");
|
||||
FURI_LOG_D(TAG, "Received T=1 frame with more bit set");
|
||||
if(seader_t_1_rx_buffer == NULL) {
|
||||
seader_t_1_rx_buffer = bit_buffer_alloc(512);
|
||||
}
|
||||
@@ -261,14 +262,12 @@ bool seader_recv_t1(Seader* seader, CCID_Message* message) {
|
||||
uint8_t R_SEQ = (rPCB & R_SEQUENCE_NUMBER_MASK) >> 4;
|
||||
uint8_t I_SEQ = (dPCB ^ 0x40) >> 6;
|
||||
if(R_SEQ != I_SEQ) {
|
||||
/*
|
||||
FURI_LOG_D(
|
||||
TAG,
|
||||
"Received R-Block: Incorrect sequence. Expected: %02X, Received: %02X",
|
||||
I_SEQ,
|
||||
R_SEQ);
|
||||
|
||||
*/
|
||||
// When this happens, the flipper freezes if it is doing NFC and my attempts to do events to stop that have failed
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -120,7 +120,10 @@ size_t seader_uart_process_buffer_raw(Seader* seader, uint8_t* cmd, size_t cmd_l
|
||||
FURI_LOG_I(TAG, "seader_uart_process_buffer_raw %d bytes: %s", cmd_len, display);
|
||||
|
||||
if(hasSAM) {
|
||||
seader_worker_process_sam_message(seader, cmd, cmd_len);
|
||||
CCID_Message message;
|
||||
message.payload = cmd;
|
||||
message.dwLength = cmd_len;
|
||||
seader_recv_t1(seader, &message);
|
||||
return cmd_len;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user