Ver código fonte

Move read dg1 to function

Eric Betts 8 meses atrás
pai
commit
d5c388afcb
1 arquivos alterados com 33 adições e 29 exclusões
  1. 33 29
      passy_reader.c

+ 33 - 29
passy_reader.c

@@ -313,7 +313,6 @@ NfcCommand passy_reader_read_com(PassyReader* passy_reader) {
     ret = passy_reader_read_binary(passy_reader, 0x00, sizeof(header), header);
     ret = passy_reader_read_binary(passy_reader, 0x00, sizeof(header), header);
     if(ret != NfcCommandContinue) {
     if(ret != NfcCommandContinue) {
         view_dispatcher_send_custom_event(passy->view_dispatcher, PassyCustomEventReaderError);
         view_dispatcher_send_custom_event(passy->view_dispatcher, PassyCustomEventReaderError);
-        ret = NfcCommandStop;
         return ret;
         return ret;
     }
     }
     size_t body_size = 1 + asn1_length_length(header + 1) + asn1_length(header + 1);
     size_t body_size = 1 + asn1_length_length(header + 1) + asn1_length(header + 1);
@@ -336,6 +335,38 @@ NfcCommand passy_reader_read_com(PassyReader* passy_reader) {
     return ret;
     return ret;
 }
 }
 
 
+NfcCommand passy_reader_read_dg1(PassyReader* passy_reader) {
+    NfcCommand ret = NfcCommandContinue;
+    Passy* passy = passy_reader->passy;
+    bit_buffer_reset(passy->DG1);
+    uint8_t header[4];
+    ret = passy_reader_read_binary(passy_reader, 0x00, sizeof(header), header);
+    if(ret != NfcCommandContinue) {
+        view_dispatcher_send_custom_event(passy->view_dispatcher, PassyCustomEventReaderError);
+
+        return ret;
+    }
+    size_t body_size = 1 + asn1_length_length(header + 1) + asn1_length(header + 1);
+    uint8_t body_offset = sizeof(header);
+    bit_buffer_append_bytes(passy_reader->DG1, header, sizeof(header));
+    do {
+        view_dispatcher_send_custom_event(passy->view_dispatcher, PassyCustomEventReaderReading);
+        uint8_t chunk[PASSY_READER_DG1_CHUNK_SIZE];
+        uint8_t Le = MIN(sizeof(chunk), (size_t)(body_size - body_offset));
+
+        ret = passy_reader_read_binary(passy_reader, body_offset, Le, chunk);
+        if(ret != NfcCommandContinue) {
+            view_dispatcher_send_custom_event(passy->view_dispatcher, PassyCustomEventReaderError);
+            break;
+        }
+        bit_buffer_append_bytes(passy_reader->DG1, chunk, Le);
+        body_offset += Le;
+    } while(body_offset < body_size);
+    passy_log_bitbuffer(TAG, "DG1", passy_reader->DG1);
+
+    return ret;
+}
+
 NfcCommand passy_reader_state_machine(PassyReader* passy_reader) {
 NfcCommand passy_reader_state_machine(PassyReader* passy_reader) {
     furi_assert(passy_reader);
     furi_assert(passy_reader);
     Passy* passy = passy_reader->passy;
     Passy* passy = passy_reader->passy;
@@ -371,34 +402,7 @@ NfcCommand passy_reader_state_machine(PassyReader* passy_reader) {
         if(passy->read_type == PassyReadCOM) {
         if(passy->read_type == PassyReadCOM) {
             ret = passy_reader_read_com(passy_reader);
             ret = passy_reader_read_com(passy_reader);
         } else if(passy->read_type == PassyReadDG1) {
         } else if(passy->read_type == PassyReadDG1) {
-            bit_buffer_reset(passy->DG1);
-            uint8_t header[4];
-            ret = passy_reader_read_binary(passy_reader, 0x00, sizeof(header), header);
-            if(ret != NfcCommandContinue) {
-                view_dispatcher_send_custom_event(
-                    passy->view_dispatcher, PassyCustomEventReaderError);
-
-                break;
-            }
-            size_t body_size = 1 + asn1_length_length(header + 1) + asn1_length(header + 1);
-            uint8_t body_offset = sizeof(header);
-            bit_buffer_append_bytes(passy_reader->DG1, header, sizeof(header));
-            do {
-                view_dispatcher_send_custom_event(
-                    passy->view_dispatcher, PassyCustomEventReaderReading);
-                uint8_t chunk[PASSY_READER_DG1_CHUNK_SIZE];
-                uint8_t Le = MIN(sizeof(chunk), (size_t)(body_size - body_offset));
-
-                ret = passy_reader_read_binary(passy_reader, body_offset, Le, chunk);
-                if(ret != NfcCommandContinue) {
-                    view_dispatcher_send_custom_event(
-                        passy->view_dispatcher, PassyCustomEventReaderError);
-                    break;
-                }
-                bit_buffer_append_bytes(passy_reader->DG1, chunk, Le);
-                body_offset += Le;
-            } while(body_offset < body_size);
-            passy_log_bitbuffer(TAG, "DG1", passy_reader->DG1);
+            ret = passy_reader_read_dg1(passy_reader);
         } else if(passy->read_type == PassyReadDG2 || passy->read_type == PassyReadDG7) {
         } else if(passy->read_type == PassyReadDG2 || passy->read_type == PassyReadDG7) {
             uint8_t header[PASSY_DG2_LOOKAHEAD];
             uint8_t header[PASSY_DG2_LOOKAHEAD];
             ret = passy_reader_read_binary(passy_reader, 0x00, sizeof(header) / 2, header);
             ret = passy_reader_read_binary(passy_reader, 0x00, sizeof(header) / 2, header);