frux-c %!s(int64=2) %!d(string=hai) anos
pai
achega
0feb37ed3d
Modificáronse 2 ficheiros con 32 adicións e 14 borrados
  1. 0 1
      uhf_device.c
  2. 32 13
      uhf_worker.c

+ 0 - 1
uhf_device.c

@@ -34,7 +34,6 @@ static bool uhf_device_save_file(
     furi_assert(dev);
 
     UHFTag* uhf_tag = dev->uhf_tag;
-    uhf_tag_reset(uhf_tag);
     bool saved = false;
     FlipperFormat* file = flipper_format_file_alloc(dev->storage);
     FuriString* temp_str;

+ 32 - 13
uhf_worker.c

@@ -99,8 +99,10 @@ static bool read_bank(UHFData* read_bank_cmd, UHFData* response_bank, UHFBank ba
 }
 
 UHFWorkerEvent read_single_card(UHFWorker* uhf_worker) {
-    FuriString* temp_str;
-    temp_str = furi_string_alloc();
+    // debug
+    // FuriString* temp_str;
+    // temp_str = furi_string_alloc();
+    // e-debug
     UHFResponseData* uhf_response_data = uhf_worker->response_data;
     uhf_response_data_reset(uhf_response_data);
     UHFData* raw_read_data = uhf_response_data_get_uhf_data(uhf_response_data, 0);
@@ -125,6 +127,8 @@ UHFWorkerEvent read_single_card(UHFWorker* uhf_worker) {
 
     // todo : rfu ?
     UHFTag* uhf_tag = uhf_worker->uhf_tag;
+    uhf_tag_reset(uhf_tag);
+
     // add to tag object
     UHFData* raw_bank_data = uhf_data_alloc();
     size_t epc_length = (size_t)get_epc_length_in_bits(raw_read_data->data[6]) / 8;
@@ -137,20 +141,24 @@ UHFWorkerEvent read_single_card(UHFWorker* uhf_worker) {
         (void*)&CMD_READ_LABEL_DATA_STORAGE.cmd[0],
         read_bank_cmd->length);
 
-    send_set_select_command(raw_read_data, EPC_BANK);
+    if(!send_set_select_command(raw_read_data, EPC_BANK)) return UHFWorkerEventFail;
 
     int retry = 3;
     do {
         if(read_bank(read_bank_cmd, raw_bank_data, EPC_BANK)) {
             uhf_tag_set_epc(uhf_tag, raw_bank_data->data + offset, epc_length + 2);
+            FURI_LOG_E("TAG", "epc read");
             break;
         }
 
     } while(retry--);
-    furi_string_reset(temp_str);
-    for(size_t i = 0; i < raw_bank_data->length; i++) {
-        furi_string_cat_printf(temp_str, "%02x ", raw_bank_data->data[i]);
-    }
+    // // debug
+    // furi_string_reset(temp_str);
+    // for(size_t i = 0; i < raw_bank_data->length; i++) {
+    //     furi_string_cat_printf(temp_str, "%02x ", raw_bank_data->data[i]);
+    // }
+    // FURI_LOG_E("TAG", "data = %s", furi_string_get_cstr(temp_str));
+    // // e-debug
     uhf_data_reset(raw_bank_data);
     retry = 3;
     do {
@@ -159,10 +167,13 @@ UHFWorkerEvent read_single_card(UHFWorker* uhf_worker) {
             break;
         }
     } while(retry--);
-    furi_string_reset(temp_str);
-    for(size_t i = 0; i < raw_bank_data->length; i++) {
-        furi_string_cat_printf(temp_str, "%02x ", raw_bank_data->data[i]);
-    }
+    // // debug
+    // furi_string_reset(temp_str);
+    // for(size_t i = 0; i < raw_bank_data->length; i++) {
+    //     furi_string_cat_printf(temp_str, "%02x ", raw_bank_data->data[i]);
+    // }
+    // FURI_LOG_E("TAG", "data = %s", furi_string_get_cstr(temp_str));
+    // // e-debug
     uhf_data_reset(raw_bank_data);
     retry = 3;
     if(raw_read_data->data[6] & 0x04) {
@@ -173,11 +184,19 @@ UHFWorkerEvent read_single_card(UHFWorker* uhf_worker) {
             }
         } while(retry--);
     }
+    // // debug
+    // furi_string_reset(temp_str);
+    // for(size_t i = 0; i < raw_bank_data->length; i++) {
+    //     furi_string_cat_printf(temp_str, "%02x ", raw_bank_data->data[i]);
+    // }
+    // FURI_LOG_E("TAG", "data = %s", furi_string_get_cstr(temp_str));
+    // // e-debug
     uhf_data_reset(raw_bank_data);
-
     uhf_data_free(raw_bank_data);
     uhf_data_free(read_bank_cmd);
-    furi_string_free(temp_str);
+    // debug
+    // furi_string_free(temp_str);
+    // e-debug
 
     return UHFWorkerEventSuccess;
 }