|
@@ -229,14 +229,30 @@ size_t seader_ccid_process(SeaderWorker* seader_worker, uint8_t* cmd, size_t cmd
|
|
|
snprintf(display + (i * 2), sizeof(display), "%02x", message.payload[i]);
|
|
snprintf(display + (i * 2), sizeof(display), "%02x", message.payload[i]);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- FURI_LOG_D(
|
|
|
|
|
- TAG, "CCID [%d|%d] %ld: %s", message.bSlot, message.bSeq, message.dwLength, display);
|
|
|
|
|
-
|
|
|
|
|
if(cmd_len < 2 + 10 + message.dwLength + 1) {
|
|
if(cmd_len < 2 + 10 + message.dwLength + 1) {
|
|
|
return message.consumed;
|
|
return message.consumed;
|
|
|
}
|
|
}
|
|
|
message.consumed += 2 + 10 + message.dwLength + 1;
|
|
message.consumed += 2 + 10 + message.dwLength + 1;
|
|
|
|
|
|
|
|
|
|
+ if(message.dwLength == 0) {
|
|
|
|
|
+ FURI_LOG_D(
|
|
|
|
|
+ TAG,
|
|
|
|
|
+ "CCID [%d|%d] type: %02x, status: %02x, error: %02x",
|
|
|
|
|
+ message.bSlot,
|
|
|
|
|
+ message.bSeq,
|
|
|
|
|
+ message.bMessageType,
|
|
|
|
|
+ message.bStatus,
|
|
|
|
|
+ message.bError);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ FURI_LOG_D(
|
|
|
|
|
+ TAG,
|
|
|
|
|
+ "CCID [%d|%d] %ld: %s",
|
|
|
|
|
+ message.bSlot,
|
|
|
|
|
+ message.bSeq,
|
|
|
|
|
+ message.dwLength,
|
|
|
|
|
+ display);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
//0306 81 00000000 0000 0200 01 87
|
|
//0306 81 00000000 0000 0200 01 87
|
|
|
//0306 81 00000000 0000 0100 01 84
|
|
//0306 81 00000000 0000 0100 01 84
|
|
|
if(message.bMessageType == CCID_MESSAGE_TYPE_RDR_to_PC_SlotStatus) {
|
|
if(message.bMessageType == CCID_MESSAGE_TYPE_RDR_to_PC_SlotStatus) {
|