78 lines
2.2 KiB
Plaintext
78 lines
2.2 KiB
Plaintext
@startuml Séquence de Synchronisation des Données
|
|
|
|
skinparam {
|
|
BackgroundColor white
|
|
SequenceGroupBorderColor gray
|
|
SequenceGroupBodyBackgroundColor whitesmoke
|
|
ParticipantBackgroundColor lightblue
|
|
ParticipantBorderColor gray
|
|
LifeLineBorderColor gray
|
|
ArrowColor #666666
|
|
}
|
|
|
|
actor "Système" as System
|
|
participant "sync_offline_data.py" as Sync
|
|
participant "APIClient" as API
|
|
participant "TimelapseCaptureManager" as Manager
|
|
participant "Config" as Config
|
|
database "Stockage local" as Storage
|
|
database "Serveur API" as Server
|
|
|
|
System -> Sync : Exécution du script
|
|
activate Sync
|
|
|
|
Sync -> API : check_connection()
|
|
activate API
|
|
API --> Sync : Connexion disponible
|
|
deactivate API
|
|
|
|
Sync -> Manager : count_offline_captures()
|
|
activate Manager
|
|
Manager -> Storage : Listing des dossiers offline
|
|
Storage --> Manager : Liste des captures
|
|
Manager --> Sync : Nombre de captures hors ligne
|
|
deactivate Manager
|
|
|
|
alt Captures hors ligne disponibles
|
|
Sync -> Manager : sync_offline_captures()
|
|
activate Manager
|
|
|
|
loop Pour chaque capture hors ligne
|
|
Manager -> Storage : Lire données JSON
|
|
activate Storage
|
|
Storage --> Manager : Données (timestamp, température, etc.)
|
|
deactivate Storage
|
|
|
|
Manager -> Storage : Lire image
|
|
activate Storage
|
|
Storage --> Manager : Fichier image
|
|
deactivate Storage
|
|
|
|
Manager -> API : upload_measurement()
|
|
activate API
|
|
API -> Server : POST /camera/upload
|
|
|
|
alt Upload réussi
|
|
Server --> API : Confirmation (ID image)
|
|
API --> Manager : Succès
|
|
Manager -> Storage : Suppression des fichiers locaux
|
|
Manager -> Config : Mise à jour du statut
|
|
else Échec de l'upload
|
|
Server --> API : Erreur
|
|
API --> Manager : Échec
|
|
note right: Conservation des fichiers locaux\npour tentative ultérieure
|
|
end
|
|
|
|
deactivate API
|
|
end
|
|
|
|
Manager --> Sync : Nombre de captures synchronisées
|
|
deactivate Manager
|
|
else Aucune capture à synchroniser
|
|
Sync -> Sync : Fin sans action
|
|
end
|
|
|
|
Sync --> System : Rapport de synchronisation
|
|
deactivate Sync
|
|
|
|
@enduml |