Files
iTartanas/DEBUG_MOVIMIENTOS.md
T
2026-03-09 22:23:07 +01:00

5.1 KiB
Raw Permalink Blame History

🔧 Actualización - Debug de Movimientos

Problema Reportado

Los movimientos no se estaban mostrando en la aplicación, solo el número de tarjeta y el saldo.

Cambios Implementados

1. Mejorado el Manejo de Errores

  • Antes: Los errores al leer movimientos se "tragaban" silenciosamente
  • Ahora: Se capturan y muestran en la UI para debugging

2. Comandos APDU Múltiples

He implementado 3 intentos diferentes para leer los registros de eventos:

// Intento 1: SFI 0x08 (file 8)
0x80 0x2B [record] 0x45 0x1D

// Intento 2: SFI 0x07 
0x80 0x2B [record] 0x3D 0x1D

// Intento 3: Comando simplificado
0x80 0x2B [record] 0x05 0x1D

Esto aumenta las posibilidades de éxito con diferentes implementaciones de tarjetas Calypso.

3. Status Words Flexibles

Ahora la app reconoce:

  • 9000 - Éxito
  • 6A83 - Registro no encontrado (normal si no hay movimientos)
  • 6A82 - Archivo no encontrado (tarjeta sin historial)

4. UI con Información de Debug

Ahora verás uno de estos escenarios:

Caso A: Movimientos Encontrados

┌─────────────────────────────┐
│ Últimos Movimientos         │
│                             │
│ Carga          +10.00 €     │
│ 15/03/2026 14:30            │
│ Línea 12                    │
│ ...                         │
└─────────────────────────────┘

Caso B: Sin Movimientos (con debug) 🔍

┌─────────────────────────────┐
│ Últimos Movimientos         │
│                             │
│ No se pudieron leer los     │
│ movimientos                 │
│                             │
│ Debug: Registro no          │
│ encontrado                  │
└─────────────────────────────┘

🧪 Qué Probar Ahora

  1. Reinstala la app con el nuevo APK:

    app\build\outputs\apk\debug\app-debug.apk
    
  2. Lee tu tarjeta nuevamente

  3. Observa la sección "Últimos Movimientos":

    • Si ves movimientos: ¡Perfecto!
    • Si ves "No se pudieron leer...": Lee el mensaje de debug

📊 Posibles Resultados

Resultado 1: Funciona Ahora

Si los movimientos aparecen, significa que uno de los nuevos comandos funcionó.

Resultado 2: "Debug: Registro no encontrado" ⚠️

Significado: La tarjeta no tiene registros de eventos disponibles para leer.

Posibles causas:

  • La tarjeta es nueva y no tiene movimientos todavía
  • Los registros de eventos están en un archivo diferente
  • La tarjeta Millennium usa un formato propietario diferente

Solución: Es normal. Algunas tarjetas no almacenan historial localmente.

Resultado 3: Otro mensaje de error 🔍

Si ves otro error, por favor compártelo conmigo para investigar más.

🔬 Próximos Pasos según el Resultado

Si Funciona:

  • Ya está todo listo
  • Puedes usar la app normalmente
  • Los movimientos se mostrarán cuando estén disponibles

Si No Funciona:

Necesitaré más información:

  1. ¿Qué dice el mensaje de debug?

    • El texto exacto que aparece en rojo
  2. ¿Es una tarjeta usada o nueva?

    • Si es nueva, puede no tener historial
  3. ¿Puedes leer movimientos en la app oficial de iTranvias?

    • Esto confirmaría que los datos existen

💡 Información Técnica

Por qué pueden faltar los movimientos:

  1. Formato Propietario: Algunas ciudades usan extensiones propietarias del formato Calypso

  2. Archivo Diferente: Los eventos pueden estar en un SFI (Short File Identifier) diferente

  3. Sin Historial Local: Algunas tarjetas no almacenan historial en el chip, solo en servidores

  4. Encriptación: Algunos campos pueden estar encriptados y requerir claves específicas

Comandos que estamos probando:

Las tarjetas Calypso usan el comando READ RECORD (0x2B) con diferentes parámetros:

  • P1: Número de registro (1, 2, 3)
  • P2: SFI × 8 + modo (ej: 0x45 = SFI 8, modo 5)
  • Le: Longitud esperada (0x1D = 29 bytes)

Estamos probando los SFI más comunes:

  • SFI 7 (típico para eventos de validación)
  • SFI 8 (típico para log de transacciones)
  • Modo directo sin SFI

📱 Instalación del APK Actualizado

El nuevo APK está en:

app\build\outputs\apk\debug\app-debug.apk

Para instalar:

  1. Transfiere el APK a tu teléfono
  2. Abre el APK y permite la instalación
  3. Si ya tenías la app instalada, se actualizará automáticamente

Build Exitoso

BUILD SUCCESSFUL ✅
35 tareas ejecutadas
7 cambios aplicados

🎯 Resumen

He mejorado significativamente la lectura de movimientos:

  • Múltiples comandos APDU (3 intentos)
  • Mejor manejo de errores
  • Información de debug visible
  • Status words más flexibles

Próximo paso: Prueba la app actualizada y cuéntame qué mensaje ves en la sección de movimientos.


Actualización: 9 de Marzo, 2026
Versión: 1.1 (Debug Build)
Estado: Listo para probar