-
Notifications
You must be signed in to change notification settings - Fork 0
Sincronizacion LAN
David Mendez edited this page Jul 18, 2026
·
1 revision
Archivo:
ui/sync_dialog.pyยท Clase:SyncDialogยท 276 lรญneas
La sincronizaciรณn LAN permite transferir sesiones de telemetrรญa entre dos dispositivos conectados a la misma red local, de forma bidireccional y automรกtica.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Dispositivos en tu Red Local โ
โ โ
โ ๐ Buscando... โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ๐ฅ๏ธ MacBook-Pro (192.168.1.105) โ โ
โ โ โ 47 sesiones โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ โ ๐ฅ๏ธ Gaming-PC (192.168.1.110) โ โ
โ โ โ 23 sesiones โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโ Resumen de Sincronizaciรณn โโโโโโโโโโโโโโโโ โ
โ โ โ Sesiones a enviar: 12 โ โ
โ โ โ Sesiones a recibir: 8 โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 67% โ
โ โ
โ โ
Sincronizaciรณn completada โ
โ โ
โ [๐ Sincronizar] [Cerrar] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Propiedad | Valor |
|---|---|
| Tamaรฑo mรญnimo | 520 ร 480 px |
| Tipo |
QDialog modal |
| Elemento | Widget | Descripciรณn |
|---|---|---|
| Tรญtulo |
QLabel bold 16pt |
"Dispositivos en tu Red Local" |
| Estado bรบsqueda | QLabel |
"๐ Buscando..." โ "โ X dispositivo(s) encontrado(s)" |
| Lista de peers | QListWidget |
Items con formato: ๐ฅ๏ธ hostname (ip) โ N sesiones
|
| Resumen sync | QGroupBox |
Oculto hasta comparar. Muestra envรญo (azul) y recepciรณn (verde) |
| Barra progreso | QProgressBar |
Oculta hasta iniciar sync. Estilo acento azul. |
| Estado |
QLabel centrado |
Mensajes de conexiรณn, transferencia, completado o error |
| Sincronizar |
QPushButton verde |
Deshabilitado hasta seleccionar un peer |
| Cerrar |
QPushButton gris |
Cierra el diรกlogo |
| Puerto | Protocolo | Direcciรณn | Funciรณn |
|---|---|---|---|
| 33741 | UDP | Broadcast bidireccional | Descubrimiento de peers |
| 33742 | TCP | Bidireccional punto a punto | Transferencia de datos |
โ ๏ธ Estos puertos estรกn reservados para GT7 Telemetry Pro. No deben reutilizarse.
- Envรญa beacons UDP broadcast en el puerto 33741
- Escucha beacons de otros dispositivos
- Filtra IPs locales para evitar auto-descubrimiento
- Emite
peer_found(hostname, ip, session_count, port)ypeer_lost(ip)
- Servidor TCP escuchando en el puerto 33742
- Acepta conexiones entrantes de otros peers
- Atiende solicitudes de comparaciรณn y transferencia
- Se crea al hacer click en "Sincronizar"
- Conecta al peer seleccionado vรญa TCP 33742
- Ejecuta el protocolo de sincronizaciรณn bidireccional
Client Server
โ โ
โโโ LIST_SESSIONS โโโโโโโโโโโบ โ
โ โ
โ โโโโโโโ SESSION_LIST โโโ โ (lista de (start_time, car_id))
โ โ
โโโ COMPARISON_RESULT โโโโโโโบ โ (sesiones faltantes en cada lado)
โ โ
โ โโโ SEND_SESSION_DATA โโ โ โ Recibir sesiones del peer
โ (por cada sesiรณn) โ
โ โ
โโโ SEND_SESSION_DATA โโโโโโโบ โ โ Enviar sesiones al peer
โ (por cada sesiรณn) โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 4 bytes โ N bytes โ
โ (big-endian) โ (zlib compressed) โ
โ longitud โ JSON payload โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- Los BLOBs de telemetrรญa (
raw_packet) se serializan como hex strings dentro del JSON - El paquete completo se comprime con
zlibnivel 6 - Detecciรณn de duplicados por clave natural:
(start_time, car_id)
| Regla | Descripciรณn |
|---|---|
| Bidireccional | Primero recibe del peer, luego envรญa |
| Sin duplicados | Usa (start_time, car_id) como clave natural |
| Protecciรณn de bloqueo | Sesiones con is_locked = 1 se sincronizan pero NUNCA se sobrescriben |
| Re-mapeo de IDs | Los session_id autoincrementales se re-mapean al importar |
| Seรฑal | Datos | UI Update |
|---|---|---|
comparison_ready |
(to_send, to_receive) |
Muestra resumen de sync |
transfer_progress |
percent (int) |
Actualiza barra de progreso |
sync_complete |
(sent_count, received_count) |
Mensaje de รฉxito |
error_occurred |
error_message (str) |
Diรกlogo de error |
Al cerrar el diรกlogo (closeEvent):
- Detiene
SyncClient(si existe) + espera 2s - Detiene
PeerDiscovery+ espera 2s - Detiene
SyncServer+ espera 2s