Skip to content

Instantly share code, notes, and snippets.

@ymollard
Last active December 3, 2017 16:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ymollard/7c71fed178af2187319d487988f2906f to your computer and use it in GitHub Desktop.
Save ymollard/7c71fed178af2187319d487988f2906f to your computer and use it in GitHub Desktop.
Logs IS

Comportement des logs

Logs sous forme de liste d'événements stockés en mémoire vive à partir du clic sur "Touchez l'écran" jusqu'à l'un des trois événements ci-dessous qui déclenche l'enregistrement du fichier en JSON sur carte SD :

  • Timeout sur n'importe quel écran (timeout de 1min, cf le schéma au crayon de papier dans les specs AEI)
  • Clic sur "Arrêter" (event avec "choice": "abandon")
  • Partage Facebook réussi

En cas de I/O Error ou bien SDCard inexistant, ignorer silencieusement l'enregistrement des logs (ne pas crasher).

Création d'une nouvelle liste vide d'événements

A chaque clic sur "Touchez l'écran pour commencer, le timestamp courant est utilisé pour donner un ID à cet utilisateur.

t_id = timestamp_du_clic_sur_TOUCHEZ_LECRAN()

La liste d'évènements sera enregistrée sur carte SD sous le nom de fichier <t_id>.json à la fin de l'interaction de cet utilisateur.

Structure de la liste d'évènements <t_id>.json

[
  {"event": "start", "time": <t_id>},
    # Evenement SYSTEMATIQUE
    # C'est le seul évènement forcément présent dans chaque fichier JSON
    # Evenement déclenché par l'appui sur "Touchez l'écran"

  {"event": "capture", "time": timestamp_du_clic()},
    # Evenement PROBABLE, sauf si timeout
    # Evenement déclenché par l'appui sur le retardateur

  {"event": "navigate_RT" "time": timestamp_du_mouseOver()}, 
    # Evenement OPTIONNEL
    # Evenement déclenché par navigation dans l'image sphérique Real Time
    # 1 nouvel event "navigation" à chaque mouseOver si le "navigation" précédent date d'il y a > 2 sec

  {"event": "visualize", "time": timestamp_du_clic(), "choice": <choice>}
     # Evenement PROBABLE, sauf si timeout
     # choice: "share" si clic sur "partager"
     # choice: "restart" si clic sur "recommencer" (conservation du même t_id.json avec un nouvel événement "capture" ou bien "timeout")
     # choice: "abandon" si clic sur "arreter" (changement du t_id au prochain usage)
     # En cas de "abandon" : Enregistre le JSON <t_id>.json courant (changement du t_id au prochain start)

  {"event": "navigate_HQ" "time": timestamp_du_mouseOver()}, 
    # Evenement OPTIONNEL
    # Evenement déclenché par navigation dans l'image sphérique Haute Qualité
    # 1 nouvel event "navigation" à chaque mouseOver si le "navigation" précédent date d'il y a > 2 sec

  {"event": "share", "time": timestamp_du_clic(), "choice": <choice>},
    # Evenement OPTIONNEL
    # choice: "facebook" si clic sur "facebok"
    # choice: "abandon" si clic sur "arreter" (changement du t_id au prochain usage)

  {"event": "facebook", "time": timestamp_du_retour_de_facebook(), "result": <result>},
    # Evenement OPTIONNEL
    # Evenement qui indique le succès, l'échec ou l'abandon du partage Facebook
    # Valeurs de <result> selon les valeurs de retour possibles de l'API facebook, par ex "success", "unauthorized", "abandon", ...

  {"event": "timeout", "time": timestamp_du_timeout()}
    # Evenement OPTIONNEL
    # Déclenché cas de timeout sur **n'importe quel écran**
    # Enregistre le JSON <t_id>.json courant (changement du t_id au prochain start)
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment